PDF de programación - Microcontroladores PIC - Parte IV - Trabajando con Display's y Tablas

Imágen de pdf Microcontroladores PIC - Parte IV - Trabajando con Display

Microcontroladores PIC - Parte IV - Trabajando con Display's y Tablasgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 13 de Marzo del 2018)
295 visualizaciones desde el 13 de Marzo del 2018
222,4 KB
21 paginas
Creado hace 14a (11/03/2006)
Microcontroladores - Parte IV - Manejo de Tablas y Display's

Tutorial bajado de...

http://perso.wanadoo.es/luis_ju



:: Microcontroladores PIC - Parte IV - Trabajando con Display's y Tablas.

Indice General:

Introducción.
Trabajando con un decodificador BCD.
Código - Contador de 0 a 9.
El Registro PCL - Contador de Programa.
Tablas en Assembler
Trabajando con el Display "Sin Decodificador"
Código para mostrar un mensaje sin Decodificador.
Y ahora Cuatro Displays.
Los Registros FSR, INDF y el Direccionamiento Indirecto.
Analizando el programa de prueba.
El Programa Completo.

Saludos para todos...!!!

R-Luis

Tutorial de Microcontroladores PIC - Parte IV - Introducción

:: Microcontroladores PIC - Parte IV - Introducción

Voy a tratar de no hacerlo muy extenso, aunque me va a costar un poco, pensaba hacer algo con LCD, pero
aquí en Jujuy, te sacan un ojo y te rompen el otro por un pequeñín de esos, asi es que lo haré con un simple
Display, por otro lado, si alguien ya trabajó con los LCD, sería bueno que manden un tutorial al respecto, así lo
incorporamos y ya estaríamos casi completitos, les parece...???. Ok, Comencemos...

Si bien todas las tareas que realizamos, las podemos ver reflejadas en un simple LED, hay ocasiones, en que es
necesario ver un número o una letra que nos brinde información de aquello que nuestro micro está haciendo, o
simplemente que nos muestre la hora (podríamos hacer un reloj...!!!), o que le muestre un mensaje a nuestra
"FIEL" Amada (Te casarías conmigo...???), jaja, bueno, lo último está demás... :oD

Pues para eso están los LCD o los Displays

Para quienes no conozcan lo que es un Display, aquí tienen una imagen

Básicamente un Display es una colección de LEDs ubicados de forma estratégica, y como todo LED,
obviamente, dispone de un Cátodo y un Ánodo, el tema es que como son varios LED's, se los agrupa uniendo
sus cátodos en cuyo caso será de CÁTODO COMUN, o bien agrupando sus ánodos, resultando un Dislplay de
ANODO COMUN, por otro lado estos LED's pueden ser fabricados en forma de Puntos o Segmentos, tal es así
que se encuentran Displays de 7 segmentos, como los de la imagen (que son los más comunes de todos),

En fin, nosotros tabajaremos con un Display de CÁTODO COMÚN y de 7 segmentos, más el punto (por
supuesto)

Si ya están preparados para comenzar, aquí vamos...

Tutorial de Microcontroladores PIC - Parte IV - Trabajando Sin decodificador BCD

:: Microcontroladores PIC - Parte IV - Capitulo 1

Para comenzar, les contaré lo que haremos...

Vamos a hacer un programa que lea la cantidad de veces que se activa un pulsador y muestre el resultado correspondiente. Para
hacerlo, tenemos dos posibilidades, una de ellas es hacerlo en forma directa, es decir conectar el puerto B del micro a los pines del
Display, y luego encender cada uno de los segmentos del Display para visualizar el valor correspondiente.

La otra posibilidad es utilizar un decodificador BCD como el 74LS47 o el 74LS249, o el CD4511 que es el que yo utilizaré.

Estos integrados disponen de 4 entradas correspondientes a un código binario, y 7 salidas que se conectan a un Display para mostrar
el valor en decimal, o en hexadecimal, según el caso, el nuestro sólo lo hará en decimal.

Yo trabajaré de las dos formas, con y sin decodificador, así tienen una idea de como trabajar con ellos...

Trabajando con un decodificador BCD

Primero veamos todos los componentes que vamos a utilizar

El primero de ellos, es un Display de 7 segmentos de cátodo comun, por ser de cátodo común, es obvio pensar que las señales que
deberá recibir este Display para iluminar sus segmentos, deben ser positivas, aquí tienen una imagen del display y sus pines...

Este Display esta compuesto por 10 pines, de los cuales 7 corresponden al ánodo de cada segmento (nombrados como a, b, c, d, e, f y
g), uno para el punto (.), y finalmente 2 que corresponden al cátodo, los cuales están pintados de azul, aquí hay que aclarar algo,
estos dos terminales son comunes, así que da lo mismo que conectes cualquiera de ellos o los dos.

El segundo componente importante aquí es el Decodificador, y yo voy a trabajar con el CD4511.

Lo importante de este integrado, es que posee 4 pines de entrada y 7 de salida, mas unos cuantos de configuración. El hecho es que,
los 4 pines de entrada (A, B, C y D) serán los que reciban el código en binario de la cantidad de veces que se activó el pulsador (dato
enviado por el micro). Una vez recibido el dato, el integrado se hará cargo de decodificarlo y enviarlo por los pines de salida (a, b, c, d,
e, f y g) para mostrarlo en el display, interesante no...!!!

Lo que nos falta saber, es que dato deberé enviar al decodificador para que este muestreeeee... el cero por ejemplo, para esto no hay
nada mejor que ver su tabla de verdad, y aquí está...

Entradas

Salidas

LE

0
0
0
0
0
0
0
0
0
0

BI
1
1
1
1
1
1
1
1
1
1

LT

1
1
1
1
1
1
1
1
1
1

D C B A
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1

a b c d e f g
1 1 1 1 1 1 0
0 1 1 0 0 0 0
1 1 0 1 1 0 1
1 1 1 1 0 0 1
0 1 1 0 0 1 1
1 0 1 1 0 1 1
0 0 1 1 1 1 1
1 1 1 0 0 0 0
1 1 1 1 1 1 1
1 1 1 0 0 1 1

Visualiz.

0
1
2
3
4
5
6
7
8
9

Tutorial de Microcontroladores PIC - Parte IV - Trabajando Sin decodificador BCD

Por supuesto que de la tabla de verdad, solo tomé lo que me interesa, el resto lo dejé de lado, también se puede notar la configuración
de los otros pines del integrado...

El último componente del que hablaremos, es el muy conocido PIC16F84, con el cual nos estamos familiarizando de a poco.

Ahora veamos como es el circuito que vamos a utilizar...

Lo que nos toca ver, es como programar el micro, yo lo haré utilizando la interrupción por el pin RB0, y en él estará conectado el
pulsador, y del puerto A usaré los 4 primeros Bits para enviar el dato al decodificador. Ahora, si lo que vamos a hacer es un contador,
necesitamos un registro para contar las veces que este se activa, o bien podemos hacer un incremento directamente en el puerto A, yo
lo haré de esta última forma.

Un pequeño detalle antes de pasar a la siguiente página...

Si te diste cuenta, estamos utilizando 4 bits para enviar el dato al decodificador, y con 4 bits puedes contar hasta 15 (1111), y este
decodificador solo reconoce los datos hasta el 9 (1001), y cuando pase a 1010 (10) el display se apagará, ya que será un dato que no
reconoce, cosa que deberemos tener en cuenta al programar.

Una solución sería verificar la cuenta, y cuando llegue a nueve reiniciarla en cero, bueno, pero eso lo veremos en la siguiente página...

Ok, ahora presta atención al código que viene.

Tutorial de Microcontroladores PIC - Parte IV - Código para el Contador

:: Microcontroladores PIC - Parte IV - Capitulo 2

Antes quiero aclarar una cosa, para evitarle problemas a aquellos que no se animan a modificar el archivo
P16F84.INC, les muestro una opción, ya que en la red encontrarán otros tutoriales o códigos que utilicen este archivo
sin modificaciones.

La idea, es crear una copia de este archivo y renombrarlo, por ejemplo P16F84luis.INC (ponle el nombre que mas te
guste...) luego le haces las modificaciones a este archivo.

Bien, ya lo advertí, ahora vamos por el código...

;---------------Encabezado-------------

LIST P=16F84
#include <P16F84luis.INC>

;-------Configuración de puertos-------

ORG 0x00
GOTO inicio
ORG 0x04
GOTO ISR
ORG 0X05

inicio BSF STATUS,RP0 ; configurando puertos
MOVLW 0x10
MOVWF TRISA ; RA0-RA3 = SALIDA
MOVLW 0xFF ; PORTB = ENTRADA
MOVWF TRISB
BCF STATUS,RP0

;-------Habilitación de interrupciones-------

BSF INTCON,GIE ; habilitamos todas las interrupciones
BSF INTCON,INTE ; que sean interrupciones externas

;-------Programa Principal-------

CLRF PORTA
espera SLEEP
GOTO espera ; El micro pasa a bajo consumo

ISR MOVF PORTA,W ; pasamos lo que hay en PORTA a W
XORLW B'1001' ; compara para saber si terminó la cuenta
BTFSC STATUS,Z ; si no terminó salta una linea
GOTO reini ; y si terminó irá a reiniciarla
INCF PORTA,F ; incrementa en 1 PORTA y lo retiene
BCF INTCON,INTF ; borro bandera de interrupción
RETFIE ; regresa al modo SLEEP
reini CLRF PORTA
BCF INTCON,INTF ; borro bandera de interrupción
RETFIE
;------------------------------------------
END
;------------------------------------------

Descripción

Y como siempre, sólo aquello que está en rojo, ya que lo demás lo conocemos desde sus inicios.

#include <P16F84luis.INC>

Respecto a esto no diré nada, ya lo mencioné al comenzar esta sección, vamos por lo otro.

Al configurar TRISA con 0x10 hemos dejado RA4 como entrada, de tal modo que enviemos lo que enviemos al
registro PORTA, RA4 no será alterado.

De TRISB, bueno, si bien utilizaré sólo uno de sus pines, configuré todo el puerto B como entrada.

Luego viene la habilitación de interrupciones, la general (GIE), y la que corresponde al pin RB0 (INTE)

Lo siguiente, es limpiar el PORTA, para empezar la cuenta en cero, asi que...

Tutorial de Microcontroladores PIC - Parte IV - Código para el Contador

CLRF PORTA

y el Display muestra cero "0".

Luego ponemos al micro en espera de la interrupción, con la instrucción SLEEP

Ahora biene el gran secreto, La ISR o Rutina de Servicio de Interrupciones...

Les recuerdo que nuestro decodificador cuenta sólo hasta 9, es decir que si envían 10 por el puerto A el Display no
mostrará nada, por lo tanto, habrá que reiniciar la cuenta, si el puerto A llega a 9 (B'1001') el próximo pulso deberá
enviar cero al display para reinic
  • Links de descarga
http://lwp-l.com/pdf9483

Comentarios de: Microcontroladores PIC - Parte IV - Trabajando con Display's y Tablas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad