- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PC机与单片机间的串口通信分析
中山火炬职业技术学院
毕业综合实践项目
项目名称: PC机与单片机之间的串口通信分析
作 者: 刘世浩
学 号: 1102070104
系 别: 信息工程系
专 业: 通信技术
指导老师:雷英
专业技术职务 单片机技术
摘 要
单片机的串行口在单片机的日常教学实践和实际的工程技术中,应用十分普遍,因此在学习和设计时经常会对串口进行仿真调试。PC机和单片机的串口通信系统的调试一般需要通过一根串口连接线把带有软件的上位机 (PC机)和下位机(即单片机)连接起来进行,这种方法受实验条件的约束,而且比较烦琐。本文介绍一种用纯软件实现的仿真调试方法,全部过程都在一台电脑上通过软件完成此次课设主题为单片机串口通信的应用之一。通过串口,我们的个人电脑和单片机系统进行通信。个人电脑作为上位机,向下位机单片机系统发送数据帧,单片机系统接收后,发回通信协议要求的数据帧。可以用C++ Builder 语言制作的应用程序界面或串口调试助手字符串输入框中输入数字和字符来实现PC机与80C51系列单片机的串口通信。
关键词:单片机 串口通信 仿真
一、如何串行通信
实现利用虚拟终端仿真单片机与PC机间的串行通信。PC机先发送从键盘输入的数据,单片机接收后回发给PC机。单片机同时将收到的30~39H间的数据转换成0~9的数字显示,其他字符的数据直接显示为其ASCII码。 单片机和PC机进行通信时,要求使用的波特率、传送的位数等相同。要能够进行数据传送也必须首先测试双方是否可以可靠通信。可在PC机和单片机上各编制非常短小的程序,具体可分成PC机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。这三个程序能运行通过,即可证明串行口工作正常。 PC机串行口发送接收程序设置串行口为波特率9600、8位数据、1位停止位、无奇偶校验的简单设置。从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。
二、串行通信详细设计
1.串行通信原理
此次采用80C51系列串口的方式1进行串行通信。串口结构如图1所示。
图1
方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图2所示。其中1位起始位,8位数据位,1位停止位。用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。用单片机内部定时器1即T1,使其工作在方式2,作为波特率发生器。
图2
由于基于C++Builder的通信协议如图3所示,因此在程序编写时,需要在设置一个缓冲区来暂时存储单片机接收的来自PC机的一串字符串。
前导符 站号地址 功能码 数据长度 数据 结束符 校验码 ## AAAA FF LL DDDD @@ X
图3
2.硬件设计
51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换
3.2从机(单片机)接收主机(PC机)发送来的数据帧
3.3从机发送数据帧给主机
(1)解析从机发送的数据帧(程序见附录3的void send()部分)
(2)从机发送数据帧
3.4拓展部分
利用P1口连接的8个LED灯来显示C++Builder的十三个功能(见附录1)。
三、实验调试
1.硬件方面
(1)烧写程序时,已经上电了,可软件还是一直提示上电,反复上电也不行后,最终通过反复换串口,反复烧写上电解决了。类似的还有只要进行烧写,烧写软件界面就会消失,也是通过上述方法解决。
(2)有时烧写时,忽略了相应的串口和波特率的选择甚至忘记打开串口助
您可能关注的文档
最近下载
- 2023年陕西省人民医院医护人员招聘考试题库及答案解析.docx
- 江苏洋河酒厂股份有限公司2024年应届高校毕业生招聘高频考题难模拟试题(共100题)附带答案题库含答.docx VIP
- 人教部编版《阿长与山海经》课件(公开课一等奖) 七年级语文部编版.pptx
- 广州市2023-2024学年高一年级下学期八区期末联考考试英语试题(含答案).doc
- 出师表(标准注音版)修正版.pdf
- 项目化学习视域下小学语文单元作业设计实践探索.docx VIP
- 以竹代塑的可行性分析.docx VIP
- DGTJ 08-205-2024 居住建筑节能设计标准(正式版)(1).docx
- 江苏洋河酒厂股份有限公司2024年应届高校毕业生招聘高频考题难模拟试题(共100题)附带答案题库含答.docx VIP
- 换季衣物巧收纳小学四年级下册综合实践PPT课件.pptx VIP
文档评论(0)