摘 要
随着计算机技术特别是单片机技术的发展,单片机的应用领域越来越广泛,单片机在工业控制、
数据采集以及仪器仪表自动化等许多领域都起着十分重要的作用。但在实际应用中,在要求响应
速度快、实时性强、控制量多的应用场合,单个单片机往往难以胜任,这时使用多个单片机接合
PC 机组成分布式系统是一个比较好的解决方案。这样,单片机的数据通信技术就变得十分重要,
在某种程度上说,掌握了单片机的数据通信技术也就是掌握了单片机的核心应用技术。
现在单片机及 PC 机在结构、性能和经济上为实现远程串行通信提供了很好的条件,串行通信是
指按照逐位顺序传递数据的通信方式,由于仅需三根传输线传送信息且通信距离相对较远,所以
在控制领域的现场监测、分布控制等场合有着重要的应用价值。
本论文运用单片机系统的设计方法,对单片机与 PC 机的串行通信系统进行设计,通过总体方案
的分析与设计,确定了所采用单片机的型号,并明确硬件设计与软件设计的内容,硬件设计方面
需要对单片机控制系统的硬件电路,如时钟电路、复位电路进行设计,串口部分确定了以定时器
T1 工作在方式 2 作为波特率发生器,单片机与 PC 机采用了标准的 RS-232C 接口进行连接,其中
存在着电平转换电路的设计,利用了 PROTEL99SE 软件进行通信系统硬件电路原理图的绘制,
并生成报表。软件设计方面,利用 VB 的 MSComm 控件进行串口通信软件的开发,根据系统的
功能要求,利用汇编程序进行单片机收发数据的程序编制,利用 51 汇编集成开发环境和
STC-ISPV13 下载型编程器对单片机汇编程序进行烧录。在系统软硬件调试的过程中,采用
AT89C51 单片机试验开发板进行功能测试。最后进行分析,验证系统的可行性。
关键词:PC 机与单片机的串行通信;VB 程序设计;AT89C51 实验板
Abstract
With the development of computer technology, especially the development of SCM ,the application
areas of SCM are increasingly widespread ,SCM play an important role in the industrial control, data
acquisition, instrumentation automation and many other areas. However, in practical application, in
response to demands speed, real-time and control the volume of applications, SCM is often difficult to
individual competence, at this time the use of multiple microcontroller interface between PC
components distributed system is a better solution. Thus, the SCM data communication technology has
become very important and in some ways, mastered the SCM data communications technology is the
master of microcontroller core application technology.
Now SCM and PC in structure, and economic performance for remote serial communication give a
very good condition, serial communication refers bit sequence data transfer modes of communications,
just as only need three transmission lines to carry information and communication relatively distant,
therefore, in the control area of the scene monitoring, distributed control and other forums have
important value.
In this paper, use SCM system design methods, design serial communications system of SCM and the
PC, through analysis and design of the overall program, identified the use of SCM models, clear
hardware design and software design, hardware design needs to design hardware circuit of the
single-chip microcomputer control system ,such as the clock circuit, reset circuit, serial determinate the
part timers T1 work in two ways as a baud rate generator, SCM and PC adopt the standard RS-232C
interface for connectivity, which there is a level converter circuit design, use the PROTEL99SE
software for communications systems hardware circuit diagram drawing and generating statements.
Software design, use VB MSComm for the development of serial communication software, According
to the functional requirements, use the compilation process data transceiver microcontroller
programming, use 51 compilation integrated development environment and the STC-type programming
ISPV13 downloaded for the compilation of SCM procedures burning recorded. The system hardware
and software debugging process, use AT89C51 experimental development board for functional testing.
Final through analysis, verify feasibility of the system.
key words:SCM and PC serial communications;VB Programming ; AT89C51 Test Plate
目 录
第1章 绪论 4
1.1 单片机串行通信原理与实现方法 4
1.2 单片机系统设计方法 4
1.3 本次设计的工作任务 5
第2章 总体方案设计 7
2.1 可行性分析 7
2.2 系统功能分析 7
2.3 单片机选型 7
2.4 系统硬软件的功能设计 8
2.5 本章小结 8
第3章 系统硬件设计 8
3.1 单片机系统设计 9
3.1.1 单片机基本概念 9
3.1.2 时钟电路设计 9
3.1.3 复位电路设计 10
3.1.4 单片机串口波特率发生器的选择 11
3.2 单片机串口电平转换电路设计 13
3.2.1 通信协议的采用 13
3.2.2 电平转换电路的设计 14
3.2.3 外围功能模块的选择 15
3.3 绘制电路原理图 15
3.4 本章小结 18
第4章 系统软件设计 20
4.1 PC端串口通信程序 20
4.1.1 分析 20
4.1.2 串行通信的两种方式 21
4.1.3 MSComm 控件简介 21
4.1.4 使用 VB 开发串口通信软件 21
4.2 单片机数据收发程序的开发 28
第 5 章 系统调试 34
5.1 AT89C51 单片机实验开发板介绍 34
5.2 对系统的软件部分进行调试 35
结论 43
致谢 44
参考文献 45
第1章 绪论
1.1 单片机串行通信原理与实现方法
在各种单片机应用系统的设计中,如智能仪器仪表、各类手持设备、GPS 接收器等,常常遇到计
算机与外界的信息交换,即通讯。通信的基本方式可分为并行通信与串行通信两种。
并行通信是将组成数据的各位同时传送,并通过并行门(如 P1 口等)来实现。在并行通信中,
数据传送线的根数与传送的数据位数相等,传送数据速度快,但所占用的传输线位数多。因此并
行通信适合短距离通信。
串行通信是指数据一位一位地按顺序传送。串行通信通过串行口来实现。在全双工的串行通信中,
仅需要一根发送线和一根接收线,串行通信可大大节省传送线路的成本,但数据传送速度慢。因
此,串行通信适合于远距离通信。
目前,在许多单片机应用系统中,上、下位机分工明确,作为下位机核心器件的单片机往往只负
责数据的采集和通信,而上位机通常以基于图形界面的 Windows 系统为操作平台,为便于查询和
保存数据,还需要数据库的支持,如在测控系统中使用 SQL Server数据库。
现阶段这种应用的核心便是数据通信,它包括单片机和上位机之间、客户端和服务器之间以及客
户端和客户端之间的通信,而在单片机和上位机之间的数据通信则是整个系统的基础。单片机和
PC 的通信是通过单片机的串口和 PC 机之间的硬件连接实现。鉴于 PC 机具有强大的监控和管理
功能,单片机则具有快速以及容易控制的特点,在数据量不大、传输要求不高的情况下,一般都
采用给 PC 机配置的 RS-232 标准串行接口 COM1 、COM2 等相连接来实现应用系统与 PC 机之间
的数据交换。
1.2 单片机系统设计方法
一个完整的单片机系统的设计是相当复杂。硬件设计方面,设计者不仅要对微机系统本身设计,
还要根据具体的应用添加外围设备的接口电路和驱动电路。软件设计方面,则需要根据具体硬件
结构来实现单片机系统的功能。在实际的应用中,由于应用环境不同,开发者还应当考虑到温度、
功率、产品体积、可靠性、抗干扰性、实时性等众多问题,并提供硬件的或软件的解决方案,以
保证最终产品的可靠性,其复杂程度远比通常所说的微机系统更高。
单片机应用系统的设计应按照以下几个步骤来进行。
1.总体方案设计
设计者需要考虑实际应用环境的需要,确定系统的整体设计方案。首先进行可行性分析。其次是
对系统中的核心—单片机的选型,这涉及到应用系统本身对数据处理能力的要求,以及是否有其
他方面的特殊需要(低功耗、工作温度、接口电路),如果产品需要成批生产,还要考虑市场供
应和系统成本等方面的问题。最后对系统各项功能的划分,确认软件和硬件的分工问题。经过这
一阶段的设计,设计者应该已经有 比较成型的系统设计框架,对软硬件系统的分工有较明确的
方案。此时,可以开始进行系统的硬件设计工作了。
2.系统硬件设计
系统硬件设计阶段,设计者需要对各个模块的硬件部分进行具体设计。这部分包括单片系统的设
计,外围功能模块的选择,i/o口的分配,单片机与外围模块,单片机与单片机之间通信线路的选
择,模拟输入/输出通道电路设计等方面。当具体的硬件系统功能框图完成后,可以绘制电路的原
理图,同时设计者还要对电路设计进行进一步的验证。完成电路原理图的绘制后,还需要使用
PROTEL 等工具软件绘制硬件系统的 PCB 版图,然后的工作是将绘制完成的 PCB 版图交给电路
板制造厂商,进行电路板的制作。
3.系统软件设计
一个完整的单片机系统只有硬件还不能工作,必须有软件来控制整个系统的运行。单片机系统的
软件设计主要使用汇编语言或 C51 语言。单片机的软件部分 ,主要任务包括系统的初始化、各
模块参数的设置、中断请求管理、定时器管理、外围模块读写、功能算法实现、可靠性和抗干扰
设计等方面。
软件的设计可以分两个阶段。首先,在等待电路板制作期间,设计者可以按照最初的设计思路完
成部分的软件设计工作。随后当硬件部分的制作完成后,设计者还需要根据硬件将事先完成的软
件部分的各个模块进行组合和调整。
4.系统调试
电路板制作完成后,设计者需要按照 PCB 板的绘制图焊接各个元件,同时检测硬件方面的设计
错误。发现问题后,如果能够补救,可以使用飞线等手段修改硬件设计,如果出现无法解决的错
误,就只能推倒整个硬件设计,重新进行 PCB 版图的绘制等工作了。
在对硬件系统进行必要的测试后,可以使用仿真器或干脆将完成的软件部分程序烧写到硬件系统
的 ROM 中进行系统功能的测试。对可能出现的问题,需要从软件和硬件两个方面考虑,这一阶
段需要大量的测试程序对系统等各个部分进行分别的测试,才能找到问题的所在。
当软件和硬件能够很好地配合,完成预定的功能后,并不意味着单片机设计的功能已经完成,设
计者还要对系统进行全面的测试,保证系统在绝大多数情况下都可以正常的工作。
当这一切都完成后,设计者还应该将产品本身放到实际的工作环境中进行测试,这时往往会暴露
出很多原先没有考虑到的问题。
5.系统完善与升级
产品设计达到预期要求后,设计者还需要最后对整个产品进行进一步的优化和组合,并在可允许
的情况下为系统预留升级的接口。当所有步骤完成后,设计者可以宣布产品设计的结束,进入产
品的工业生产阶段。
完整的单片机系统设计流程如图 1-1。
图 1-1 单片机系统设计流程
1.3 本次设计的工作任务
标准的 51 单片机都有一个全双工串行通信接口,利用这个通信接口,我们可以方便地与其它单
片机系统或电脑(PC 机)进行串行通信,相互交换数据。在微机测控系统中,一般称计算机为