Está en la página 1de 6

Curso: Sistemas Embebidos

Asignatura: MT136
Profesor: Rubn Eusebio Acosta Jacinto
Semana 3

Gua de
Laboratorio 4

MANEJO DEL DISPLAY 7 SEGMENTOS NODO COMN.


1.- Objetivos
Controlar un display de 7 segmentos usando el microcontrolador PIC16F877A.
Relacionar la decodificacin de nmeros decimales en el display de 7 segmentos usando
Tablas.

2.- Material y equipo empleado

1 microcontrolador PIC16F877A
1 Display de 7 segmentos nodo comn.
1 cristal de cuarzo de 4MHz.
2 capacitores de 22pF/50V
8 resistores de 330 ohm 1/4W de carbono
Protoboards
Fuente de alimentacin de 5VDC
Multmetro.

3.- Fundamento terico


El display 7 segmentos nodo comn est formado por 8 diodos emisores de luz (LEDS en
forma de segmentos) cuyos nodos estn unidos a un punto comn.
Para el encendido y/o apagado de cada segmento o LED se debe colocar un resistor limitador de
corriente cerrando circuito a un punto de GND y/o VCC, que lo pueda determinar un pin
programado como salida de un puerto del microcontrolador. En la figura 1 se muestra la
polarizacin de los LEDS de display nodo comn.

Fig1. Arreglo de diodos LEDS con nodo comn.

En la figura 2. Se muestra la distribucin fsica de pines de un display de 7 segmentos nodo comn.

Ing. Rubn Acosta Jacinto

Laboratorio de Sistemas embebidos

10
g

9
f

8 7
5v a

6
b

1
e

2
d

3 4
5v c

5
pd

Fig2. Distribucin fsica de pines de un display nodo comn.

A continuacin en la tabla 1 se muestra la decodificacin decimal de los nmeros del 0 hasta el 9


representados en un display nodo comn.

Tabla 1. Tabla de decodificacin decimal en un display de 7 segmentos nodo comn.

Ing. Rubn Acosta Jacinto

Laboratorio de Sistemas embebidos

4.- El contador de programa (PC)


Como sabemos un programa en ensamblador est constituido por una serie de instrucciones que
se ejecutan secuencialmente. Cada instruccin ocupa una posicin de la memoria de programa,
esta posicin esta apuntada por un registro especial llamado Contador de Programa, este
registro tiene una longitud de 13 bits <12:0 > y est conformado por dos registros: PCL y
PCLATH. PCL contiene los 8 bits menos significativos y PCLATH los 5 bits ms significativos
del Contador de programa, PCL es el registro ms utilizado.
Poniendo un ejemplo, cuando en nuestro programa colocamos el ORG 0 (vector de RESET) nos
estamos posicionando en la posicin 0 de la memoria de programa, es decir, PCL = 0.

Como podemos ver, el PCL lleva la cuenta del nmero de instrucciones que ponemos en
nuestro programa. Un ejemplo con tabla sera un contador de usando display nodo comn de 7
segmentos.

5.- Elaboracin de tabla


Ahora que conocemos los cdigos en 8 bits de los nmeros en 7 segmentos procedemos a
realizar nuestro programa de tabla, que nos servir como decodificador, observe como se utiliza
el registro PCL:

Observemos que tenemos una nueva instruccin:


retlw, esta instruccin significa: Retornar con W = K , donde K es la literal o valor denotado por
bxxxxxxxx

Ing. Rubn Acosta Jacinto

Laboratorio de Sistemas embebidos

En la tabla, dependiendo del valor de W ser el tamao del salto dentro de la tabla a partir de
la instruccin addwf PCL, f , y la instruccin retlw se encarga de retornar al programa
principal asignndole primero a W el valor especificado en ese rengln. De esta manera si a W
le asignamos el numero 0 y llamamos a la subrutina tabla entonces saltara 0 lugares y regresar
con el valor b11000000 en W; Si asignamos el 1 a W y llamamos la subrutina tabla entonces
saltar 1 lugar a la instruccin retlwb11111001 y regresara con W=b11111001.
NOTA*:
El bit STATUS, Z es una bandera, es decir, se pone a 1 automticamente cuando el resultado de
una operacin fue CERO, en caso contrario la bandera STATUS,Z se mantiene apagada, es
decir, en 0. Para hacer una comparacin del tipo Contador = 10? en ensamblador se debe
realizar haciendo una operacin de resta:
1) Contador moverlo a W
2) a W restarle el numero 10
3) Preguntar si STATUS, Z = 1
En caso de que STATUS, Z=1 significa que el resultado de la resta dio 0 y por lo tanto el
Contador es igual a 10, y as actuar en consecuencia, en este caso: si es 10 entonces regresarlo a
0, si no es 10 seguir con la cuenta normal.

6.- Directiva DT (Define Table)


La directiva DT (Definir Tabla) nos sirve para hacer tablas de manera ms corta y cmoda, nos
permite escribir la tabla de manera horizontal, separando cada nmero con comas y evitndonos
escribir reiteradamente la instruccin retlw. EJEMPLO de tabla tradicional:

EJEMPLO de tabla usando directiva DT:


tabla addwf PCL,F
DT

0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90

Ing. Rubn Acosta Jacinto

Laboratorio de Sistemas embebidos

6.-

Circuito electrnico.

En la figura 1-1 se muestra el diagrama de un circuito electrnico que incluye un display de 7 segmentos
de nodo comn, cuyo funcionamiento se debe de simular en Proteus y en Hardware.

Fig3. Circuito para controlar un display nodo comn.

6.- Ejercicio de laboratorio.


Realizar un contador decimal utilizando un Display nodo comn. A continuacin de muestra
en la figura 4, el diagrama de flujo a implementar.

Ing. Rubn Acosta Jacinto

Laboratorio de Sistemas embebidos

Figura 4. Diagrama de flujo a implementar.

7.- Ejercicios propuestos.


1.- Programe una funcin Mensaje ( ) que permita visualizar la frase H-O-L-A en maysculas
en un display nodo comn. Para ello debe considerar lo siguiente:
Configurar el PORTD como salida para visualizar los nmeros del 0 al 9 en el display.
Emplear un tiempo de 200ms para poder ver cada carcter
El mensaje debe leerse en forma constante.
4.- Programe una funcin Cuenta2digitos ( ) que permita mostrar una cuenta de dos dgitos
desde 00 hasta 59 en dos display nodo comn. Para ello debe considerar lo siguiente:
Configurar el PORTD como salida para visualizar los nmeros del 0 al 9 en el display.
Emplear un tiempo de 300ms para poder ver cada nmero.

Ing. Rubn Acosta Jacinto

Laboratorio de Sistemas embebidos

También podría gustarte