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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、单片机与PC机串行通信系统硬件及上位机程序设计随着计算机技术尤其是单片微型机技术的发展,单片机被广泛应用在工业控制系统中。单片机具有体积小、价格低廉、开发应用方便、可应用于恶劣工业环境的特点,在分布式控制系统中多采用单片机进行数据采集和现场控制。由于单片机的计算能力有限,难以进行复杂的数据处理,因此在功能复杂的控制系统中常采上位机下位机系统,单片机用作下位机进行数据采集和设备控制,而PC机用做上位机进行复杂的数据处理和对单片机的控制。因此如何实现PC机与单片机之间的通信具有重要的现实意义。论文详细介绍了单片机与PC机通信的软硬件实现。在硬件设计中,单片机系统与PC机系统通过RS-232串行通信

2、端口进行互连,单片机系统将由PC 机传输过来的数据信息动态的显示在LED数码管上。在软件设计中,采用Visual Basic 6.0中的MSComm通信控件设计PC上的串口通信程序。关键词:单片机;串行通信;VB6.0;RS-232;LED数码管 Design of a serial Communication system between MCU and personal computerAbstractAlong with the development of computer, especially the technology of MCU, MCU are widely used i

3、n the system of industry control. Small size, low price, the convenience of development and application and high adaptability are its peculiarities, respectiviely. It is usually used in distributed system to collect data and control on the scene. Owing to the limit of calculation, it is difficult to

4、 process complex data. Therefore, PC lower level computer system is often applied in functionally complex system. MCU collects data and control equipments as Downside machine, while PC makes complex data processing and the control of MCU. SO how to realize the communication between PC and MCU is pra

5、ctically meaningful.The essay introduces the communication between PC and MCU realized by soft and hard ware in details. IN design of hardware, MCU is connected with PC by the serial port of RS-232 and display the data passed by PC on the LED dynamically. In design of software, program of serial por

6、t are designed by MSComm communication control in the language of Visual Basic 6.0.Key Words: MCU; Serial Communication; VB6.0; RS-232; LED1 引言1.1 单片机与PC机串行通信研究背景近年来,随着科学技术的发展,PC机以其优越的性价比和丰富的软件资源成为计算机应用的主流机种。在工业控制中单片机得到广泛的应用,现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。由于单

7、片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制,二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势1。1.2 单片机与PC机串行通信研究目的和意义现代信息网络技术的一个突出特点,就是使工业控制系统中的所有设备连接成网,从而在一个核心软件管理下工作,形成一个有机的整体2。这种整体网络方式在现代工业控制系统具有传统独立控制系统所无法比拟的先进性,不仅能极大地提高工业设备的生产效率,

8、还可以大大提高系统的安全性和可靠性。单片机自诞生以来以其性能稳定、价格低廉、功能强大,在智能仪器、工业装备以及日用电子消费品中得到了广泛的应用。在单片机的输入输出控制中,除直接接上小键盘和LCD显示屏等方法外,一般都通过串口和上位机PC进行通信。这样不仅能够实现远程控制,而且能够利用PC机强大的数据处理功能以及友好的控制界面。在一般的利用PC机对单片机进行控制的场合,都是采用Windows作为上位机的平台,其优点是界面友好,编程和操作都比较容易。因此研究PC机与单片机串行通信具有重要的现实及工业意义。2 串口通信基础一般来说,计算机都有一个或多个串行端口,它们依次为Com1、Com2、Com3

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

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

11、信号地。9针串口引脚和25针串口引脚定义如表2-1所示。表2-1 9针串口引脚和25针串口引脚定义9针串口(DB9)25针串口(DB25)针号功能说明缩写针号功能说明缩写1数据载波检测DCD8数据载波检测DCD2接收数据RXD3接收数据RXD3发送数据TXD2发送数据TXD4数据终端准备DTR20数据终端准备DTR5信号地GND7信号地GND6数据设备准备好DSR6数据设备准备好DSR7请求发送RTS4请求发送RTS8清除发送CTS5清除发送CTS9振铃指示DELL22振铃指示DELL典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在5V15V,负电平在-5V-1

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

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

14、路设计4.1 主要芯片4.1.1 AT89C51 在系统设计中使用AT89C51单片机作为下位机,与PC机进行串口通信,接收数据并控制数据在LED数码管上动态显示。AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片,内置4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大5。AT89C51单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领域。1)AT89C51性能参数

15、AT89C51有如下性能参数: 与MCS-51产品指令系统的全兼容; 4k字节可重擦写Flash闪速存储器;1288字节内部RAM; 1000次可擦写周期; 全静态操作:0Hz-24MHz; 三级加密程序存储器; 32个可编程I/O口线; 2个16位定时/计数器;1个全双工异步串行口; 6个中断源,2个中断优先级; 低功耗空闲和掉电模式。2)AT89C51内部结构及管脚图AT89C51包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线7,其方框图如图4-1所示。图4-1 AT89C51方框图A

16、T89C51单片机采用40Pin封装的双列直接DIP结构,其引脚配置如图4-2所示。图4-2 AT89C51引脚配置(1)RESET/Vpd(9脚)复位信号当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。其复位电路如图4-3所示。图4-3 AT89C51复位电路(2)(30脚)地址锁存信号当访问外部程序存储器时,ALE的输出用于锁存地址的低位字节,而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别

17、单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。 (3)(29脚)片外程序存储器读选通当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。(4) EA/Vpp(31脚)内部和外部程序存储器选择信号程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。3)AT

18、89C51串行口结构(1)数据缓冲器SBUF串行口是一个可寻址的专用寄存器,有两个物理空间上各自独立的发送缓冲器和接受缓冲器,可以实现全双工通信,这两个寄存器具有同一地址(99H)。单片机的串行数据传输很简单,只要向缓冲器写入数据就可发送数据,从接收缓冲器读出数据既可接收数据。(2)串行口控制寄存器SCON它是一个可寻址的专用寄存器,用于串行通信的控制,单元地址是98H,其结构格式如表4-1所示。表4-1 SCON寄存器结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H(3)特殊功能寄存器PCON可 其

19、字节地址为87H,没有位寻址功能,与串行口有关只有PCON的最高位,其结构如表4-2所示。表4-2 特殊功能寄存器PCONPCOND7D6D5D4D3D2D1D0位符号SMODGF1GF0PDIDLSMOD:波特率选择位。当SMOD=1时,波特率加倍。4.1.2 单电源转换芯片MAX232MAX232是MAXIM公司生产的、包含两路接收/驱动器的芯片。芯片内部有一个电源电压变换器,可以将输入的+5V电源电压变换成为RS-232输出电平。硬件接口简单,被广泛使用。芯片的引脚配置及典型就工作电路如图4-4所示。 (a) 引脚图 (b) 典型电路图图4-4 MAX232芯片引脚配置和典型工作电路4.

20、1.3 74LS245LED驱动芯片74LS245是常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。当8051单片机的P0口总线负载达到或超过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所示,由

21、图可知它由8个发光二极管构成,通过不同的组合可用来显示09、AF及小数点。图4-6 “8”字形数码管LED显示器一般分为共阴极和共阳极两种,共阴极是将8个发光二极管的阴极连接在一起作为公共端,而共阳极则是将8个发光二极管的阳极连在一起作为公共端8,其构成如图4-6所示。4.2.2 LED显示器接口在单片机系统中,LED显示接口一般采用静态驱动和动态扫描两种驱动方式。静态驱动方式工作原理是每一个LED显示器有一个I/O端口驱动,亮度大,占用I/O端口多,显示位数多时很少采用;动态扫描驱动方式的工作原理是将多个显示器的段码同名端连接在一起,位码分别控制,利用眼睛的余晖暂留效应,分别显示。动态扫描驱

22、动方式下,只要保证一定的显示频率,看起来的效果和一直显示是一样的。4.3 系统设计系统中采用AT89C51单片机作为下位机,PC机作为上位机,两者通过RS-232串行口收发数据。RS-232信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换,系统中使用集成电平转换芯片MAX232实现RS-232/TTL电平转换。单片机系统总体电路如图4-7所示。图4-7 单片机系统总体电路5 PC机程序设计Visual Basic(简称VB)是Windows操作系统下简单、易学、高效的应用软件开发工具。因其具有面向对象的设计方法,友好的用户界面、编程高效、数据处理及驱动底层硬件功能强等优点而受

23、到广泛的使用。在设计PC机程序时,使用面向对象的编程方法。5.1 MSComm控件MSComm控件全称为Microsoft Communications Control,是Microsoft公司提供的简化Windows下串行通行编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。通过对此控件的属性和事件进行相应编程操作,就可以轻松实现串口通信。5.1.1 MSComm控件处理通信的方式MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。MSComm控件提供两种处理通信的方式:事件驱动方式和查询方式。1)事件驱动方式事件驱动通信是处理串行端口交互作用的

24、一种非常有效地方法。这种方式下,在事件发生时,如在串口接收缓冲区有字符等,可以利用MSComm控件的OnComm事件捕获并处理这些通信事件,OnComm事件还可以检查和处理通信错误。在编程过程中,可以在OnComm事件处理函数中加入自己的代码。这种方法的优点使程序响应及时、可靠。2)查询方式查询方式实质上还是事件驱动,在有些情况下,这种方式显得更为便捷。在程序的关键功能后,可以通过检查CommEvent属性的值来查询事件和错误,编写自己的程序代码。5.1.2 MSComm控件的主要属性MSComm控件很多重要的属性,常用属性的功能如下:CommPort属性:设置并返回通信端口号;Input属性

25、:返回并删除接收缓冲区中的数据流;Output属性:往传输缓冲区中写数据流;PortOpen属性:设置并返回通信端口的状态(开或关);Settings属性:设置并返回波特率、奇偶校验、数据位和停止位参数;InputLen属性:确定被Input属性读取的字符数,设置InputLen为0时,则Input属性读取缓冲区中的全部数据;InputMode属性:确定用Input属性读取的数据类型,设置InputMode为comInputModeText时,Input属性通过一个Variant返回文本数据,设置为comInputModeBinary时,Input属性通过一个Variant返回一个二进制数据数

26、组。5.2 应用界面设计流程5.2.1 创建项目文件(1)单击“开始”按钮,选择“程序|Microsoft Visual Basic 6.0”进入VB6.0窗口。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控件,因此要先把它加入到控件工

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

28、控件属性类型名称属性功能FormForm1Caption=上位机串口通信CommandbuttonSendCaption=发送数据发送CancelCaption=退出结束数据发送LabelLabel1Caption=发送数据:Label2Caption=串口选择:Label3Caption=状态TextBoxTxtsendText=请输入要发送的数字字符串!输入发送数据Txtport显示串行通信端口Txtmsg显示端口的状态MscommMscomm默认串口通信TimerTimerEaable=falseInterval=250应答超时控制5.3 代码实现单片机与PC机串口通信应用界面程序流程图

29、如图5-4所示。图5-4 PC机程序流程图源程序代码如下:Dim hand As Boolean 等待回应时间到标志位,为FALSE时时间没有到,TRUE时时间到Private Sub 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

30、) If intsend = 0 Then MsgBox 请输入数字字符!, , 错误 Exit Sub End If 数据完整性验证 For i = 1 To intsend Step 1 strbit = Mid(strsend, i, 1) Select Case strbit Case Is 9 MsgBox 输入的数据中存在非数字字符! & vbCrLf & 请重新输入!, vbRetryCancel, 错误 txtsend.Text = Exit Sub 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-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1