Empecemos aportando algo, creo que vine para quedarme :P.
Dejo el programa comentado.
STATUS equ 03h ;Definiciones, para no manejar
TRISA equ 85h ;direcciones todo el rato.
TRISB equ 86h
PORTA equ 05h
PORTB equ 06h
CONTADOR equ 08h
org 0x0
bsf STATUS,5 ;Cambiamos al banco 1
movlw 0x0 ;Movemos a W 0
movwf TRISA ;Todos los puertos A son de salida
movlw 0x1 ;Movemos a W 1
movwf TRISB ;Todos los puertos B son de salida, menos RB0
bcf STATUS,5 ;Volvemos al banco 0
Inicio BTFSS PORTB,0 ;Comprueba si RB0 es 1, si lo es SALTA LA SIGUIENTE INSTRUCCION
bcf PORTA,1 ;Envia 0 por la patilla RA1
BTFSC PORTB,0 ;Comprueba si RB0 es 0, si lo es SALTA LA SIGUIENTE INSTRUCCION
call Parpadeo ;Llama a Parpadeo
goto Inicio ;El bucle se repite
Parpadeo call Duerme ;Llama a Duerme para hacer una pausa
bsf PORTA,1 ;Envia 1 por la patilla RA1
call Duerme ;Llama a Duerme para hacer una pausa
bcf PORTA,1 ;Envia 0 por la patilla RA1
call Duerme
return
Duerme movlw 0x90 ;Mueve a W 0x90
movwf CONTADOR ;Mueve W a CONTADOR (CONTADOR(08h)=0x90)
Bucle decfsz CONTADOR,1 ;Decrementa CONTADOR, y si es 0 SALTA LA SIGUIENTE INSTRUCCION
goto Bucle ;Vuelve a empezar el bucle
return ;Return
end ;Fin del programa
Este seria el montaje, dejo la imagen de Proteus, por si a alguien mas le interesa esto ;).
(http://img577.imageshack.us/img577/3125/pic16f84a.jpg)
Comento un poco el funcionamiento: Si el boton esta cerrado, el LED parpadea. Si el boton esta abierto, el LED se mantiene apagado.
Sa1uDoS
Pero que buenooooo!!
Viene de 10 bro!
Muchisimas gracias!!
Otro que se larga de CPH xD
Muy bueno!!!
Gracias.