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

Temas similares

30/11/2007 #1

Avatar de anthony123

Algoritmo para nombre and POV led
Hola compañeros este es uno de los muchos temas que escribiré para preguntar y debatir sobre los PIC's. Bueno, la cuestion es la siguiente: en josepino se encuentra un proyecto sobre un airdisplay (parecido al propeller clock que tanto me gusta y me gustara) y se muestra un algoritmo para personalizar el mensaje. Me gustaria que me explicaran cuales son los pasos que debo tomar para modificar el algoritmo con mi nombre (anthony) y en diversas ocaciones cambiarlos a otros.
Aqui se encuentra el link del algoritmo: http://www.josepino.com/pic_projects...play_code.html. Gracias por su atensión y tiempo y espero sugerencias, modificaciones, etc. Gracias
30/11/2007 #2


Con lo sencillo que es decir "usar tablas"
¿Cual es el problema? es tan facil como... pos no, lo es más aun. dolo tienes que ir llamando ´a la letra que quieres invocar. en orden claro está.

con fijarte un poco, igual te das cuenta y todo.

PD joer como se notan los tripis
30/11/2007 #3

Avatar de anthony123

Pues lo que pasa es que estoy superrrrr novato en esto de los PIC's y no se que tomar. Saludos.
PD: Me podrias mostrar como se haria con las 2 primeras letras?
30/11/2007 #4

Avatar de anthony123

Algo asi?

Código:
 ;Microcontroller:  12f629 Speed: 4 Mhz Internal RC

delay 200 miliseconds
Set Comparator Mode 7

variable byte f = 00000000b   ; Output data
variable byte s                  ; Temporal variable
variable byte o                  ; message number.

procedure salida( s as byte ) is
gpio = s
delay 500 us
gpio = 00000000b
delay 200 us         
end procedure

procedure disp ( f as byte ) is
if f = "0" then f = "O" 
if f = "A" then
   salida(0011_0110)
   salida(0000_0101)
   salida(0000_0101)
   salida(0011_0110)
end if
if f = "B" then
   salida(0011_0111)
   salida(0010_0101)
   salida(0010_0101)
   salida(0001_0010)
end if
if f = "C" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0010_0001)
   salida(0010_0001)
end if
if f = "D" then
   salida(0011_0111)
   salida(0010_0001)
   salida(0010_0001)
   salida(0001_0110)
end if
if f = "E" then
   salida(0011_0111)
   salida(0010_0101)
   salida(0010_0101)
   salida(0010_0001)
end if
if f = "F" then
   salida(0011_0111)
   salida(0000_0101)
   salida(0000_0101)
   salida(0000_0001)
end if
if f = "G" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0010_0101)
   salida(0011_0101)
end if
if f = "H" then
   salida(0011_0111)
   salida(0000_0100)
   salida(0000_0100)
   salida(0011_0111)
end if
if f = "I" then
   salida(0010_0001)
   salida(0011_0111)
   salida(0010_0001)
end if
if f = "J" then
   salida(0001_0000)
   salida(0010_0000)
   salida(0010_0000)
   salida(0001_0111)
end if
if f = "K" then
   salida(0011_0111)
   salida(0000_0100)
   salida(0001_0010)
   salida(0010_0001)
end if
if f = "L" then
   salida(0011_0111)
   salida(0010_0000)
   salida(0010_0000)
   salida(0010_0000)
end if
if f = "M" then
   salida(0011_0111)
   salida(0000_0010)
   salida(0000_0100)
   salida(0000_0010)
   salida(0011_1111)
end if
if f = "N" then
   salida(0011_0111)
   salida(0000_0010)
   salida(0000_0100)
   salida(0001_0000)
   salida(0011_0111)
end if
if f = "O" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0010_0001)
   salida(0001_0110)
end if
if f = "P" then
   salida(0011_0111)
   salida(0000_0101)
   salida(0000_0101)
   salida(0000_0010)
end if
if f = "Q" then
   salida(0001_0110)
   salida(0010_0001)
   salida(0011_0001)
   salida(0011_0110)
end if
if f = "R" then
   salida(0011_0111)
   salida(0000_0101)
   salida(0000_0101)
   salida(0011_0010)
end if
if f = "S" then
   salida(0010_0010)
   salida(0010_0101)
   salida(0010_0101)
   salida(0001_0001)
end if
if f = "T" then
   salida(0000_0001)
   salida(0011_0111)
   salida(0000_0001)
end if
if f = "U" then
   salida(0001_0111)
   salida(0010_0000)
   salida(0010_0000)
   salida(0001_0111)
end if
if f = "V" then
   salida(0000_0111)
   salida(0001_0000)
   salida(0010_0000)
   salida(0001_0000)
   salida(0000_0111)
end if
if f = "W" then
   salida(0011_0111)
   salida(0001_0000)
   salida(0000_0100)
   salida(0001_0000)
   salida(0011_0111)
end if
if f = "X" then
   salida(0010_0001)
   salida(0001_0010)
   salida(0000_0100)
   salida(0001_0010)
   salida(0010_0001)
end if
if f = "Y" then
   salida(0000_0001)
   salida(0000_0010)
   salida(0011_0100)
   salida(0000_0010)
   salida(0000_0001)
end if
if f = "Z" then
   salida(0011_0001)
   salida(0010_0101)
   salida(0010_0101)
   salida(0010_0011)
end if
if f = "1" then
   salida(0010_0001)
   salida(0011_0111)
   salida(0010_0000)
end if
if f = "h" then         ; 'h' lowercase = Hearth character
   salida(0000_0010)
   salida(0000_0111)
   salida(0001_0111)
   salida(0011_0110)
   salida(0001_0111)
   salida(0000_0111)
   salida(0000_0010)
end if
if f = "!" then
   salida(0000_0000)
   salida(0010_0111)
   salida(0000_0000)
end if
if f = "'" then
   salida(0000_0011)
end if
if f = "." then
   salida(0010_0000)
end if
if f = "o" then        ; 'o' Lowecase
   salida(0001_0000)
   salida(0010_0100)
   salida(0010_0100)
   salida(0001_0000)
end if
if f = " " then        ; space character.
   delay 4 miliseconds
end if
delay 1 milisecond
end procedure

; main program
gpio = all output

if o = 0 then
; Display  "ANTHONY"
o = o + 1
anthony loop
disp("A")
disp("N")
disp("T")
disp("H")
disp("O")
disp("N")
disp("Y")
disp(" ")
disp("h")
end loop
end if
o = 0
salida(0000_0000)
sleep microcontroller   ; sleep command
nop   ; No operation
01/12/2007 #5


Hay una opción, no te lo tomes a mal, que te permite simular los programas. Prueba a usarla a ver que ocurre.

Saludos

PD me encanta tu postura. eres un autodidacta que merece la pena apoyar.
01/12/2007 #6

Avatar de anthony123

Muchas gracias, pues lo que se lo saque de leer ,comprender y preguntar demasssss. Bueno me podrias decir que programa? Estube conversando con algunos compañeros y me dijeron que necesito copilarlo o algo por el estilo y trabajar en conjunto con el MPlab
03/12/2007 #7


mira anthony
en el mplab puedes crear tus programas y compilarlos y luego consiguete el proteus , una herramienta poderosisima para simulacion de microcontroladores y en ella lo simulas
04/12/2007 #8

Avatar de anthony123

La pregunta del millon de dolares es: ¿Como lo hago? segun lo entendido ese lenguaje no es empleado en MPLAB
04/12/2007 #9


LA pregunta más lógica no sería ¿El programa original funciona?
Contesta eso primero. y luego continuamos.

Saludos

PD. Esa pregunta te va a costar unas birras.
04/12/2007 #10

Avatar de anthony123

El nombre dijo:
PD. Esa pregunta te va a costar unas birras.
Ya las estoy enviando por fedex!
Pues la verdad que modifique el codigo en microbasic y lo copile. Falta que me llegue el PIC y lo armo de una.
PD: Todavia dejo una pregunta al aire ¿Como lo hago con mas resolusion empleando el archiconocido 16F84A?
06/12/2007 #11


El programa es muy sencillo en asm. Usando tablas va al pelo. En volver de vacaciones, si alguien no se adelanta. lo hacemos.
06/12/2007 #12

Avatar de anthony123

Podrias darme mas datos please:
*nombre del programa
*donde consigo la tabla?
13/12/2007 #13


te adjunto un programita muy sencillo para sacar un código de una tabla.
Primero aprende a utilizar la tabla simulando con el Mplab.
Si comprendes como funciona podrás hacerte el que quieras facilmente. Tiene una pega si tasas con las tablas. ya te darás cuenta.

Saludos y paciencia
Archivos Adjuntos
Tipo de Archivo: asm ejem1_10_123.asm (1,3 KB (Kilobytes), 408 visitas)
13/12/2007 #14

Avatar de anthony123

mmm la verdad tedria que ir intentando. Pero siempre me ha gustado tener una persona que me ayude personalmente o que acuda a un curso no se. Creo que se aprende mejor asi. Pero gracias por la ayuda. Seguire intentando. Cualquier cosa lo publico aki.
14/12/2007 #15


hombre, viene a ser como nadar. tienes que empezar por el principio.
Bájate un tutorial y...
Tienes todo el permiso del mundo para bombardear mi correo cuanto quieras y respecto a lo que quieras. (no más que cervezas, pasta ni un ctmo).

A tu servicio
15/12/2007 #16


No sé si entiendo la pregunta.

Los códigos que mandas a los leds los enciendes y apagan, formando el dibujo de las letras. Si inclinas tu cabeza sobre el hombro derecho y te fijas en los códigos, verás el "dibujo" que se manda para "dibujar" cada letra.

Con eso puede crear cualquier gráfico. Prueba a dibujar el texto que quieres en papel cuadriculado, y pasa luego la secuencia de casillas encendidas/apagadas al PIC.

Si no estoy respondiendo a la pregunta, disculpadme :-)
15/12/2007 #17

Avatar de anthony123

He visto millones de tuto's (hiperbole moderada) pero todos EXIGEN tener algo de conocimiento en X lenguaje, cosa que caresco!
15/12/2007 #18


En breve voy a disponer de mi ordenata y así poder terminar una cosa que tengo pendiente en este gran foro. Si quieres podemos abrir un par de temas ya que nadie se decide:
En uno voy comentando el pic en ensamblador, desde cero.
En otro se van comentando problemas.
De esa forma se puede quedar un bonito tutorial
16/12/2007 #19


Hola he visto el circuito del enlace que aparece en el primer post, me podriais explicar de como con ese circuito, tan solo 7 leds, se puede ver una palabra, perdonad la intrusion en el tema pero parece interesante.
Un saludo.
16/12/2007 #20


patriceloco dijo:
Hola he visto el circuito del enlace que aparece en el primer post, me podriais explicar de como con ese circuito, tan solo 7 leds, se puede ver una palabra, perdonad la intrusion en el tema pero parece interesante.
Un saludo.
Letra A:

Código:
  **
 *  *
*    *
******
*    *
*    *
Letra K

Código:
*      *
*    *
*  *
**
*  *
*    *
*      *
Los 7 leds que giran son cuando están en la posición angular "1", se iluminan todos a la vez
un momento despues, que se han movido, se apagan todos menos el central. Un momento despues se apaga el central y se encienden los que tenía a cada lado. Un poco despues, se apagan esos dos y se encienden los dos que tienen a su lado, hacia el exterior... etc.
Acabas de dibujar una letra "k" en el aire
¿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.