En esta primera practica hacemos un simple corrimiento de led's con instrucciones de rotación tanto a la izquierda como a la derecha, controlada por un simple pulsador que selecciona la dirección de giro de los Led's
Programa
; CODIGO Rotacion de leds
; Descripcion:
; Esta rotacion se muestra por el puerto P0
; el sentido de la rotacion lo determina el pin
; p1.0 si este es 1 entonces rotacion a la izqui-
; erda si es 0 rotacion a la derecha
; cristal de 12Mhz
; Autor : Raul Alejandro QL
;---------------------------------------------------------
; Programa Principal
;---------------------------------------------------------
org 0000h ; direccion del reseteo
inicio:
mov a,#00000001b ; cargando con 1 bit
mostrar:
mov p0,a
acall retardo
jb p1.0,izquierda
derecha:
rr a
ajmp mostrar
izquierda:
rl a
ajmp mostrar
; * * * * * * * * * * * * * * * * * * * * * * * *
; retardo de 500 micro segundos (500us)
; * * * * * * * * * * * * * * * * * * * * * * * *
; tiempo = sec * 12 periodos
; 12MHz 1 ciclo de maquina
; * * * * * * * * * * * * * * * * * * * * * * * *
; tiempo = 0.5 s = 500000us
; ciclos de maquina
; * * * * * * * * * * * * * * * * * * * * * * * *
retardo: ;(2) = 2
mov r6,#0fah ;(1) = 1
xx: mov R7,#0f9h ;(1)*r6[250] = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
xxx: nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
djnz R7,xxx ;(2)*r6[250]*r7[249] = 124500
djnz r6,xx ;(2)*r6[250] = 500
ret ;(2) = 2
; ----------------------------------
end
Vídeo Tutorial
Comparte
Comenta
Descarga