Programación Específica > Microcontroladores

 Como Ve Los Datos El Pic

(1/3) > >>

karen81:
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:

Alternative:
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:
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.. ;)

karen81:

--- Citar ---mira la tabla que yo tengo del codigo ASCII es de EEUU
y si envias los datos aaa123, en el pic recibirias 979797495051
--- Fin de la cita ---
:) 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..
--- Fin de la cita ---

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


gracias de antemano  :comp:

eliza_marti:
: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:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa