PDA

Ver la Versión Completa : Entrada RA0, salida RB0


REHome
17-02-2008, 03:01:25
Me gustaría saber como se hace que al pulsar una entrada con el PIC 16F84A, en su salida se activa el RB0.

Es decir, dejo a 1 la entrada del puerto A RA0, y a su salida se ilumine un LED del puerto B llamado RB0.

De momento tengo un código incompleto aquí.

; ZONA DE DATOS **********************************************************************

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ; Configuración para el
; grabador.
LIST P=16F84A ; Procesador.
INCLUDE <P16F84A.INC> ; Definición de los operandos utilizados.

; ZONA DE CÓDIGOS ********************************************************************

CONSTANTE EQU b'00000100'
LOCO EQU b'10000001'

ORG 0 ; El programa comienza en la dirección 0 de memoria de
Inicio ; programa.
bsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salidas.
movlw b'11111111'
movwf TRISA ; Las líneas del Puerto A se configuran como entradas.
bcf STATUS,RP0 ; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.


Principal
; movf PORTA,W ; Lee el Puerto A.
; movwf PORTB ; El contenido de W se visualiza por el Puerto B.
; bsf LOCO,7
movf PORTA,0
goto Principal ; Crea un bucle cerrado.

END ; Fin del programa.

MaMu
01-03-2008, 23:13:34
Bueno, es muy sencillo, aca tenes, modifica y/o cambia lo que quieras a gusto.


;/////Configuramos todo////
bsf STATUS,RP0 ; banco 1
molvw 0x01 ; RA0 entrada, lo demas salidas
movwf TRISA
clrf TRISB
bcf STATUS,RP0 ;banco 0

;////Principal/////

main call Escanea_Tecla ;A pull Down con una resistencia de 10k
goto main

Escanea_Tecla
BTFSC PORTA,0 ;Salta si es 0
goto ENCIENDE_LED
goto APAGA_LED
return

ENCIENDE_LED
bsf PORTB,0
goto Escanea_Tecla

APAGA_LED
bcf PORTB,0
goto Escanea_Tecla

end



Saludos

REHome
02-03-2008, 18:21:48
Muchas gracias, me sirve a la primera.