TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: quodigital en 27 de Febrero de 2007, 02:12:18
-
Bunas, tengo una gran duda, como verán este programa hace lo siguiente, escribe, “HOLA ECHO POR JUAN GRACIAS A USTEDES”, eso se va viendo con 4 display de 7 seg. Y 4 transistores bc 548 que hacen el multiplexado, me han comentado que no hace falta cargar todas las letras que se puede hacer mas simplificado, y la verdad que no se me ocurre, si alguien me da una mano se lo agradecería.. otra cosa si lo hago de esta manera, me queda chico el pic :(
Muchas gracias
Suerte :-/ :-/
ACA EL PROGRAMA
----------------------------
DEVICE 16F84 ' ELIJO EL MICRO
CONFIG PWRTE_ON, WDT_OFF, CP_OFF, XT_OSC
Dim B0 As Byte 'CREO VARIABLE
SYMBOL DIG1 = PORTA.0
SYMBOL DIG2 = PORTA.1
SYMBOL DIG3 = PORTA.2
SYMBOL DIG4 = PORTA.3
SYMBOL PINS = PORTB
'---------------------------------------------------------------
'TABLA DE LETRAS
'---------------------------------------------------------------
SYMBOL aM = %01011111
SYMBOL A= %01110111
SYMBOL b= %01111100
SYMBOL C= %00111001
SYMBOL cM= %01011000
SYMBOL d= %01011110
SYMBOL eM= %01111011
SYMBOL E= %01111001
SYMBOL F= %01110001
SYMBOL G= %01111101
SYMBOL H= %1110110
SYMBOL hM= %01110100
SYMBOL iM= %00010000
SYMBOL I= %00110000
SYMBOL J= %00011110
SYMBOL L= %00111000
SYMBOL n= %01010100
SYMBOL nn= %01010101 'REPRESENTA A LA LETRA (ñ)
SYMBOL oM= %01011100
SYMBOL O= %00111111
SYMBOL P= %01110011
SYMBOL r= %01010000
SYMBOL S= %01101101
SYMBOL t= %01111000
SYMBOL U= %00111110
SYMBOL uM= %00011100
SYMBOL Y= %01101110
'----------------------FIN DE LAS LETRAS----------------------
TRISA= $00
TRISB= $00
DELAYMS 5000
DAVID:
'-------------- HOLA ------------------------------------------------
For B0 = 0 To 50
PINS = H
PORTA = 1
DELAYMS 5
Next
For B0 = 0 To 50
PINS = O
PORTA = 1
DELAYMS 5
PINS = H
PORTA = 2
DELAYMS 5
Next
For B0 = 0 To 50
PINS = L
PORTA = 1
DELAYMS 5
PINS = O
PORTA = 2
DELAYMS 5
PINS = H
PORTA = 4
DELAYMS 5
Next
For B0 = 0 To 50
PINS = A
PORTA = 1
DELAYMS 5
PINS = L
PORTA = 2
DELAYMS 5
PINS = O
PORTA = 4
DELAYMS 5
PINS = H
PORTA = 8
DELAYMS 5
Next
'-------------- HECHO -------------------------------------
For B0 = 0 To 50
PINS = H
PORTA = 1
DELAYMS 5
Next
For B0 = 0 To 50
PINS = E
PORTA = 1
DELAYMS 5
PINS = H
PORTA = 2
DELAYMS 5
Next
For B0 = 0 To 50
PINS = C
PORTA = 1
DELAYMS 5
PINS = E
PORTA = 2
DELAYMS 5
PINS = H
PORTA = 4
DELAYMS 5
Next
For B0 = 0 To 50
PINS = H
PORTA = 1
DELAYMS 5
PINS = C
PORTA = 2
DELAYMS 5
PINS = E
PORTA = 4
DELAYMS 5
PINS = H
PORTA = 8
DELAYMS 5
Next
For B0 = 0 To 50
PINS = O
PORTA = 1
DELAYMS 5
PINS = H
PORTA = 2
DELAYMS 5
PINS = C
PORTA = 4
DELAYMS 5
PINS = E
PORTA = 8
DELAYMS 5
Next
'---------------- POR -------------------------------------
For B0 = 0 To 50
PINS = P
PORTA = 1
DELAYMS 5
Next
For B0 = 0 To 50
PINS = O
PORTA = 1
DELAYMS 5
PINS = P
PORTA = 2
DELAYMS 5
Next
For B0 = 0 To 50
PINS = R
PORTA = 1
DELAYMS 5
PINS = O
PORTA = 2
DELAYMS 5
PINS = P
PORTA = 4
DELAYMS 5
Next
For B0 = 0 To 50
PINS = R
PORTA = 2
DELAYMS 5
PINS = O
PORTA = 4
DELAYMS 5
PINS = P
PORTA = 8
DELAYMS 5
Next
'-------------- JUAN ---------------------------------------
For B0 = 0 To 50
PINS = J
PORTA = 1
DELAYMS 5
Next
For B0 = 0 To 50
PINS = U
PORTA = 1
DELAYMS 5
PINS = J
PORTA = 2
DELAYMS 5
Next
For B0 = 0 To 50
PINS = AM
PORTA = 1
DELAYMS 5
PINS = U
PORTA = 2
DELAYMS 5
PINS = J
PORTA = 4
DELAYMS 5
Next
For B0 = 0 To 50
PINS = N
PORTA = 1
DELAYMS 5
PINS = AM
PORTA = 2
DELAYMS 5
PINS = U
PORTA = 4
DELAYMS 5
PINS = J
PORTA = 8
DELAYMS 5
Next
'---------------- PARA -------------------------------
For B0 = 0 To 50
PINS = P
PORTA = 1
DELAYMS 5
Next
For B0 = 0 To 50
PINS = A
PORTA = 1
DELAYMS 5
PINS = P
PORTA = 2
DELAYMS 5
Next
For B0 = 0 To 50
PINS = R
PORTA = 1
DELAYMS 5
PINS = A
PORTA = 2
DELAYMS 5
PINS = P
PORTA = 4
DELAYMS 5
Next
For B0 = 0 To 50
PINS = A
PORTA = 1
DELAYMS 5
PINS = R
PORTA = 2
DELAYMS 5
PINS = A
PORTA = 4
DELAYMS 5
PINS = P
PORTA = 8
DELAYMS 5
Next
'--------------- USTEDES -----------------
For B0 = 0 To 50
PINS = U
PORTA = 1
DELAYMS 5
Next
For B0 = 0 To 50
PINS = S
PORTA = 1
DELAYMS 5
PINS = U
PORTA = 2
DELAYMS 5
Next
For B0 = 0 To 50
PINS = T
PORTA = 1
DELAYMS 5
PINS = S
PORTA = 2
DELAYMS 5
PINS = U
PORTA = 4
DELAYMS 5
Next
For B0 = 0 To 50
PINS = E
PORTA = 1
DELAYMS 5
PINS = T
PORTA = 2
DELAYMS 5
PINS = S
PORTA = 4
DELAYMS 5
PINS = U
PORTA = 8
DELAYMS 5
Next
For B0 = 0 To 50
PINS = D
PORTA = 1
DELAYMS 5
PINS = E
PORTA = 2
DELAYMS 5
PINS = T
PORTA = 4
DELAYMS 5
PINS = S
PORTA = 8
DELAYMS 5
Next
For B0 = 0 To 50
PINS = E
PORTA = 1
DELAYMS 5
PINS = D
PORTA = 2
DELAYMS 5
PINS = E
PORTA = 4
DELAYMS 5
PINS = T
PORTA = 8
DELAYMS 5
Next
For B0 = 0 To 50
PINS = S
PORTA = 1
DELAYMS 5
PINS = E
PORTA = 2
DELAYMS 5
PINS = D
PORTA = 4
DELAYMS 5
PINS = E
PORTA = 8
DELAYMS 5
Next
'------------- GRACIAS--------------
For B0 = 0 To 50
PINS = G
PORTA = 1
DELAYMS 5
Next
For B0 = 0 To 50
PINS = R
PORTA = 1
DELAYMS 5
PINS = G
PORTA = 2
DELAYMS 5
Next
For B0 = 0 To 50
PINS = A
PORTA = 1
DELAYMS 5
PINS = R
PORTA = 2
DELAYMS 5
PINS = G
PORTA = 4
DELAYMS 5
Next
For B0 = 0 To 50
PINS = C
PORTA = 1
DELAYMS 5
PINS = A
PORTA = 2
DELAYMS 5
PINS = R
PORTA = 4
DELAYMS 5
PINS = G
PORTA = 8
DELAYMS 5
Next
For B0 = 0 To 50
PINS = I
PORTA = 1
DELAYMS 5
PINS = C
PORTA = 2
DELAYMS 5
PINS = A
PORTA = 4
DELAYMS 5
PINS = R
PORTA = 8
DELAYMS 5
Next
For B0 = 0 To 50
PINS = A
PORTA = 1
DELAYMS 5
PINS = I
PORTA = 2
DELAYMS 5
PINS = C
PORTA = 4
DELAYMS 5
PINS = A
PORTA = 8
DELAYMS 5
Next
For B0 = 0 To 50
PINS = S
PORTA = 1
DELAYMS 5
PINS = A
PORTA = 2
DELAYMS 5
PINS = I
PORTA = 4
DELAYMS 5
PINS = C
PORTA = 8
DELAYMS 5
Next
'---------- FIN -----------------
PORTA= $00
DELAYMS 2300
GoTo DAVID
-
No se dónde exactamente pero LORDLAFEBRE tiene un hilo donde empezó a colocar ejemplos para PBP y PROTON (que al parecer es lo que usas).
Busca aquí http://www.todopic.com.ar/foros/index.php?topic=3613.0
-
Hola:
El lenguaje es Proton, y lo que se me ocurre que hagas es como en los ejemplos que pusimos, que hagas con vectores, de esta forma cargas los valores de las letras y en esos blucles llamas a los subindices correspondientes del vector para formar la letra.
-
Hola, gracias por sus contestaciones, voy a tratar de hacerlo, mucho no se, pero voy haber los ejemplos.
Gracias y Suerte..!!!! :-/ :-/ :-/ :-/ :-/
-
lo que puede hacer es usar un 74LS138 que es un integrado bastante util con el cual con 3 bits de entrada puedes controlar 8 a la salida, yo hice un par de cosas con multiplexado y displays de 7 segmentos y funciona genial, lo unico es que debes aprender a usarlo correctamente. Una forma de hacer lo que quieres es solo declarar las letras que vas a usar, de esa manera se achica el programa en cuanto a eso, y para hacer que desplace (creo que eso es lo que quieres) puede cargar en registros diferentes cada letra, y por medio del 74LS138 controlar el turno de cada display e ir desplazando de display en display el dato de la letra que sigue, si no me entendiste preguntame por PM y te explico, o si te resulta mas facil otra forma intentalo con esa, pero esta es una opcion mas.
Pablo
-
Hola, no sabia eso del 74LS138,es bastante bueno porque ahorras mucho programa, que bueno muchas gracias, traqto de hacer algo lindo y lo posteo, espero que salga,
Saludos a todos
Gracias
:-/ :-/
-
Lo único es que (si recuerdo bien) debes tener displays de cátodo común para hacer eso. Comento porque por acá donde vivo ya no he visto que manejen cátodo común, solo ánodo.
-
se soluciona con los transistores que usas, o PNP o NPN, o haciendo que las salidas del pic en vez de 1 sean 0 o viceversa
-
hola chicos, he visto que para achicar el codigo guardan todo las letras en una variable o en la instruccion "data" y despues escriben entre comillas ej."quo" y sale directamente en el display.. pero no se como se `programa eso es lo que estoy aberiguando hace bastante...
Saludos a todos Gracias
:-/ :-/ :-/