资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
基于单片机的数据串口通讯的实现华北理工大学轻工学院 张金言【摘要】基于串口通信的原理,分析和讨论了计算机与单片机进行通讯的协议。重点研究了计算机端与单片机端的程序设计方法,提出了一种利用 C 语言实现串口通讯的程序思路。要制定合理的通讯协议,串行口的软件编程的关键在于通信格式与波特率的设定。实验证明该设计方法简单方便,系统运行稳定可靠。【关键字】 串口通讯;单片机;程序设计Serial data communication based on single chipQing Gong college north CHINA university of science and technology Zhang Jin Yan AbstractBased on the principle of serial communication, this paper analysed and discussed the communication agreement computer and monolithic machine. Studied programming method of the computer and monolithic priority, proposed a method used for program design of serial communication between computer and monolithic machine using C Builder. Communication protocol to establish reasonable, key serial port software programming in the communication format and baud rate setting. Experiment proved that the design method is simple and system operation is stable and reliable.Keyword: serial communication; single chip microcomputer; program design1 串口通讯的选择串行通讯的标准接口存在很多种,如 RS-232,RS-485,USB 接口,IEEE-1394 等,它们各有特点,应用的领域也各有侧重。RS-485 在传输数据的时候抗噪声干扰的能力较强,常用于工业生产领域;USB 接口和 IEEE-1394 传输速度较快,而且 USB 接口尤为常见,所以本次实验利用 USB 进行端口通讯最为合适。2 串口串行通讯的含义单片机通信是指单片机与计算机或单片机与单片机之间的信息交换,通常单片机与计算机之间的通信较多。通信有并行和串行两种方式。在单片机系统以及现代单片机测控系统中,信息交换多采用串行通信方式。串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。其特点是传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。3 80C51 的串行口结构有两个物理上独立的接收、发送缓冲器 SBUF,它们占用同一地址 99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时 CPU 是主动的,不会产生重叠错误。4 串口通讯的程序设计串行通讯程序设计包括三方面,一方面是单片机的通信程序,另一方面是计算机的通信程序,从外为了保证通信数据的可靠性,在编写程序前,还要为双方制定通信协议。在此只讨论单片机的通信程序以下方程序为例此程序为: 计算机输入一个个位数给单片机,单片机输出输出这个数并输出加减乘除中任意一个符号,然后计算机输入另一个数给单片机,单片机输出这个数,等于号以及两数计算的结果。#include#include /包含产生随机数函数的头文件#define uint8 unsigned char#define uint16 unsigned int#define int8 char#define plus 43 /定义需要用到的字符的 ASCII 码#define minus 45#define times 42#define divide 47#define equal 61#define E 69#define R 82uint8 orgnum2; /储存两次输入的值uint8 X; /储存void Init(void);1S B U F发送控制器接收控制器移位寄存器控 制门T IR IAT X DR X D去串口 中 断S M O D01T H 1 T L 1 2 1 6S B U FT 1 溢出率void main(void)uint8 i=0,m,j,k,p,q,t=1;int8 n;Init();while(1)if(F0)ES=0; /关闭中断orgnumi=X;i+; if(i=1) /输入第一个数的时候进入此循环 j=orgnum0-48; /将第一个数实际的值赋给 jSBUF=orgnum0; /输出 j 的值while(!TI); /TI:发送中断标志位TI=0;m=rand()%4; /产生随机数字if(m=0) /如果等于 0 则输出加号SBUF=plus;while(!TI);TI=0; if(m=1) /减号SBUF=minus;while(!TI);TI=0;if(m=2) /乘号SBUF=times;while(!TI);TI=0;if(m=3) /除号SBUF=divide;while(!TI);TI=0;if(i=2) /输入第二个数后进入此循环 k=orgnum1-48; /将第二个数实际的值赋给 kSBUF=orgnum1; /输出 k 的值while(!TI);TI=0;SBUF=equal; /输出等于号 61 为等于号while(!TI);TI=0;if(k=0&m=3) /判断如果第二个数(除数)等于零 且做的是除法 则输出 ERSBUF=E; /输出 Ewhile(!TI);TI=0;SBUF=R; /输出 Rwhile(!TI);TI=0;t=0; /如果进入此循环则不用运行后边的运算程序if(t) /判断switch(m) /运算程序case 0:n=j+k; /此处 n 为 char 类型 此类型可以为负数break;case 1:n=j-k;break;case 2:n=j*k;break;case 3:n=j/k;break;if(n=0) /当 n 大于等于 0 时 if(n=10) /当 n 大于等于 10 时p=n/10;SBUF=p+48; while(!TI);TI=0;q=n%10;SBUF=q+48;while(!TI);TI=0;if(n-10) /当 n 小于零且大于-10 时SBUF=48;while(!TI);TI=0;q=n%10;SBUF=-q+48;while(!TI);TI=0; t=1; /初始化i=0;ES=1;/开启中断F0=0;void Init(void)TMOD=0x20; /定时器一,工作方式 2,8 位自动重装载TH1=0xf3;TL1=0xf3; /波特率为 2400SCON=0X50; /串口方式 1,允许接收IE=0x90; /打开串口中断 EA=1;ES=1 ;TR1=1;void Serial_ISR(void) interrupt 4RI=0;X=SBUF; /将 SBUF 寄存器中的数值赋给 XF0=1;参考文献:1 赵晓东,张丽梅 .51 单片机串口通信仿真的纯软件实现J.科技信息,2008.7.2 吴佳,钱伟康 . 51 系列单片机多串口通讯任务的实现J.东华大学学报(自然科学版),2005.12.3 胡谦珀. MCS-51 单片机多串口通讯技术应用分析J.科技向导(高教论述),2013,14.4 张英. MCS-51 单片机多串口通讯应用初探J. 信息系统工程,2013,38(2):125-127.5 赵亮. 跟我学 51单片机(三)单片机串口通信实例M.北京:高等教育出版社,200815-18 31.6 刘 鹏. 基于 51单片机串口通讯的多路采集系统J. 江西行政学院学报,2011,04.7 童英华,冯忠岭 . PC 机和51 单片机串口通信的仿真M.计算技术与自动化,2009.6.8 张杰. 单片机与 pc 串口通讯的实现J.IT 论坛,2010.7.9 王静. 基于单片机的数据串口通信D. 长江大学,2012.9.10 王公仆, 王文成. 计算机与单片机的串口通讯程序设计J.大津理工学院学报,2007,15(2):56-58.
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号