TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: lucho_asd en 07 de Mayo de 2007, 22:31:21
-
Hola! antes q todo muchas gracias! queria pedir un gran favor! si alguien me da una mano de como empesar a hacer un programa para el 16f84 para q prenda 8 leds activando 8 pulsadores en el mismo pic
POR EJ ---> PRECIONO EL PULSADOR 1 (SE PRENDE EL LED 1)
PRECIONO EL PULSADOR 5 (SE APAGA EL LED 1 Y SE PRENDE EL LED 5 )
PRECIONO EL PULSADOR 8( SE APAGA EL LED 5 Y SE PRENDE EL LED 8 )
PRECIONO EL PULSADOR 3( SE APAGA EL LED 8 Y SE PRENDE EL LED 3 )
........ Y ASI SUCESIVAMENTE!
la idea es mandar a masa cuando activo el pulsador
PIDO AYUDA AL MENOS Q ME INDIQUEN DONDE DEBO LEER PARA ESTE TIPO DE PROGRAMAS! PORQUE TODOS LOS Q ENCUENTRO ES CON TIMERS SE PRENDEN Y SE APAGAN SOLOS!
Y SI ALGUIEN ME TIRA UNA PARTE DEL PROGRAMA MEJOR TODABIA! :-/
MILES DE GRACIAS!!
SALUDOS
-
Puedes al menos decirnos en qué lenguaje estas programando?
¿has hecho al menos algún diagrama del flujo del programa o puedes enviarnos qué has estado intentando así te guiamos sobre eso?
-
Lucho_asd no se puede hacer lo que quieres porque el pic16f84 solo tiene 14 pines configurables como entrada o salida , en todo caso podrias hacerlo con 7 leds y 7 pulsadores.
Saludos
-
Hola
Una aclaración, el 16F84 solo tiene 13 pines I/O.
-
hola! no importa si se puede hacer de 7 entradas y 7 salidas! q asi sea, yo pense q multiplexando se podia enviando señales de 8bit o 4 pero de lenguaje no tengo mucha idea, por favor CUALQUIER SUGERENCIA SERA BIEN ACEPTADA! TENGO Q SALIR DE ESTO!
MUCHAS GRACIAS POR SU INTERES!!
:mrgreen:
SALUDOS
-
Hola
Una aclaración, el 16F84 solo tiene 13 pines I/O.
jeje , esto es cierto , se me olvidaba que este pic utiliza un pin exclusivo para el reset. gracias por la correccion migsantiago.
Lucho_asd hasta ahora no dices que tipo de ayuda necesitas , por lo menos deberias saber en que lenguaje vas a programar .
Saludos
-
mira este
http://www.todopic.com.ar/foros/index.php?topic=2428.0
http://users.tpg.com.au/users/talking/5x7%20Display%20Index.html
saludos
-
el lenguaje cualquiera, la idea es meterle un "hex" al pic q haga esta tarea! si no se pueden 7 q sean 6 aunque sea!!
Muchas gracias una ves mass!!
Saludos
-
Y si lo dejamos en cuatro?
http://www.todopic.com.ar/foros/index.php?topic=12345.msg72255#msg72255
De aqui lo puedes modificar para que sean 6, pero eso ya te corresponde a ti, ponle algo de esfuerzo y lo lograras.
Suerte.
-
muchas gracias amigo! pero lo veo dificil poder modificarlo :? para 2 leds mas y encima lo peor es q cuando se activa uno el anterior se tiene q apagar, ademas tiene q ser con pulsador y no con switch, (dificil para mi conocimiento no es q no se pueda porque la verdad es q no lo se)
lo estuve probando en el proteus y funciona barabaro, lastima q es con switch y no es pulsador, ademas tengo q solucionar el tema q se apague cuando se enciende otro realmente no se como hacerlo. dejo el codigo aca por si alguien se le despierta alguna idea!
VAR
ORG 0
BSF STATUS,5 ; activa la pagina 1
MOVLW B'00000' ; carga 00000 en W
MOVWF TRISA ; puerto A todos salidas
MOVLW B'11111111' ; carga 11111111 en W
MOVWF TRISB ; puerto B todas entradas
BCF OPTION_REG,7 ; activa pull-up en puerto B
BCF STATUS,5 ; volvemos a la pagina 0
CLRF PORTA ; ponemos a cero el puerto A
INICIO
CLRF VAR ; etiqueta
BTFSC PORTB,0 ; ponemos a cero VAR
BSF VAR,0 ; si RB0 es 0 salta 1 linea
BTFSC PORTB,1 ; si RB1 es 0 salta 1 linea
BSF VAR,1 ; pone 1 el bit 1 de vAR, encendido
BTFSC PORTB,2 ; si RB2 es 0 salta 1 linea
BSF VAR,2 ; pone 1 el bit 2 de VAR, encendido
BTFSC PORTB,3 ; si RB3 es 0 salta 1 linea
BSF VAR,3 ; pone 1 el bit 3 de VAR, encendido
COMF VAR,0 ; complementa VAR y carga en W (*)
MOVWF PORTA ; carga W en PORTA
GOTO INICIO ; salta a INICIO
END
aunque paresca una pavada no saben lo importante q es para mi este circuito! para mi proyecto!!
muchas graciassssssssss!!!!!!!
-
para programillas de estos tan simples yo utilizo el niple q es bastante facil de utilizar.
el otro dia descubrí una pagina donde hay algunos ejemplos, creo que habia uno del 16f84, yo no le he visto pero a lo mejor te sirve.
http://grupodw.es/telsotec/
saludos.
-
MOVLW B'00111111' ; carga 00111111 en W
MOVWF TRISB ; puerto B todas entradas Y SALIDAS B6,B7
BTFSC PORTB,0 ; ponemos a cero VAR
BSF VAR,0 ; si RB0 es 0 salta 1 linea
BTFSC PORTB,1 ; si RB1 es 0 salta 1 linea
BSF VAR,1 ; pone 1 el bit 1 de vAR, encendido
BTFSC PORTB,2 ; si RB2 es 0 salta 1 linea
BSF VAR,2 ; pone 1 el bit 2 de VAR, encendido
BTFSC PORTB,3 ; si RB3 es 0 salta 1 linea
BSF VAR,3 ; pone 1 el bit 3 de VAR, encendido
BTFSC PORTB,4 ; si RB3 es 0 salta 1 linea
BSF VAR,4 ; pone 1 el bit 4 de VAR, encendido ;5 LED
BTFSC PORTB,5 ; si RB3 es 0 salta 1 linea
BSF PORTB,6 ; pone 1 el bit 6 de PORTB, encendido ; 6LED
ANTES DE PONER EN UNO EL RESPECTIVO BIT PUEDES LIMPIAR EL REGISTRO Y ASI SE APAGARIA EL ANTERIOR Y SE PRENDERIA EL SIGUIENTE BITS.
VAMOS A VER EN QUE MAS SE LE PUEDE AYUDAR, BOY A ENSAYARLO CON PULSADORES AVER.
SALUDOS
-
Acuerdense que existen los registros de corrimiento y a sus salidas agregar los leds, procura comprar aquellos que tienen entrada serial y salida en paralelo, asi ocuparas pocos pines del microcontrolador.
saludos