TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: skisoloco en 13 de Agosto de 2009, 12:57:29
-
Bueno, amigos del foro aqui les traigo otro aporte. A la hora de realizar un proyecto con visualizacion de caracteres, es necesario ver si se está o no haciendo un gasto innecesario. a lo que me refiero es a que talvez con algunos displays se puede lograr lo que se quiere, en vez de hacer un gasto innecesario comprando el LCD. (en venezuela cuasta aproximadamente 80BsF el de 16x2).
DE todas formas aqui http://todopic.servepics.com/ (http://todopic.servepics.com/) se encuentran mas proyectos de ese tipo.
Video:
"http://www.box.net/static/flash/box_explorer.swf?widget_hash=aoup06g4f0&v=0&cl=0"
Codigo:
program DISPLAYS_628A
DIM WW, X, M, K, Q AS WORD
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB PROCEDURE HAB1 ''habilitar display 1
PORTA = %00000001
END SUB
SUB PROCEDURE HAB2 ''habilitar display 2
PORTA = %00000010
END SUB
SUB PROCEDURE HAB3 ''habilitar display 3
PORTA = %00000100
END SUB
SUB PROCEDURE HAB4 ''habilitar display 4
PORTA = %00001000
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB PROCEDURE DESHAB
PORTA = %00000000
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB PROCEDURE H
PORTB = %10001001
END SUB
SUB PROCEDURE O
PORTB = %11000000
END SUB
SUB PROCEDURE L
PORTB = %11000111
END SUB
SUB PROCEDURE A
PORTB = %10001000
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB PROCEDURE J
PORTB = %11100001
END SUB
SUB PROCEDURE S
PORTB = %10010010
END SUB
SUB PROCEDURE E
PORTB = %10000110
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB PROCEDURE U
PORTB = %11000001
END SUB
SUB PROCEDURE N
PORTB = %10101011
END SUB
SUB PROCEDURE Y
PORTB = %10010001
END SUB
SUB PROCEDURE R
PORTB = %10101111
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB PROCEDURE VALOR0
PORTB = %01000000
END SUB
SUB PROCEDURE VALOR1
PORTB = %01111001
END SUB
SUB PROCEDURE VALOR2
PORTB = %00100100
END SUB
SUB PROCEDURE VALOR3
PORTB = %00110000
END SUB
SUB PROCEDURE VALOR4
PORTB = %00011001
END SUB
SUB PROCEDURE VALOR5
PORTB = %00010010
END SUB
SUB PROCEDURE VALOR6
PORTB = %00000010
END SUB
SUB PROCEDURE VALOR7
PORTB = %01111000
END SUB
SUB PROCEDURE VALOR8
PORTB = %00000000
END SUB
SUB PROCEDURE VALOR9
PORTB = %00010000
END SUB
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
main:
TRISA = %11110000 ''PortA.0 hasta PortA.3 (activar displays)
TRISB = %00000000 ''Salidas para valores de los displays
WHILE TRUE
FOR WW = 1 TO 35
A
HAB1
DELAY_MS(5)
DESHAB
L
HAB2
DELAY_MS(5)
DESHAB
O
HAB3
DELAY_MS(5)
DESHAB
H
HAB4
DELAY_MS(5)
DESHAB
NEXT WW
FOR X = 1 TO 35
E
HAB1
DELAY_MS(5)
DESHAB
S
HAB2
DELAY_MS(5)
DESHAB
O
HAB3
DELAY_MS(5)
DESHAB
J
HAB4
DELAY_MS(5)
DESHAB
NEXT X
FOR M = 1 TO 105
Y
HAB1
DELAY_MS(5)
DESHAB
NEXT M
FOR K = 1 TO 35
O
HAB1
DELAY_MS(5)
DESHAB
R
HAB2
DELAY_MS(5)
DESHAB
E
HAB3
DELAY_MS(5)
DESHAB
U
HAB4
DELAY_MS(5)
DESHAB
NEXT K
FOR Q = 1 TO 70
A
HAB1
DELAY_MS(5)
DESHAB
J
HAB2
DELAY_MS(5)
DESHAB
A
HAB3
DELAY_MS(5)
DESHAB
J
HAB4
DELAY_MS(5)
DESHAB
NEXT Q
WEND
END.
Archivo adjunto:
-
skisoloco de que parte de venezuela eres?
-
de los valles del tuy brother... porque?
-
Tengo un proyecto similar al tuyo y alimento 5 displays de 7 segmentos individualmente, osea q puedo formar palabras de 5 letras almacenandolas en la memoria de cualquier pic12F. Para ampliarle la cantidad de salidas utilizo integrados 74hc164, que necesitan data y clock. El clock es comun a todos los integrados y hay un data para cada display. Si se quieren manejar mas displays ya se tendria que poner un 16f, por lo menos d 18 pine, de esa forma se podrian controlar de manera individual 15 displays.....
Si te interesa te paso el circuito y el programita en basic para que lo analices....
Salu2 desde San Juan, Argentina
Oscar Diaz
-
Bueno, claro man. si tienes un PIC12FXX tienes que hacer eso y asi poder manejar esa cantidad de displays 7 segmentos.
La idea de este proyecto es dar a conocer el uso de Displays pero con el PIC solamente.
De todas formas postealo y pones aqui el Link para revisarlo cuando tenga tiempo y asi los demas compañeros tambien lo observan y asi sirve como un buen complemento...
Saludos
-
Hey, es posible implementar un integrado con comunicaciòn vía i2c que permite utilizar hasta 4 display a la vez (SAA1064), y si se implementan varios de estos (màximo 4), se pueden controlar 16 displays.
-
Bueno, claro man. si tienes un PIC12FXX tienes que hacer eso y asi poder manejar esa cantidad de displays 7 segmentos.
La idea de este proyecto es dar a conocer el uso de Displays pero con el PIC solamente.
De todas formas postealo y pones aqui el Link para revisarlo cuando tenga tiempo y asi los demas compañeros tambien lo observan y asi sirve como un buen complemento...
Saludos
Definitivamente pienso que un pic debe estar dedicado a tareas más complejas o rentables que esclavizarlo a multiplexar un displey de 7 segmentos, además que intentar utilizar una de estas rutinas de miltiplexar dentro de rutinas más complejas no es cosa fácil ya que el pic debe dedicar toda su atención a multiplexar.
Existen gran cantidad de dispositivos dedicados a resolver este asunto y liberar al micro de esta tarea.
La decisión de que opción utilizar depende de cuestiones que van mas allá del costo ya que por ejemplo un max7219 con 8 displey de 7 segmentos tendría un valor igual o superior que un lcd 16x2.
El lcd tiene la ventaja de que podemos visualizar información alfanumérica el display 7 segmentos esta muy limitado en este aspecto.
Un displey de 7 seg es posible verlo a varios metros asunto por el cual es ampliamente utilizado dentro de la industria un lcd después de unas decenas de centrómeros ya no es posible leerlo.
-
En esta implementación manejo 4 display de siete segmentos con un solo pin del micro
Video:
http://www.4shared.com/embed/151111183/339b9d76 (http://www.4shared.com/embed/151111183/339b9d76)
Utilizo cuatro registros de desplazamientos 74164 y es posible elegir entre uno o dos pines. Para el caso de un pin puse un filtro RC pasa bajos.
(http://img27.imageshack.us/img27/2171/p1050640o.jpg)