You are on page 1of 11

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

LABORATORIO DE SISTEMAS MICROPROCESADOS

PREPARATORIO DE:

SISTEMAS MICROPROCESADOS

Prctica #: 07
controlador Mega 16

Tema:

Decodificador de Matriz de leds de 7*5 utilizando

Fecha de Realizacin: 11 / 11 / 2009

Realizado por: Alumna: Juan Carlos Tapia Grupo:


Mi- 11 - 13

(Espacio Reservado) Fecha de entrega: ____ / ____ / ____ ao mes da f. ___________________ Recibido por:

Sancin:

Perodo: Oct - Mar _________________________________________________ Mar - Ago

SISTEMAS MICROPROCESADOS PREPARATORIO 7


TEMA: DECODIFICADOR DE MATRIZ DE LEDS DE 7x5 UTILIZANDO MICROCONTROLADOR MEGA16 OBJETIVO: Disear un decodificador de una matriz de 7x5 DESARROLLO: 1. Consulte la distribucin de pines del arreglo de leds 7x5. CARACTERSTICAS TCNICAS: Tamao de punto: 3mm Material: GaAlAs / GaAs Emitida Color: Rojo Super Longitud de onda de pico: 660 nm Adelante Voltaje: 1.85 - 2.2v Valoracin mxima absoluta Tensin inversa (Vr): 5 V Adelante actual (Si): 25 mA Adelante pico actual (IFP): 150 mA Disipacin de potencia (Pd): 60 MW Temperatura de funcionamiento (Topr):-40oC a +80 C

En la parte posterior de la matriz se encuentran 14 pines los cuales se los cuenta desde 1 en la parte inferior derecha y el numero 14 est en la parte

inferior izquierda. De todas maneras se encuentra un pequeo 1 a un lado de la matriz. 2. 3. Adquiera una matriz de 7x5 (de bajo costo). Disee un circuito decodificador con el microcontrolador MEGA16 y los circuitos que considere necesarios para manejar una matriz de leds. (tomar en cuenta la capacidad de corriente del microcontrolador para no excederla)

Escriba un programa que permita mostrar una de 6 letras que sern seleccionadas mediante un dip switch de 3 posiciones, Las letras se pueden formar con la tcnica de barrido). Cada una de las letras est almacenada como una tabla separada en la memoria FLASH y con los interruptores se selecciona cual tabla se debe mostrar en la matriz. .include "m16def.inc" .def tempo=r16 .def tempo1=r17 .def tempo2=r18 .org 0x0 ldi tempo,low(ramend) out spl,tempo ldi tempo,high(ramend) out sph,tempo ldi tempo,0b11111000 out ddra,tempo ldi tempo,0b11111111 out ddrc, tempo out ddrd,tempo denuevo: in tempo,pina lazo: cpi tempo,$00

4.

brne siga rjmp t siga: cpi tempo,$01 brne siga1 rjmp a siga1: cpi tempo,$02 brne siga2 rjmp p siga2: cpi tempo,$03 brne siga3 rjmp l siga3: cpi tempo,$04 brne siga4 rjmp o siga4: cpi tempo,$05 brne denuevo rjmp p2 salto: rjmp p t: ldi zl,low(tablat*2) ldi zh,high(tablat*2) lpm tempo,z+ out portc,tempo ldi tempo2,0b00000001 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$02 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$04 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo

ldi tempo2,$08 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$10 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$20 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$40 out portd,tempo2 rcall retardo clr tempo out portd,tempo rjmp denuevo a: ldi zl,low(tablaa*2) ldi zh,high(tablaa*2) lpm tempo,z+ out portc,tempo ldi tempo2,$01 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$02 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$04 out portd,tempo2

rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$08 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$10 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$20 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$40 out portd,tempo2 rcall retardo clr tempo out portd,tempo rjmp denuevo p: ldi zl,low(tablap*2) ldi zh,high(tablap*2) lpm tempo,z+ out portc,tempo ldi tempo2,$01 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$02 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+

out portc,tempo ldi tempo2,$04 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$08 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$10 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$20 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$40 out portd,tempo2 rcall retardo clr tempo out portd,tempo rjmp denuevo l: ldi zl,low(tablal*2) ldi zh,high(tablal*2) lpm tempo,z+ out portc,tempo ldi tempo2,$01 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$02 out portd,tempo2 rcall retardo

clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$04 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$08 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$10 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$20 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$40 out portd,tempo2 rcall retardo clr tempo out portd,tempo rjmp denuevo o: ldi zl,low(tablao*2) ldi zh,high(tablao*2) lpm tempo,z+ out portc,tempo ldi tempo2,$01 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo

ldi tempo2,$02 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$04 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$08 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$10 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$20 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$40 out portd,tempo2 rcall retardo clr tempo out portd,tempo rjmp denuevo p2: ldi zl,low(tablap2*2) ldi zh,high(tablap2*2) lpm tempo,z+ out portc,tempo ldi tempo2,$01 out portd,tempo2 rcall retardo clr tempo

out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$02 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$04 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$08 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$10 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$20 out portd,tempo2 rcall retardo clr tempo out portd,tempo lpm tempo,z+ out portc,tempo ldi tempo2,$40 out portd,tempo2 rcall retardo clr tempo out portd,tempo rjmp denuevo retardo: ldi tempo,2 ldi tempo1,50 ret1: ldi tempo1,82 ret2:

dec tempo1 brne ret2 dec tempo brne ret1 ret tablat: .db 0b00000000,0b00011011 .db 0b00011011,0b00011011 .db 0b00011011,0b00011011 .db 0b00011011,0b00011011 tablaa: .db 0b00000000,0b00001110 .db 0b00001110,0b00000000 .db 0b00001110,0b00001110 .db 0b00001110,0b00000000 tablap: .db 0b00000001,0b00001110 .db 0b00001110,0b00000001 .db 0b00001111,0b00001111 .db 0b00001111,0b00000000 tablal: .db 0b00001111,0b00001111 .db 0b00001111,0b00001111 .db 0b00001111,0b00001111 .db 0b00000000,0b00000000 tablao: .db 0b00010001,0b00001110 .db 0b00001110,0b00001110 .db 0b00001110,0b00001110 .db 0b00010001,0b00000000 tablap2: .db 0b00000001,0b00001110 .db 0b00001110,0b00000001 .db 0b00001111,0b00001111 .db 0b00001111,0b00000000 BIBLIOGRAFIA: Set de instrucciones de ATmega 16 Cuaderno de apuntes, Ing. Fernando Flores

You might also like