• Domingo 22 de Diciembre de 2024, 16:00

Autor Tema:  Como Ve Los Datos El Pic  (Leído 8434 veces)

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Como Ve Los Datos El Pic
« en: Martes 22 de Noviembre de 2005, 16:38 »
0
es la primera vez que voy a enviar letras y otros caracteres a un PIC y me ha surgido la duda de como llegan estos valores al PIC, los mando desde visual basic desde el puerto serial, me imagino que si mando las letras "aaa" al pic llegaran los numeros hexadecimales 616161 que es su codigo ascii, ahora la duda que me surge es con los numeros  :huh: , he trabajado con los ADC y con envio de otros valores numericos y no recuerdo haber estado convirtiendo de ascii a hexadecimal en el pic ni tampoco estar convirtiendo en ascii para mostrarlos en un textbox cuando el pic los envia a la PC, mi pregunta concreta es: cuando envio numeros en el puerto serial al pic ,¿llegan al pic en ascii o solo las letras?, es decir si envio aaa123 como llegaria?  ¿616161313233? o ¿616161123?  :unsure:


cualquier ayuda sera bienvenida


gracias de antemano :hola:
No basta tener buen ingenio; lo principal es aplicarlo bien.

Alternative

  • Miembro MUY activo
  • ***
  • Mensajes: 176
    • Ver Perfil
Re: Como Ve Los Datos El Pic
« Respuesta #1 en: Martes 22 de Noviembre de 2005, 16:51 »
0
Saludos, mira la tabla que yo tengo del codigo ASCII es de EEUU
y si envias los datos aaa123, en el pic recibirias 979797495051, ya que todo dato enviado por la computadora es codigo ASCII, si realisas un programa que te despliegue en el LCD los datos recibidos de la computadora si te desplegara aaa123, ya que el LCD trabaja con ASCII.

Mira nose si necesites que te scanee mi tabla de ASCII que tengo, pero ahi me habisas, tambien tengo algunos programas sencillos serial, para el PIC16F84A, pic16F88, PIC16F877, para el PIC18F452

Saludos y espero me hayas entendido.

P.D. abri una nueva discusion y te agradeceria
       si me pudieras echar la mano bye

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Como Ve Los Datos El Pic
« Respuesta #2 en: Martes 22 de Noviembre de 2005, 19:05 »
0
Hola karen81  :hola: ..Según lo que he podido entender en lo que va de mi aprendizaje pues yo lo veo de esta manera.. :rolleyes: ..todo lo que se transmite debe convertirse a binario para asi tomar valores de presencia o ausencia de voltaje..(como els logico... :P )  en visual basic usamos el control MSComm, el solito se encarga de las conversiones..por ejemplo si mandas una letra a pues para transmitir un binario, primero la a tienes que convertirla a un número por eso su codigo ascii 61 en si transmite el 61 en binario.. :) ..un número se lo transmite asi como está porque este si se lo puede transformar en binario normalmente.. :) ....el pic de un principio no entiende de letras ni de numeros solo de voltajes que le llegan en determinados tiempos concordados por ambos (TX y RX)..esto significa que deben de tener  exacta sincronizacion .. :)  (byte s a transmitir, bits de parada, paridad)..una  vez que detecta que ha llegado por ejemplo un byte entonces este lo verá como un numero (numero máximo es 2^8)....ya depende de ti de tratarlo como una letra o como un numero..si es como una letra entonces pienso que tienes que usar tablas de conversion...ahora..del pic al puerto serial pues es lo mismo..si se transmiten letras en si son numeros (ascii) que se convierten a binario y se transmiten ..el control Mscomm el VB se encarga de verrificar los tiempos y todo lo demas segun se lo haya seteado inicialmente...(en binario es como se tratan internamente)

Bueno..espero que si estoy equivocada en algo alguien me corrija.. :P ..eso es lo que pienso de mi corta experiencia con RS232..

Bueno...espero haberte despejado un poquito.. :hola: ..chau..y suerte.. :hola:  :comp:

PDTA: Si has hecho algun experimento en visual basic te daras cuenta que con el Mscomm puedes`presentar los datos recibidos tanto en binario hexagesimal o caracter  :)  ..sin que nosotras hagamos nada..eso es porque el el control lo hace todo porque en escencia es un binario.. ;)
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Como Ve Los Datos El Pic
« Respuesta #3 en: Martes 22 de Noviembre de 2005, 23:59 »
0
Citar
mira la tabla que yo tengo del codigo ASCII es de EEUU
y si envias los datos aaa123, en el pic recibirias 979797495051
:) en esto estas equivocado porque me estas dando los valores ascii en "decimal" y llegan en hexadecimal al pic, ojo  :) .
Citar
en visual basic usamos el control MSComm, el solito se encarga de las conversiones..por ejemplo si mandas una letra a pues para transmitir un binario, primero la a tienes que convertirla a un número por eso su codigo ascii 61 en si transmite el 61 en binario..  ..un número se lo transmite asi como está porque este si se lo puede transformar en binario normalmente..

entonces quiere decir que si envio aaa123 recibo 61 61 61 12 3 verdad???
o aun no he entendido???


gracias de antemano  :comp:
No basta tener buen ingenio; lo principal es aplicarlo bien.

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Como Ve Los Datos El Pic
« Respuesta #4 en: Miércoles 23 de Noviembre de 2005, 16:01 »
0
:hola: ..si karen81 asi es.. :) ...(por el lado del Pc ..si utilizas VB) con el Mscomm no tienenes que preocuparte por enviar un bit de start o uno de stop ni tampoco andar preocupandote por los tiempos de bit ni nada..todo eso el control lo hace solito..y como lo sabe?..pues en el momento que lo seteas ..es decir en el momento que estableces que protocolo utilizarás..(baudios, bit de paridad...)..en cambio.. en el pic no tienes ningun control que te ayude..entonces tendrás que programarlo de manera que te detecte si lo que te llega es ruido o no..y detectar bit a bit el byte y demas.. :) ..todo lo que llega es binario..si es un número pues te llegará el número pero en binario..si es un caracter te llegará el asccii del caracter en binario..

Espero me haya hecho entender..pero si tienes dudas pues pregunta sin problemas.. ;)  ...

Bueno te deseo mucha suerte ..bye bye.. :hola:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

Ale_la_maga

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Como Ve Los Datos El Pic
« Respuesta #5 en: Miércoles 23 de Noviembre de 2005, 16:30 »
0
Holita!!!!
Perdón perdón que meta la cuchara.
Es correcto  al pic solo llegan binarios, ahora el problema de "letras" o números se presenta cuando se quiere respresentar en un LCD o enviar datos por el hiperterminal de windows, por ejemplo el número 1 el 2 o el 3 ya que si enviamos al LCD el 0x01 no veremos lo que esperamos para ver el 1 en un LCD deberemos enviar el 0x31 que es el hexa que representa el ascii 1, el concepto de letras y números solo es importante para la interpretación humana y su converción es simple si pensamos que queremos ver un 0 en una pantalla LCD y recibimos el numero 0 por el RS232 el pic solo debería sumarle 30 a esto es decir 30+0 =30 Ascii 0, si recibo el 0x01 y quiero ver el 1 en la pantalla LCD sumo 30+1=31 el ascii del 1 y asi todos los números para convertirlos en su valor ASCII, para diferenciar entre hexa´s que representan número y hexa´s que representan letras se puede hacer una comparación y si el hexa recibido está dentro del rango de los hexa de los números será un ascii numérico, para esto podemos hacer alguna operación de resta y mirar el bit C del Status para saber si <o >.
De esta forma es posible tambien diferenciar no solo valores ascii que representan números o letras sino tambien secuencias de comandos desde el teclado como el enter, la barra espaciadora etc, etc.
Un saludo para todos y disculpen la intromisión.

 Alejandra

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Como Ve Los Datos El Pic
« Respuesta #6 en: Miércoles 23 de Noviembre de 2005, 19:06 »
0
Holis Chicas.. :P   :hola: ..Que Lindo!..porfin puedo decir nosotras..jijiji :D ..bueno..llendo al punto..la verdad es que nunca he experimentado con LCD's .pero según lo que he visto por ahi..estos tambien trabajan con ascii..es decir si mandamos una letra P..su ascii es 80..este 80 lo debes de enviar ya sea en binario, hex o decimal..pero es el 80 que se envia..mmm por ejemplo este mismo número transformado en hex es 50..50h (50h=80(ascii))....ahora..no se si alguien por ahi..que tenga a la mano un lcd pueda hacer un experimento enviando al Lcd  por ejemplo una "P"...en vez de enviar el 50h..envie el 80 ... (debe funcionar igual.. :) )...por ejemplo el ascci de 1 es 49 este convertido a hex es 31 (es lo mismo decir 49 que 31h o 00x31)

Lo que dice Ale_la_maga es una forma de convertir a hex un número..pero..en realidad se lo puede enviar en cualquier formato (Ale lo ve en Hex)..lo importante es que sea el ascii

Bueno chicas..nos vemos... :hola: ..nos vemos..bye..un beso..
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Como Ve Los Datos El Pic
« Respuesta #7 en: Miércoles 23 de Noviembre de 2005, 20:23 »
0
Hola a todos (chicas y chicos) :hola:
Hace poco implementé comunicación serie (RS232) entre un 18F y la PC. Siempre se envían 1 y 0, no hay otra opción... Que usemos el codigo ASCII o cualquier otro, depende del protocolo que implementemos; pero en cualquier caso el PIC vé 1 y 0, somos nosotros los que debemos decirle al PIC que significa esa combinación de 1 y 0 :)
En mi caso con el 18F (18F452) utilizé dos bancos de RAM, cada banco tiene 256 bytes; uno para buffer de recepción y el otro para buffer de transmisión. En la aplicación escribo o leo las distintas posiciones de cada banco. Entonces, según la necesidad, digo: de tal posición a tal otra, son caracteres ASCII para mostrar en el LCD; de esta otra a esta otra son valores numéricos (es decir el número hexa, nada de ASCII); entre esta y esta dirección tengo valores de los que me interesa el estado de los bits (registros, o flags, o bits de configuración, o lo que necesitemos...); y asi según lo que necesitemos.
En la aplicación no necesitaba 256 bytes, pero este era el tamaño de mi paquete de datos; los bytes sobrantes estaban ahí, pero los ignoraba. Los paquetes los hacemos del tamaño que queremos, pueden ser menos o más bytes :)
Al terminar cada lazo de mi programa principal enviaba un paquete y a continuación la PC me respondía con otro. Si no hay respuesta, se que no hay comunicación y hago lo que corresponda ;)
Algo similar hice antes, pero usando detección de dirección (9 bits de datos). Comunique varios PIC (16F y 18F), cada uno con una dirección diferente. En este caso los paquetes eran de 16 bytes, un paquete por esclavo; y estaban armados según la necesidad. Cada comunicación era atendida por el esclavo direccionado.
El maestro era un 18F452, y la comunicación RS485.
Ya que que estamos en el baile, alguien sabe donde conseguir buena información sobre Profibus????
Bueno, después de aburrirles tanto, dejen que me despida...
Saludos! :hola:

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Como Ve Los Datos El Pic
« Respuesta #8 en: Miércoles 23 de Noviembre de 2005, 21:07 »
0
Claro Huguen_aus_Tirol.. :hola: eso es lo que yo digo.. :)  ..el pic solo ve 1 s y 0 s..lo que no te entendí fue.. :huh:

Citar
... Que usemos el codigo ASCII o cualquier otro, depende del protocolo que implementemos;

??.. :huh: ..a que te refieres con protocolo?..yo lo llamo a la manera en que se hace la transmisión..osea los baudios (bits por segundos), bit de parada..paridad..mmm???? yo pensaba que eran 2 cosas que no tienen nada que ver ..por ejemplo si mando un 2 a w entonces w=00000010 y para transmitirla al Pc pues esta a su vez puedo almacenarla en una variable y esta hacerla rotar bit a bit y la envio por  x pin..si mando por ejemplo una "a" pues tendré que enviar su ascii 97 (o 61h) este a una varible que automaticamente la verá como un binario..(sin que yo la esté convirtiendo)..y nuevamente tendré que rotar la variable bit a bit y enviarla por el pin x de transmision..

..saluditos.. :hola:
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

Ale_la_maga

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Re: Como Ve Los Datos El Pic
« Respuesta #9 en: Miércoles 23 de Noviembre de 2005, 21:07 »
0
Hola
En el manual del PLC S7 400 al final en la parte  de "Apartados" hay información interesante sobre este bus de campo, no es mucha pero es muy puntual sobre como se acomoda la trama y protocolo en general. En los manuales de los variadores Micro Master de Siemens tambien al final hay informción sobre Profibus ya que la idea es conectarlos entre si.

 Saludos
     Alejandra

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Como Ve Los Datos El Pic
« Respuesta #10 en: Miércoles 23 de Noviembre de 2005, 23:42 »
0
Hola!
Según mi punto de vista, que se envien 8 o 9 bits, con bit de parada y demás yerbas, es parte del estandar. Y protocolo lo entiendo como el "idioma" que usemos para que las dos partes se entiendan. Por ejemplo, en la caso que les comenté anteriormente, en los paquetes que armaba para la transmisión cada byte tenía un significado en particular; esto es el "protocolo". Que haya usado RS232 o 485, es cosa del estandar. Yo al menos lo veo así :)
Como tu dices, si envias el caracter "a" como el codigo 0x61 (ASCII), el receptor debe saber que está recibiendo codigos ASCII (es el protocolo). Que hayas configurado el puerto de comunicación serie con 8 bits, bit de parada y paridad, a 9600 baudios, por ejemplo, es parte del estandar.
No se si esta correcto esto, pero es mi punto de vista.

Gracias Ale! Trabaje mucho con la serie S7 400, más precisamente con los 413; lo mismo con los Micro y Mini Master, todos en red por Profibus y comandados por varios PLC (estos en red Ethernet). Habran sido unos 300 variadores :o
Pero no había tenido tiempo de ver detenidamente los manuales. Tengo algunos CD´s de Siemens en algún lugar guardados, ya me fijo si encuentro algo...
Es una idea de aquella época, pero no sería malo poder implementar algo con un MCU para este interesante bus de campo. Alguien se engancha? Pero no es fácil :lightsabre:
Tengo el estandar, pero muy poco (nada) del protocolo :(

Bueno, gracias!

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Como Ve Los Datos El Pic
« Respuesta #11 en: Jueves 24 de Noviembre de 2005, 02:04 »
0
:comp: bueno creo que ya entendi eliza_marti   :lol: muchas gracias

solo queria recalcar que nunca tuve duda de que al puerto serial y al pic les llegaban solo 1 y 0 y que no sabia si eran letras o numeros  :comp: , lo digo porque casi todos lo recalcaban,  de hecho mi proyecto lo que hara es cifrar datos y no interesan si son letras numeros u otros simbolos mi duda era porque para cifrar los datos iba a hacer operaciones con datos que van a estar ya almacenados en el PIC y deben estar en el mismo formato
gracias a todos por su ayuda :)
No basta tener buen ingenio; lo principal es aplicarlo bien.