一种8098单片机和PC机的串行通信方法
上位机串行通信的部分程序:
#define COM1 0 //选定串行端口1
#define DATA_READY 0x100
#define TRUE 1
#define FALSE 0
#define SETTINGS (0xc0| 0x00 | 0x00 | 0x03)
// 4800波特,无校验,1个停止位,8个数据位
main()
{
FILE *fp;
if((fp=fopen(c:\dch\data,wb))==NULL)
{
coutcannot open the filen;
exit(0);
}
int in,out, status=0, DONE = FALSE;
bioscom(0, SETTINGS, COM1); //初始化串行端口
while (!DONE)
{
status=bioscom(3,0,COM1); //返回串行端口的当前状态
if (status DATA_READY)
if ((out=bioscom(2, 0, COM1)0x7F) != 0)
{
…… //从通信线上接收数据
}
if (kbhit())
{
if ((in =getch()) == 'x1B')
{DONE = TRUE;break;}
bioscom(1, in, COM1); //向通信线发送数据
}
}
……
}
实验证明,以上通信程序可读性好、编写容易,并且使上位机和下位机的通信变得直观、简单,而数据传输准确。
5 结束语
本文提出的方法已在笔者的课题“滚齿切削过程扭矩测试与分析”中得到了成功的应用。该方法与采集数据量的大小无关,只是因为采用串行口通讯,当数据量较大时,采集所需时间略长,但采集数据准确可靠,对整个系统的工作无影响。该方法不仅适合于386以上的微机,也适合于PC/XT及其兼容机与8098的通信。
6 参考文献
[1]刘复华.8098单片机及其应用系统设计.北京:清华大学出版社,1993,6
[2]刘振安.MCS-96系列单片微机原理与实践.合肥:中国科学技术大学出版社,1992:141~150
[3]刘鲁源.8098单片机实验教程.天津:天津大学出版社,1992:30~41
[4]叶欣.TURBO C参考手册.北京:中国科学院希望高级电脑技术公司.1990,5
- 基于FPGA的通信系统基带验证平台的设计(06-11)
- 基于DSP的空间光通信APT运动控制箱设计(10-11)
- 嵌入式语音通信系统中VxWorks BSP的设计实现(09-18)
- DSP在通信中的应用(10-12)
- 利用数字信号控制器实现稳健的PLC通信(05-02)
- 短波通信中一种时延设计方法与DSP实现(05-02)