Duda PIC rs232

Estoy enviando datos con un pic (16f877) a un PC por RS-232, y me encuentro con el problema al enviar en valor de un registro, si coloco el registro en W y lo env=EDo, como es normal lo que recibo es el valor en ASCII y lo que yo quiero es el valor que contiene el registro, por ejemplo si env=EDo el valor del registro que vale 0x32 (dec. 50) aparece 2, la duda es si hay alg=FAn tipo de tabla o macro que realice la conversi=F3n de forma que si el registro vale 0x32 se env=EDe v=EDa ASCII en valor en decimal (50). Gracias

Reply to
Joan
Loading thread data ...

El otro día, Joan nos estuvo contando:

El valor 50 está compuesto por 0x35, 0x30 y alguna separación, o sea 3 carácteres son los que tienes que enviar. Se puede hacer la conversión más o menos fácilmente en asm, busca algun algoritmo ya hecho en google. Si utilizas C puedes usar la función printf que ya hace la conversión directamente.

--
Saludos.
Reply to
Reinoso G.

O te entiendo lo contrario de lo que dices, o dices lo contrario de lo que sucede, o .... si tu envías un registro lo que envías es el contenido de ese registro, y lo que recibes es eso mismo. Si envías 0x32, recibes 0x32, no hay en el PIC ningún firmware encargado de convertir valores binarios a asci.

Otro tema aparte es que una vez en el PC, un byte 0x32 puede ser interpretado de distintas formas (pero sigue siendo solo 0x32), por ejemplo puedes pensar que es el asci '2', o puedes pensar que es un valor decimal 50, o puedes tomarlo como parte de un numero más grande o lo que tu quieras.

Reply to
Nolo Pongo

Buenas, creo que no me explique bien, de todas formas ya esta solucionado, pero os pongo un ejemplo y seguro que me entend=E9is

movlw 'V' call TX_RS232 movlw 'a' call TX_RS232 movlw 'l' call TX_RS232 movlw 'o' call TX_RS232 movlw 'r' call TX_RS232 movlw '-' call TX_RS232 movf Valor,w ; registro Valor =3D 0x32 como es normal se call TX_RS232 ; env=EDa 32 que en ASCII es 2 y es lo ; que se muestra en el pc

lo que buscaba era alg=FAn algoritmo para pasar el contenido de valor a ASCII de forma que en el PC se mostrara Valor-050 y no Valor-2 movlw '-' call TX_RS232 movf Valor,w movwf BYTE_a_ASCII call BIN_ASCII ; rutina con el algoritmo de conversion movf CENTENA_ASCII,w call TX_RS232 movf DECENA_ASCII,w call TX_RS232 movf UNIDAD_ASCII,w call TX_RS232

Reply to
Joan

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.