Hola de nuevo:
El código que vi en un libro.
Este código hay un problema, te enciende el Led, pero no es capaz de apagarlo, jajaja.
Lo encontré, este es el código adecuado.
El código que vi en un libro.
Código:
LIST P=16F886 ;Tipo de procesador
INCLUDE <P16F886.INC> ;Definiciones de registros internos
;Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
;adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades
__CONFIG _CONFIG1, _LVP_OFF&_PWRTE_ON&_WDT_OFF&_EC_OSC&_FCMEN_OFF&_BOR_OFF ;Palabra 1 de configuración
__CONFIG _CONFIG2, _WRT_OFF ;Palabra 2 de configuración
CBLOCk 0x20
ENDC
ERRORLEVEL -302
#DEFINE Pulsador PORTA,0
#DEFINE LED PORTB,0
ORG 0x00
goto Comienzo ;Vector de reset
ORG 0x05
Comienzo
clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0
bsf STATUS,RP1 ;Selecciona banco 3
clrf ANSEL ;Puerta A digital
clrf ANSELH ;Puerta B digital
bcf STATUS,RP1 ;Selecciona banco 1
clrf TRISB ;RB7:RB0 se configuran como salida
clrf TRISC
movlw b'11111111'
movwf TRISA ;RA5:RA0 se configuran como entrada
bcf STATUS,RP0 ;Selecciona banco 0
; CODIGO**********************************************************
Principal
btfsc Pulsador
goto Fin
; call Retardo_20ms
btfsc Pulsador
goto Fin
bsf LED
EsperaDejePulsar
btfss Pulsador
goto EsperaDejePulsar
Fin goto Principal
INCLUDE <RETARDOS.INC>
END ;Fin del programa.
Este código hay un problema, te enciende el Led, pero no es capaz de apagarlo, jajaja.
Lo encontré, este es el código adecuado.
Código:
; ZONA DE CÓDIGOS ********************************************************************
ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
bsf Pulsador ; La línea RA4 se configura como entrada.
bcf LED ; Se configura como salida.
bcf STATUS,RP0 ; Acceso al Banco 0.
bcf LED ; En principio diodo LED apagado.
Principal
btfsc Pulsador ; ¿Pulsador presionado?, ¿(Pulsador)=0?
goto Fin ; No. Vuelve a leerlo.
call Retardo_20ms ; Espera que se estabilicen los niveles de tensión.
btfsc Pulsador ; Comprueba si es un rebote.
goto Fin ; Era un rebote y sale fuera.
btfsc LED ; Testea el último estado del LED.
goto EstabaEncendido
EstabaApagado
bsf LED ; Estaba apagado y lo enciende.
goto EsperaDejePulsar
EstabaEncendido
bcf LED ; Estaba encendido y lo apaga.
EsperaDejePulsar
btfss Pulsador ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
goto EsperaDejePulsar ; No. Espera que deje de pulsar.
Fin
goto Principal
INCLUDE <RETARDOS.INC>
END
Última edición: