Ta todo controlauuuu!!!!
![Sonrisa Gigante Sonrisa Gigante]()
No problemo
![Angelito Angelito]()
resulta q mis pulsadores estan normalmente abiertos, osea q si no los pulso salen 5 voltios y si los pulso la salida es 0 así q el programa ya sí q sí, ha qdado tal q así:
;******************************************************************************************
; OSC: RC WDT: OFF PWRTE:ON CP:OFF
;******************************************************************************************
;
; LIST P=16F84
w equ 0
f equ 1
status equ 0x03 ;Registro del estado Aritmético de la ALU
Porta equ 0x05 ;Puerto A
Portb equ 0x06 ;Puerto B
trisa equ 0x85 ;Registro de configuración del Puerto A
trisb equ 0x86 ;Registro de configuración del Puerto B
CONTA1 equ 0x0C ;Registro del primer contador
CONTA2 equ 0x0D ;Registro del segundo contador
#define BANK1 bsf status,5 ;Macro para abreviar el BANCO 1
#define BANK0 bcf status,5 ;Macro para abreviar el BANCO 0
org 0 ;Posición 0 de la memoria de programa
goto INICIO ;Comienza el programa despues
org 5 ;del vector de interrupcion
INICIO BANK1 ;Seleccion del Banco 1
clrf trisb ;Programa el puerto B como Salida
movlw b"00001111" ;
movwf trisa ;Programa el puerto A como Entrada
BANK0 ;seleccion del Banco 0
clrf CONTA1 ;Pone a 0 CONTA1
clrf CONTA2 ;Pone a 0 CONTA2
ESPERA clrf Portb ;Apaga los LEDS borrando el puerto B
btfsc Porta,4 ;Lee el interruptor y espera a que sea "0". Han pulsado?
goto ESPERA ;No han pulsado, va a la etiqueta ESPERA
call RETARDO ;Si han pulsado, llama a la rutina RETARDO
PULSAR bsf Portb,0 ;Bit 0 del PUERTO B "1". Enciende el LED
btfss Porta,4 ;Lee el interruptor y espera a que sea "1". Han soltado?
goto PULSAR ;No, va a la etiqueta PULSAR
call ESPERA ;Si, va a la etiqueta ESPERA
;******************************************************************************************
;ESTA RUTINA GENERA UN RETARDO PARA EVITAR QUE LOS REBOTES QUE GENERA EL PULSADOR AL SER
;PRESIONADO CONFUNDAN AL MICROCONTROLADOR.
;******************************************************************************************
RETARDO decfsz CONTA1,f ;Decrementa CONTA1 y comprueba si es 0
goto RETARDO ;Si no es 0, decrementa CONTA1
decfsz CONTA2,f ;si es 0, decrementa CONTA2
goto RETARDO ;si CONTA2 no es 0 decrementa CONTA1
return ;vuelve al programa principal
end ;fin del programa
Gracias Elena, jejeje y gracias Fermin
![Rebotado Rebotado]()
Ya me furrula!!