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, y 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 un entero a una matriz de caracteres ASCII
// Char.: Número IntNumber que se traducirá a un carácter 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;
}
}