ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:348.30KB ,
资源ID:8117822      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8117822.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机与PC机串行通信系统硬件及上位机程序设计Word格式.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机与PC机串行通信系统硬件及上位机程序设计Word格式.docx

1、一般来说,计算机都有一个或多个串行端口,它们依次为Com1、Com2、Com3等。这些串口提供了外部设备与计算机进行数据传输和通信的通道3。串行口通信是指外设和计算机间使用3根信号线进行数据传送的一种通信方式,这三根信号分别是数据信号线、地线及控制线。2.1 两种常用接口方式2.1.1 并行接口并行接口是指8位数据同时通过并行线进行传送,这样数据的传输率能得到极大的提高。但在并行传输中,干扰会随线路长度的增加而增加,产生传输错误。因此,并行传输主要应用在近距离数据传输中,如连接打印机端口。并行接口主要使用36针接头和25针D形接头,目前以25针D形接头为主4。2.1.2 串行接口串行口也是计算

2、机的一种标准接口,PC机一般至少有两个串行口Com1和Com2。串行口不同于并行口,它的数据和控制信息是一位接一位在一根传输线上传送的,这样串行口较并行口能够进行远距离传送信息。串行口通常使用9针D形连接器,有些老式则使用25针D形连接器。由于CPU与接口间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,要由接收移位寄存器把串行方式转换成并行方式,由发送移位寄存器把并行方式转换成串行方式。完成这种转换功能的电路叫做通用异步收发机UART4。2.2 RS-232串行接口标准目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增

3、加通信距离的单端标准。RS-232采用不平衡传输方式,收发端的数据信号,是相对信号地。9针串口引脚和25针串口引脚定义如表2-1所示。表2-1 9针串口引脚和25针串口引脚定义9针串口(DB9)25针串口(DB25)针号功能说明缩写1数据载波检测DCD82接收数据RXD3发送数据TXD4数据终端准备DTR205信号地GND76数据设备准备好DSR请求发送RTS清除发送CTS9振铃指示DELL22典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在5V15V,负电平在-5V-15V;在接收数据时,接收器的典型工作电平是3V12V和-3V-12V。串口传输数据只要有接收

4、数据针脚和发送数据针脚就能实现,其连接方式如表2-2所示。表2-2 串口通信连接方式9针9针25针25针9针25针表2-2是对微机标准串行口而言的,还有许多非标准设备则需要根据具体情况而定。3 系统总体设计3.1 系统指标设计3.1.1 通信协议设定硬件接口:单片机输出的TTL电平经电平转换芯片转换成为RS-232信号,然后与PC机互连。字符格式:1位起始位,8位数据位,1位停止位。通信波特率:9600bps。差错校验:无奇偶校验。3.1.2 系统实现描述下位机可以脱机单独工作,并用存储器存储由PC机传送来的数据,通信时由上位机发出通信请求,要求下位机给出回应。当单片机无应答时,PC机将重发通

5、信请求直到下位机给出响应。传送数据前先发数据数目,接下来发送数据,下位机接收数据并动态显示在LED数码管上。3.2 总体方案设计单片机内部有一个全双工的收发缓冲器(SBUF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,它们共用同一个地址99H。在串行口的输入输出引脚上加上电平转换器,就可以方便的设计成标准的RS-232接口。在设计中以PC机为主机,单片机为从机,通过串行接口构成主从系统,设计其串行通信的基本功能,其系统框图如图3-1所示。4 硬件接口电路设计4.1 主要芯片4.1.1 AT89C51 在系统设计中使用AT89C51单片机作为下位机,与PC机进行串口通信,接收数据

6、并控制数据在LED数码管上动态显示。AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片,内置4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大5。AT89C51单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领域。1)AT89C51性能参数AT89C51有如下性能参数: 与MCS-51产品指令系统的全兼容; 4k字节可重擦写Flash闪速存储器;1288字节内部RA

7、M; 1000次可擦写周期; 全静态操作:0Hz-24MHz; 三级加密程序存储器; 32个可编程I/O口线; 2个16位定时/计数器;1个全双工异步串行口; 6个中断源,2个中断优先级; 低功耗空闲和掉电模式。2)AT89C51内部结构及管脚图AT89C51包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线7,其方框图如图4-1所示。图4-1 AT89C51方框图AT89C51单片机采用40Pin封装的双列直接DIP结构,其引脚配置如图4-2所示。图4-2 AT89C51引脚配置(1)RES

8、ET/Vpd(9脚)复位信号当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。其复位电路如图4-3所示。图4-3 AT89C51复位电路(2)(30脚)地址锁存信号当访问外部程序存储器时,ALE的输出用于锁存地址的低位字节,而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。 (3)(29脚)片外程序

9、存储器读选通当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。(4) EA/Vpp(31脚)内部和外部程序存储器选择信号程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。3)AT89C51串行口结构(1)数据缓冲器SBUF串行口是一个可寻址的专用寄存器,有两个物理空间上各自独立的发送缓冲器和接受缓冲器,可

10、以实现全双工通信,这两个寄存器具有同一地址(99H)。单片机的串行数据传输很简单,只要向缓冲器写入数据就可发送数据,从接收缓冲器读出数据既可接收数据。(2)串行口控制寄存器SCON它是一个可寻址的专用寄存器,用于串行通信的控制,单元地址是98H,其结构格式如表4-1所示。表4-1 SCON寄存器结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H(3)特殊功能寄存器PCON可 其字节地址为87H,没有位寻址功能,与串行口有关只有PCON的最高位,其结构如表4-2所示。表4-2 特殊功能寄存器PCONPCO

11、N位符号SMODGF1GF0PDIDLSMOD:波特率选择位。当SMOD=1时,波特率加倍。4.1.2 单电源转换芯片MAX232MAX232是MAXIM公司生产的、包含两路接收/驱动器的芯片。芯片内部有一个电源电压变换器,可以将输入的+5V电源电压变换成为RS-232输出电平。硬件接口简单,被广泛使用。芯片的引脚配置及典型就工作电路如图4-4所示。(a) 引脚图 (b) 典型电路图图4-4 MAX232芯片引脚配置和典型工作电路4.1.3 74LS245LED驱动芯片74LS245是常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。当8051单片机的P

12、0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端低电平有效时,DIR=“0”,信号由B向A传输;DIR=“1”,信号由A向B传输;当为高电平时,A、B均为高阻态,其引脚配置如图4-5所示。图4-5 74LS245引脚配置4.2 LED显示器4.2.1 LED显示器工作原理LED(light emitting diode)显示是用发光二极管显示字段的显示器件,也称数码管,其外形结构如图4-6所示,由图可知它由8个发光二极管构成,通过不同的组合可用来显示09、AF及小数点。图4-6 “8”字形数码管LED显示器一般分为共阴极和共阳极两种,共阴极是将8个发光二极

13、管的阴极连接在一起作为公共端,而共阳极则是将8个发光二极管的阳极连在一起作为公共端8,其构成如图4-6所示。4.2.2 LED显示器接口在单片机系统中,LED显示接口一般采用静态驱动和动态扫描两种驱动方式。静态驱动方式工作原理是每一个LED显示器有一个I/O端口驱动,亮度大,占用I/O端口多,显示位数多时很少采用;动态扫描驱动方式的工作原理是将多个显示器的段码同名端连接在一起,位码分别控制,利用眼睛的余晖暂留效应,分别显示。动态扫描驱动方式下,只要保证一定的显示频率,看起来的效果和一直显示是一样的。4.3 系统设计系统中采用AT89C51单片机作为下位机,PC机作为上位机,两者通过RS-232

14、串行口收发数据。RS-232信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换,系统中使用集成电平转换芯片MAX232实现RS-232/TTL电平转换。单片机系统总体电路如图4-7所示。图4-7 单片机系统总体电路5 PC机程序设计Visual Basic(简称VB)是Windows操作系统下简单、易学、高效的应用软件开发工具。因其具有面向对象的设计方法,友好的用户界面、编程高效、数据处理及驱动底层硬件功能强等优点而受到广泛的使用。在设计PC机程序时,使用面向对象的编程方法。5.1 MSComm控件MSComm控件全称为Microsoft Communications Cont

15、rol,是Microsoft公司提供的简化Windows下串行通行编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。通过对此控件的属性和事件进行相应编程操作,就可以轻松实现串口通信。5.1.1 MSComm控件处理通信的方式MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。MSComm控件提供两种处理通信的方式:事件驱动方式和查询方式。1)事件驱动方式事件驱动通信是处理串行端口交互作用的一种非常有效地方法。这种方式下,在事件发生时,如在串口接收缓冲区有字符等,可以利用MSComm控件的OnComm事件捕获并处理这些通信事件,OnComm事件还可以

16、检查和处理通信错误。在编程过程中,可以在OnComm事件处理函数中加入自己的代码。这种方法的优点使程序响应及时、可靠。2)查询方式查询方式实质上还是事件驱动,在有些情况下,这种方式显得更为便捷。在程序的关键功能后,可以通过检查CommEvent属性的值来查询事件和错误,编写自己的程序代码。5.1.2 MSComm控件的主要属性MSComm控件很多重要的属性,常用属性的功能如下:CommPort属性:设置并返回通信端口号;Input属性:返回并删除接收缓冲区中的数据流;Output属性:往传输缓冲区中写数据流;PortOpen属性:设置并返回通信端口的状态(开或关);Settings属性:设置并

17、返回波特率、奇偶校验、数据位和停止位参数;InputLen属性:确定被Input属性读取的字符数,设置InputLen为0时,则Input属性读取缓冲区中的全部数据;InputMode属性:确定用Input属性读取的数据类型,设置InputMode为comInputModeText时,Input属性通过一个Variant返回文本数据,设置为comInputModeBinary时,Input属性通过一个Variant返回一个二进制数据数组。5.2 应用界面设计流程5.2.1 创建项目文件(1)单击“开始”按钮,选择“程序|Microsoft Visual Basic 6.0”进入VB6.0窗口。

18、VB6.0启动后,会弹出“New Projiect”对话框,如图5-1所示。图5-1 新建工程(2)在“New Project”对话框中选择“New”选项卡。(3)单击“Standard EXE”项,再单击“打开”按钮,或直接双击“Standard EXE”建立程序开发窗口。(4)选择“File|Save Project”命令,保存文件。5.2.2 加入串口通信控件(1)默认的控件工具栏中没有MSComm控件,因此要先把它加入到控件工具栏上。在控件工具栏上单击鼠标右键,在弹出的对话框中选择“Components”,弹出“Components”对话框,如图5-2所示。图5-2 添加MSComm控

19、件(2)选择“Controls”选项卡中的“Microsoft Comm Control 6.0”项,单击“确定”按钮把它加入到控件工具栏中。5.2.3 设计窗体界面窗体主要完成如下功能:对整个程序初始化、串行端口设置、输入发送数据、对各个按钮响应、显示当前通信端口及端口信息,。在窗体中添加需要的控件,调整控件的大小及在窗体中的位置,得到如图5-3所示的窗体界面,其控件属性及功能如表5-1所示。图5-3 添加控件后的窗体表5-1 主要控件属性类型名称属性功能FormForm1Caption=上位机串口通信CommandbuttonSendCaption=发送数据发送CancelCaption=

20、退出结束数据发送LabelLabel1Caption=发送数据:Label2Caption=串口选择:Label3Caption=状态TextBoxTxtsendText=请输入要发送的数字字符串!输入发送数据Txtport显示串行通信端口Txtmsg显示端口的状态Mscomm默认串口通信TimerEaable=falseInterval=250应答超时控制5.3 代码实现单片机与PC机串口通信应用界面程序流程图如图5-4所示。图5-4 PC机程序流程图源程序代码如下:Dim hand As Boolean 等待回应时间到标志位,为FALSE时时间没有到,TRUE时时间到Private Sub

21、 cancel_Click() Unload Me EndEnd SubPrivate Sub send_Click()变量定义 Dim strsend$, strbit$ Dim intsend% 发送的字符长度 Dim writebuff As Variant 写输出缓冲区 Dim readbuff$ 读输入缓冲区数据 strsend = txtsend.Text intsend = Len(strsend) If intsend = 0 Then MsgBox 请输入数字字符!, , 错误 Exit Sub End If数据完整性验证 For i = 1 To intsend Step

22、1 strbit = Mid(strsend, i, 1) Select Case strbit Case Is 9输入的数据中存在非数字字符! & vbCrLf &请重新输入!, vbRetryCancel, txtsend.Text = End Select Next i On Error GoTo comrserror串行通信口参数设置 MSComm.CommPort = 1 使用Com1做为串行通信口 MSComm.Settings = 9600,n,8,1串口属性设置 MSComm.InputLen = 1 每次从接收缓冲区读取一个字符 MSComm.InputMode = comInputModeTex

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2