单片机与PC机串口通信实现.docx
- 文档编号:10959037
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:12
- 大小:34.31KB
单片机与PC机串口通信实现.docx
《单片机与PC机串口通信实现.docx》由会员分享,可在线阅读,更多相关《单片机与PC机串口通信实现.docx(12页珍藏版)》请在冰豆网上搜索。
单片机与PC机串口通信实现
指导教师评定成绩:
审定成绩:
XXXX大学
自动化学院
自动化专业综合设计报告
设计题目:
单片机与PC机串口通信实现
单位(二级学院):
学生姓名:
专业:
班级:
学号:
指导教师:
设计时间:
2010年10月
XXXXX大学自动化学院制
摘要
计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯合并航通讯二种方式。
由于串行通讯具有使用线路少、成本低,特别是在远程传输时,避免了多条线路不一致而被广发采用。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
RS-232C接口(又称EIARS-232C)是目前最常用的一种串行通讯接口。
它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”,该标准规定采用一个25个脚上的DB25连接器,对连接器的每一个脚的信号内容加以规定,还对各种信号的电平加以规定。
随着计算机技术尤其是单片机微型技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力参数进行检测和控制。
PC机具有强大的监控和管理能力,而单片机则具有快速及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通讯,使许多控制系统中常用到的一种通信解决方案。
因此如何实现PC机与单片机之间的通讯具有非常重要的现实意义。
【关键词】:
串口通信单片机PC机串口
目录
摘要1
目录2
1.设计题目2
1.1题目内容2
1.2实现目标2
1.3设计要求3
2.设计报告正文3
2.1串行通信概述3
2.1.1串行通信的原理3
2.1.28051单片机的串行接口结构4
2.1.3串行通信的数据传送方式5
2.2通信协议的采用5
2.3电平转换设计7
3.调试结果(负责部分)9
3.1二进制的调试9
3.2字符串的调试9
2.3波特率的调试10
4.设计总结12
4.1调试中遇到的问题及解决方法12
4.2心得体会12
参考文献13
单片机与PC机串口通信实现
1.设计题目
1.1题目内容
单片机与PC机串口通信实现
1.2实现目标
1.掌握串口通信基本原理;
2.掌握一种单片机基本操作与实现;
3.熟悉和掌握VB程序编写;
1.3设计要求
1.设计电路原理图,并搭建电路;
2.编制PC机与单片机通信的协议;
3.完成单片机和PC机软件编写与调试;
4.测试并完成报告。
2.设计报告正文
2.1串行通信概述
2.1.1串行通信的原理
通信的基本方式可分为并行通信与串行通信两种。
并行通信:
是将组成数据的各位同时传送,并通过并行门(如P1口等)来实现。
在并行通信中,数据传送线的根数与传送的数据位数相等,传送数据速度快,但所占用的传输线位数多。
因此,并行通信适合短距离通信。
如图2-1所示。
串行通信:
是指数据一位一位地按顺序传送。
串行通信通过串行口来实现。
在全双工的串行通信中,仅需要一根发送线和一根接收线,串行通信可大大节省传送线路的成本,但数据传送速度慢。
由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
如图2-2所示。
图2-1图2-2
串行通信有同步通信和异步通信两种基本方式。
(1)异步通信方式(AsynchronousCommunication):
数据通常是以字符(或字节)为单位组成字符帧传送的。
发送方发送各个字符的间隔时间是不定的,收发双方各用自己的时钟源来控制发送和接收,这两个时钟源彼此独立,互不同步。
接收端是依靠字符帧格式来判断发送端是何时开始发送及何时结束发送。
平时,发送线为高电平(逻辑“1”),每当接收端检测到传输线上发送过来的低电平逻辑“0”(字符帧中起始位)时,就知道发送端已开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字符信息己发送完毕。
(2)同步通信方式(SynchronousCommunication):
是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。
这里的信息帧和异步通信中的字符帧不同,通常有若干个数据字符。
同步字符帧由同步字符、数据字符和校验字符三部分组成。
同步字符位于帧结构开头,用于确认数据字符的开始(接收端不断对传输线采样,并把采到的字符和双方约定的同步字符比较,只有比较成功后才会把后面接收到的字符加以存储);数据字符在同步字符之后,个数不受限制,由所需传输的数据块长度决定;校验字符有1~2个,位于帧结构末尾,用于接收端对接收到的数据字符的正确性的校验。
在本次课程设计中采用的是串行异步通信方式。
2.1.28051单片机的串行接口结构
8051单片机串行接口是一个可编程的全双工串行通信接口。
它可用作异步通信方式(UARTuniversalasynchronicrecieverandtransmitter),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。
8051单片机通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。
SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。
它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。
如图2-3串行接口结构示意图。
图2-3串行接口结构示意图
2.1.3串行通信的数据传送方式
在串行通信中,数据是在两个站之间传送的。
按照数据传送方向,串行通信可分为单工、半双工和全双工三种传送方式。
如图2-4。
单工方式:
通信线的一端接发送器,另一端接接收器,它们形成单向连接,只允许数据按照一个固定的方向传送。
数据只能单方向传送。
半双工方式:
数据能够实现双方向传送,但任何时刻只能由其中的一方发送数据,另一方接收数据。
全双工方式:
系统的每端都含有发送器和接收器,数据可以同时在两个方向上传送。
图2-4
2.2通信协议的采用
1.方案采用的依据
串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信。
由于不同设备串行接口的信号线定义、电器规格等特性都不尽相同,因此要使这些设备能够相互连接,需要一个统一的串行通信接口。
在本次设计中,采用RS-232协议作为通信协议。
RS-232(又称EIARS-232C)是目前最常见的一种串行通信接口标准,它是在1970年由美国电子工业协会联合贝尔系统、调制解调器厂家及计算机终端生厂厂家共同制定的用于串行通信的标准。
RS-232适合于数据传输速率在0~20000bit/s范围内的通信。
这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定,作为一种标准在微机通信接口中广泛采用。
由于单片机系统使用的是TTL电平,单片机中的串口输出的信号也是如此,但是串行通信中使用的RS-232C通信协议,二者的电平并不相同,在和单片机进行通信时,还需要有一定的外围电路的配合,使得单片机的通信电平和标准的串行通信协议相匹配。
2.RS-232C的电器特性、逻辑电平和各种信号线功能
TXD、RXD:
高电平(逻辑1)为-5V~-15V,低电平(逻辑0)为+5~+15V。
RTS、CTS、DSR、DTR和DCD:
控制线,信号有效(接通,ON状态,正电压)时的电平为+5V~+15V,信号无效时(断开,OFF状态,负电压)的电平为-5V~-15V。
对于RS-232C的信号而言,当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-5V~+5V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义。
所以,RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。
为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。
RS-232C中的RS是英文“推荐标准”的缩写,232为标示号,C表示修改的次数。
RS-232C总线标准规定了21个信号和25个引脚,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道。
设计中我采用的是简化的9芯D型连接器(DB9)。
对于一般双工通信,仅需要几条信号线就可以实现,包括一条收发线、一条接收线和一条地线。
也就是RS-232C连接的最简单形式:
3线制,如表2.1为计算机9芯串口引脚信号功能。
脚号
信号名称
方向
信号功能
1
DCD
对方至PC机
PC机收到远程信号(载波检测)
2
RXD
对方至PC机
PC机接收数据
3
TXD
PC机至对方
发送数据
4
DTR
PC机至对方
PC机准备就绪
5
GND
信号地
6
DSR
对方至PC机
对方准备就绪
7
RTS
PC机至对方
PC机请求接收数据
8
CTS
对方至PC机
双方已切换到接收状态(清除发送)
9
RI
对方至PC机
通知PC机,线路正常(振铃指示)
表2.1计算机9芯串口引脚信号功能
2.3电平转换设计
1.设计方法
和其他的单片机器件一样,作为单片机的标准外围电路,串口的电平转换也有专用的芯片,但也可以使用三极管自行调整电平匹配。
本次设计我主要采用专用芯片进行电平转换的方法。
目前较为广泛的是使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。
MAX232芯片可完成TTL和RS-232C的双向电平转换。
在这里我采用的芯片是MAX232。
2.MAX232的引脚介绍
MAX232的引脚主要为5个部分。
(1)外接电容:
有5个外接电容、进行电压匹配和电源去耦。
(2)TTL的输入:
电路TTL电平的输入引脚——11和10引脚,连接单片机的TXD输出端口。
实验中MAX232的11引脚与单片机的P3.1引脚相连。
(3)TTL的输出:
电路TTL电平的输出引脚——12和9引脚,连接单片机的RXD输出端口。
实验中MAX232的12引脚与单片机的P3.0引脚相连。
(4)RS-232的输入:
两路RS-232电平的输入引脚——13和8引脚,连接RS-232的TXD的输出端口。
实验中MAX232的13引脚与RS-232的2引脚相连。
(5)RS-232的输出:
两路RS-232电平的输出引脚——14和7引脚,连接RS-232的RXD的输出端口。
实验中MAX232的14引脚与RS-232的3引脚相连。
通过MAX232的TTL和RS-232的输入/输出端口,自动地调节了单片机串口的TTL电平信号和RS-232的串行通信信号的电平匹配,如图2-5所示。
图2-5
3.电平转换芯片与单片机、RS-232的连接
地址分配和连接:
只列出和系统相关的、关键部分的单片机与各个模块管脚的连接和相关的地址分配。
MAX232的11引脚:
MAX232的TTL电平输入引脚,连接单片机的TXD,TTL串口输入信号。
MAX232的12引脚:
MAX232的TTL电平输出引脚,连接单片机的RXD、TTL串口输入信号。
MAX232的14引脚:
MAX232的RS-232电平输出引脚,连接RS-232的RXD,RS-232的串口输入信号。
MAX232的13引脚:
MAX232的RS-232电平输入引脚,连接RS-232的TXD,RS-232的串口输出信号。
4.用于MAX232的电器元件的选择
一个+5V的电源、五个1u的电容和若干导线。
3.调试结果(负责部分)
3.1二进制的调试
开始时按下复位开关,选择“十六进制发送”与“十六进制显示”。
按下数值增加按键,按下4次;再按下数值减少按键,按下5次。
在整个过程当中,当按下数值增加或减少按键时,同时观察LED显示的二进制与在上位机接收区的数值是不是一致。
在上面完成无误后,再在上位机的发送区输入“00”并按下手动发送,观察在接收区的数值是否与“00”一致。
如图3-1所示为以上操作的结果。
图3-1
3.2字符串的调试
开始时按下复位开关,选择“字符格式发送”与“字符格式显示”。
在上位机的发送去输入“caijieshixuesheng”并按下手动发送,然后观察接收区接收到的信息是否一致。
操作结果如图3-2所示。
图3-2
2.3波特率的调试
开始时按下复位开关,选择“字符格式发送”与“字符格式显示”。
选择波特率9600,此时可以在上位机的接收区显示“success!
”,这表明现在上位机和单片机的波特率都已经是9600。
然后再输入“caijieshixuesheng”同时在接收区可以观察到显示同样的字符串。
结果如图3-3所示。
图3-3
再在波特率的窗口选择4800,此时可以在上位机的接收区显示“<”,这表明现在上位机和单片机的波特率都已经是4800。
然后再输入“caijieshixuesheng”同时在接收区可以观察到显示同样的字符串。
结果如图3-4所示。
图3-4
再在波特率的窗口选择2400,此时可以在上位机的接收区显示“&3”,这表明现在上位机和单片机的波特率都已经是2400。
然后再输入“caijieshixuesheng”同时在接收区可以观察到显示同样的字符串。
结果如图3-5所示。
图3-5
再在波特率的窗口选择1200,此时可以在上位机的接收区显示“圹”,这表明现在上位机和单片机的波特率都已经是1200。
然后再输入“caijieshixuesheng”同时在接收区可以观察到显示同样的字符串。
结果如图3-6所示。
图3-6
4.设计总结
4.1调试中遇到的问题及解决方法
在开始进行调试时,先是在开发板上进行调试。
在开发板上成功后,有负责做硬件的同学开始做实物部分。
在实物完成后,就将之前的单片机程序烧到单片机里面,然后在与用VB编写的界面进行调试。
在调试时发现单片机的程序怎么也烧不进去,在将MAX232这块最小系统从新焊了几个还是出现相同的结果。
于是,就将原来的电容为0.1uf改成了1uf后,操作可以正常进行。
当在上位机的发送区以十六进制发送数据时,在接收区以十六进制显示却出现了乱码。
在分析各方面因素后,最终认定为是12MH的晶振出了问题。
在查及关于晶振方面的资料后,发现当波特率为9600(初始设定值),晶振应选用11.0592MH。
在将晶振更换并进行调试,调试结果和预期结果一致。
4.2心得体会
通过这次课程设计,我更加深入地了解了PC机与单片机是怎样进行串行通讯的;计算机之间的通信有并行通信和串行通信两种方式;MCS-51系列单片机内部有一个全双工的异步串行通信I/O口,该串行口的波特率和帧格式可以编程设定。
MCS-51串行口有四种工作方式:
方式0、1、2、3。
帧格式有10位、11位。
方式0和方式2的传送波特率是固定的,方式1和方式3的传送波特率是可变的,由定时器的溢出率决定。
现在终于完成了课程设计,感受颇多。
第一,这是一份考验我们自觉性、动手能力与协作意识的任务。
第二,未知并不可怕,可怕的是因未知而止步。
我们在课堂上所学的知识是非常有限的,这次的课程设计就是一个很好的体现。
VB在这之前我们从未接触过,在编写上位机界面时就废了很大的功夫。
时间后才能正真知道我们掌握了多少。
第三,团结就是力量一点都不能假,三个臭皮匠顶个诸葛亮。
参考文献
[1]杨光友.单片微型计算机原理与接口技术[M].北京:
中国水利水电出版社.2002.
[2]王福瑞.单片微机测控系统大全[M].北京:
北京航空航天出版社.1999.
[3]喻宗泉.单片机原理与应用技术[M].西安:
西安电子科技大学出版社,2006
[4]冯育长.单片机系统设计与实例分析[M].西安:
西安电子科技大学出版社,2007
[5]陈涛.单片机应用及C51程序设计[M].北京:
机械工业出版社,2008
[6]赵亮,侯国锐.单片机C语言编程与实例[M].北京:
人民邮电出版社,2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 PC 串口 通信 实现