单片机与PC机串行通信系统设计_第1页
单片机与PC机串行通信系统设计_第2页
单片机与PC机串行通信系统设计_第3页
单片机与PC机串行通信系统设计_第4页
单片机与PC机串行通信系统设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、河南农业大学本科生毕业论文(设计题目单片机与PC机串行通信系统设计学院机电工程学院专业班级电子信息工程07级3班学生姓名王卫亮、高岚指导教师胡建东撰写日期:2011年5 月17 日摘要随着计算机技术尤其是单片微型机技术的发展,单片机被广泛应用在工业控制系统中。单片机具有体积小、价格低廉、开发应用方便、可应用于恶劣工业环境的特点,在分布式控制系统中多采用单片机进行数据采集和现场控制。由于单片机的计算能力有限,难以进行复杂的数据处理,因此在功能复杂的控制系统中常采上位机下位机系统,单片机用作下位机进行数据采集和设备控制,而PC机用做上位机进行复杂的数据处理和对单片机的控制。因此如何实现PC机与单片

2、机之间的通信具有重要的现实意义。论文详细介绍了单片机与PC机通信的软硬件实现。在硬件设计中,单片机系统与PC机系统通过RS-232串行通信端口进行互连,单片机系统将由PC 机传输过来的数据信息动态的显示在LED数码管上。在软件设计中,采用Visual Basic 6.0中的MSComm通信控件设计PC上的串口通信程序,在单片机编程上采用接近硬件系统的汇编语言编写通信程序及数据处理程序。关键词:单片机;串行通信;VB6.0;RS-232;LED数码管Design of a serial Communication system between MCU and personalcomputerAb

3、stractAlong with the development of computer, especially the technology of MCU, MCU are widely used in 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 s

4、ystem to collect data and control on the scene. Owing to the limit of calculation, it is difficult to 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

5、data processing and the control of MCU. SO how to realize the communication between PC and MCU is practically 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 a

6、nd display the data passed by PC on the LED dynamically. In design of software, program of serial port are designed by MSComm communication control in the language of Visual Basic 6.0, on the other hand, the program of communication and data processing are programmed by the language of assembly, whi

7、ch is more close to the hard system used by the MCU.Key Words: MCU; Serial Communication; VB6.0; RS-232; LED目录1 引言 (11.1 单片机与PC机串行通信研究背景 (11.2 单片机与PC机串行通信研究目的和意义 (11.3 论文研究内容 (12 串口通信基础理论 (22.1 两种常用接口方式 (22.2 RS-232串行接口标准 (22.3 MSComm控件 (33 系统总体设计 (53.1 系统指标设计 (53.2 总体方案设计 (54 硬件jiekoudianlu设计 (64.1

8、 主要芯片 (64.2 LED显示器 (94.3 系统设计 (105 软件设计 (115.1 PC机程序设计 (115.2 单片机软件设计 (136 仿真调试及结果分析 (156.1 Protues仿真软件简介 (156.2 仿真结果分析 (157 结语 (17参考文献 (18致谢 (19附录1:PC机事件过程及编程 (20附录2:单片机源程序 (231 引言1.1 单片机与PC机串行通信研究背景近年来,随着科学技术的发展,PC机以其优越的性价比和丰富的软件资源成为计算机应用的主流机种。在工业控制中单片机得到广泛的应用,现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时

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

10、传统独立控制系统所无法比拟的先进性,不仅能极大地提高工业设备的生产效率,还可以大大提高系统的安全性和可靠性。单片机自诞生以来以其性能稳定、价格低廉、功能强大,在智能仪器、工业装备以及日用电子消费品中得到了广泛的应用。在单片机的输入输出控制中,除直接接上小键盘和LCD显示屏等方法外,一般都通过串口和上位机PC进行通信。这样不仅能够实现远程控制,而且能够利用PC机强大的数据处理功能以及友好的控制界面。在一般的利用PC机对单片机进行控制的场合,都是采用Windows作为上位机的平台,其优点是界面友好,编程和操作都比较容易。因此研究PC机与单片机串行通信具有重要的现实及工业意义。1.3 论文研究内容论

11、文首先介绍单片机与PC机间的的通信方式及RS-232串行通信协议,其次介绍实现单片机与PC机串行通信的软件和硬件设计,再次介绍利用LED数码管进行数据显示的原理及驱动设计,最后利用Proteus 7.7 Professional单片机仿真软件对单片机系统的显示模块进行仿真调试。2 串口通信基础理论一般来说,计算机都有一个或多个串行端口,它们依次为Com1、Com2、Com3等。这些串口提供了外部设备与计算机进行数据传输和通信的通道。串行口通信是指外设和计算机间使用3根信号线进行数据传送的一种通信方式,这三根信号分别是数据信号线、地线及控制线。2.1 两种常用接口方式并行接口是指8位数据同时通过

12、并行线进行传送,这样数据的传输率能得到极大的提高。但在并行传输中,干扰会随线路长度的增加而增加,产生传输错误。因此,并行传输主要应用在近距离数据传输中,如连接打印机端口。并行接口主要使用36针接头和25针D形接头,目前以25针D形接头为主。串行口也是计算机的一种标准接口,PC机一般至少有两个串行口Com1和Com2。串行口不同于并行口,它的数据和控制信息是一位接一位在一根传输线上传送的,这样串行口较并行口能够进行远距离传送信息。串行口通常使用9针D形连接器,有些老式则使用25针D形连接器。由于CPU与接口间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,要由接收移位寄存器把串

13、行方式转换成并行方式,由发送移位寄存器把并行方式转换成串行方式。完成这种转换功能的电路叫做通用异步收发机UART。2.2 RS-232串行接口标准目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准3-7。RS-232采用不平衡传输方式,收发端的数据信号是相对信号地。9针串口引脚和25针串口引脚定义如表1-1所示。表2-1 9针串口引脚个25针串口引脚定义 续表2-1 电平在5V15V,负电平在-5V-15V;在接收数据时,接收器的典型工作电平是3V12V和-3V-12V。串口传输数据只要有接收数据针脚和发送数据针脚就能

14、实现,其连接方式如表2-2所示。表2-2 串口通信连接方式 定。2.3 MSComm控件MSComm控件全称为Microsoft Communications Control,是Microsoft公司提供的简化Windows下串行通行编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。通过对此控件的属性和事件进行相应编程操作,就可以轻松实现串口通信。MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。MSComm控件提供两种处理通信的方式:事件驱动方式和查询方式。1事件驱动方式事件驱动通信是处理串行端口交互作用的一种非常有效地方法。这种方式下,在事件

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

16、ortOpen属性:设置并返回通信端口的状态(开或关;Settings属性:设置并返回波特率、奇偶校验、数据位和停止位参数;InputLen属性:确定被Input属性读取的字符数,设置InputLen为0时,则Input 属性读取缓冲区中的全部数据;InputMode属性:确定用Input属性读取的数据类型,设置InputMode为comInputModeText时,Input属性通过一个Variant返回文本数据,设置为comInputModeBinary时,Input属性通过一个Variant返回一个二进制数据数组。3 系统总体设计3.1 系统指标设计硬件接口:单片输出的TTL电平经电平转

17、换芯片转换成为RS-232信号,然后与PC机互连。字符格式:1位起始位,8位数据位,1位停止位。通信波特率:9600bps。差错校验:无奇偶校验。下位机可以脱机单独工作,并用存储器存储由PC机传送来的数据,通信时由上位机发出通信请求,要求下位机给出回应。当单片机无应答时,PC机将重发通信请求直到下位机给出响应。传送数据前先发数据数目,接下来发送数据,下位机接收数据并动态显示在LED数码管上。3.2 总体方案设计单片机内部有一个全双工的收发缓冲器(SBUF,这两个在物理上独立的接收发射器,即可以接收也可以发射数据,它们共用同一个地址99H。在串行口的输入输出引脚上加上电平转换器,就可以方便的设计

18、成标准的RS-232接口。在设计中以PC 机为主机,单片机为从机,通过串行接口构成主从系统,设计其串行通信的基本功能,其系统框图如图3-1所示。jiantou 图3-1 系统框图Visual Basic(简称VB是Windows操作系统下简单、易学、高效的应用软件开发工具。因其具有面向对象的设计方法,友好的用户界面、编程高效、数据处理及驱动底层硬件功能强等优点而受到广泛的使用。系统设计时,PC机的通信程序使用Visual Basic编写,单片机的程序用汇编语言编写。4 硬件设计4.1 主要芯片在系统设计中使用AT89C51单片机作为下位机,与PC机进行串口通信,接收数据并控制数据在LED数码管

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

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

21、脚配置如图4-2所示。 图4-2 A T89C51引脚配置3AT89C51串行口结构(1数据缓冲器SBUF串行口是一个可寻址的专用寄存器,有两个物理空间上各自独立的发送缓冲器和接受缓冲器,可以实现全双工通信,这两个寄存器具有同一地址(99H。单片机的串行数据传输很简单,只要向缓冲器写入数据就可发送数据,从接收缓冲器读出数据既可接收数据。(2串行口控制寄存器SCON它是一个可寻址的专用寄存器,用于串行通信的控制,单元地址是98H,其结构格式如表4-1所示。 (其字节地址为87H,没有位寻址功能,与串行口有关只有PCON的最高位,其(b 典型电路 ( a 引脚图结构如表4-2所示。表4-2 特殊功

22、能寄存器PCONMAX232是MAXIM 公司生产的、包含两路接收/驱动器的芯片。芯片内部有一个电源电压变换器,可以将输入的+5V 电源电压变换成为RS-232输出电平。硬件接口简单,被广泛使用。芯片的引脚配置及典型工作电路如图4-3所示。图4-3 MAX232芯片引脚配置和典型工作电路74LS245是常用的芯片,用来驱动led 或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端CE 低电平有效时,DIR=“0”,信号由B 向A 传输;DIR=“1”,信号由A 向B 传输;当

23、CE 为高电平时,A 、B 均为高阻态,其引脚配置如图4-4所示。 图4-4 74LS245引脚配置4.2 LED 显示器LED (light emitting diode 显示是用发光二极管显示字段的显示器件,也称数码管,其外形结构如图4-5所示,由图可知它由8个发光二极管构成,通过不同的组合可用来显示09、AF 及小数点。 图4-5 “8”字形数码管LED 显示器一般分为共阴极和共阳极两种,共阴极是将在单片机系统中,LED 显示接口一般采用静态驱动和动态扫描两种驱动方式。静态驱动方式工作原理是每一个LED 显示器有一个I/O 端口驱动,亮度大,占用I/O(b 共阴极(c 共阳极(a 管脚配

24、置端口多,显示位数多时很少采用;动态扫描驱动方式的工作原理是将多个显示器的段码同名端连接在一起,位码分别控制,利用眼睛的余晖暂留效应,分别显示。动态扫描驱动方式下,只要保证一定的显示频率,看起来的效果和一直显示是一样的。4.3 系统设计系统中采用AT89C51单片机作为下位机,PC机作为上位机,两者通过RS-232串行口收发数据。RS-232信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换,系统中使用集成电平转换芯片MAX232实现RS-232/TTL电平转换。单片机系统总体电路如图4-6所示。 图4-6 单片机系统总体电路5 软件设计5.1 PC机程序设计1创建项目文件(1

25、单击“开始”按钮,选择“程序|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”命令,保存文件。2加入串口通信控件(1默认的控件工具栏中没有MSComm控件,因此要先把它加入到控件工具栏上。在控件工具栏上单击鼠标右键,在弹出的对话框中选择“Componen

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

27、附录1。 图5-4 应用界面代码程序流程图5.2 单片机软件设计单片机程序主要完成与PC机的通信及数据动态显示,包括三个主要的模块:显示模块、通信模块、数据格式转换模块和数据动态显示模块。主程序完成数据的显示和监视通信端口,其程序流程如图5-5所示;定时中断实现动态显示数据处理,其程序流程如图5-5所示。单片机系统源程序见附录2。(a主程序流程图(b定时中断流程图 图5-5 主程序及定时中断子程序流程图 6 仿真调试及结果分析6.1 Protues仿真软件简介Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能

28、仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。6.2 仿真结果分析点击“Start”按钮,出现设计的PC机串行通行界面,在“发送数据”文本框中输入要发送的数

29、字字符串(字符串长度不超过16,点击“发送”按钮,出现如图6-1所示的运行结果。 图6-1 PC机通信程序运行结果点击“退出”按钮时,退出应用程序。有此可知PC机通行程序基本可以工作。单片机采用Protues仿真软件进行仿真测试,由于进行软件仿真无法实现PC机程序与单片机系统通信测试,此次仿真只做单片机显示结果测试。为了仿真单片机系统的显示是否正常,在显示缓冲区初始化后、显示前加上如下测试程序:mov 30h,#3fh mov 31h,#06h mov 32h,#5bh mov 33h,#4fh mov 34h,#66h mov 35h,#6dh mov 36h,#7dh mov 37h,#0

30、7h mov 38h,#7fh mov 39h,#6fh mov 3ah,#77h mov 3bh,#7ch mov 3ch,#58h mov 3dh,#5eh mov 3eh,#7bh mov 3fh,#71h mov 08h,#dataadd mov datanum,#3 mov 0ah,datanum setb f0可以通过修改mov datanum,#3中3处的数值(116之间的数值来观察不同个数数据显示结果,此处以3个数据为例进行仿真测试。原程序用wave 进行编辑、编译,编译之前勾选“仿真器设置”对话框“目标文件”选项卡中的“生成.Hex 文件”。编译后将.hex 文件下载到仿真电

31、路的AT89C51中,点击“Play ”按钮得到图6-2仿真结果,经过一段时间后得到图6-3所示的结果。 ALE 30EA 31P1.0110P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17P3.6/WR 16P3.5/T115P2.7/A1528P2.4/A1225P2.5/A1326P2.6/A1427U1T1IN 11R1OUT 12T2IN 10R2OUT9T1OUT 14R1IN 13T2OUT 7R2IN 8C2+4C2-5C1+1C1-3VS+2VS-6U2C11uFC21uFC31uFC41uF R1510A 02B 01

32、A 13B 11A 24B 21A 35B 31A 46B 41A 57B 51A 68B 61A 79B 71C E 19A B /B A1U374LS245A 02B 01A 13B 11A 24B 21A 35B 31A 46B 41A 57B 51A 68B 61A 79B 71C E19A B /B A 1U474LS245162738495J1CONN-D9F 连接PC 机ALE 30EA 31P1.018P3.0/RXD10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17P3.6/WR 16P3.5/T115P2.7/A15

33、28P2.4/A1225P2.5/A1326P2.6/A1427T1IN 11R1OUT 12T2IN 10R2OUT9C2+4C2-5C1+1C1-3U2C11uF C21uF C41uFR1510A 02B 01A 13B 11A 24B 21A 35B 31A 46B 41A 57B 51A 68B 61A 79B 71C E 19A B /B A1U374LS245A 02B 01A 13B 11A 24B 21A 35B 31A 46B 41A 57B 51A 68B 61A 79B 71C E19A B /B A 1U474LS24538495J1图6-2 开始时的仿真结果 图6-

34、3 一段时间后的仿真结果 由仿真结果可以得到这样的结论:设计的单片机系统能够实现接收数据的动态显示。7 结语本文主要详述了AT89C51单片机与PC机的串行通信实现的设计方法和内容, AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory的低电压,高性能CMOS 8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中, ATMEL的AT89C51是一种高效微控制器,所以它的使

35、用前景会是相当广泛与受欢迎。因此我们有必要来学习它与PC机的通信。主要论述内容总结如下:1. 介绍了单片机的在现实生活中的使用情况与应用环境领域,市场前景与未来应用,并对总体设计做了概括性的描述。2. 详述了单片机的发展概况、特点、应用,各个部件的原理,串行口的通信方式,数码显示管的工作原理,使各个部件都能被读者所了解,从而方便人们来认识AT89C51与PC机串行通信的原理。3. 介绍了软件设计,流程,通信协议,初始化,波特率计算等软件上的准备与设计,从而为整个设计的汇编阶段做好准备。最后采用运用汇编语言将整个图纸上的设计变为实际的应用。当然本设计也存在着很大的问题,比如说功能上相对简单容易出

36、错等,这些问题可以在以后的工作中继续完善。经过几个月的毕业设,因为计时间和任务的性质的关系,没有完全按照上述的测试方法进行测试,但经过一些简单的步骤的测试,证明本设计的串行通信的稳定性与实用性。在设计的过程中我体会到了过程的快乐和结果的喜悦。人们常常说不要看重结果,主要是过程,这几个月的过程也让我深深的体会到了自己知识的匮乏和掌握的不牢固为此在将来势必要不断地继续学习与深造,为此不断地完善自我。参考文献1 李长林. Visual Basic串口通信技术与典型实例M. 北京:清华大学出版社,2006.42 李朝青,刘艳玲,沈怡麟. 单片机与PC机网络通信技术M. 北京:北京航空航天大学出版社,2

37、007.23 万福军,潘松峰,刘芳. MCS-51单片机原理、系统设计与应用. M 北京:清华大学出版社, 2008.64 周志敏,周纪海,纪爱华. LED驱动电路设计与应用M. 北京:人民邮电出版社,2006.125678910111213(20致谢经过几个月的努力,终于完成了PC机与单片机的串行通信这个毕业设计。在此,我要衷心感谢我的指导老师胡建东教授,在整个毕业设计过程中,他给予了我悉心的指导和无私的帮助,同时还要感谢同班的许多同学,我们在相互学习和交流中,解决问题共同进步。有了这么多的支持和无私帮助,才使我得以顺利完成毕业设计。衷心感谢在百忙之中评阅论文和参加答辩的各位老师及所有任课老

38、师,感谢你们为我们的学习与成才创造的各种条件和付出的辛勤劳动。室友、师兄、师姐和身边的朋友们在平时的学习、生活中给予了我很大的支持,在此表示衷心的感谢!最后感谢家人,是他们给予我精神上的鼓励、生活上的照顾、学业上的支持,使我顺利完成大学学业。附录1:PC机事件过程及编程Dim hand As Boolean'等待回应时间到标志位,为FALSE时时间没有到,TRUE时时间到Private Sub cancel_Click(Unload MeEndEnd SubPrivate Sub send_Click('变量定义Dim strsend$, strbit$Dim intsend%

39、 '发送的字符长度Dim writebuff As Variant '写输出缓冲区Dim readbuff$ '读输入缓冲区数据strsend = txtsend.Textintsend = Len(strsendIf intsend = 0 ThenMsgBox "请输入数字字符!", , "错误"Exit SubEnd If'数据完整性验证For i = 1 To intsend Step 1strbit = Mid(strsend, i, 1Select Case strbitCase Is < "0

40、", Is > "9"MsgBox "输入的数据中存在非数字字符!" & vbCrLf & "请重新输入!", vbRetryCancel, "错误"txtsend.Text = ""Exit SubEnd SelectNext iOn Error GoTo comrserror'串行通信口参数设置MSComm.CommPort = 1 '使用Com1做为串行通信口MSComm.Settings = "9600,n,8,1" &

41、#39;串口属性设置MSComm.InputLen = 1 '每次从接收缓冲区读取一个字符MSComm.InputMode = comInputModeText '以字符形式从缓冲区中接受字符MSComm.InBufferCount = 0 '清除输入缓冲区MSComm.OutBufferCount = 0 '清除输出缓冲区MSComm.PortOpen = True '打开通行端口txtport.Text = "COM" & MSComm.CommPorttxtmsg.Text = "串口COM" &am

42、p; MSComm.CommPort & "打开成功!波特率=9600bps"'发送握手信号handle:hand = False '开始发送握手信号时回应标志位为FALSEwritebuff = Chr$(&HFF '准备握手信号&HffhMSComm.Output = writebuff '发送握手信号Timer.Enabled = True '启动应答定时器DoDoEventsIf hand ThenGoTo handle '定时时间到未收到回应信号重发握手信号End IfLoop Until M

43、SComm.InBufferCount '等待回应'收到对方的回应Timer.Enabled = False'读取并判断是否为规定的联络信号readbuff = MSComm.InputIf Asc(readbuff = 255 Thenwritebuff = Chr$(intsendMSComm.Output = writebuff '收到正确的回应,发送字符个数和数据writebuff = strsendMSComm.Output = writebuffMSComm.PortOpen = False '发送完数据关闭端口Exit SubElseGoT

44、o handleEnd Ifcomrserror:End SubPrivate Sub Timer_Timer(Timer.Enabled = Falsehand = True '定时间到关闭定时器,设置标志位End SubPrivate Sub txtsend_Click(txtsend.Text = ""End Sub附录2:单片机源程序datanum equ 20h ;存放接收到的数据个数dataadd equ 30h ;接收到的数据存放的地址org 0000hljmp mainorg 000bhljmp t0_intorg 0100h;主程序main: mo

45、v sp,#0fh ;从0fh开始设置堆栈mov tmod,#22h ;T0、T1工作于自动重装载方式mov th1,#0fdhmov tl1,#0fdhsetb tr1 ;晶振频率11.059Mhz,波特率设置为9600mov scon,#50h ;设置串行口工作于方式一mov 50h,#40mov 51h,#100mov th0,#6mov tl0,#6 ;1s定时初始化setb tr0 ;开定时器T0setb et0 ;开定时器T0中断setb ea ;开总中断mov datanum,#0 ;初始时接收数据的个数为0 display: mov r7,#6mov r0,#40hcl_next: mov r0,#0inc r0djnz r7,cl_next ;数据显示区初始化display0: mov r0,#45h ;r0执行待输出的数据地址处mov r7,#6 ;扫描次数mov r6,#0feh ;r6存放数码管的位码,显示初始化display1: mov p0,r6 ;P0口输出位码mov p2,r0 ;P2口输出段码dec r0 ;r0指向下一个待输出的段码mov a,r6rl a

温馨提示

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

评论

0/150

提交评论