本帖最后由 yeshaozhu 于 2010-3-25 12:52 编辑
最近在做一个51单片机和pc机的程序(单片机用c,pc机界面用MFC),初学单片机,遇到一些问题想请教一下高手们:
问题:数据传送格式的问题。通过程序的测试(用接在P0口的流水灯测试),发现数据以ASCII的形式在pc机之间传送,而想要通过P0口输出的时候只能对最低位那个字符进行显示,如发送f0,则P0=49。
而我想以十六进制的方式进行通信,不知道怎么改进程序。
注:用串口调试工具对单片机进行调试时能够以十六进制正常通信。
单片机主程序如:
void main()
{
TMOD =0x20;
TL1=0xfd;
TH1=0xfd;
SCON =0x50;
PCON=0x00; //串口接受字符RI复位,允许串口接收
TR1=1;
ES=0;
while(1)
{
while(RI==0);
RI=0; //串口接收标志位的软件清零
ACC=SBUF;
P0=ACC;
SBUF=P0;
while(!TI);
TI=0;
}
}
MFC发送字符主要程序(用串口通信的控件编程的,可能相对比较简单一点,初学嘛。。。)如下:
发送按钮函数中:
UpdateData(TRUE); //读取编辑框内容
m_ctrlComm.SetOutput(COleVariant(m_TXData));//发送数据,m_TXData为编辑框中获得的数据,类型为CString
|