c51语言编写,串口通讯程序,实现AT89S52单片机把一个整型数组数据,发送给VB

来源:百度知道 编辑:UC知道 时间:2024/09/22 12:35:51
题意如上,例如怎样把unsigned int shuju [4096]={12345,54321} 这一数组里的数据经过字符转换后,发送给pc机上的VB接收程序存储起来!
我是菜鸟,还望各位高手不吝赐教,感谢!
积分全部奉上,虽然不多,但恳请各位给予援手,感激不尽啊(我想提高悬赏,却提示已达次数上限,郁闷)
unsigned int shuju [4096]={12345,54321}
怎样分“位”后,进行字符强制转换,并且在发送时怎样区分12345和54321这两个数据,利用for循环或其他方式分别发送12345和54321??? 因为{12345,54321}数据之间有“,”逗号

最好各位高手能提供些c51程序或相关实例,以促进鄙人的理解。

当单片机把字符型数据发送给pc机vb程序后,怎样再把数据还原为整型数组shuju [4096]={12345,54321}?

做一个整形到ASCII的转换函数。如果你要发送的数据最大值可以确定,可以根据最大值定义一个ASCII数组,数组的每一个单元存放整形数据的一位。
发送前先对发送整形数组里的单元转换成ASCII数组,然后再按照通用的发送函数进行发送。
void InttoChar (uint IntNumber)
//---------------------------------------------------------
// Name: void InttoChar (int IntNumber)
// Func.: Translate integer to ASCII charactor array
// Char.: IntNumber number to be translated to ASCII charactor
//---------------------------------------------------------
{
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;
return;
}
if (IntNumber < 1000)
{
AsciiArray[0] = IntNumber /