You are on page 1of 5

BARRIDO DE DISPLAY

Objetivo: Disear un circuito, y el software asociado para manejar 4 displays de 7


segmentos usando la tcnica de barrido.
1. Consulte la distribucin de pines de los displays de 7 segmentos a ser
utilizados.

2. Disee un circuito de barrido de 4 displays con el micro controlador


MEGA164p usando solamente dos puertos, pues los otros dos puertos son
usados para el ingreso de los datos. El circuito a construir debe
obligatoriamente incorporar los elementos que considere necesarios para
manejar los displays (tomar en cuenta la capacidad de corriente de salida de
los pines del micro controlador para no excederla, e incorporar los transistores
o amplificadores de corriente para proveer la suficiente corriente a los
displays). Cabe indicar que dado que los segmentos van a trabajar solamente
1/4 del tiempo, se debe hacer pasar por ellos pulsos de corriente de mayor
valor para obtener una corriente media suficiente; esta es la razn por la que
no se recomienda manejar directamente los segmentos desde los puertos del
ATMega164p. En el caso del diseo de ejemplo se ha colocado un arreglo de
transistores Darlington NPN (el ULN2003), pero puede ser reemplazado por 7
transistores NPN. Los transistores PNP del diseo sirven para activar cada
uno de los dgitos. En el peor de los casos pueden estar encendidos todos los
segmentos y la suma de estas corrientes entra por el terminal del nodo comn
del displays. Conviene recordar que la corriente que puede manejar cada pin
del micro controlador est alrededor de 20mA, y que hay otras limitantes como
la que la suma total de corriente que puede manejar un puerto no debera
sobrepasar de unos 100mA, adems de otras limitantes que se pueden ver en el
manual en la parte de "Caractersticas Elctricas".

3. Escribir una rutina para convertir de binario a BCD. Con 4 dgitos decimales
el nmero ms grande a convertir es el 9999, ese dato requiere 14 bits en
binario para ser almacenado, esto debe tomarse en consideracin en su rutina.
BCD-7SEG:
LDI XH, HIGH (BCD 0)
LDI XL, LOW (BCD 0)
LDI YH, HIGH (DIG 0)
LDI YL, LOW (DIG 0)
LDI CONT, 4
LDI ZH, HIGH (TABLA_7SEG << 1)
LDI ZL, LOW (TABLA_7SEG << 1)
LAZO_7SEG
LD TEMPO, X+
ADD ZL, TEMPO
CLR TEMPO
ADC ZH, TEMPO
LPM TEMPO, Z
ST Y+, TEMPO
DEC CONT
BRNE LAZO_7SEG
RET
TABLA_7SEG
.DB 0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,
0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01100111
4. Escribir un programa que permita multiplicar dos nmeros en binario que
son ingresados por medio de interruptores a dos puertos; cada uno de los
nmeros puede variar de 0 a 99. Aumentar al circuito de barrido de

displays un interruptor, el que s est en 0L, debe mostrar en base 10 en los


dos primeros displays el primer nmero a multiplicar, en los dos restantes
el otro nmero. Si el interruptor est en 1L debe mostrar el resultado de la
multiplicacin en base 10 ocupando los 4 displays.
.include m164pdef.enc
.def tempo = r16
.def aux = r17
.def cont = r18
.dseg
Binario .byte 1
Bcd0 .byte 4
Dig0 .byte 4
.cseg
.org 0x00
Ldi tempo, 0b00000000
Out ddra, tempo
Out ddrd, tempo
Ldi tempo, 01111111
Out ddrb, tempo
Ldi tempo, 0b00001111
Out ddrc, tempo
Ldi tempo, 0b11111111
Out porta, tempo
Out portd, tempo
Out portc, tempo
Ldi tempo, 0b10000000
Out portb, tempo
In tempo, mcucr
Andi tempo, 0b11101111
Out mcucr, tempo
Ldi tempo, high(ramend)
Out sph, tempo
Ldi tempo, low(ramend)
Out spl, tempo
Lazo:
In tempo, pin a
Sts binario, tempo
Call bin_bcd
Call bcd_7seg
Call barrido
Jmp lazo
Barrido:
Ldi tempo, 0b11111111
Out portc, tempo
Lds tempo, dig0
Out portb, tempo
Ldi tempo, 0b11111110
Out portc, tempo
Call retardo
Ldi tempo, 0b11111111
Out portc, tempo

Lds tempo, dig0+1


Out portb, tempo
Ldi tempo, 0b11111101
Out portc, tempo
Call retardo
Ldi tempo, 0b11111111
Out portc, tempo
Lds tempo, dig0+2
Out portb, tempo
Ldi tempo, 0b11111011
Out portc, tempo
Call retardo
Ldi tempo, 0b11111111
Out portc, tempo
Lds tempo, dig0+3
Out portb, tempo
Ldi tempo, 0b11110111
Out portc, tempo
Call retardo
Ldi tempo, 0b11111111
Out portc, tempo
Ret
Retardo:
Ldi aux, 255
Lazo ret:
Dec aux
Brne lazo_ret
Ret
Bcd_7seg:
Ldi xh, high (bcd0)
Ldi xl, low (bcd0)
Ldi yh, high (bcd0)
Ldi yl, low (bcd0)
Ldi cont, 4
Ldi zh, high (bcd0)
Ldi zl, low (bcd0)
Lazo_7seg:
Ld tempo,x+
Add zl, tempo
Clr tempo
Adc zh, tempo
Lpm tempo, z
St y+, tempo
Dec cont
Brne lazo_7seg
Ret

5. Realice un modelo de simulacin en Proteus del circuito pedido y pruebe el


funcionamiento de todos los programas solicitados.