Cuadernillo de Prácticas - 16-1
Cuadernillo de Prácticas - 16-1
Cuadernillo de Prácticas - 16-1
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
Fecha de revisin
Responsable
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
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)
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. 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:
CAPTULO TERCERO
NORMAS DE SEGURIDAD
Art. 22.- Identificar donde se localizan los dispositivos de seguridad:
Extinguidores.
Regaderas con lavaojos.
Botiqun.
Campana de extraccin.
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.
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.
2.
Tras su seleccin aparecer una ventana como la mostrada en la figura 3, elija la opcin
Siguiente.
10
4.
A continuacin le aparecer una ventana que le pregunta que dispositivo quiere programar, ver
figura 4. Elija el PIC16F873A y presione siguiente.
5.
6.
7.
Posteriormente, le aparece una ventana preguntado si desea agregar algn archivo ya existente.
Ver figura 7. En este primer caso simplemente presione siguiente.
12
8.
Luego le aparecer una ventana indicndole que presione la opcin finalizar para terminar con
la operacin. Ver figura 8.
9.
Seleccione la opcin File y posteriormente New, para que le aparezca una hoja de trabajo. Ver
figura 9.
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.
11.
Escriba el siguiente programa el cual realiza la suma de dos operandos, en la hoja anteriormente
abierta.
14
12.
13.
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.
(Multiplicando)
(Multiplicador)
Producto
Cociente
Divisor Dividendo
Residuo
16
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
[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
NO
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
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
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.
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.
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
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
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
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
Cuestionario
1.
2.
3.
4.
28
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.
30
Y en segundo lugar cmo se determina el tiempo de temporizacin. Para ello se debe utilizar la
siguiente frmula:
Ejemplo 1:
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.
32
MATERIALES
1 PIC16F873A
1 Fototransistor (tambin llamado optointerruptor).
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.
34
35
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)
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
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)
(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
38
LABORATORIO DE
ELECTRNICA
PRCTICA 4
39
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
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:
ADCON1
Sirve para configurar los pines del Puerto A como entradas analgicas o E/S digitales. Y est
configurado como se muestra a continuacin.
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.
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).
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
44
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:
Distribucin de pines
En la figura 17, se muestra como estn distribuidos y qu funcin tienen los pines que
conforman al LCD a utilizar.
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
VDD
VSS
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.
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 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
B = 0.
B = 1.
C = 0.
C = 1.
D = 0.
D = 1.
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.
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
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.
50
Desarrollo
Para comprobar que sus conexiones y su LCD funcionan correctamente, deber ir desplegando
lo que a continuacin se le indica:
51
52
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
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
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
56
DESARROLLO
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