Entradas y salidas en el PIC 16F84A

#1
Hola foreros.
Ando con una duda y es la siguiente.
Como puedo hacer con el PIC 16F84A para configurar 4 pines como entradas.
Y ademas, que cuando detecte que esta entrando tension por alguna de esas entradas envíe una señal por algun otro pin configurado como salida.

Osea.
Adjunto la tabla de verdad para que entiendan.
La idea es, por si no entendieron.
Cuando En RA0 Haya un 1, RB1 Tiene que presentar un 1, pero cuando a RA0 le llegue un 0, RB1 Tiene que tener un 0, Aí con los otros pines.

De todas formas ya tengo una idea formada, pero no se como hacer que envíe la señal cuando detecte un 1 en el puerto correspondiente.

Espero que puedan ayudarme, muchas Gracias
 

Adjuntos

#4
Bueno debes primero configurar el pin como entrada, ubicas en el banco de memoria adecuado donde estan los REGs de configuracion de los puertos y lo haces, ahi tambien configuras el puertob como salida y el Porta como entrada, ahora eso es la configuracion del PIC, en tu programa principal revisas o testeas el pin que necesitas como entrada y decides si se cumple lo que quieres (que haya un 1) si es asi tu programa se va y coloca un 1 en el pin adecuado del portb, luego tu programa regresa a hacer lo mismo chauuuuuuu
 
#7
Entiendo que puedo usar BCF y BSF para configurar salidas y entradas
La cosa que no entendí es como debo hacer para que cuando detecte que hay un 1 en RA0 , coloque un 1 en RB1
 
#8
Configurar es muy diferente a cambiar de estado un bit

Configurar: Cargar un valor en el reg TRISA o TRISB que determina que pines son entradas o salidas
BCF: viene de Bit Clear F de Registro, Clarear o poner a 0 un Bit del registro F
BSF. Bit Set de registro F, setear o poner a 1 un bit del registro f
registro F. cualquier registro
 
#9
Y como me dices entonces que seria para que cada puerto haga eso?
Osea, que cuando detecte un 1 en un pin de entrada, coloque un 1 en un determinado pin de saluida?
 
#10
Primero configuras los pines de cada puerto como?? vas al banco de memoria donde estan los REGS TRISA y TRISB y los cargas con ceros si queres que sean salidas y con 1 si queres que sean entradas ejemplo deseo que RA4-RA3-RA2-RA0 sean salidas y RA1 entrada entonces coloco asi
RA4=0
RA3=0
RA2=0
RA0=0
RA1=1 entonces el valor a cargar en TRISA es xxx00001 x= cualquier cosa no importa pues el PORTA solo tiene 5 pines, entonces cargo el valor 01H en el registro TRISA y el puerto queda configurado como queria

Para poner un bit en cierto estado hago asi:

BCF PORTB,1 ; BCF=coloca en cero el bit?? del registro F, cual reg?? el colocado despues de la instruccion en este caso PORTB y cual bit??? el colocado despues de la coma en este caso el BIT1
Conclusion Coloque a "0" el Bit1 del regsitro o puerto B, normalmente el Puerto es un registro a diferencia de los demas puertos tiene salida fisica (pines) hacia el exterior, por eso podes hacer con un puerto lo mismo que con un registro comun, chauuuuuuuu
 
#11
Disculpa mi ignorancia, pero sigo sin entender nada.
Como colocar pines como entradas y como salidas ya lo sabia, lo que sigo sin saber es la pregunta planteada anteriormente
 
#12
Para poner un bit en cierto estado hago asi:

BCF PORTB,1 ; BCF=coloca en cero el bit?? del registro F, cual reg?? el colocado despues de la instruccion en este caso PORTB y cual bit??? el colocado despues de la coma en este caso el BIT1
Conclusion Coloque a "0" el Bit1 del regsitro o puerto B, normalmente el Puerto es un registro a diferencia de los demas puertos tiene salida fisica (pines) hacia el exterior, por eso podes hacer con un puerto lo mismo que con un registro comun, chauuuuuuuu
Aca esta :unsure::unsure:
 
#13
Para hacer una decision usas btfss o btfsc (bit test file skip set o bit test file skip if clear, o en español, prueba de bit, saltar si uno o saltar si cero)

La usas de esta manera

BTFSC PORTA,0 ;prueba bit 0 del puerto A y salta la siguiente instruccion si es cero
BSF PORTB,0 ; enciende bit 0 del puerto B
[.......] resto del programa
 
Última edición:
#14
Disculpa mi ignorancia, pero sigo sin entender nada.
Te recomiendo ampliamente leer el libro "MICROCONTROLADOR PIC16F84. Desarrollo de proyectos" de Ra-Ma. Vas a aprender desde cero ASM de manera sencilla y obtener muy buenos resultados. Leyendo un par de capítulos ya resolvés todas estas dudas que estás teniendo y te encaminás correctamente para aprender todo lo demás.

Saludos
 
#15
Tu dices que:
BTFSC PORTA,0
Se fija si hay un 0 o un 1 en el bit 0 del puerto A (RA0)

Entonces, tu me ejemplificas que pasa habiendo un 0, pero si hay un 1?

Ese libro lo tengo.
Pero no sale nada de esto
 
Última edición:
Arriba