Bien una mas de led"s, esta vez vamos a simular el colorido del coche fantastico jeje aqui va el codigo(ya sabeis algo desordenado por el copia y pega peor lo subire al almacen y os avisare)
;-------------------------------------------------------------------------------------------
; VsZeNeR"04 9/julio/04
;Programa: Iluminacion de 8 Led"s de derecha a izquierda y viceversa
;Simulador MC68000: IDE68K(vs1.35)
;
;Entrada: TABLA: Contiene el led que debe encenderse
; D0: Registro almacena la constante de retardo
; A0: Direccion que apunta a la tabla
; RET: Constante interna del programa cuya funcion es suministrar el retardo
;
;Notas: Subrutina delay: Se le introduce un retardo para que se vea el desplazamiento
; de los led"s
;
;Resumen: Programa que enciende led de derecha a izquierda viceversa(Coche fantastico)
;-------------------------------------------------------------------------------------------
org $400 ;inicio del programa
******VARIABLES****************
TABLA dc.b %00000001 ;Led 0 on: A0=$400 ->inicio de tabla
dc.b %00000010 ;Led 1 on: A0=$401
dc.b %00000100 ;Led 2 on: A0=$402
dc.b %00001000 ;Led 3 on: A0=$403
dc.b %00010000 ;Led 4 on: A0=$404
dc.b %00100000 ;Led 5 on: A0=$405
dc.b %01000000 ;Led 6 on: A0=$406
dc.b %10000000 ;Led 7 on: A0=$407 ->fin de tabla
RET equ $FFFFF ;constante de retardo
******PROGRAMA*****************
main lea TABLA,A0 ;carga direccion de la tabla en A0
loop move.b (A0)+,$E003 ;carga e ilumina el LED"S correspondiente e incrementa direccion A0
bsr delay ;salta a subrutina delay
CMP #$407,A0 ;¿es el final de la tabla?
BLS loop ;no es el final ->ve a loop
*******FIN DE TABLA************ ;ilumina led"s de izquierda a derecha
lop1 move.b -(A0),$E003 ;decrementa direccion A0 y carga e ilumina el correspondiente LED"S
bsr delay ;salta a subrutina delay
CMP #$400,A0 ;¿es el principio de la tabla?
BHI lop1 ;no es el principio ->ve a lop1
BRA loop ;si es el principio ->ve a loop
*******RETARDO*****************
delay move.l #RET,D0 ;carga la constante de retardo en registro D0
lop2 sub.l #1,D0 ;D0=D0-1
TST.l D0 ;¿D0==0?
BNE lop2 ;no es igual a cero ->ve a lop2
rts ;si es igual a cero ->fin de subrutina
*******************************
end main
Esta programado tb con tablas la direcciones de los led"s a iluminar, como dije en el anterior ejemplo se puede programar sin tablas por lo tanto ahorra memoria...ya pondre la programacion sin tabla, de momento asi pokito a poko iremos progresando a mass....a seguir programando!!!
