Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/06/2011 #1
Excluido


Entradas y salidas en el PIC 16F84A
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
03/06/2011 #2

Avatar de arrivaellobo

Y todo esto en qué lenguaje de programación?
03/06/2011 #3
Excluido


Assembler en lo posible
03/06/2011 #4

Avatar de fdesergio

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
03/06/2011 #5
Excluido


Disculpa mi ignorancia, pero no te entendi muy bien
03/06/2011 #6

Avatar de fdesergio

mmmmmmmmmm si comenzamos desde cero nunca acabaremos, que no entediste??
03/06/2011 #7
Excluido


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
03/06/2011 #8

Avatar de fdesergio

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
03/06/2011 #9
Excluido


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?
03/06/2011 #10

Avatar de fdesergio

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
03/06/2011 #11
Excluido


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
03/06/2011 #12

Avatar de fdesergio

fdesergio dijo: Ver Mensaje

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
03/06/2011 #13
Moderador

Avatar de Chico3001

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
03/06/2011 #14

Avatar de mnicolau

MaTiXx090 dijo: Ver Mensaje
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
03/06/2011 #15
Excluido


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
03/06/2011 #16
Moderador

Avatar de Chico3001

usas la otra instruccion BTFSS....

OJO que estas instrucciones "se saltan" la siguiente instruccion....
03/06/2011 #17

Avatar de mnicolau

MaTiXx090 dijo: Ver Mensaje
Ese libro lo tengo.
Pero no sale nada de esto
en serio decís? Lo leíste al menos?

Estas cuestiones son el "ABC" de assembler y te aseguro que está todo en el libro y muy bien explicado.
03/06/2011 #18
Excluido


Y como aplico la instruccion esa?
03/06/2011 #19
Moderador

Avatar de Chico3001

MaTiXx090 dijo: Ver Mensaje
Y como aplico la instruccion esa?
pero si te acabo de dar el ejemplo.....
03/06/2011 #20

Avatar de fdesergio

Yo doy por abanadonado este tema, creeme tenemos las ganas de ayudar, pero pone de tu parte leete el libro que decis tener! chauuuuuuuuuu
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.