Você está na página 1de 8

PRCTICA 7 OBJETIVO:

BARRIDO DE DISPLAY Disear un circuito, y el software asociado para manejar 4 display de 7 segmentos usando la tcnica de barrido.

TRABAJO PREPARATORIO 1. Consulte la distribucin de pines de los display de 7 segmentos a ser utilizados

2. Disee un circuito de barrido de 4 display 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 display (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 display), y adems nunca debe olvidar las resistencias limitadoras de corriente para cada uno de los segmentos. Como referencia se incluye un circuito con los elementos adicionales ms comunes. 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 display; por lo que de ninguna manera puede ser conectado directamente a una salida del microcontrolador. Conviene recordar que la corriente que puede manejar cada pin del miocrocontrolador 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 100 mA, 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. ; Rutina de Binario a BCD hasta para 16 bits BIN_BCD: PUSH r16 PUSH r17

PUSH r18 PUSH r19 LDS LDS CLR BIN_BCD_0: SUBI

r16,BINARIO r18,BINARIO+1 r17

BIN_BCD_CEN:LDI

BIN_BCD_1:

SUBI

BIN_BCD_DEC:SUBI

BIN_BCD_2:

SUBI

BIN_BCD_UNI:SUBI

r16,232 ; SBCI r18,3 BRCS BIN_BCD_CEN INC r17 RJMP BIN_BCD_0 r19,232 ADD r16,r19 LDI r19,3 ADC r18,r19 STS BCD0+3,r17 CLR r17 r16,100 SBCI r18,0 BRCS BIN_BCD_DEC INC r17 RJMP BIN_BCD_1 r16,-100 STS BCD0+2,r17 CLR r17 r16,10 BRCS BIN_BCD_UNI INC r17 RJMP BIN_BCD_2 r16,-10 STS BCD0+1,r17 STS BCD0,r16 POP POP POP POP RET r19 r18 r17 r16

4. Escribir un programa para convertir de pies a pulgadas (1 pie = 12 pulgadas). Por uno de los puertos entra el nmero de pies en binario ( el rango es de 0 a 255 pies), y por un pin adicional entra la seal de un interruptor que tiene la siguiente funcin: en una posicin los display deben indicar en base diez el nmero de pies que se ha ingresado mientras que un led permanece apagado. Si el interruptor est en la otra posicin, los display deben indicar en base diez el nmero de pulgadas que corresponde mientras se mantiene el led est encendido.

.include "m164pdef.inc" ;definicion de variables .def tempo=r16 .def contador=r17 .defconver=r18

.dseg BINARIO: BCD0: DIG0: .cseg .org 0x0 ;configuracion de puertos LDI OUT LDI OUT LDI OUT OUT LDI OUT LDI OUT LDI OUT LDI OUT IN ANDI OUT LDI OUT LDI OUT LAZO: IN tempo,0b00000000 DDRB,tempo tempo,0b10000000 DDRD,tempo tempo,0b01111111 DDRA,tempo PORTD,tempo tempo,0b11111111 PORTC,tempo tempo,0b11111111 PORTB,tempo tempo,0b00001111 DDRC,tempo tempo,0b10000000 PORTA,tempo tempo,MCUCR tempo,0b11101111 MCUCR,tempo tempo,HIGH(RAMEND) SPH,tempo tempo,LOW(RAMEND) SPL,tempo .BYTE 2 .BYTE 4 .BYTE 4

tempo,PINB STS BINARIO,tempo CLR r1 STS BINARIO+1,r1 LDI tempo,0b01111111 OUT PORTD,tempo IN tempo,PIND SBRC tempo,0 CALL MULTIPLICACION CALL CALL BIN_BCD BCD_7SEG

CALL BARRIDO RJMP LAZO MULTIPLICACION: PUSH r16 PUSH r17 LDS LDI MUL STS STS LDI OUT POP POP RET

r16,BINARIO r17,12 r16,r17 BINARIO,r0 BINARIO+1,r1 r16,0b11111111 PORTD,r16 r17 r16

; Subrutina de Binario a BCD para 16 bits BIN_BCD: PUSH PUSH PUSH PUSH LDS LDS CLR BIN_BCD_0: SUBI r16 r17 r18 r19 r16,BINARIO r18,BINARIO+1 r17

BIN_BCD_CEN:LDI

BIN_BCD_1:

SUBI

BIN_BCD_DEC:SUBI

BIN_BCD_2:

SUBI

r16,232 ; SBCI r18,3 BRCS BIN_BCD_CEN INC r17 RJMP BIN_BCD_0 r19,232 ADD r16,r19 LDI r19,3 ADC r18,r19 STS BCD0+3,r17 CLR r17 r16,100 SBCI r18,0 BRCS BIN_BCD_DEC INC r17 RJMP BIN_BCD_1 r16,-100 STS BCD0+2,r17 CLR r17 r16,10

BIN_BCD_UNI:SUBI

BRCS BIN_BCD_UNI INC r17 RJMP BIN_BCD_2 r16,-10 STS BCD0+1,r17 STS BCD0,r16 POP POP POP POP RET r19 r18 r17 r16

;Subrutina de BCD a 7 Segmentos BCD_7SEG: PUSH PUSH PUSH PUSH PUSH PUSH PUSH PUSH LDI LDI LDI LDI LDI BCD_7SEG_0: LDI LDI ZH ZL YH YL XH XL r16 r17 XH,HIGH(BCD0) XL,LOW(BCD0) YH,HIGH(DIG0) YL,LOW(DIG0) r17,4 ZH,HIGH(Tabla_BCD_7SEG<<1) ZL,LOW(Tabla_BCD_7SEG<<1)

LD r16,X+ ADD ZL,r16 CLR r16 ADC ZH,r16 LPM r16,Z ST Y+,r16 DEC r17 BRNE BCD_7SEG_0 POP POP POP POP POP POP r17 r16 XL XH YL YH

POP POP RET Tabla_BCD_7SEG:

ZL ZH

.db 0b01000000,0b01111001 ;0,1 .db 0b00100100,0b00110000 ;2,3 .db 0b00011001,0b00010010 ;4,5 .db 0b00000010,0b01111000 ;6,7 .db 0b00000000,0b00010000 ;8,9 .db 0b00001000,0b00000011 ; (10)A,B(11) .db 0b01000110,0b00100001 ; (12)C,D(13) .db 0b00000110,0b00001110 ; (14)E,F(15) ;Subrutina de Barrido BARRIDO: PUSH PUSH PUSH PUSH PUSH LDI LDI LDI LDI BARRIDO_0: LDI r16 r17 YH YL r18 r17,4 r18,0b11111110 YH,HIGH(DIG0) YL,LOW(DIG0)

r16,0b11111111 OUT PORTC,r16 LD r16,Y+ OUT PORTA,r16 OUT PORTC,r18 CALL RET_BARRIDO SEC ROL r18 DEC r17 BRNE BARRIDO_0 LDI r16,0b11111111 OUT PORTC,r16

;Retardo de Barrido RET_BARRIDO: RET_BARRIDO_0: LDI NOP r16,255

DEC r16 BRNE RET_BARRIDO_0

RET 5. Construya el circuito diseado, el mismo que deber ser llevado al laboratorio el da de la prctica. Realice un modelo de simulacin en proteus del circuito pedido y pruebe el funcionamiento.

6.

Você também pode gostar