Autor | Mensaje |
---|
| Asunto: MATRIZ DE DIODOS (LETRERO LUMINOSO) Publicado: 13 Ene, 2006 - 03:16 |
| Nuevo en el Foro

Registrado: 13 Ene, 2006
Mensajes: 2
|
| HOLA AMIGOS . SOY ESTUDIANTE DE LA CARRERA DE TELEMATICA Y NECESITO
REALIZAR UN PROYECTO DE ELECTRONICA SOBRE UNA MATRIZ DE DIODOS PARA
PROGRAMARLA EN UN MICROPROCESADOR.
POR VAVOR SI ALGUIEN SABE COMO HACERLO ESCRIBANME A EL CORREO
WWW.LESHAT7.@YAHOO.ES |
| |
|
| |  | | Asunto: hola Publicado: 16 Ene, 2006 - 03:28 |
| Nuevo en el Foro

Registrado: 16 Ene, 2006
Mensajes: 6
|
| antes que nada hola... me acabo de inscribir y me da gusto saludar a todos....
sobre tu problema??? necesitas hacer una matriz de leds....??? sabes como se diseña?? solo quieres el programa??? o necesitas ayuda en las dos cosas....?
mira yo hice una matriz de 4x4 en una clase... donde mostrabamos una serie de luces (alguna figurita) y usamos el micro atmega8 de la familia atmel...
es eso lo que necesitas????
te adjunto un dibujito.... cada triangulo representa cada led... segun como polarices cada pista sera el led que se prenda... o la ilera de leds que se prendan.... ya solo queda meter una secuencia al micro.... si es lo que buscas puedo buscar el programa.....
espero te sirva...[/img] |
dibujo4.JPG |

|
| |
|
| |  | | Asunto: RE: hola Publicado: 24 Ene, 2006 - 03:03 |
| Nuevo en el Foro

Registrado: 13 Ene, 2006
Mensajes: 2
|
| SI FUERAS TAN AMABLE DE BUSCAR EL PROGRAMA |
| |
|
| |  | | Asunto: RE: hola Publicado: 27 Ene, 2006 - 07:10 |
| Nuevo en el Foro

Registrado: 16 Ene, 2006
Mensajes: 6
|
| ; Taller de Sistemas Digitales 3, usamos el micro atmega8
;Sanchez Herrera Gerardo
; Practica: Matriz de leds usando tablas.
;En esta prcatica usamos tablas para presentar diferentes juegos de luces seleccionables
; con un selector activado con ceros
;#######################################################################################################
.include "m8def.inc" ; libreria que se va usar
.cseg
.org 0
.def segu=r18 ;define r18 como seg
.def min=r19 ;define el r19 como min
.def hrs=r20 ;define el r20 como hrs
.def temp=r16 ;define el r16 como temp
.def cuenta=r17 ;define el r21 como mover
.def ent=r21
.set ndatos=12 ;La palabra ndatos es igual al 12 decimal, que sera la
;cantidad de constantes en la tabla. numero de datos
rjmp reset ;es un salto relativo e incondicional a reset
reset: ldi temp, low(ramend) ;carga en la parte baja de la memria ram, temp
out spl,temp ;lo manda a la parte baja del Stack Pointer
ldi temp,high(ramend) ;carga al parte superior de la memoria ram
out sph,temp ;lo manda a la parte alta del stack pointer
ser temp ;le asignamos el dato ff al r16.
out ddrd,temp ;configuramos el puerto d como salidas (ff).
clr temp ;configuramos el puerto b como entradas
out ddrb,temp
;######################################################################################################
;Se lee lo que se tiene en el puerto de entrada, para saber que juego de luces mostrar
leer: in ent,pinb;configuro los pin del puerto b como entrada
sbrs ent,0 ;verifico el estado del pin b0 (0 o 1),si es o da un brinco
rjmp t1 ;brinca a la etiqueta
sbrs ent,1 ;verifico el estado del pin b1 (0 o 1),si es o da un brinco
rjmp t2 ;brinca a la etiqueta
sbrs ent,2 ;verifico el estado del pin b2 (0 o 1),si es o da un brinco
rjmp t3 ;brinca a la etiqueta
sbrs ent,3 ;verifico el estado del pin b3 (0 o 1),si es o da un brinco
rjmp t4 ;brinca a t4
rjmp leer
;########################################TABLA # 1#######################################################
;Se carga y muestra la primera tabla, tambien se lee el puerto de entrada para saber si se ha seleccionado
;otra tabla.
t1: ldi r30,low(tabla1*2) ;cargamos la parte baja de la tabla 1, en el registro 30
ldi r31,high(tabla1*2) ;cargamso la parte alta de la tabla 1, en el registro 31
clr cuenta ;limpia el registro cuenta
inicio: mov temp, cuenta ;mueve el contenido de cuenta a temp
rcall decodi ; llamamos a la rutina decodi
out portd,r1 ; sacamos por el puerto d lo que tenemos en el registro1
rcall tiempo ;llamamos a la rutina tiempo
in ent,pinb ;leemos lo que se tiene en el puerto b
sbrs ent,1 ;verifico el estado del pin b1 (0 o 1),si es o da un brinco
rjmp t2 ;brinca a la etiqueta
sbrs ent,2 ;verifico el estado del pin b2 (0 o 1),si es o da un brinco
leer1: rjmp t3 ;brinca a la etiqueta
sbrs ent,3 ;verifico el estado del pin b3 (0 o 1),si es o da un brinco
rjmp t4
inc cuenta ;incrementamos cuenta
cpi cuenta,ndatos ;comparamos cuenta con ndatos
brne inicio ; si no son iguales brinca a inicio
clr cuenta ;se limpia el registro cuenta
rjmp inicio ; salto a inicio
decodi: add r30,temp ;suma r30 con temp
lpm ;Carga un byte apuntado por el registro z dentro del destino
;del registro rd.
mov r1,r0
sub r30,temp ;resta a r30 lo del temp
ret
;################################TABLA # 2 ############################################################
;Se carga y muestra la segunda tabla, tambien se lee el puerto de entrada para saber si se ha seleccionado
;otra tabla.
t2: ldi r30,low(tabla2*2) ;se carga la parte baja de la tabla 2 en el regitro 30
ldi r31,high(tabla2*2) ;se carga la parte alta de la tabla 2 en el registro 31
clr cuenta ;limpia el registro cuenta
inicio2:mov temp, cuenta ;mueve el contenido de cuenta a temp
rcall decodi2 ;se llama a la rutina decodi2
out portd,r1 ;se muestra por el puerto d el registro 1
rcall tiempo ;se llama a la rutina tiempo
in ent,pinb ;se lee lo que ahi en el puerto b
sbrs ent,0 ;verifico el estado del pin b1 (0 o 1),si es o da un brinco
rjmp t1 ;brinca a la etiqueta
sbrs ent,2 ;verifico el estado del pin b2 (0 o 1),si es o da un brinco
leer2: rjmp t3 ;brinca a la etiqueta
sbrs ent,3 ;verifico el estado del pin b3 (0 o 1),si es o da un brinco
rjmp t4 ;salto a t4
inc cuenta ;se incremente el registro cuenta
cpi cuenta,ndatos ;se compara cuenta con ndatos
brne inicio2 ;si no es igual se brinca a inicio2
clr cuenta ; se limpia el registro cuenta
rjmp inicio2 ; salto a inicio2
decodi2: add r30,temp ;suma r30 con temp
lpm ;Carga un byte apuntado por el registro z dentro del destino
;del registro rd.
mov r1,r0
sub r30,temp ;resta a r30 lo del temp
ret
;###########################TABLA #3####################################################################
;Se carga y muestra la tercera tabla, tambien se lee el puerto de entrada para saber si se ha seleccionado
;otra tabla.
t3: ldi r30,low(tabla3*2) ;se carga la parte baja de la tabla 3 en el registro 30
ldi r31,high(tabla3*2) ;se carga la parte alta de la tabla 3 en el registro 31
clr cuenta ;limpia el registro cuenta
inicio3: mov temp, cuenta ;mueve el contenido de cuenta a temp
rcall decodi3 ;se llama a la rutina decodi3
out portd,r1 ;se muestra por el puerto d lo que tenemos en le registro 1
rcall tiempo ; se llama a la rutina tiempo
in ent,pinb ;se lee lo que tenemos en el puerto b
sbrs ent,0 ;verifico el estado del pin b1 (0 o 1),si es o da un brinco
rjmp t1 ;brinca a la etiqueta
sbrs ent,1 ;verifico el estado del pin b2 (0 o 1),si es o da un brinco
leer3: rjmp t2 ;brinca a la etiqueta
sbrs ent,3 ;verifico el estado del pin b3 (0 o 1),si es o da un brinco
rjmp t4
inc cuenta ;incrementa cuenta
cpi cuenta,ndatos ;se compara cuenta con ndatos
brne inicio3 ;si no es igual brinca a inicio3
clr cuenta ;se limpia el registro cuenta
rjmp inicio3 ;salto a inicio3
decodi3: add r30,temp ;suma r30 con temp
lpm ;Carga un byte apuntado por el registro z dentro del destino
;del registro rd.
mov r1,r0
sub r30,temp ;resta a r30 lo del temp
ret
;############################TABLA #4###################################################################
;Se carga y muestra la cuarta tabla, tambien se lee el puerto de entrada para saber si se ha seleccionado
;otra tabla.
t4: ldi r30,low(tabla4*2) ;se carga la parte baja de la tabla 4 en el registro 30
ldi r31,high(tabla4*2) ;se carga la parte alta de la tabla 4 en el registro 31
clr cuenta ;limpia el registro cuenta
inicio4: mov temp, cuenta ;mueve el contenido de cuenta a temp
rcall decodi4 ; se llama a la rutina decodi4
out portd,r1 ;se muestra por el pueto d lo que s e tiene en el registro1
rcall tiempo ; se llama a la rutina tiempo
in ent,pinb ;se lee lo que tenemos en el puerto b
sbrs ent,0 ;verifico el estado del pin b1 (0 o 1),si es o da un brinco
rjmp t1 ;brinca a la etiqueta
sbrs ent,1 ;verifico el estado del pin b2 (0 o 1),si es o da un brinco
leer4: rjmp t2 ;brinca a la etiqueta
sbrs ent,2 ;verifico el estado del pin b3 (0 o 1),si es o da un brinco
rjmp t3 ;brinca a t3
inc cuenta ;incrementa cuenta
cpi cuenta,ndatos ;compara cuenta con ndatos
brne inicio4 ; si no son iguales brinca a inicio4
clr cuenta ;limpia el registro cuenta
rjmp inicio4 ;brinca a inicio4
decodi4: add r30,temp ;suma r30 con temp
lpm ;Carga un byte apuntado por el registro z dentro del destino
;del registro rd.
mov r1,r0
sub r30,temp ;resta a r30 lo del temp
ret
;##################################RUTINA TIEMPO##########################################################
tiempo: ldi segu, $ff ;se carga el registro segu
ldi min, $ff ;se carga el registro min
ldi hrs, $02 ;se carga el registro hrs
rsegu: dec segu ;decrementa a segu una vez
brne rsegu ;brinca a rsegu mientras segu dif 00
dec min ;decremente min una vez
brne rsegu ;brinca a rsegu mientras min dif 00
dec hrs ;decrementa hrs una vez
brne rsegu ;brinca a rsegu mientras hrs dif 00
ret
;###################################TABLAS################################################################
tabla1: .db $86,$49,$29,$16,$29,$49,$86,$49,$29,$16,$29,$49
tabla2: .db $87,$47,$27,$17,$1b,$1d,$1e,$2e,$4e,$8e,$8d,$8b
tabla3: .db $89,$49,$29,$19,$29,$49,$89,$49,$29,$19,$29,$49
tabla4: .db $33,$cc,$c3,$3c,$33,$cc,$c3,$3c,$33,$cc,$c3,$3c |
| |
|
| |  |
|
|