Escrito en lenguaje c51, un programa de comunicación en serie realiza que el microcontrolador AT89S52 envíe una matriz de datos enteros a VB.
Función de conversión de un número entero a ASCII. Si se puede determinar el valor máximo de los datos que desea enviar, puede definir una matriz ASCII basada en el valor máximo. Cada unidad de la matriz almacena un bit de datos enteros.
Antes de enviar, convierta las unidades en la matriz de enteros de envío en matrices ASCII y luego envíelas de acuerdo con la función de envío general.
void InttoChar (uint IntNumber)
//--------------------------- - ----------------------
// Nombre: void InttoChar (int IntNumber)
// Func.: Traducir entero a matriz de caracteres ASCII
// Char.: Número IntNumber que se traducirá a caracteres ASCII
//------- - -------------------------------------------------
{
if (IntNumber < 10)
{
AsciiArray[0] = IntNumber + 0x30;
AsciiArray[1] = 0x20;
AsciiArray[2] = 0x20;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20 ;
return;
}
if (IntNumber < 100)
{
AsciiArray[0] = IntNumber / 10 + 0x30;
AsciiArray[1] = IntNumber % 10 + 0x30;
AsciiArray[2] = 0x20;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
retorno;
}
si (IntNumber < 1000)
{
AsciiArray[0] = IntNumber / 100 + 0x30;
AsciiArray[1] = IntNumber % 100 / 10 + 0x30;
AsciiArray [2] = IntNumber % 10 + 0x30;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
retorno;
p>}
if (IntNumber < 10000)
{
AsciiArray[0] = IntNumber / 1000 + 0x30;
AsciiArray[1] = IntNumber % 1000 / 100 + 0x30;
AsciiArray[2] = IntNumber % 100 / 10 + 0x30;
AsciiArray[3] = IntNumber % 10 + 0x30;
AsciiArray[4] = 0x20;
retorno;
}
más
{
AsciiArray[0] = IntNumber / 10000 + 0x30;
AsciiArray[1] = I
ntNumber % 10000 / 1000 + 0x30;
AsciiArray[2] = IntNumber % 1000 / 100 + 0x30;
AsciiArray[3] = IntNumber % 100 / 10 + 0x30; p> p>
AsciiArray[4] = IntNumber % 10 + 0x30;
retorno;
}
}