INSTITUTO TECNOLÓGIGO SUPERIOR DE
COMALCALCO
INTEGRANTES DEL EQUIPO:
Hernández Romero Ángeles Fernanda TE170573
Guzmán Fernández Tirso Román TE170585
De La Cruz Arellano Hannia Gabriela TE170594
Gerónimo Hernández Jorge Alberto TE170584
Gopar Rodríguez Christian TE170588
MATERIA:
Microcontroladores
MAESTRO:
Domitilo Martínez Hernández
SEMESTRE: 7mo.
GRUPO: “C”
EQUIPO: 2
PRÁCTICA 11: Diseñe un programa que cuente de 0 a f
(hexadecimal) ascendente y descendente.
INGENIERIA MECATRONICA
Comalcalco, Tabasco 18 de Noviembre del 2020
Marco teórico
Microcontrolador PIC16F84A
El PIC16F84A es un microcontrolador gama media de 8 bits que físicamente consta
de 18 pines, su memoria de programa es de tipo flash, lo que nos permitirá grabarlo
hasta unas 10000 veces. Es realmente sencillo de manejar, por eso será nuestro
punto de partida para el estudio del lenguaje ensamblador y microcontroladores.
Sus características principales son:
• Set de solo 35 instrucciones
• Memoria de programa de 1 KB (equivale a 1024 instrucciones)
• Máxima velocidad de operación: 20 MHz
• 68 Bytes de RAM
• 64 Bytes de EEPROM
• 4 fuentes de interrupción
• 2 puertos de salida
• 13 Líneas de I/O configurables individualmente
• 25 mA de corriente por pin
Descripción de los pines
El PIC 16F84A contiene 13 líneas I/O (entrada o salida), 5 pertenecen al puerto A
y 8 pertenecen al puerto B.
• VDD: Alimentación positiva (5 voltios)
• VSS: Tierra (0 voltios)
• MCLR: pin de resetear
• OSC1, OSC2: Conexión de oscilador
• RA0, RA1, RA2, RA3, RA4: líneas I/O del puerto A
• RB0, RB1, RB2, RB3, RB4, RB5, RB6, RB7: líneas I/O del puerto B
Puertos de Entrada y Salida
Los microprocesadores PIC16F84 tienen 2 puertos de entrada/salida paralelos de
usos generales denominados Puerto A y Puerto B.
El Puerto A es de 4 bits y el Puerto B es de 8 bits.
Los puertos del microcontrolador PIC16F84 son el medio de comunicación con el
mundo exterior, en ellos podremos conectar los periféricos o circuitos necesarios
como por ejemplo los módulos LCD, motores eléctricos, etc.; pero estas conexiones
no se podrán realizar arbitrariamente. Existen unas reglas básicas que deberán
cumplirse para que el microcontrolador no sufra daños o se destruya. Para ello es
necesario conocer los límites de corriente que puede manejar el microcontrolador.
Límite de corriente para los puertos “a” y “b”
Los puertos “a” y “b” del microcontrolador podrán ser programados como entradas
y salidas indiferentemente. Para el caso de que sean programados como salida se
denominan “modo fuente” por qué suministran corriente y cuando son programados
como entrada se denominan “modo sumidero” por qué reciben corriente.
La máxima corriente que puede suministrar una línea programada como salida es
de 20 mili-amperios, pero si utilizamos toda las líneas del puerto “a” programadas
como salida, no deberá exceder de 50ma para todo el puerto “a”. Para el caso del
puerto “b” no deberá exceder de 100 ma.
Si las programamos como entradas (sumidero), la corriente máxima que puede
manejar una sola línea es de 25 ma. Para el caso del puerto “a” programado con
todas sus líneas como entrada, la máxima es de 80 ma. En el caso del puerto “b”
es de 150 ma.
En caso de querer utilizar periféricos que manejen mayor cantidad de corriente de
la especificada, habrá que aplicar un circuito acoplador como por ejemplo los
buffers, transistores que se encarguen de controlar la corriente, etc.
Los registros especiales:
Para aprender programación básica y el manejo de los puertos de entrada/salida,
usaremos en los programas de prueba solamente los 9 registros especiales
mostrados en la tabla de abajo, que son comunes a los 3 microcontroladores antes
mencionados. De esos 9, los 7 marcados con color azul aguamarina son los más
utilizados en aplicaciones simples.
El direccionamiento de
los registros está
organizado por bancos o
grupos de registros: el
16F84 cuenta con 2
bancos y un total de 15
registros especiales; el
16F628 contiene 4
bancos y 34 registros
especiales; el 16F88
contiene 4 bancos y
50 registros especiales.
Algunos de los registros
pueden ser accesado
desde varios bancos.
Decodificador BCD a 7 segmentos
Es un elemento digital que funciona a base de estados lógicos, con los cuales indica
una salida determinada basándose en un dato de entrada característico, su función
operacional se basa en la introducción a sus entradas de un número en código
binario correspondiente a su equivalente en decimal para mostrar en los siete pines
de salida establecidos para el integrado, una serie de estados lógicos que están
diseñados para conectarse a un elemento alfanumérico en el que se visualizará el
número introducido en las entradas del decodificador. El elemento alfanumérico que
se conecta a las siete salidas del decodificador también está diseñado para trabajar
con estados lógicos, es un dispositivo elaborado con un arreglos de LED de tal
manera que muestre los números decimales desde el cero hasta el nueve
dependiendo del dato recibido desde el decodificador, a este elemento se le conoce
con el nombre de Display o dispositivo alfanumérico de 7 segmentos.
El decodificador está formado internamente por compuertas lógicas y sus
conexiones internas son un sistema predefinido por el diseñador para que su función
operacional sea un acople perfecto y efectivo con el Display, observe como se
muestran a continuación en las especificaciones del fabricante.
Display
Es un dispositivo alfanumérico que se encuentra formado por diodos emisores de
luz (LED), posicionados de forma tal que forme un número ocho, a cada uno de ellos
se les denomina segmentos. Encendiendo algunos de ellos y apagando otros se
puede ir formando diferentes números por medio de las combinaciones entre ellos.
Cada segmento esta designado con una letra. El punto decimal se denomina dp, pt
o simplemente P. El Display se encuentra en una representación de encapsulado
con los pines para conectarlo a un circuito. A cada pin o pata del encapsulado se le
asigna la letra correspondiente del segmento. Esto significa que, por ejemplo, con
el pin "a" podemos controlar el estado del segmento "a"(encenderlo o apagarlo).
El Display tiene 8 leds colocados en forma de un dígito con punto decimal, cada led
tiene dos extremos, ánodo y cátodo. Como en total son 8 leds, debería tener 16
extremos (8 ánodos y 8 cátodos), sin embargo, el encapsulado solo tiene 10. Esto
se hace para reducir el tamaño del encapsulado y se logra de la siguiente manera.
Los 8 led se interconectan internamente de tal forma que solo se puede acceder a
uno de los dos extremos de cada led. Los extremos sobrantes de cada led se
conectan internamente en un solo punto llamado común , y este punto de unión se
encuentra disponible desde el exterior del encapsulado. Debido a esta configuración
se tienen dos tipos de Display de 7 segmentos: Ánodo común y Cátodo común.
Cada elemento del Display tiene asignado una letra que identifica su posición en el
arreglo del Display.
• Si se activan todos los segmentos: a,b,c,d,f,g
se forma el número 8.
• Si se activan sólo los segmentos: a,b,c,d,f, se
forma el número 0.
• Si se activan sólo los segmentos: a,b,g,e,d,
se forma el número 2.
• Si se activan sólo los segmentos: b,c,f,g, se
forma el número 4.
• Si se activan sólo los segmentos: a,b,g,c,d, se forma el número 3.
• Si se activan sólo los segmentos: a,f,g,c,d, se forma el número 5 .
• p.d. representa el punto decimal.
Display 7 segmentos de Ánodo común y Cátodo común Existen dos tipos de Display
de 7 segmentos, su principal diferencia es la conexión que debemos implementar
para encenderlos, estos dos tipos se conocen como Ánodo común y Cátodo común.
En los 7 segmentos de Cátodo Común, el punto circuital en común para todos los
Led es el Cátodo (Gnd), cero volt, Mientras que el Ánodo común el punto de
referencia es Vcc (5 volt). Teniendo en cuenta estas consideraciones la forma de
encender los led debe realizase de diferente manera en función de que elemento
tengamos (Ánodo o Cátodo común).
Cada Led trabaja con tensiones y corrientes bajas por lo tanto se pueden conectar
directamente a compuertas lógicas o pines de salida de un micro controlador,
igualmente siempre es recomendable para aumentar la vida útil de los mismos,
conectarle una resistencia en serie entre el pin de salida del micro controlador y el
de entra del 7 segmentos, la intensidad lumínica en este caso dependerá del valor
de la resistencia agregada.
El Display ánodo común
En el Display ánodo común, todos los ánodos de los diodos LED unidos y
conectados a la fuente de alimentación. En este caso para activar cualquier
elemento hay que poner el cátodo del elemento a tierra a través de una resistencia
para limitar la corriente que pasa por el elemento.
El Display cátodo común
El Display cátodo común tiene todos los ánodos de los diodos LED unidos y
conectados a tierra. Para activar un segmento de estos hay que poner el ánodo del
segmento a encender a Vcc (tensión de la fuente) a través de una resistencia para
limitar el paso de la corriente.
Simulaciones
Instrucciones: diseñe un programa que cuente de 0 a f (hexadecimal)
ascendente y descendente.
1- Hacemos el diagrama con respecto a un Display de cátodo común el cual nos
indica que los segmentos encenderán cuando este se encuentre en estado alto
y se apagarán cuando sea estado bajo (figura 11.1).
Figura 11.1 Circuito realizado en PROTEUS.
2- Vamos a realizar el código el cual para poder ver que esta encendido nuestro
Display de 7 segmentos vamos hacer que muestre los dígitos del 0 al F en
hexadecimal con nuestro Display con un retardo de 1 segundos.
3- Realizamos el código en MPLAB como se muestra en la (figura 11.2)
Figura 11.2 Código realizado en MPLAB.
4- Realizaremos el conteo de forma descendente al llegar a nuestro número más
alto empezara a contar descendente mente esto se puede ver en la (Figura
11.3).
Figura 11.3 Código realizado en MPLAB forma descendente.
5- Una vez teniendo el código procedemos a simular como se muestra en la (figura
11.4 hasta la figura 11.19).
Figura 11.4 Simulación en PROTEUS mostrando el número 0.
Figura 11.5 Simulación en PROTEUS mostrando el número 1.
Figura 11.6 Simulación en PROTEUS mostrando el número 2.
Figura 11.7 Simulación en PROTEUS mostrando el número 3.
Figura 11.8 Simulación en PROTEUS mostrando el número 4.
Figura 11.9 Simulación en PROTEUS mostrando el número 5.
Figura 11.10 Simulación en PROTEUS mostrando el número 6.
Figura 11.11 Simulación en PROTEUS mostrando el número 7.
Figura 11.12 Simulación en PROTEUS mostrando el número 8.
Figura 11.13 Simulación en PROTEUS número 9.
Figura 11.14 Simulación en PROTEUS letra A
Figura 11.15 Simulación en PROTEUS letra B
Figura 11.16 Simulación en PROTEUS letra C
Figura 11.17 Simulación en PROTEUS letra D
Figura 11.18 Simulación en PROTEUS letra E
Figura 11.19 Simulación en PROTEUS letra F
Tabla de resultados
BITS NUMERO
00111111 0
00000110 1
01011011 2
01001111 3
01100110 4
01101101 5
01111101 6
00000111 7
011111111 8
01100111 9
01110111 A
01111100 b
00111001 C
01011110 d
01111001 E
01110001 F
Conclusión
En conclusión, podemos decir que a partir del conocimiento del lenguaje
ensamblador sobre PIC16F84 es posible su utilización como base para la
comprensión posterior del lenguaje de PICs más modernas, ocupando una
estructuración adecuada para el desarrollo del programa.´
El microcontrolador no necesita de otros componentes especializados para su
aplicación, porque todos los circuitos necesarios, que de otra manera correspondan
a los periféricos, ya se encuentran incorporados. Así se ahorra tiempo y espacio
necesario para construir un dispositivo. Existen muchos lenguajes de programación
que permiten realizar diferentes programas, pero cada uno tiene tanto sus ventajas
como desventajas, ya que no todos son compatibles o necesitan de algunas
instrucciones para su funcionamiento.
Referencias bibliográficas
• Palacios, E., Remiro, F., & López, L. J. (2004). Microcontrolador PIC16F84.
Desarrollo de proyectos. Ra-Ma.
• Rossano, V. (2009). Electrónica & microcontroladores PIC. USERSHOP.
• Usategui, J. M. A., & Martínez, I. A. (2003). Microcontroladores “PIC”: diseño
práctico de aplicaciones. Primera parte. El PIC16F84 lenguajes PBASIC y
Ensamblador. Mc GrawHill.
• Bates, MP (2013). Microcontroladores PIC de interfaz: Diseño integrado
mediante simulación interactiva . Newnes.
• Mazidi, MA, McKinlay, RD y Causey, D. (2008). Microcontrolador PIC y
sistemas integrados: usando Assembly y C para PIC18.