Cuadernillo de Prácticas - 16-1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 58

Universidad Tecnolgica de Mxico

Campus Ecatepec
Ingeniera Electrnica y de Comunicaciones
Mecatrnica
MATERIA: MICROCONTROLADORES y PLCs

REA: INGENIERA
CUATRIMESTRE: NOVENO
1

FACULTAD DE INGENIERA

LICENCIATURA EN INGENIERA EN
COMUNICACIONES Y ELECTRNICA,
MECATRNICA
MICROCONTROLADORES Y PLCs
PRACTICAS

Elabor

Omar Abundis Noyola


21 de Enero del 2015

Fecha de revisin
Responsable

Dr. Ricardo Oscar Magos Prez

INDICACIONES DE EMPLEO Y USO DE LABORATORIOS


DIRECCION GENERAL DE DESARROLLO ACADEMICO
DIVISIN DE INGENIERA

REGLAMENTO GENERAL DE LABORATORIOS


APLICABLE A NIVEL LICENCIATURA Y PREPARATORIA

CAPTULO PRIMERO

NORMAS GENERALES
Art. 1.- Existir un profesor en cada grupo durante el tiempo que dure la prctica, asegurndose de que
todo el grupo desaloje el laboratorio al termino de sta.
I).- Se dar servicio a un Grupo por laboratorio por prctica programada, adicional o fuera de
programa.
II).- En caso de presentarse un empalme de grupos, se proceder a una programacin de prcticas
diferidas.

Art. 2.- El profesor y los alumnos que permanezcan en el laboratorio, debern portar bata de algodn,
en el caso que se especifique en el laboratorio. No se permitir la estancia en el laboratorio, a personas
que no cumplan con ste requisito.
Art. 3.- Queda estrictamente prohibido fumar, comer o beber a toda persona que est dentro del
laboratorio.
Art. 4.- Durante la primera sesin de laboratorio se formarn los grupos de trabajo, los cuales sern
fijos durante todo el curso.
Art. 5.- La eleccin de los grupos de trabajo quedar a discrecin de los alumnos, y una vez formados
dichos grupos, no se permitir cambio alguno.
Art. 6.- El equipo, accesorios y material de laboratorios slo podrn usarse para fines acadmicos,
segn los planes y programas de estudio vigentes.
Art. 7.- Slo se permitir acceso a los alumnos inscritos en la materia.
3

I).- Queda estrictamente prohibida la entrada a personas ajenas al laboratorio.


II).- Los alumnos debern mostrar su credencial a solicitud del encargado del laboratorio, en el caso de
presentar la credencial no actualizada, sta se le recoger al alumno y se entregar en la Direccin
de Carrera correspondiente y tendr que realizar el trmite de renovacin.
Art. 8.- Se sancionarn las siguientes causas:

La indisciplina.
El mal uso de los equipos y materiales.
Desarrollo de actividades ajenas al laboratorio.

Art. 9.- Las medidas y sanciones que podrn emplear las autoridades escolares sern las siguientes:
I)
II)
III)
IV)

Amonestacin en forma verbal;


Amonestacin por escrito;
Suspensin por esa sesin o aplicable a la siguiente segn sea el caso, y
Expulsin del laboratorio por el resto del curso.

Art. 10.- Tales sanciones referidas sern adoptadas, segn la gravedad de la falta, por el profesor de la
materia, el encargado del laboratorio en turno y la Direccin de Carrera o Direccin de Laboratorios.
Art. 11.- Las sanciones se podrn aplicar por alumno o por grupo segn sea el caso.
Art. 12.- Nunca se deber iniciar actividades si no se conoce la forma de proceder, sobre todo si se
desconoce el uso de los materiales, armado de los aparatos o manipulacin de los equipos. Si ste fuera
el caso preguntar al profesor o persona encargada del laboratorio la forma de utilizar los equipos.
Art. 13.- En laboratorios donde exista equipo especial como en Tcnicas Audiovisuales,
Mquinas y Motores, Manufactura, Construccin, etc. slo se autorizar prctica fuera de programa si
hay un profesor que supervise la prctica.

CAPTULO SEGUNDO
PRSTAMO DE EQUIPO Y MATERIAL.

Art. 14.- El prstamo de equipo, herramienta o material, se realizar mediante la entrega de la


credencial vigente de UNITEC y del " vale de prstamo de equipo y material de laboratorio " (anexo) al
laboratorista o persona responsable en ese momento, dejando la credencial. Ser suficiente con la
credencial de uno de los miembros del equipo, el cual se responsabilizar del equipo o material
prestado. Es importante que el solicitante revise el equipo o material que recibe.
Art. 15.- El prstamo de equipo, herramienta material se har durante los 30 minutos inciales de la
prctica.
I).- El prstamo se har por unidad y si se requiere equipo adicional estar sujeto a disponibilidad y lo
deber solicitar otro miembro del equipo.
4

Art. 16.- No se efectuar prstamo alguno al usuario que as lo requiera si no cumple con los
requisitos de los artculos 14 y 15.
Art. 17.- Una vez terminada la sesin, el usuario deber de regresar al almacn el equipo, el
laboratorista verificar que el equipo se encuentre en las condiciones en que fueron prestados y se le
devolver la credencial al solicitante.
La devolucin se deber realizar 10 minutos antes de la terminacin del horario de la prctica.
Art. 18.- El vale de prstamo se archivar en su consecutivo para posibles aclaraciones posteriores.

Art. 19.- En caso de recibir el almacn equipo deteriorado, el laboratorista o responsable recoger la
credencial y reportar lo anterior a la Coordinacin de Laboratorios y al Director de Carrera, el
solicitante o grupo de trabajo deber reponer el equipo o material faltante en un plazo de una semana de
no cumplir con la entrega del material en el plazo estipulado se reportar a Servicios Escolares para
bloquear cualquier trmite.
Art. 20.- Para prcticas fuera de programa se deber llenar una forma (anexo) que se le entregar al
solicitante en la oficina de Coordinacin de Laboratorios, la cual deber ser autorizada por el profesor
de la materia y por el director de carrera, en la que se especificar fecha, solicitante (s), equipo y
material a utilizar, as como motivo por el que se requiere dicho laboratorio.
I).- No se permitir el acceso al laboratorio, sin la autorizacin correspondiente.
II).- Se dar acceso y uso de laboratorio para prcticas fuera de programa, solo en caso de que no
interfiera con el programa normal del cuatrimestre en curso.
III).- La forma autorizada deber de entregarse a la oficina de coordinacin de laboratorios con 24 hrs
de anticipacin.
Art. 21.- El horario de uso de los laboratorios es el siguiente:

LUNES A VIERNES: 7:00 a 22:00 hrs.


SBADOS:
7:00 a 13:00 hrs.

CAPTULO TERCERO

NORMAS DE SEGURIDAD
Art. 22.- Identificar donde se localizan los dispositivos de seguridad:

Extinguidores.
Regaderas con lavaojos.
Botiqun.
Campana de extraccin.

Art. 23.- No degustar ningn compuesto, ni solucin, a no ser que se autorice.


5

Art. 24.- Ninguna sustancia, ya sea slida o lquida deber desecharse sin haber consultado al profesor
o laboratorista.
Art. 25.- Considerando que algunas sustancias qumicas son irritantes (slido, lquido o gas) a la piel y
mucosas, debe evitarse el contacto directo de productos en manos y cara; as como la inhalacin directa
de gases. Para hacer la inhalacin (en caso necesario) es conveniente formar una ligera corriente de aire
con la mano, sobre la boca del recipiente hacia la nariz.
Art. 26.- Al pesar o medir reactivos, evite tirarlos o derramarlos, en caso de hacerlo, limpiar
inmediatamente el lugar.
Art. 27.- No deber regresar a los envases originales los remanentes de reactivos utilizados.
Art. 28.- Cuando transfiera un lquido con pipeta o sifn deber utilizarse perilla de hule o de
seguridad nunca succionar con la boca.
Art. 29.- Tener cuidado cuando se efecte una reaccin qumica en tubo de ensaye, que la boca de
ste no se dirija hacia un compaero o hacia s mismo, ya que pueden ocurrir proyecciones.
Art. 30.- La gran mayora de los disolventes orgnicos son voltiles e inflamables, al trabajar con ellos
deber hacerse en lugares ventilados y nunca cerca de una flama. Los recipientes que los contienen
deben mantenerse cerrados y en lugares frescos y secos.
Art. 31.- Cualquier quemadura con cido, base, fuego o contacto prolongado con solventes, poner
inmediatamente la parte afectada mnimo 15 minutos bajo el chorro de agua fra, neutralizar y acudir a
la enfermera.
Art. 32.- Se deben usar gafas de proteccin, siempre que se realice una reaccin en la que exista el
peligro de explosin o salpicadura de los reactivos. Tambin cuando se efecte desbaste esmerilado o
corte y maquinado de piezas.
Art. 33.- Atender las disposiciones de seguridad en los casos en que especifique el profesor o el
laboratorista uso obligatorio de guantes, careta, ropa de proteccin, en las operaciones que por su
naturaleza as lo requieran.
Art. 34.- El uso de aire comprimido debe hacerse utilizado regulador de presin bajo instrucciones del
profesor o laboratorista y nunca utilizarlo para limpieza a chorro de la ropa o mesa de trabajo.
Art. 35.- En el uso de la energa elctrica nunca actuar con las manos y/o pies mojados y comprobar el
voltaje y corriente con multmetro. Utilizar contactos con conexin a tierra y que estn bien aislados.

CAPTULO CUARTO
PRSTAMO DE EQUIPO FUERA DEL LABORATORIO, PERO DENTRO DEL CAMPUS.

Art. 36.- Excepcionalmente y bajo la direccin y responsabilidad del profesor, con aprobacin de su
Director de Carrera, se considerar la posibilidad de prstamo dentro del Campus de algn equipo,
herramienta o material, quedando sujeto a la autorizacin o rechazo del Director de Laboratorios y en
su ausencia del Coordinador de Laboratorios.

I).- Solicitar a la Coordinacin de Laboratorios, el vale respectivo para prstamo.


II).- El solicitante deber llenar el vale y recabar firmas del Profesor y Director de Carrera respectivo.
III).- Presentar el vale a la Direccin de Laboratorios para firma de aprobacin.
IV).- Finalmente, se entregar el vale a la Coordinacin de Laboratorios.
V).- Efectuar este trmite con dos das de anticipacin.
VI).- Al solicitante se le aplicarn las clusulas del reglamento general.
VII).- No se prestar equipo, herramienta y material sin la presentacin del vale respectivo autorizado.

Uso del software MPLab IDE v8.50

LABORATORIO DE
ELECTRNICA

PRCTICA 1

Objetivo
Aprender a manejar el entorno del trabajo de MPLAB IDE para la programacin de los
Microcontroladores de la familia de Microchip.

Introduccin
Como ya ha sido discutido en clase, los microcontroladores son circuitos integrados que deben
ser programados, mediante el uso de un software determinado, para que realice siempre una funcin
especfica.
Ya que se est trabajando con el PIC16F873A, se tiene que hacer uso del software que ofrece la
compaa MICROCHIP, para la programacin de dicho circuito. El software en cuestin es el MPLAB
IDE, en cualquiera de sus versiones, el cual puede ser descargado en una forma gratuita desde la pgina
electrnica de MICROCHIP, sin costo alguno.

Desarrollo
A continuacin se van a indicar los pasos que se deben seguir para realizar un programa
utilizando MPLAB IDE, versin 8.50 (aun que se use otra versin los pasos a seguir slo llegan a
variar un poco).
1. Ejecute el software MPLAB IDE v 8.50. Y aparecer un entorno de trabajo como se muestra en
la figura 1.

Figura 1. Entorno de trabajo de MPLAB IDE v8.50

2.

Realice un clic en la columna de nombre Project y posteriormente seleccione la opcin Project


Wizard. Ver figura 2.

Figura 2. Seleccin de Project Wizard

Con el uso del Project Wizard, se le facilitar la configuracin de su entorno de trabajo.


3.

Tras su seleccin aparecer una ventana como la mostrada en la figura 3, elija la opcin
Siguiente.

Figura 3. Ventana del Project Wizard.

10

4.

A continuacin le aparecer una ventana que le pregunta que dispositivo quiere programar, ver
figura 4. Elija el PIC16F873A y presione siguiente.

Figura 4. Seleccin del dispositivo a programar.

5.

A continuacin se le pregunta qu conjunto de herramientas del leguaje de programacin?,


desea utilizar para realizar su programa. Cerciorarse que en la opcin de Active Toolsuite
aparezca Microchip MPASM Toolsuite, y presione siguiente. Ver figura 5.

Figura 5. Seleccin de la Active Toolsuite

6.

A continuacin le aparecer una ventana, ver figura 6, en la cual se le solicita el nombre de su


proyecto y directorio raz en donde desea que quede guardado. Dele los nombres adecuados, y
posteriormente, presione siguiente.
11

Figura 6. Seleccin del nombre y direccin del proyecto.

7.

Posteriormente, le aparece una ventana preguntado si desea agregar algn archivo ya existente.
Ver figura 7. En este primer caso simplemente presione siguiente.

Figura 7. Ventana de seleccin de archivos.

12

8.

Luego le aparecer una ventana indicndole que presione la opcin finalizar para terminar con
la operacin. Ver figura 8.

Figura 8. Ventana de finalizado del Project Wizard.

9.

Seleccione la opcin File y posteriormente New, para que le aparezca una hoja de trabajo. Ver
figura 9.

Figura 9. Entorno de trabajo.

13

10.

Seleccione la opcin File y posteriormente Save As..., y le aparecer una ventana en donde se le
solicita el nombre del archivo en lenguaje ensamblador. Dele un nombre adecuado a lo que est
realizando y la extensin .asm, y posteriormente elija la opcin guardar. Ver figura 10. Nota:
Cerciorarse que quede en su carpeta de archivos elegida. El nombre incluyendo la extensin
no debe de sobre pasar los 62 caracteres.

Figura 10. Guardado del archivo de trabajo en lenguaje ensamblador.

11.

Escriba el siguiente programa el cual realiza la suma de dos operandos, en la hoja anteriormente
abierta.

14

12.

Una vez escrito su programa es necesario salvarlo y adicionarlo a su entorno de trabajo.


Pregunte a su profesor como se realiza este paso.

13.

Una vez salvado y agregado al entorno de trabajo, es necesario compilar el programa y


depurarlo de errores. Para ello seleccione en la columna Project la opcin Build All y ejectela. Al
finalizar este proceso le puede aparecer una ventana, ver figura 11. Nota: En este caso est libre de
errores de sintaxis.

Figura 11. Ventana indicadora de errores en el programa.

15

14.

Por ltimo, pregunte a su profesor como ejecutar paso a paso el programa y como ir
visualizando los resultados de su programa.

Ejercicios de la prctica

Una vez entendido el cmo realizar un programa con la ayuda del software
MPLAB IDE v8.50, realice lo siguiente:
Un programa que sume tres valores cualquiera y el resultado de la suma quede guardado en
nuevo registro de nombre Resultado.

1. Realizar un programa en lenguaje ensamblador para MPLab de Microchip, que permita al


procesador de un PIC16F873 la multiplicacin de dos operadores bajo las siguientes
condiciones:
Multiplicando, debe ser cualquier valor entre 1d y 25d
Multiplicador, debe ser cualquier valor entre 1d y 10d
Se debe de indicar el resultado de la operacin en un
registro de nombre Producto.

(Multiplicando)
(Multiplicador)
Producto

2. Realizar un programa en lenguaje ensamblador para MPLab de Microchip, que permita al


procesador de un PIC16F873 la divisin de dos operadores bajo las siguientes condiciones:
Dividendo, debe de ser cualquier valor entre 1d y 255d y siempre debe ser mayor o igual
al divisor.
Divisor, debe de ser un valor cualquiera entre 1d y 255d.
Se debe de indicar el valor resultante en un registro de nombre Cociente y el Residuo de
la operacin.

Cociente
Divisor Dividendo
Residuo

Deber entregar sus conclusiones y sus programas libres de errores.

16

Diagrama de flujo para realizar el producto


PRODUCTO
VARIABLES
MULTIPLICANDO = A1
AUXILIAR = A2
MULTIPLICADOR = B1
PRODUCTO =C1

0 -> C1
[1,25]d -> A1
(A1) -> A2
[1,10]d -> B1

FIN_1

SI

(B1) = 1?

OPERACION

NO

(B1) 1 -> B1
(A1) -> C1

CICLO
(A2) -> W

SLEEP
(W) + (A1) -> A1

(B1) 1 -> B1

NO
OO

(B1) = 0?
SI
(A1) -> C1

FIN_2

SLEEP

17

Diagrama de flujo para realizar la divisin


DIVISION

[1,255]d
[1,255]d
0 ->
0 ->

-> D1
-> D2
C1
R1

VARIABLES
DIVISOR = D1
DIVIDENDO = D2
COCIENTE = C1
RESIDUO = R1

OTRO

(C1) + 1 -> C1

(D1) -> W

(D2) - (W) -> D2

NO

(D2) < (D1) ?

SI

RESULTADO
S

(D2) -> R1

SLEEP

18

Cuestionario
1. Qu es un microprocesador?
2. Qu es un microcontrolador?
3. Qu es un registro?
4. Para qu sirve un registro de propsito especial? Y En dnde estn ubicados dentro de la
memoria RAM de datos del PIC16F873?
5. Para qu sirve un registro de propsito general? En dnde estn ubicados dentro de la
memoria RAM de datos del PIC16F873?

19

Programacin de puertos del PIC16F873

LABORATORIO DE
ELECTRNICA

PRCTICA 2

20

Objetivos
Aprender las caractersticas tcnicas de los puertos del PIC16F873A para que se utilicen para
controlar otros dispositivos electrnicos.
Aprender cules y cmo se usan los registros de control de los puertos A, B y C del
PIC16F873A para configurarlos como entrada o como salida, segn lo demande la aplicacin
requerida.
Realizar sistemas bsicos de proteccin y convertidores de cdigo para sean utilizados en
sistemas de control ms complejos.

EQUIPO

Fuente de voltaje de 5 Volts


Multmetro
Computadora Personal
Programador de microcontroladores PIC

MATERIALES
1 PIC16F873A
1 Dip Switch de 8 posiciones
13 R de 10K
1 D 1N4148
1 D1 diodo led
5 Resistores de 18K
1 Resistor de 680
1 Sb Push button, normalmente abierto.
1 XTAL de 4MHz.
2 C de 15pF. (Pueden ser valores entre 15pF a 33pF).
1 Display de 7 segmentos ctodo comn.
Programa fuente
Protoboard
Cables
Pinzas

21

Introduccin terica
Puertos de entrada y salida
Los microcontroladores PIC16F87x encapsulados con 28 patitas disponen de tres puertos
bidireccionales (A, B, y C), mientras los que tienen 40 patitas tienen cinco (A, B, C, D y E). Todas las
lneas de los puertos son multifuncionales, es decir, realizan diversas funciones segn estn
programadas. Sin embargo, todas ellas tienen la capacidad de trabajar como lneas de E/S digitales.

PORTA (0X05)
Las lneas de entrada y salida de seales digitales corresponden a los pines 2, 3, 4, 5, 6 y 7. Los
cuales llevan por nombre RA0/AN0, RA1/AN1, RA2/AN2/VREF-/CVREF, RA3/AN3/VREF+,
RA4/T0CKl/C1OUT y RA5/AN4/#SS/C2OUT; respectivamente.
Las patitas RA0/AN0, RA1/AN1 y RA2/AN2, adems de ser lneas de E/S digitales tambin
pueden actuar como canales 0, 1 y 2 por los que se puede aplicar una seal analgica al ADC.
RA3/AN3/VREF+ tambin puede actuar como entrada de la tensin de referencia para los perifricos que
la precisan. La patita RA4/T0CKl acta como E/S digital y como entrada de la seal de reloj para el
TMR0. Por ltimo la patita, RA5/AN4/#SS tiene multiplexada tres funciones: E/S digital, canal 4 para
el ADC y seleccin del modo esclavo cuando se trabaja con la comunicacin serie sncrona.

TRISA (0X85)

Dado que el puerto A, puede manejar el ingreso y suministro de seales digitales, por cualquiera
de sus 6 lneas, entonces es necesario configurar adecuadamente el registro TRISA (ubicado en el
banco 1 de la memoria RAM de datos), para el ingreso y suministro de seales. Esto se realiza de la
siguiente manera:

Si alguno de los bits que integran al registro TRISA, esta con un valor igual a 0, la
correspondiente lnea estar configurada como salida (Output).

Si alguno de los bits que integran al registro TRISA, esta con un valor igual a 1, la
correspondiente lnea estar configurada como entrada (Input).

Nota: Para seleccionar si las lneas del PORTA van a trabajar como E/S digitales o como canales de
entrada para el ADC, hay que adems escribir adecuadamente sobre el registro ADCON1. Si se carga a
dicho registro el valor b0000011X = 0x06, todas la lneas del PORTA funcionaran como E/S
digitales.

22

PORTB (0X06)
Este puerto consta de 8 lneas de entrada y salida, denotadas como RB0 a RB7. Fsicamente,
corresponden a los pines del nmero 21 al 28 del circuito integrado, respectivamente.

Caractersticas
1. La lnea RB0/INT. Se puede usar de las dos maneras siguientes. Como una simple lnea de
entrada/salida de una seal digital y para el manejo de la interrupcin por activacin.
2. Cada uno de las lneas que conforman a este puerto, tienen internamente conectado un resistor
limitador (Pull-up), de elevado valor. Las cuales siempre estn deshabilitadas.
3. Las lneas RB4 a RB7, cuando estn configuradas como entrada pueden ser programadas para
manejar la interrupcin por cambio de estado.
4. Adems, cuando se tiene un V pp 12 14VCD , la lnea RB6 sirve para la grabacin serie de la
memoria de programa, soportando la seal de reloj. Y RB7, constituye la entrada de los datos
en serie, cuando se graba un programa en la memoria de cdigo.
Una gran aportacin en los PIC16F87X la constituye la programacin con bajo voltaje (LVP,
Low Voltage Programming), que no requiere de la tensin de 12 a 14 V. Para grabar en este
modo, hay que poner el bit LVP = 1, que reside en la palabra de configuracin y la patita
RB3/PGM se conecta a nivel alto. Entonces la patita MCLR#/Vpp se aplica la tensin de VDD
de 5 V mientras dura la operacin de grabado. Cuando no se opera en este modo de
programacin se puede usar la patita RB3 como una lnea de E/S digital.
TRISB (0X86)
Dado que el puerto B, puede manejar el ingreso y suministro de seales digitales, por cualquiera
de sus 8 lneas, entonces es necesario configurar adecuadamente el registro TRISB (ubicado en el
banco 1 de la memoria RAM de datos), para el ingreso y suministro de seales. Esto se realiza de la
siguiente manera:

Si alguno de los bits que integran al registro TRISB, esta con un valor igual a 0, la
correspondiente lnea estar configurada como salida (Output).

Si alguno de los bits que integran al registro TRISB, esta con un valor igual a 1, la
correspondiente lnea estar configurada como entrada (Input).

Nota: El valor inicial de cada uno de los bits que integran a registro TRISB es 1; por lo que
inicialmente el puerto B est configurado para recibir valores digitales.

23

PORTC (0x07)
Este puerto consta de 8 lneas de entrada y salida, denotadas como RC0 a RC7. Fsicamente,
corresponden a los pines del nmero 11 al 18 del circuito integrado, respectivamente.
Descripcin:
RC0/T1OSO/T1CKl(11): Lnea digital E/S o salida del oscilador del Timer1 o como entrada de
impulsos del Timer1.
RC1/T1OSl/CCP2 (12): Lnea digital de E/S o entrada al oscilador del Timer1 o entrada al
mdulo Captura2/salida del comparador2/salida de PWM 2.
RC2/CCP1 (13): E/S digital. Tambin puede actuar como entrada Captura1/Salida
Comparacin1/salida de PWM1.
RC3/SCK/SCL (14): E/S digital o entrada de reloj serie sncrona/salida de los modos SPI e I2C.
RC4/SDI/SDA (15): E/S digital o entrada de datos en modo SPI o I/O datos en modo I2C.
RC5/SDO (16): E/S digital o salida de datos en modo SPI.
RC6/TX/CK (17): E/S digital o pin del transmisor del USART asncrono o como seal del reloj
sncrona en transmisin serie.
RC7/RX/DT(18): E/S digital/Lnea de recepcin del USART/Lnea de datos en transmisin
serie sncrona.
TRISC (0x87)
Su forma de utilizar es igual que la del registro TRISB.

Los puertos trabajan de la siguiente manera:


LECTURA
(Contenido del puerto)

MODIFICACIN
(El valor)

ESCRITURA
(En la Latch de salida)

Latch: Es un circuito electrnico, que permite retener datos en una posicin de preparacin hasta que sea pedido,
generalmente por otro circuito electrnico.

24

DESARROLLO

1)

Implementar una cerradura electrnica, la cual slo activar la salida si por medio de un dip
switch se pone la combinacin (10101010)b, que deber estar conectado al PORTC. Para
indicar que se ha introducido la combinacin correcta se deber de activar un LED, conectado a
la lnea RB0.

Armar, en un Protoboard, el siguiente circuito. Ver figura 12.

D2

LED

R11
330

C1

U1
9
10

15p

X1
4MHz

C2
15p
Vcc

2
3
4
5
6
7
1

R1
10k

OSC1/CLKIN
OSC2/CLKOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
MCLR/Vpp/THV
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28

R3
10k

R4
10k

R5

11
12
13
14
15
16
17
18

10k

R6

Vcc

10k

R7
10k

R8

PIC16F873A

10k

R9
10k

D1

R10

120

ON

R2

1
2
3
4
5
6
7
8

1N4148

10k

DSW1

16
15
14
13
12
11
10
9

OFF

DIPSW_8

Figura 12. Circuito de una cerradura electrnica.

La forma en que se debe de proceder para realizar el programa se indica en el diagrama de flujo
que aparece en la figura 13.

25

Figura 13. Diagrama de flujo para elaborar el programa de la cerradura electrnica.

Programa para el control de la cerradura electrnica.

26

Una vez cargado con el programa se quita del programador y se coloca en la base del circuito para
aplicaciones, circuito de la figura 12.

2) Realizar un programa y un circuito electrnico haciendo uso del PIC16F873A, para que realice el
desplegado en cdigo hexadecimal en un display de 7 segmentos ctodo comn, del cdigo binario
correspondiente, que se introduzca mediante cuatro interruptores conectados al PORTC del
microcontrolador.
Nota: Un interruptor abierto representa un 1 lgico.
El circuito electrnico aparece en la figura 14.

C1

U1
9
10

15p

X1
4MHz

C2
15p
Vcc

2
3
4
5
6
7
1

R1
10k

OSC1/CLKIN
OSC2/CLKOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
MCLR/Vpp/THV
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28

R7
100

11
12
13
14
15
16
17
18

R3
10k

R4

PIC16F873A

Vcc

10k

R5
10k

R6

D1
1N4148

120

ON

R2

1
2
3
4
5
6
7
8

10k

DSW1

16
15
14
13
12
11
10
9

OFF

DIPSW_8

Figura 14. Circuito electrnico del convertidor de binario a hexadecimal.

En la figura 15, se muestra el diagrama de flujo que se debe seguir para que pueda realizar el
programa correspondiente al convertidor de cdigo binario a hexadecimal.

27

Figura 15: Diagrama de flujo del convertidor de cdigo binario a hexadecimal.

Cuestionario
1.
2.
3.
4.

Cuntos puertos de entrada y salida tiene el PIC16F873?


De cuntas lneas se compone cada uno de los puertos del PIC16F873?
Cules son los registros que se utilizan para programar los puertos del PIC16F873?
Describa los pasos que se deben de seguir para programar una lnea de algn puerto como
entrada.
5. Qu es un Latch?
6. Describa cmo funciona el MOC3041 propuesto.

28

Configuracin del TMR0 del PIC16F873A

LABORATORIO DE
ELECTRNICA

PRCTICA 3

29

Introduccin
El elemento encargado de realizar la funcin de determinar intervalos concretos de tiempo, se le
denomina temporizador (timer). Y contador, al elemento encargado de determinar el nmero de
impulsos externos que ingresan al microcontrolador.
Los PIC16F87X disponen de tres temporizadores para encargarse de las operaciones que
involucran al tiempo y al contaje. Dichos temporizadores se denominan TMR0, TMR1 y TMR2.
Las caractersticas ms representativas de ellos son:
TMR0

Es un contador/temporizador de 8 bits.
Leble y escribible.
Reloj interno o externo
Seleccin del flanco en reloj externo.
Predivisor de la frecuencia de reloj programable.
Generacin de interrupcin opcional en el desbordamiento.

TMR1

Es un contador/temporizador de 16 bits.
Leble y escribible.
Seleccin de reloj interno y externo.
Interrupcin opcional por desbordamiento de 0xFFFF a 0x0000.
Posible reinicializacin desde los mdulos CCP.

TMR2

Es un temporizador de 8 bits.
Dispone de u registro de periodo de 8 bits (PR2).
Leble y escribible.
Predivisor de frecuencia programable.
Postdivisor de frecuencia programable.
Interrupcin opcional al coincidir TMR2 y PR2.
Posibilidad de generar impulsos al mdulo SSP.

Uso del TMR0


Para el PIC16F873 el registro TMR0, acta de las siguientes maneras:
1. Como contador de sucesos, los cuales no son ms que pulsos que se le aplican al pin
RA4/T0CKI, y tras cada deteccin se incrementa el valor que tenga el registro especial
TMR0; por lo que se debe de tener mucho cuidado en el valor inicial de este registro.

30

2. Como temporizador, cuando se carga al registro (TMR0) que implementa el recurso un


valor inicial, se incrementa con cada ciclo de instruccin hasta que se desborda y manda a
1 el sealizador TMR0IF, ubicado en el registro INTCON.

Uso del temporizador


Lo primero que se debe conocer es que para el manejo del temporizador es necesario manejar
dos registros, el TMR0, que es un registro de propsito especfico y que est ubicado en la direccin
0x01 del banco 0 de la memoria RAM de datos. El cual puede ser ledo y escrito en cualquier momento
al estar conectado al bus de datos.
El segundo registro es el OPTION_REG, es cual est ubicado tambin en la direccin 0x81, es
decir en el banco 1 de la memoria RAM de datos. Este registro es el encargado de cmo se debe
configurar el TMR0 del PIC y Watch Dog Time. A continuacin se indica cmo est configurado este
registro.

Y en segundo lugar cmo se determina el tiempo de temporizacin. Para ello se debe utilizar la
siguiente frmula:

Temporizac in 4(Tosc )(256 - valor cargado en el TMR0)(Rang o del divisor)


31

Ejemplo 1:

Determinar el tiempo de temporizacin para un PIC cuya frecuencia del oscilador es de


4MHz, tiene cargado el valor de d40 en el registro TMR0 y el divisor de frecuencia
est en la opcin 1:32.

Solucin:
Temporizac in 4(0.25 10 6 )(256 40 )(32 ) 6.912 10 3 s

Ejemplo 2:

Con qu valor debe ser cargado el TMR0? Para que la temporizacin sea de 8ms, con
un oscilador de cristal de 4 MHz, y un rango del divisor de 1:32.

Solucin:
Valor cargado en el TMR0 256

Temporizacin
4(Tosc )(Rango del divisor)

8 10 3
256
4(0.25 10 6 )(32)
6

Ejemplo 3:

Cuntas veces? Se tendra que desbordar el TMR0, con los valores del ejemplo 2, para
que se acumule un tiempo igual a un segundo.

Solucin:
125 veces.

Uso del contador


Otra de las funciones que tiene el TMR0 es la de temporizar en base a una frecuencia o pulsos
externos que se introducen por el pin RA4/T0CKI. Como esa frecuencia puede ser desconocida o los
pulsos no tienen por qu ser peridicos, en lugar de temporizar se le denomina contar, y de all ms
comnmente como contador.
Y para poder cambiar de la funcin de temporizador a contador, se hace uso del bit (T0CS), del
registro OPTION_REG. Por otra parte, el bit (T0SE) del mismo registro permite establecer si los
pulsos externos sern contados en cada flanco ascendente o descendente de la seal de entrada.
En general el empleo del contador de pulsos externos es similar al uso del registro como
temporizador, se selecciona el preescaler, si es necesario, se carga al TMR0 con el nmero de pulsos a
contar (su complemento a 2, dado que es un contador ascendente) y se detecta el final de la cuenta
cuando el bit (T0IF) del registro INTCON se pone a uno lgico.

32

MATERIALES
1 PIC16F873A
1 Fototransistor (tambin llamado optointerruptor).

Apariencia del optointerruptor MCA81 o H21A1

1 Resistor de 18 K
2 Resistor de 10 K
2 Resistores de 100
2 Resistores de 330
1 D 1N4148
1 Push button, normalmente abierto
1 XTAL de 4MHz.
2 C de 15pF. (Pueden ser valores entre 15pF a 33pF)
2 Display de 7 segmentos ctodo comn.
2 74LS48
Programador
Fuente de voltaje
Osciloscopio
Protoboard
Cables
Pinzas

33

Desarrollo
1. Realizar un programa en lenguaje ensamblador para el PIC16F873X con un oscilador a 4MHz,
que haga uso del temporizador para desplegar en un display de 7 segmentos ctodo comn, los
dgitos del 0 al 9, en forma automtica y cclica. El tiempo que debe ser visible cada dgito debe
ser de 1 segundo.
Solucin:
Para el programa principal siga los siguientes pasos:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Declare 2 variables (Conta_1 y Conta_2), para alojar el nmero de dgitos a desplegar (10) y el nmero de veces
que se va a ejecutar el desbordamiento del TMR0, (125).
Configure el PORTB como salida, ya que va a controlar el display de 7 segmentos ctodo comn.
Configure el registro OPTION_REG, ya que va a utilizar el temporizador.
Inicialice a cero el contenido del PORTB.
Inicialice a cero el contenido del registro Conta_1.
Pase el contenido de Conta_1 a w.
Llame a la subrutina Tabla.
Escriba el valor de w en PORTB.
Llame a la subrutina de retardo de tiempo, Delay_1seg.
Incremente en uno el valor del registro Conta_1.
Compare el valor de Conta_1 con el valor de 10.
Mientras sea menor repita los pasos del nmero 6 al 11.
Si son iguales inicie nuevamente desde el paso 5.

Para la subrutina Delay_1seg, siga los siguientes pasos:


1. Inicialice la variable Conta_2 con el valor de 125. Corresponde al nmero de veces que hay que desbordar el
TMR0 para acumular 1 segundo de tiempo.
2. Borre la bandera de desbordamiento del TMR0: <INTCON,TMR0IF> = 0.
3. Inicialice el registro TMR0 con el valor de 6.
4. Espere hasta que la bandera de desbordamiento del TMR0 sea igual con 1. El cambio se efectuar de manera
automtica una vez sucedido el desbordamiento.
5. Decrementar el valor de la variable Conta_2.
6. Preguntar si el contenido de la variable Conta_2 es igual con cero.
7. Si es No, repetir del paso 2 al paso 6.
8. Y si es s, regresar de la subrutina al programa principal.
Nota: La subrutina Tabla, es la misma utilizada en la prctica 2, ejercicio 2, solo que ahora utilizar los primeros 10
valores.

34

Programa en lenguaje ensamblador:

35

2. Haciendo uso de la librera RETARDOS.INC, realice la solucin de los siguientes problemas


planteados.
a) Semforo.
Un PIC16F873, realiza el control de un semforo, con los siguientes ciclos de operacin:

Luz verde 57 segundos encendida, y en los ltimos 3 segundos se efectuaran tres ciclos de
encendido y apagado en intervalos de 500 ms, y posteriormente se apagara.
Luz amarilla encendida 3 segundos y posteriormente se apagar.
Luz roja 20 segundos encendida y posteriormente se apagar.
Repetir lo anteriormente descrito en los tres puntos todo el tiempo que este encendido el
microcontrolador.

b) PWM.
Un PIC16F873, funcionando a una frecuencia de 4MHz, realice un modulador de ancho de pulso con
frecuencia de operacin de 50Hz. Las modulaciones del pulso deben de ser las siguientes:
1)
2)
3)
4)
5)
6)
7)

90% de la seal a un nivel lgico alto y 10% en bajo.


80% de la seal a un nivel lgico alto y 20% en bajo.
75% de la seal a un nivel lgico alto y 25% en bajo.
50% de la seal a un nivel lgico alto y 50% en bajo.
25% de la seal a un nivel lgico alto y 75% en bajo.
10% de la seal a un nivel lgico alto y 90% en bajo.
05% de la seal a un nivel lgico alto y 95% en bajo.

Nota: Debern ser introducidas las diferentes opciones usando un DIP-Switch, que permita las 7
combinaciones solamente y una sola lnea de un puerto de salida.

3. Realice un programa en lenguaje ensamblador para que el PIC16F873 haga funcionar el circuito
mostrado en la figura 16, un contador de 99 eventos.
C1

U1
9
10

15p

X1

2
3
4
5
6
7

4MHz

C2
15p

Vcc

Vcc

R5

R4

10k

Vcc

330

U4
1

3
K
MCA81

R1

R2

10k

330

OSC1/CLKIN
OSC2/CLKOUT

UNIDAD
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
MCLR/Vpp/THV
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28

7
1
2
6
4
5
3

A
B
C
D
BI/RBO
RBI
LT

QA
QB
QC
QD
QE
QF
QG

13
12
11
10
9
15
14

74LS48
11
12
13
14
15
16
17
18

R7
Vcc
7
1
2
6
4
5
3

PIC16F873A

100

DECENA
A
B
C
D
BI/RBO
RBI
LT

QA
QB
QC
QD
QE
QF
QG

13
12
11
10
9
15
14

74LS48

R3
D1
1N4148

100
Vcc

Figura 16. Contador de 00 a 99.

36

Solucin:
1. Configurar el registro OPTION_REG, para que el PIC16F873 funcione como contador.
2. Configurar al PORTA como entrada o al menos la lnea RA4 del PORTA como entrada.
3. Configurar al PORTB como salida.
4. Inicializar a cero el registro TMR0
5. Mover el contenido del registro TMR0 al registro de trabajo, w.
6. Llamar a la subrutina Bin_a_BCD
7. Mover el contenido del registro Conversion (nombre de variable propuesta) al PORTB.
8. Comparar el valor del TMR0 con el valor de 100d.
9. Si el valor del TMR0 es menor a 100, repetir los pasos de 5 al 8.
10. Si resultan ser iguales empezar nuevamente desde el paso 4.
Nota: A continuacin se muestra el diagrama de flujo para la subrutina Bin_a_BCD, el cual deber
adecuar para hacer funcionar su circuito electrnico.

En la siguiente tabla se muestra la forma en que opera el diagrama de flujo para el valor
propuesto de 124d.

37

(Centenas)

(Decenas)

(Unidades)

(Unidades) < 10?

(Decenas)=10?

124

No, resta 10

Incrementa (Decenas)

114

No, resta 10

104

No, resta 10

94

No, resta 10

84

No, resta 10

74

No, resta 10

64

No, resta 10

54

No, resta 10

44

No, resta 10

34

No, resta 10

24

No, resta 10

14

No, resta 10

NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
NO, Incrementa
(Decenas)
S. (Decenas) = 0, y
adems incrementa
(Centenas)
NO, Incrementa
(Decenas)

S, se acab

Cuestionario

1. Defina qu funcin tiene un temporizador en el PIC16F873A


2. Defina qu funcin tiene el contador en el PIC16F873A
3. Cuntos y cules son los registros de propsito especial que se utilizan para
manejar tanto un proceso de temporizado como de conteo de pulsos?
4. En dnde estn ubicados dentro de la memoria RAM de datos?
5. Para qu sirve el divisor de frecuencia y cmo se usa?
6. Qu significa PWM? Y En qu se puede utilizar?

38

Uso del ADC de 10 bits del PIC16F873

LABORATORIO DE
ELECTRNICA

PRCTICA 4

39

Convertidor Analgico Digital

Los PIC16F87X poseen un CAD de 10 bits de resolucin y 5 canales de entrada en los modelos
con 28 pines (PIC16F873/6) y 8 canales en los que tienen 40 pines (PIC16F874/7).
La resolucin que tiene cada bit procedente de la conversin tiene un valor que es funcin del
voltaje de referencia Vref, de acuerdo con la siguiente frmula:
Resolucin (Vref Vref ) / 1024 Vref / 1024

Nota: el voltaje diferencial mnimo es de 2V.


Para poder operar, la funcin de conversin de una seal analgica a digital para los
PIC16F87X, es necesario configurar y operar correctamente cuatro registros:
1.
2.
3.
4.

ADCON0: Registro de control 0.


ADCON1: Registro de control 1.
ADRESH: Parte alta del resultado de la conversin.
ADRESL: Parte baja del resultado de la conversin.

ADCON0
Controla la operacin del CAD, y el correspondiente registro est configurado como se muestra
a continuacin.

Los bits <7:6> sirven para seleccionar la frecuencia de reloj que se emplea en la conversin,
con la siguiente asignacin:

Nota: Se designa como TAD el tiempo que dura la conversin de cada bit y en el caso de trabajar con
valores digitales de 10 bits, se requiere un tiempo mnimo de 12TAD. Y en los PIC16F87X nunca debe
ser menor de 1.6 microsegundos.
40

Los bits CHS2-0, seleccionan el canal por el que se introduce la seal analgica a convertir, de
acuerdo con el siguiente cdigo:

El bit GO/DONE#; es el bit de estado de conversin. Ponindolo a 1 se inicia la conversin y


mientras est a 1 est realizando dicha operacin. Cuando GO/DONE# pasa a 0, confirma el final de la
conversin y la puesta del resultado en la pareja de registros ADRESH:L.
El bit ADON sirve para activar el CAD ponindolo a 1 y para inhibir su funcionamiento
ponindolo a 0.

ADCON1

Sirve para configurar los pines del Puerto A como entradas analgicas o E/S digitales. Y est
configurado como se muestra a continuacin.

El bit de ms peso ADFM selecciona el formato del resultado de la conversin. Si vale 1, el


resultado est justificado en el registro ADRESH, que tiene sus 6 bits de ms peso a 0; mientras que si
vale 0 la justificacin se realiza sobre el registro ADRESL, que tiene sus 6 bits de menos peso a 0.

41

Los bits PCFG3-0, se usan para configurar los pines de los canales de entrada al conversor
como analgicas o como E/S digitales, como a continuacin se muestra en la tabla 3.

Tabla 3: configuracin de los canales de entrada.

Pasos que hay que efectuar para realizar una conversin A/D:
1. Configurar el mdulo C A/D

Configurar los pines que actuarn como entradas analgicas, las que trabajan como E/S
digitales y las usadas para el voltaje de referencia (ADCON1).
Seleccionar el reloj de la conversin (ADCON0).
Seleccionar el canal de entrada A/D (ADCON0).
Activar el mdulo A/D (ADCON0).

2. Activar, si se desea, la interrupcin escribiendo sobre PIE1 y PIR1.

Borrar el sealizador ADIF.


Poner a 1 el bit ADIE.
Poner a 1 los bits habilitadores GIE y PEIE.

3. Tiempo de espera para que transcurra el tiempo de adquisicin.


4. Inicio de conversin.

Poner a 1 el bit GO/DONE# (ADCON0).


42

5. Tiempo de espera para complementar la conversin A/D que puede detectarse:


a)
b)
c)

Por la exploracin del bit GO/DONE#, que al completarse la conversin pasa a


valer 0.
Esperando a que se produzca la interrupcin si se ha programado, al finalizar la
conversin.
Aunque no se permita interrupcin, el sealizador ADIF se pondr a 1 al
finalizar la conversin.

6. Leer el resultado en los 10 bits vlidos de ADRESH:L y borrar el flag ADIF.


7. Para una nueva conversin regresar al 1 o al 2 paso. El tiempo de conversin por bit est
definido por TAD. Se exige esperar un mnimo de 2TAD para reiniciar una nueva conversin.

Material a emplear

C1 y C2
Capacitor de 33pF.
D1
1N4148.
R1 y R2
150.
R3
10K.
R4
100.
R5
2.2K.
R6
27K.
RV1
Potencimetro de 20K.
S1
Push Button
U1
PIC16F873.
U2 y U3
74LS48.
U4
LM35
U5 y U6
Displays de siete segmentos, ctodo comn.
X1
Cristal de 4MHz.
1 MOC 3041 (o el MOC3011)
1 TRIAC BT137 400/8A. (O equivalente)
2 R1 de 330
2 R2 de 100
1 R de 33

Desarrollo

1. Como parte del desarrollo de esta prctica, investigue el funcionamiento del sensor de
temperatura LM35.
2. Calcule, el valor del voltaje de referencia con que debe de funcionar el CAD, de tal manera que
le permita emplear todo el rango til del sensor, para temperaturas positivas. Aunque en este
43

caso slo se visualizar un rango de 0 a 99C. Y en el momento de rebasar la temperatura de


40C, deber encender un ventilador que funcione con 127 Vca.
3. Desarrolle el programa en lenguaje ensamblador que permita funcionar el circuito de las figuras
17 y 18.

Figura 17: Circuito electrnico del termmetro a desarrollar.

Nota: No olvide registrar todas sus observaciones y conclusiones en su cuaderno.

Figura 18. Etapa de control de potencia.

44

Control de un LCD con el PIC16F873

LABORATORIO DE
ELECTRNICA

PRCTICA 5

45

Objetivo

Aprender a utilizar para la visualizacin de datos, pantallas de cristal lquido de bajo costo.

Introduccin

Las pantallas de cristal lquido tienen la capacidad de mostrar cualquier carcter alfanumrico y
as permitir representar la informacin de una manera fcil. Las pantallas, de las ms bsicas, se
conforman de una matriz de 5x7 puntos, normalmente, distribuidos de una a cuatro lneas de 16 hasta
40 caracteres cada lnea.
De los ms utilizados para fines de experimentacin bsica, se puede utilizar el modelo
LM016L, que es un mdulo LCD de dos lneas de 16 caracteres cada una. Sus caractersticas generales
son:

Consumo reducido, alrededor de 7.5 mW.


Pantalla de caracteres ASCII, caracteres Kanji, griegos y smbolos matemticos.
Desplazamiento de los caracteres hacia la izquierda o a la derecha.
Memoria de 40 caracteres por lnea de pantalla, visualizndose 16 caracteres por lnea.
Movimiento del cursor.
Permite al usuario programar ocho caracteres.
Puede ser gobernado de dos formas principales:
o Conexin con bus de 4 bits.
o Conexin con bus de 8 bits.

Distribucin de pines

En la figura 17, se muestra como estn distribuidos y qu funcin tienen los pines que
conforman al LCD a utilizar.

Figura 17: Distribucin de pines del LCD LM016L

46

En la tabla 1, se indica para qu propsito tienen cada uno de los pines de este mdulo.
SEAL
DB0 A DB7
E
R/W

DEFINICIN
Data Bus
Enable

PINES
7 a 14
6

Read/Write

RS

Register Select

VEE

Liquid Crytal driving Voltage

VDD
VSS

Power Supply Voltage


Ground

2
1

FUNCIN
Bus de Datos.
E = 0, LCD no habilitado.
E = 1, LCD habilitado.
R/W = 0, escribe en LCD.
R/W = 1, lee del LCD.
R/S = 0, Modo Comando.
R/S = 1, Modo Carcter.
Tensin para ajustar el
contraste.
Tensin de alimentacin, +5V.
Tierra.

Tabla 1: Funciones de los pines en un LM016L.

DDRAM

El LM016L posee una zona de memoria RAM llamada DDRAM (Data Display RAM) donde se
almacenan los caracteres que se pueden representar. Tiene la capacidad de 80 bytes, 40 por cada lnea
de los cuales slo 32 se pueden visualizar a la vez.

CGROM

El LM016L posee una zona de memoria interna no voltil llamada CGROM donde se almacena
una tabla con los 192 caracteres. Cada uno de los cuales tiene su representacin binaria de ocho bits.

Modos de funcionamiento
Modo comando. Cuando por el bus de datos el LCD recibe instrucciones como Borrar Display,
Mover Cursor, Desplazar a la Izquierda, etc. Para trabajar en modo comando, el pin RS debe
estar 0. El pin R/W tambin debe ser 0 para indicar que se est realizando una operacin de
escritura. Una operacin en este modo tarda un mximo de 1.64 ms.
Modo Carcter o Dato. Cuando se enva al LCD el carcter ASCII a visualizar. Para trabajar
en este modo, el pin RS debe estar a 1. el pin R/W debe ser 0 para indicar que est realizando
una operacin de escritura. Una operacin en este modo tarda un mximo de 40 s.
Modo lectura del Busy Flag o LCD ocupada. En el bit 7 (Busy Flag) del bus de datos el LCD
informa al microcontrolador de que est ocupado. Para ello se lee el bus de datos con RS = 0 y
R/W = 1, si el bit 7 del bus de datos es 1 indica que la pantalla LCD est ocupada realizando
47

operaciones internas y no puede aceptar nuevas instrucciones ni dato. Hay que esperar a que
valga 0 para enviarle la siguiente instruccin o carcter.

Comandos de control

Los comandos de control para el LM016L se resumen en la tabla 2.

Tabla 2: Comandos del LCD LM016L

Los comandos se envan a travs del bus de datos. Para que sea reconocidos por el LCD se debe
poner la seal RS a nivel bajo. A continuacin se describen los comandos y los smbolos de la tabla 2.
Clear Display (00000001). Borra pantalla y devuelve el cursor a la posicin inicial (direccin 0
de la DDRAM).
Return Home (0000001x). Cursor a direccin origen. Devuelve el cursor la posicin original de
la DDRAM (direccin 00h) quedando intacto su contenido.
Entry Mode Set (000001 I/D S). Modo Entrada. Establece las caractersticas de escritura de los
datos Shift e Increment/Decrement:
o S = 0. La informacin visualiza en pantalla no se desplaza al escribir un nuevo carcter.
o S = 1 La informacin visualizada se desplaza al escribir un nuevo carcter. La pantalla
se desplaza en el sentido indicado por el bit I/D cuando el cursor llega al filo de
la pantalla.
o I/D = 0 Decremento de la posicin del cursor. Se decrementa el puntero de la DDRAM.
o I/D = 1 Incremento automtico de la posicin del cursor. La posicin de la DDRAM se
incrementa automticamente tras cada lectura o escritura a la misma.

48

Display Control (00001DCB). Control de la pantalla.


o
o
o
o
o
o

B = 0.
B = 1.
C = 0.
C = 1.
D = 0.
D = 1.

Blink OFF, no hay efecto de parpadeo del cursor.


Blink ON, efecto de parpadeo con un cursor rectangular.
Cursor OFF, el cursor no se visualiza.
Cursor ON, el cursor es visualizado.
Display OFF, el display se apaga.
Display ON, el display se enciende.

Cursor and Display Shift (0001 S/C R/L XX). Control de los desplazamientos del cursor y de la
pantalla:
o R/L = 0.
o R/L = 1.
o S/C = 0.

Left. A la izquierda.
Right. A la derecha.
El efecto de desplazamiento se aplica slo sobre el cursor sin alterar el
contenido de la DDRAM.
El efecto de desplazamiento se aplica sobre todo el display.

o S/C = 1.

Set CGRAM Address. Se va a escribir sobre la direccin CGRAM sealada.


Set DDRAM Address (1ddddddd). Esta instruccin se utiliza para modificar el puntero a la
DDRAM. As por ejemplo, si la direccin es la 08h se escribir en el centro de la primera lnea.
Read Busy Flag. Lee el BF indicando si hay una operacin interna en curso y lee el contenido
de la direccin DDRAM apuntada.
Conexin de LCD mediante 4 bits
En la figura 18, se ilustra la forma de conectar el LCD al puerto B del PIC16F873A mediante 4
lneas y sin lectura del Busy Flag por lo que tambin se ahorra la lnea R/W que se conecta a tierra.
Vcc

U1

Vcc

R1
10k

11
12
13
14
15
16
17
18

RV1
10k

PIC16F873A

3
2
1

15p

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
MCLR/Vpp/THV
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

VEE
VDD
VSS

4MHz

C2

2
3
4
5
6
7

21
22
23
24
25
26
27
28

6
5
4

X1

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

E
RW
RS

15p

OSC1/CLKIN
OSC2/CLKOUT

14
13
12
11
10
9
8
7

9
10

D7
D6
D5
D4
D3
D2
D1
D0

C1

D1
LCD1

1N4148

R2

LM016L

330

Figura 18: Conexin del LCD al PIC16F873A mediante bus de 4 lneas.

49

Librera de subrutinas
La librera LCD_4BIT.INC contiene las subrutinas de control que permiten realizar las tareas bsicas
de control del LCD, conectado como se indic en la figura 18.
LCD_Inicializa. Inicializa el LCD para su correcto funcionamiento. Configura funciones del LCD,
produce un reset por software, borra la memoria DDRAM y enciende la pantalla. Es necesario ejecutar
esta subrutina al principio de los programas que vayan a utilizar la visualizacin mediante LCD.
LCD_Caracter. Visualiza la posicin actual del cursor el cdigo ASCII del dato contenido en el
registro W.
LCD_Borra. Borra toda la pantalla y pone el cursor a principio de la lnea 1.
LCD_Linea1. Enva el cursor al principio de la lnea 1.
LCD_Linea2. Enva el cursor al principio de la lnea 2.
LCD_PosicionLinea1. Enva el cursor a la posicin de la lnea 1 indicada por el (W). Por ejemplo, si
(W) = h08, al ejecutar esta subrutina el cursor se ir al centro de la lnea de una pantalla de 16
caracteres.
LCD_PosicionLinea2. Igual que el anterior para la lnea 2.
LCD_LineaEnBlanco. Visualiza una lnea en blanco.
LCD_DosEspaciosBlanco. Visualiza dos espacios en blanco.
LCD_ByteCompleto. Visualiza el valor haxadecimal del byte que almacena el registro W en el lugar
actual del cursor.
LCD_Byte. Igual que el anterior pero si el nibble alto es un cero visualiza un blanco en su lugar.
LCD_Nibble. Visualiza el valor hexadecimal que almacena el nibble bajo del registro W. El nibble alto
no se toma en cuenta.
La librera LCD_MENS.INC describe dos subrutinas para desplegar mensajes fijos y en movimiento.
LCD_Mensaje. Permite visualizar mensajes fijos.
LCD_Movimiento. Permite visualizar mensajes en movimiento.
Material a emplear
C1 y C2
U1
LCD1
REV1
X1

Capacitor de 33pF.
PIC16F873A.
LM016L o equivalente.
Potencimetro de 10K
Cristal de 4 MHz.

Proporcionada por su profesor.

50

Desarrollo

Para comprobar que sus conexiones y su LCD funcionan correctamente, deber ir desplegando
lo que a continuacin se le indica:

1. Primero deber comprobar la correcta visualizacin de caracteres utilizando el siguiente


programa:

51

2. Para verificar el correcto desplegado de valores numricos deber ejecutar el siguiente


programa en forma satisfactoria.

52

3. El siguiente punto a comprobar, es el correcto desplegado de mensajes fijos en su LCD. Para


ello tendr que ejecutar satisfactoriamente el siguiente programa.

4. Por ltimo, deber comprobar la manera en cmo se pueden desplegar mensajes en movimiento
en su LCD. Para esta finalidad realice y ejecute el siguiente programa.

53

Manejo de interrupciones del PIC16F873A

LABORATORIO DE
ELECTRNICA

PRCTICA 6

54

OBJETIVO

Implementar un sistema bsico de alarma utilizando las interrupciones por cambio de estado
(RB4:RB7) y activacin del Pin RB0, del PIC16F873A.

EQUIPO

Fuente de voltaje de 5 Volts


Multmetro
Computadora Personal
Programador de microcontroladores PIC

MATERIALES
1 PIC16F873A
5 Optointerruptores.
5 Resistores de 1K
5 Resistores de 18 K
5 Resistores de 10 K
5 Resistores de 100
1 Resistor de 680
1 D 1N4148
1 D1 diodo led
1 Push button, normalmente abierto
1 XTAL de 4MHz.
2 C de 15pF. (Pueden ser valores entre 15pF a 33pF)
1 Zumbador para funcionar con 5 Vcd
Programador
Protoboard
Cables
Pinzas.

INTRODUCCIN TEORICA
Una interrupcin es una desviacin del flujo de control del programa originada
asncronamente que no se halla bajo la supervisin de las instrucciones.
Los PIC16F873/6 tienen 13 posibles causas de interrupcin y los PIC16F874/7 tienen 14
posibles causas de interrupcin. Al aceptarse una interrupcin se salva el valor del contador de
programa en la Pila y se carga el valor 0004H, que es el vector de interrupcin.

55

Las posibles causas de interrupcin son las siguientes:


1. Fin de escritura de un dato en la memoria EEPROM de datos.
2. Desbordamiento del TIMER0.
3. Activacin del PIN RB0.
4. Cambio de estado en alguno de los siguientes pines: RB4, RB5, RB6 y RB7.
5. Desbordamiento del TIMER1.
6. Desbordamiento del TIMER2.
7. Captura o comparacin en el mdulo CCP1.
8. Captura o comparacin en el mdulo CCP2.
9. Transferencia en el Puerto Serie Sncrono.
10. Colisin en el bus en el puerto Serie Sncrono.
11. Fin de transmisin en el USART.
12. Fin de recepcin en el USART.
13. Fin de conversin en el ADC.
14. Transferencia en el puerto paralelo esclavo. (Slo en los PIC16F874/7).
Hay que recordar que para utilizar las distintas formas de interrupciones que permite este
microcontrolador se debe de configurar adecuadamente el registro de interrupciones de PIC16F873A,
INTCON, figura 14.

Figura 14: Registro del control de interrupciones.

Bit 7: GIE: Permiso global de Interrupciones


1: Permite la ejecucin de todas las interrupciones, cuyos bits de permiso individuales
tambin las permitan.
0: Prohbe todas las interrupciones.
Bit 6: PEIE: Bit de permiso de los perifricos que no se controlan con el INTCON.
1: .Permite las dems interrupciones.
0: Prohbe que se produzcan interrupciones no controladas con el INTCON.
Bit 5: T0IE: Permiso de Interrupcin por desbordamiento del TMR0.
1: Permite una interrupcin al desbordarse TMR0.
0: Prohbe esta interrupcin.
Bit 4: INTE: Permiso de Interrupcin por activacin del pin RB0/INT.
1: Permite la interrupcin al activarse RB0/INT.
0: Prohbe esta interrupcin.

56

Bit 3: RBIE: Permiso de Interrupcin por cambio de estado en RB7:RB4.


1: Permite la interrupcin.
0: Prohbe esta interrupcin.
Bit 2: T0IF: Sealizador de desbordamiento del TMR0.
1: Se pone a 1 cuando ha ocurrido el desbordamiento.
0: Indica que TMR0 no se ha desbordado.
Bit 1: INTF: Sealizador de activacin del pin RB0/INT.
1: Se pone a 1 al activarse RB0/INT, al recibir un flanco activo desde el exterior.
0: indica que no se ha recibido ningn flanco activo por RB0/INT.
Bit 0: RBIF: Sealizador de cambio de estado en los pines RB7:RB4.
1: Pasa a 1 cuando cambia el estado de alguna de esta 4 lneas.
0: No hay cambio de estado.

DESARROLLO

1. Se debe disear un circuito electrnico empleando el PIC16F873A, a manera de que funcione


como una alarma bsica para un automvil. Se deben utilizar las interrupciones por cambio de
estado para estar monitoreando que las 4 puertas del automvil no sean abiertas. Para ello se
van a utilizar cuatro fototransistores que mientras estn obstruidos manden un nivel lgico cero
y cuando se liberen manden un nivel lgico alto. Para detener la alarma se va a utilizar la
activacin del pin RB0, es decir, cuando se le mande un nivel lgico alto debe de detener la
alarma que haba sido activada. Utilice un fototransistor que cuando este libre mande un cero
lgico y cuando se obstruya mande un uno lgico, para esta funcin. Y para la manifestacin de
que la alarma ha sido activada utilice un led o un zumbador conectado a alguna lnea de un
puerto configurado como salida.
2. Utilizando un PIC16F873, realice el control para una alarma de una casa. Dicha casa cuenta con
cuatro accesos principales y los cuales interesa monitorear. Mediante sensores se vigila que
cada una de las cuatro puertas no sean abiertas una vez activada la alarma. En el momento en
que una o ms de ellas sean abiertas, el sensor correspondiente, cambiar de un estado lgico
bajo a un estado lgico alto. Y en el panel de control, se deber iluminar el indicador
correspondiente a la puerta vigilada y hacer sonar una alarma. Adems, deber contar con algn
sistema para la desactivacin de los indicadores de alarma y una vez que se asegure la puerta
abierta, se deber empezar nuevamente el monitoreo de cada uno de los accesos de la casa.
El programa deber utilizar las interrupciones por cambio de estado de las lneas RB4-RB7 del
PIC, para monitorear cada una de las puertas. Las lneas RA0 a RA3 para controlar el elemento
indicador que corresponda a la puerta vigilada y RA4 para activar el zumbador. Y finalmente, la
interrupcin de flanco activo sobre el pin RB0, para desactivar la alarma.

57

Cuestionario
1.
2.
3.
4.
5.
6.
7.

Qu es una interrupcin?
Para qu sirve el vector de interrupcin? Y qu posicin ocupa en la memoria de programa?
Cuntos tipos de interrupcin se pueden manejar en el PIC16F873A?
Cul es el nombre del registro de propsito especial encargado de configura las interrupciones?
Describa ampliamente la funcin del bit GIE.
Cmo funciona la instruccin RETFIE?
Qu pasa con los valores que estn cargados en los puertos configurados como salida cuando
se habilita la instruccin SLEEP?
8. Cuando est un PIC en el modo de bajo consumo de energa, cules son las acciones que se
pueden realizar para que el PIC vuelva a ejecutar las instrucciones de un programa?

58

También podría gustarte