retardo

2
;************************************ 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=16F84A INCLUDE <P16F84A.INC> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC CBLOCK 0x0C Contador ENDC ; ZONA DE CÓDIGOS **************************************************************** **** ORG 0 Inicio 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 PORTA bcf STATUS,RP0 ; Acceso al Banco 0. Principal clrf 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 primeras btfsc 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.

Upload: salvador-ramirez-pacheco

Post on 11-Jan-2016

214 views

Category:

Documents


2 download

DESCRIPTION

vjgc

TRANSCRIPT

Page 1: Retardo

;************************************ 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