单片机与PC机的串口通信_毕业论文(共48页)_第1页
单片机与PC机的串口通信_毕业论文(共48页)_第2页
单片机与PC机的串口通信_毕业论文(共48页)_第3页
单片机与PC机的串口通信_毕业论文(共48页)_第4页
单片机与PC机的串口通信_毕业论文(共48页)_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PC机与MCS-51单片机的串口通信引言第 PAGE 38 页 (共 NUMPAGES 43 页)第 PAGE 49 页 (共 NUMPAGES 49 页)安徽矿业职业技术(jsh)学院毕业(b y)课题(kt)(设计)任务书(2015届)题 目 指导教师 院 系 专 业 班 级 学 号 姓 名 20 年 月 日至20 年 月 日共 周1 引言(ynyn)1.1 选题(xun t)背景 31.2 目的(md)和意义 41.3 国内外发展现状 52 系统分析2.1 系统功能概述 62.2 系统要求及主要内容 62.3 系统技术指标 73 系统总体设计3.1 硬件电路设计思路 83.2 软件设计思

2、路 94 硬件电路设计 104.1 单片机模块 104.2 红外通信(发射与接收)模块 184.3 PC机模块 215 串行口通信技术 245.1 单片机串行口通信技术 255.2 PC机串口通信技术 286 软件设计 306.1 单片机通信(tng xn)程序设计306.2PC机通信(tng xn)程序设计6.2PC机通信(tng xn)程序设计PC机MCS-51单片机的串口通信1 引言1.1 选题背景在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作

3、为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构

4、成的主从式系统,主机和从机之间以通讯的方式来协调工作。主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。MCS-51系列单片机,由于内部带有一个可用于异步通讯的全双工的穿行通讯接口,阴齿可以很方便的构成一个主从式系统。串口是计算机上一种(y zhn)非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。串口同时也是仪器仪表设备通

5、过(tnggu)用的通讯协议,很多GPIB兼容(jin rn)的设备也带有RS-232口。同时串口通讯协议也可以用于获取远程采集设备数据。所以,深入的理解学习和研究串口通信相关知识是非常必要的。此次毕业设计选题为“PC机与MCS-51单片机的串口通讯”,使用51单片机来实现一个主从式的总线通讯系统。通过此次设计,对串口通讯的原理和应用融会贯通,为以后的时间工作储备知识和研究方法。1.2 目的和意义为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构成的主从式系统,

6、主机和从机之间以通讯的方式来协调工作。主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。 用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。MCS-51系列单片机,由于内部带有一个可用于异步通讯的全双工的穿行通讯接口,阴齿可以很方便的构成一个主从式系统。 串口是计算机上一种非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。串口同时也是仪器仪表设备通过用的通讯协议,很多GPI

7、B兼容的设备也带有RS-232口。同时串口通讯协议也可以用于获取远程采集设备数据。所以,深入的理解学习和研究串口通信相关知识是非常必要的。此次毕业设计选题为“PC机与MCS-51单片机的串口通讯”,使用51单片机来实现一个主从式的总线通讯系统。通过此次设计,对串口通讯的原理和应用融会贯通,为以后的时间工作储备知识和研究方法。1.3 国内外发展(fzhn)现状 在国内外,以PC机作为上位(shn wi)机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道(tngdo),工作时作为主控机测对象,

8、作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。PC机与MCS-51单片机的串口通信系统分析2 系统分析2.1 系统功能(gngnng)概述系统主要(zhyo)实现功能是:由PC机键盘(jinpn)的输入发送给MCS-51单片机,单片机接收到PC机

9、发来的数据后,回送同一数据给PC机,并在PC机屏幕上显示出来。只要PC机屏幕上显示的字符与键入的字符相同,即表明PC机与单片机间通信正常,红外通信成功。微机与单片机红外线通信系统,由于我们本次毕业设计采用的是红外通信方式,考虑到红外通信存在发射与接收之间的相互干扰,所以本次设计采用是半双工(Half Duplex)串口通信,微机与单片机两个部分。微机部分是通过串口RS-232的TXD口发送数据,经电平转换电路之后送红外发射电路发射出去,由单片机部分接收,并相应的处理、显示之后再经红外发射电路返回给PC机,PC机检验发送与接受是否一致,标志着设计的成与败。微机部分用Visual Basic软件编

10、写的界面作为PC机部分与单片机进行串口之间通信,其界面的设计、电平转换电路和红外发射、接收电路以及单片机部分的电路的设计等将在以下章节作详细地设计。从实用的角度看,评价一个系统实用价值的重要标准,就是这个系统对社会生活和科技观念有多大的贡献。随着生活节奏的加快,人们将更加钟情于个人信息终端的智能化互联。另一方面,用无线设备来代替安全隐患的工作区采集数据,更加安全。因此,红外线有其不可估量的实用价值!2.2 系统要求及主要内容将微机中的二进制或ASC数据通过微机的RS232串口经红外发射器发送缎带单片机,再由单片机将接收的二进制或ASC数据通过串口经红外发射器发送给微机,在微机中检查发送的二进制

11、或ASC数据与接收到的二进制数据是否一致。(1)单片机部分主要完成接收微机发送的数据和将接收的数据回送给机;(2)红外发发射部分完成将微机或单片机发送的数据通过红外发送给红外接收器。(3) 红外接收部分(b fen)主要完成接收红外信号并将红外信号转换为数据送给计算机。(4) PC机部分主要完成将数据(shj)的发送给单片机和接受单片机发送的数据。2.3 系统(xtng)技术指标微机与单片机红外线通信的主要完成以下功能:单片机部分:(1)设计并制作单片机的串口通信的硬件系统;(2)用汇编语言编制串口通信软件;(3)要求把从微机发送来的原样发送回微机;红外发射部分:(1)自行设计红外发送器(2)

12、红外发送距离大于50cm(3)系统稳定、抗干扰能力强红外接收部分:(1)自行设计红外接收器(2)红外接收器的稳定、抗干扰能力要强PC机部分:(1)在微机部分采用Visual Basic编制RS232通信软件(2)通信软件具有数据发送和数据接受编辑框(3)通信软件要实现发送数据与接受数据一致根据系统要实现的功能以及要求,要实现单片机和PC机之间的红外通信,主要是实现上下微机之间能够互通信息,而采用红外通信,就是利用这种非电信号传送控制信息和数据信息,省去了有线方式信号线的直接连接,属完全隔离状态,安全可靠,能有效地隔离电气干扰,同时使用简单,移动方便,实现了通信双方非接触式的数据传送。它可以应用

13、于高压、辐射、潮湿、有毒气体、粉尘等不利于人们现场控制的环境下,这种红外通信方案也可用于其它遥控、遥测的单片机应用场合。红外通信的重点在于信号的调制与解调,完成低误码率、高速率的信息传输。目前红外通信技术和集成技术的发展已将此方面做的比较平民化了。以普通的集成红外头为核心的红外收发模块即可完成此功能。单片机可通过编程控制外围部件,能实现较高的自动化程度。PC机与MCS-51单片机的串口通信系统总体设计以它为系统核心的控制模块可实现主从控制,完成预定的任务。系统的进一步升级是与上位(shn wi)机实现红外通信,实现与整个网络的连通,达到资源共享和远程控制,这在当今这个信息化的社会里是非常有价值

14、的!3 系统(xtng)总体设计3.1 硬件(yn jin)电路设计思路硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。89C51单片机通过普通I/O口与PC机RS232串口实现通信的硬件接口电路如图2 所示。由于PC 系列微机串行口为RS232C 标准接口,与输入、输出均采TTL 电平的89C51 单片机在接口规范上不一致,因此TTL 电平到RS232 接口电平的转换采用MAXIM 公司的MAX232 标准MAX232CPE接口芯片,该芯片可以用单电压(+5V)实现RS232接口逻辑“1”(-3V-15V)和逻辑“0”

15、(+3V+15V)的电平转换。(1) 单片机部分硬件设计思路:本次设计单片机部分的硬件框图如图31所示。CPU执行单元显示电路红外发射电路红外接收电路时钟电路复位电路 图31 单片机部分硬件框图(2) PC机部分硬件设计思路:PC机与单片机之间的红外数据收发装置的结构非常简单,其结构框图如图32所示。PC机及其兼容机的标准串行通信接口RS-232C有一个9芯的D型插座,该红外收发装置便是通过此接口插座与计算机连接,并由计算机通信软件控制其数据的收发,并由计算机通信软件控制其数据的收发。由于数据的传输采用了38KHZ信号进行调制、解调和发射、接收,因而更加安全可靠。具体的电路原理图将在第三章中作

16、详细地分析设计。图32PC机部分硬件(yn jin)框图3.2 软件设计思路(sl)软件(run jin)需要解决的是设定PC机串口和单片机串行口的工作方式,包括串行口的通讯速率、奇偶校验位、停止位等。软件工作流程是:PC机发送一个数据信号,通过红外通信方式传送到单片机,单片机接收数据作相应的处理后回送到PC机。经测试,此系统可以在2400kbit/s速率下稳定工作,比较理想。(1) 单片机部分软件设计思路: AT89C51单片机的P3.0 和P3.1 口分别串行通信的接收和发送端,其接口程序主要由INPUT 发送子程序和OUTPUT接收子程序组成。通信速率2400 bit /s,帧格式为N.

17、8.1。发送时,先发送一个起始位(低电平),接着按低位在先的顺序发送8 位数据,最后发送停止位。接收时,先判断P3. 0 接收端口是否有起始低电平出现,如有则按低位在先的顺序接收8 位数,最后判断P3.0 口是否有停止高电平出现,如有则完成一个数据接收,否则继续等待。其中软件编写要严格按照异步通信的时序进行,每bit 位传送时间间隔按通信速率2400 bit /s计算为833s,系统要求单片机晶振为11.0592MHZ。(2) PC机部分(b fen)软件设计思路:PC机有多种支持串行通信(tng xn)的软件,Visual Basic通信(tng xn)语句、C语言等等,本次毕业设计准备采用

18、Visual Basic语言来实现PC机部分的通信,VB具有面向对象的设计方法,友好的用户界面,简单方便的串行通讯和实用性强等优点。PC机与MCS-51单片机的串口通信硬件电路设计4 硬件(yn jin)电路设计硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用(shyng)的元器件,设计出系统的电路原理图,必要时做一些部件实验,以难电路图的正确性,以及工艺结构的设计加工、印制板的制作、样机的组装等。根据本次毕业设计的要求以及要实现的功能,查阅(chyu)了很多有关PC机与单片机之间通信的书籍以及红外通信方面的知识,对硬件电路的设计做了很

19、深刻的研究。我们将整个PC机与单片机之间的红外通信系统分成三大模块:PC机模块、红外通信模块(红外发射和红外接收)以及单片机模块,各个模块都承担着各自的任务。在设计单片机模块时,考虑到单片机本身并不具备红外通信接口,利用单片机的串行接口与单片机外的红外发射和接收电路,组成一个应用于单片机系统的红外串行通信接口;PC机通过RS232进行数据的传输,考虑到PC微机串口的电平和单片机的输入输出的TTL电平不一致,在整个电路设计时要考虑电平转换电路,除此之外本系统的传输是采用的无线通信,因此还需要设计红外发射与接收电路,具体每一部分的设计将在以下章节中详细分析。4.1 单片机模块根据系统功能要求以及单

20、片机硬件电路设计思路(如图21)对单片机模块进行设计,要使单片机准确的接收与发送,并且使接收到的数据能显示出来,所以整个单片机部分分为时钟电路、复位电路、执行元件以及显示电路四个部分。4.1.1 执行元件本次毕业设计的单片机部分的执行元件我们采用MCS-51T系列的AT89C51(其引脚图如图41),由于它本身带有一定的优点。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与

21、工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图41AT89C51引脚图一、主要(zhyo)特性:与MCS-51 兼容(jin rn) 4K字节(z ji)可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路二、管脚说明:(1)VCC:供电电

22、压;(2)GND:接地;(3)P0口:P0口为一个(y )8位漏极开路(kil)双向I/O口,每脚可吸收(xshu)8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。(4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第

23、八位地址接收。 (5)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 (6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电

24、流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表41所示:表4-1 P3口的第二功能引 脚第二功能信 号 名 称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0请求P3.3INT1外部中断1请求P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通P3口同时为闪烁(shn shu)编程和编程校验接收一些控制信号。(7)RST:复位(f wi)输入。当

25、振荡器复位器件时,要保持RST脚两个机器(j q)周期的高电平时间。(8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 (9)/PSEN:外部程序

26、存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 (10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 (11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 (12)XTAL2:来自反向振荡器的输出。三、振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出

27、。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。四、芯片(xn pin)擦除:整个(zhngg)PEROM阵列和三个锁定位的电擦除可通过(tnggu)正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU

28、停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。4.1.2 时钟电路时钟电路是计算机的心脏,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZMCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。CMOS型单片机内部(如AT89C51)有一个可控的负反馈反相放大器,

29、外接晶振(或陶瓷谐振器)和电容组成振荡器,图42为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。图中SYS为晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率)。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为30pF。图42CMOS型单片机时钟电路(dinl)框图4.1.3 复位(f wi)电路计算机在启动运行时都需要(

30、xyo)复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后,该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都 输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。本次毕业设计采用的复位方式是自动复位方式。对于CMOS(AT89C51)单片机只要接一个电容至VCC即可(见图43)。在加电瞬间,电容

31、通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效的复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间若为10ms,振荡器起振的时间和频率有关。10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电进应保持20ms以上的高电平。图3-8中,RC时间常数越大,上电进RST端保持高电平的时间越长。当振荡频率为12MHZ时,典型值为C=10uf,R=8.2k。若复位(f wi)电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常(zhngchng)运转。图4-3 上电复位(

32、f wi)电路4.1.4 显示电路本次毕业设计的显示电路采用LED数码管动态显示,LED(Light-Emitting Diode)是一种外加电压从而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。一、显示器结构常用的七段显示器的结构如图44(a)所示。发光二极管的阳极连在一起的称为共阳极显示器(如图44(b)所示),阴极连在一起的称为共阴极显示器(如图34(c)所示)。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的

33、字符较少,字符的开头有些失真,但控制简单,使用方便。(a)外形(wi xn) (b)共阳极(yngj) (C)共阴极(ynj)图4-4 七段发光显示器的结构二、显示方式为了节省I/O口线,我们采用的动态显示方式。所谓动态显示,就一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需8位口(称为扫描口),控制各位显示器所显示的字形也需一个8位口(称为段数据口)。4位共阴极显示器和AT89C51的接口逻辑如图

34、8-7所示。AT89C51的P0口作为段数据口,经同相驱动器7407接显示器的各个段;P2口作为扫描口,经反相驱动器7406接显示器公共极。对于图4-5中的4位显示器,在AT89C51RAM存贮器中设置四个显示缓冲器单元30H34H,分别存放4位显示器的显示数据,AT89C51的P2口扫描输出总是只在一位为高电平,即4位显示器中仅有一位公共阴极为低电平,其它位为高电平,AT89C51的P0口相应位(阴极为低)的显示数据的段数据,使该位显示出一个字符,其它们为暗,依次地改变P2口输出为高的位,P0口输出对应的段数据,4位显示器就显示出由缓冲器中显示数据所确定的字符。图4-5 4位动态显示电路(d

35、inl)4.2 红外通信(发射(fsh)与接收)模块红外线通讯(tngxn)是一种廉价、近距离、无线、低功耗、保密性强的通讯方案,主要应用于无线数据传输,有时也用于无线网络接入和近程遥控。红外通信的基本原理:红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。本系统采用的为脉宽调制方法,发送端采用脉宽调制(PWM)方式,将二进制数字信号调制成某一频率的脉冲

36、序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输。单片机红外通信(tng xn)系统(硬件原理图见图4-6)的红外发射和红外接收电路(dinl)主要由单片机AT89C51、CD4011与非门、红外发射管PH30B、红外一体化接收(jishu)头SM0038(见图4-7所示),以及驱动三极管8550、电阻和电容组成。我们将红外通信模块分为红外发射和接收两部分。图4-6 单片机红外通信硬件原理图(a) 红外发射

37、管 (b)红外接收管图4-7 红外发射管和红外一体化接收头一、红外发射硬件(yn jin)电路红外线发射器由于控制(kngzh)方式不同,很难做到一体化,大多是由分力元件组装而成。本章节将重点讲一下红外线发射器电路原理图见图4-8所示。图4-8 红外发射(fsh)电路原理图红外发送电路的工作原理为:串行数据由单片机的串行输出端TXD(接图中IN端)送出并驱动YF1,若数位“0”使YF1输出高电平,通过YF2、YF3和电阻R2电容C组成的震荡电路,将信号调制成38kHz的载波信号,并利用红外发射管D以光脉冲的形式向外发送。若数位“1”YF1输出低电平,使YF2和YF3停止震荡,使 YF4输出高电

38、平使驱动管8550截止,红外发射管D不发射红外光。二、红外接收硬件电路红外线接收器是红外线通信成败的关键所在,以前大多采用红外线接收专用芯片CA20106A 以及外围部分元器件(红外线接收管、电阻、电容等)。实际使用时常出现接收灵敏度过高或过低,工作欠稳定,加之装配焊接麻烦、调试不便、体积大、抗干扰能力较差等等,现已基本被淘汰。目前采用最多的是一种一体化的红外线接收头,体积小巧(外形类似三极管)、价格低廉、使用方便、无须调整、抗干扰能力强、工作稳定可靠。红外接收电路选用新日本株式会社公司生产的专用红外一体化接收头SM0038,集红外线接收和放大于一体,不需要任何外接元件,就能完成从红外线接收到

39、输出与TTL电平信号兼容的所有工作,因此它适合于各种红外线数据的传输,是代替CA20106A和接收二极管等红外接收放大器的理想元件。图4-7(b)是其正视图(半球面的红外线接收面正对我们),三个输出脚依次为: GND(地)、+(电源正端)、OUT(红外线经接收后经解调、整形的输出脚)。图4-11 红外接收(jishu)基本电路根据(gnj)SM0038的工作(gngzu)原理对其外围电路进行设计,具体硬件原理图见图411所示,其中1端为接地脚,2端接电源,3端接信号输出端,R和C组成去耦电路抑制电源干扰。由于红外一体化接收头SM0038的灵敏度高,因此在实际应用电路中要在电源和地之间外接上拉电

40、阻来抗干扰。4.3 PC机模块根据系统功能要求以及PC机硬件电路设计思路(如图32所示)对PC机模块进行设计,要使PC机通过红外线准确的接收与发送,必须要对其外围电路进行设计。由于无线收发装置工作于TTL逻辑电平(0V和5V),而计算机RS-232总线上输入、输出数据和控制信号为+12V左右的电压,因此用IC1(MAX232CPE)进行转换。如图412为PC机部分的电路原理图。图412PC机收发(shuf)数据电路原理图一、数据(shj)的传输对所设计的原理图进行分析,数据的传输分为两大部分:数据的发送(f sn)和数据的接收。下面就两部分作一下介绍。1、数据发送当电路工作于发送数据状态时,P

41、C机的RTS端输出高电平,经IC1电平转换打开IC3(74LS08)的与门B1,使PC机TXD端输出的数据经红外发射电路发射出去;RTS信号IC1反相后作为CTS信号送入计算机,同时还关闭与门B2;使计算机不接收其它数据信号。2、数据接收当电路工作于接收数据状态时,计算机的RTS端输出和CTS端输入均为低电平,使IC3的B1、B2的工作状态正好相反,发射部分被B1封锁,与门B2则打开使用权电路处于接收工作状态,从红外接收端接收过来的数据由RXD端送处计算机。该必发器的数据传输速率最好设在2400b/s为宜,以确保数据传输的可靠性。二、器件的介绍1、RS-232CRS-232C是美国电气工业协会

42、推广使用的一种串得通信总路线标准,是DCE(数据通信设备,如微机)和DTE(数据终端设备,如CRT)间传输串行数据的接口总线。RS-232C最大传输距离为15m,最高传输速率约20kbps,信号的逻辑0电平为+3V+15V。逻辑1电平为-3V-15V。电气特性:EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定;在TxD和RxD上:逻辑1(MARK) =-3V-15V 逻辑0(SPACE)=+315V在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)+3V+15V信号无效(断开,OFF状态,负电压)-3V-15V2、RS-232连接器DB-

43、9DB-9是RS-232信号线的连接器,其连接器的机械(jxi)特性见图(413),表 1所示RS-232信号线名称(mngchng)、符号以及对应在DB-9上的针脚(zhn jiao)号。图413连接器的机械特性表3-1 RS-232信号线和DB-9引脚关系符 号名 称引 脚DCD接收信号载波检测1RXD数据接收线2TXD数据发送线3DTRDTE装置数据就绪4GND公共地5DSRDCE装置就绪6RTS请求发送7CTS清除发送8RI振铃指示93、电平转换器MAX232CPE由于RS-232C总线上传输的信号逻辑电平与TTL逻辑电平差异很大,所以就存在这两种电平的转换问题,下面就介绍一下电平转换

44、器MAX232CPE。MAX232CPE能将RS-232C电平转换成TTL电平,也能将TTL电平转换成RS-232C电平,只需单+5V供电,由内部升高电路产生10V+12V。内部有两个发送器(TTL电平转换为RS-232C电平)和两个接收器(RS-232电平转换为TTL电平)。MAX232CPE芯片引脚排列和外部元件连接线路如图414所示。图 414MAX232CPE 电平(din pn)转换器及外接元件图5 串行口通信(tng xn)技术在设计(shj)单片机与PC机程序时,PC机串口和单片机串行口的设置是至关重要的一个环节,所以在软件设计前必须对串行口的通信技术作系统的研究。本章节是为软件

45、设计服务的。串行数据通信指数据是一位一位顺序传送的通信方式,它的突出优点是只需一对传送线(利用电话线就可作为传送线),这样就大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。串行通信的主要特点:串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。PC机与MCS-51单片机的串口通信串行口通信技术如图51所示。接收器乙发送(f sn)器甲(a) 单工方式(fngsh)接收器接

46、收器 发送器 发送器(b) 半双工方式(fngsh)接收器接收器 数据流 发送器 发送器(C) 全双工方式图5-1 串行通信传输方式系统设计时采用半双工方式通信,这主要是为了尽量避免红外通信存在发射与接收之间的相互干扰。5.1 单片机串行口通信技术MCS-51单片机内部(nib)有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们(t men)的地址为99H。这个通信(tng xn)口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如

47、果在串行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。MCS-51单片机串行口寄存器结构如图53所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。此外,从图5-3中可看出,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,CP

48、U是主动的,不可能出现这种现象。图53MCS51串行口寄存器结构1、波特率的设置要实现单片机与PC机的串行通信,双方的波特率必须一致.PC机串行通信的波特率参数通常为一些标准的参数,可直接使用.因此实现MCS-51单片机和PC机的串行通信时,选择MCS51单片机串行通信的波特率至关重要.波特率根据(gnj)串行口的工作方式不同而不同:(1) 方式(fngsh)0波特率串行口方式(fngsh)0的波特率由振荡器的频率所确定:方式0波特率=振荡器频率/12(2) 方式2波特率串行口方式2的波特率由振荡器的频率和SMOD(PCON.7)所确定:SMOD为0时,波特率等于振荡器频率的六十四分之一;SM

49、OD为1时,波特率等于振荡器的三十二分之一。(3) 方式1和方式3的波特率串行口方式1和方式3的波特率由定时器T1或T2(8051等单片机)的溢出率和SMOD所确定。T1和T2是可编程的,可以选的波特率范围比较大,因此串串行口方式1和方式3是最常用的方式。当定时器T1作为串行口的波特率发生器时,串行口方式1和方式3的波特率由下式确定:方式1和方式3波特率=2SMOD*(T1溢出率)/32SMOD为0时,波特率竽T1溢出三十分之一;SMOD为1时,波特率等于T1的六十四分之一。定时器T1作为时,应禁止T1中断。通常T1工作于定时方式(C/T=0),计数脉冲为振荡器的十二分频信号。也可以选择外部T

50、1(P3.5)上输入脉冲作为T1计数信号(C/T=1)。T1的溢出率又和它的工作方式有关,一般选方式2定时,此时波特率的计算公式为:方式1和方式3波特率=2SMOD*Fosc/32*12(256-(TH1)表4-1 常用波特率波特率(b/s)Fosc(mhz)SMODC/T模式初值19.2K11.0592102FDH960011.0592002FDH480011.0592002FAH240011.0592002F4H120011.0592002E8H注:定时器T1作波特率发生器,所以(suy)在程序设计时要注意到禁止T1中断(zhngdun)2、串行通信(tng xn)控制寄存器SCONSCO

51、N控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:表4-2SCON寄存器结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H3、电源管理寄存器PCONPCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:表4-3PCON电源管理寄存器结构PCOND7D6D5D4D3D2D1D0位符号SMOD-GF1GF0PDIDL在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=

52、1时,串行口波特率加倍。系统复位默认为SMOD=0。4、中断允许寄存器IE中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。表4-4IE中断允许控制寄存器结构位符号EA-ESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9HA8H5.2 PC机串口通信技术PC机串行通信接口设计(shj)是整个PC机部分的重点,在本章节(zhngji)中将详细分析串口的设计问题。通信(tng xn)芯片的选择由于RS-232C的逻辑电平兼容,因此为了TTL器件连接,必须进行电平转换。MC1488和MC

53、1489是RC-232C通信接口常用的集成电路转换芯片,但他们是两个独立的驱动器和发送芯片,而且MC1488驱动器还需要外接正负电源,很不方便。目前市场上出现了一些新型的RS-232C电平转换芯片MAXIM系列的产品,AXIM公司生产的MAX系列RS-232C收发器芯片。波特率设置PC机的波特率必须和单片机相匹配,所以只要单片机的波特率定了,PC机只要设置一下即可。3、串行口工作方式的选择为了确保数据传输无误,采用软件握手的方式。即发送方给接收方传送的一个数据,接收方收到后再将这个数据发送回来,发送方将两个数据比较,若二者相同则表示传输无误,接着传送下一个数据。所以不需要奇偶校验,因此选择串行

54、口方式一工作即传输数据的格式为1位起始位,8位数据位,1位停止位。4、VB串口Mscomm控件VB提供了串行端口控制Mscomm来为应用程序提供串行通讯。该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视Mscomm控件的属性和事件,结合Timer控件即可完成对串行口的初始化和数据的输入输出工作。Mscomm控件的主要属性如下:(1)Commport 设置并返回通讯端口号。端口号可以设置为116的任何数,如Mscomm.Commport=2表示设置当前通讯端口为COM2。(2)Setting 设置并返回波特率、奇偶校验、数据位、停止位。格式为Mscomm.Setting=String。St

55、ring是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,N表示不校验,M表示符号校验,E表示偶校验,O表示奇校验,S表示空格校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部分为停止位位数,其可选值为1,1.5,2。Setting属性的缺省值为2400,N,8,1”。(3)Portopen 设置并返回通讯端口的状态,也可以打开和关闭端口。(4)Input 从接收缓冲区返回和删除字符。该属性在运行时为只读。(5)InputLen 设置(shzh)并返回每次Input属性(shxng)从接收缓冲区中读取的字符数。InputLen属性(shxng)的缺省值为0。设置Inp

56、utLen为0时,Input将读取接收缓冲区的全部字符。(6)Output 向传送缓冲区写数据。要传送的数据可是文本数据或二进制数据。(7)CommEvent 返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生Oncomm事件。CommEvent属性中存有该错误或事件的数值代码。6 软件设计 PC机与单片机间的通信,特别是PC机和多台单片机构成小型分布系统实现分级分布式控制得到了广泛的应用。本章阐述PC机与AT89C51间的双机通信的汇编语言和Visual Basic 语言通信程序设计技术。软件需要解决的是设定PC机串口和单片机串行口的工作方式,包括串行口的通讯速率、奇偶校验位、

57、停止位等。本次设计,以PC机为主机,单片机AT89C51作为从机,具体的通信协议如下: 波特率设置:2400b/s; 信息帧格式:1位起始位,8位数据位,1位停止位; 校验方式:采用无校验方式; 传送方式:PC机采查询方式接收和发送数据,单片机AT89C51采用中断方式接收与发送数据。6.1 单片机通信程序设计单片机的数据通信由串行口完成,定时器T1作为波特率发生器,其波特率要与PC机一致。数据的传送格式为1位起始位、8位数据位和1位停止位。采用中断方式发送和接收数据,定时器T1设置为工作工作模式2,串行口设置为工作方式3,由第9位判断停止。具体的程序流程图和程序清单分别见附录2和附录3。6.

58、1.1 单片机中断方式(fngsh)接收程序当PC机不发送任何数据的时候,从机单片机始终处于(chy)等待状态(P.),直到(zhdo)Pc PC机与MCS-51单片机的串口通信软件设计机发送数据过来(gu li)。由于PC机在发送有效(yuxio)数据之前会加一个开始符(FFH),在有效数据之后会加一个(y )开始符(7FH),所以单片机接收到主机发送来的FFH之后,置RAM存贮单元的初始地址30H单元,用来放紧接着接收的数据,程序中还用了一个计数器COUNTER来计接收到的数据位数,直到接收到7FH为止。程序框图见附录2。单片机接收主程序MAIN及中断服务程序STR清单如下:COUNTER

59、 EQU 40HPOINT EQU 41H ORG 0000H LJMP MAIN ORG 0023H LJMP SRTMAIN:MOV SP,#60H MOV TMOD,#20H ;定时器T1的方式2 MOV PCON,#00H ;串行口波特率控制位 MOV TH1,#0F4H ;2400Kb/s MOV TL1,#0F4H MOV 30H,#15 MOV COUNTER,#1 MOV R0,#30H ;接收数据存放区 MOV R1,#30H SETB TR1 ;开始计数 CLR ET1 ;清定时中断 MOV SCON,#50H ;串行口控制寄存器给值 SETB EA ;开总中断 SETB

60、ES ;开串行口中断 MOV IP,#10HMAIN1: ACALL DISP SJMP MAIN1SRT: PUSH ACC PUSH 01H JBC RI,GETSJMP EXITGET: MOV A,SBUF CJNE A,#0FFH,GET1 ;判断是否为开始字符,不是跳GET1放数据存贮 MOV R0,#30H ;是开始符就置存贮区首地址30H,计数器清0并跳出中断 MOV COUNTER,#0 SJMP EXITGET1: CJNE A,#07FH,GET2 判断是否为结束符,不是跳GET2放数据存贮区 MOV R5,COUNTER ;是结束符,放发送缓存区开始字符 INC R5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论