retardo
DESCRIPTION
vjgcTRANSCRIPT
![Page 1: Retardo](https://reader036.vdocuments.mx/reader036/viewer/2022083007/563dbb2c550346aa9aaae26b/html5/thumbnails/1.jpg)
;************************************ Retardo_06.asm ;; Por la barra de LED conectada al puerto de salida un LED encendido rota a la izquierda; izquierda durante 0.5 s en cada posición empezando por la línea RB0. El número de; posiciones a desplazar lo fija el valor de las tres primeras líneas del Puerto A entrada.; Así por ejemplo, si (PORTA)=b'---00011' (3 decimal), la secuencia de salida sería:; 00000000, 00000001, 00000010, 00000100, 00000000, 00000001, 00000010,... ( y repite) ; ZONA DE DATOS **********************************************************************
LIST P=16F84AINCLUDE <P16F84A.INC>__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0CContadorENDC
; ZONA DE CÓDIGOS ********************************************************************
ORG 0Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.clrf PORTB ; Líneas del Puerto B configuradas como
salidas.movlw b'00000111' ; Líneas del Puerto A configuradas como
entradas. movwf PORTAbcf STATUS,RP0 ; Acceso al Banco 0.
Principalclrf PORTB ; Al principio apaga todos los diodos LED.movf PORTA,W ; Lee los interruptores. andlw b'00000111' ; Se queda con la información de las 3 primerasbtfsc STATUS,Z ; líneas y comprueba si es cero.goto Final ; Sí, es cero. No visualiza LED alguno.movwf Contador ; En (Contador) el número de LEDs a desplazar.bsf STATUS,C ; Carga el dato inicial en el Carry.
Rota call Retardo_500ms ; Rota a izquierdas, visualizando la información
rlf PORTB,F ; durante 500 ms en cada posición.
decfsz Contador,F ; Rota tantas veces como le indique elgoto Rota ; Contador.call Retardo_500ms ; La última posición también debe tener
retardo.Final
goto Principal
INCLUDE <RETARDOS.INC>END