单片机串行通信功能设计_第1页
单片机串行通信功能设计_第2页
单片机串行通信功能设计_第3页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机串行通信功能设计摘要现代的单片机测控系统中通常以 PC 机作为控制中心,单片机将 采集到的数据通过串口送给 PC 机进行各种处理,为保证数据传送的 及时性和正确性,就必须建立可靠的通讯。在开发控制系统时,信号 的测控及采集均由单片机系统自行完成, 然后通过异步串行通信口将 信号实时地传送给 PC 机进行处理。上位 PC 机使用 VB 进行串口通 信的编程,下位单片机使用 C51 进行编程。本文详述了使用 VB 和 C51 实现 PC 机和单片机串行通信的开发方法,并简要地介绍了VB通讯控件及其使用方法,给出了调试程序。采用将置于现场MCS 51单片机应用系统挂在主机PC的串行 通信上,通

2、过串行通信电路及系统控制软件与 PC机和单片机进行数 据交换的方式, 实现了对现场数据的接收与发送。 串行通信系统主机 采用标准接口。该系统的通信是由 PC 机主动进行发信访问,各个 MCS 一 51单片机处于被动通信状态,对 PC机与单片机数据通信的 校验采用奇校验方式。关键词:单片机;串行通信; VB 程序设计 ; 上位机AbstractModern microcontroller measure-control system usually regard PC as the control center, the microcontroller will send the collect

3、ed data to a PC for a serial port, to ensure that the transmission of all the timeliness and accuracy data, It must establish reliable com muni cati on. In the development of the control system, signal control and collection of microcomputer system itself, then through asynchronous serial com muni c

4、ati on to the real-time sig nal tran smitted PC.PC using VB program ming for serial com muni catio n, SCM C51 use for program ming. The paper describes using VB C51 and PC machine and MCU developme nt method of serial com muni cati on, and briefly in troduces the method of using VB com muni cati on

5、con trol is prese nted, and debuggi ng. Usi ng placed on site MCS a 51 SCM system in the PC host han gi ng on the serial com muni cati on, through serial com muni cati on circuit and control system software and PC and MCU exchange data on site, receivi ng and sending data. Serial com muni cati on sy

6、stem is using sta ndard in terface host. The system of com muni cati on by the PC is active on a visit each MCS kin dhearted passive com muni cati on 51-series microcomputer. For PC and calibration adopts single-chip data com muni cati on's parity.Keywords: Sin gle Chip; Serial com muni cati on;

7、 VB program desig n; Host computer目录第一章 绪论 1.1.1 单片机技术介绍 1.1.2 课题背景与意义 2.1.3 课题研究内容 3.第二章 串行通信基础 4.2.1 串行通信协议 4.2.2 通信方式 5.2.2.1 串行通信 5.2.2.2 并行通信 6.2.3 串行通信方式 6.2.3.1 异步串行通信方式 6.2.3.2 同步串行通信方式 7.2.4 串行通信的制式 8.2.4.1 单工 8.2.4.2 半双工 8.2.4.3 全双工 9.2.5 波特率 9.2.6 串行通信的错误校验 1.02.6.1 奇偶校验 1.0.2.6.2 代码和校验 1

8、.0.2.6.3 循环冗余校验 1.0.2.7 串行通信的工作方式 1.12.7.1 方式 01.1.2.7.2 方式 11.2.2.7.3 方式 2 和方式 31.32.8 本章小结 1.4.第三章 系统开发基础 1.5.3.1 系统硬件 1.5.3.1.1 微处理器芯片 89C511.53.1.2 显示芯片 HD7279A1.73.1.3 串行通信芯 MAX23.21.83.2 软件工具及编程语言 1.9321选用VB开发上位机软件 19322 MSComm控件的主要属性、事件193.2.3 编程小结 2.0.33 系统方案设计 2.1.第四章 系统方案实施 2.2.4.1 接口设计 2.

9、2.4.1.1 系统连接电路 2.24.1.2 串行通信电路 2.3.4.2 软件设计 2.4.4.2.1显示HD7279显示程序244.2.2 串行口通信 2.5.423 VB 通信程序264.3小结 2.7.第五章 结束语 2.8.致 谢 错. 误!未定义书签。参考文献 2.9.第一章绪论1.1单片机技术介绍单片机也被称为微控制器(Microcontroller Unit ),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅 有CPU的专用处理器发展而来。 最早的设计理念是通过将大量外围设备和 CPU集成在一个芯片中,使计算机系统更小,更容易集成为复杂的而对

10、体 积要求严格的控制设备当中。自单片机出现至今,单片机技术已走过了近 20年的发展路程。纵观20年 来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域为拉动,表现出较微处理 器更具个性的发展趋势。与此同时在市场上以单片机为核心控制器的产品更是 层出不穷,各种家用电器、智能仪器仪表、医疗器械、机电一体化、实时工业 控制、交通领域无不用到单片机。从目前单片机的发展趋势来看,单片机控制 技术已成为电子设计技术及计算机技术不可缺少的一个重要部分,因此单片机 系统在电子世界里有着较好的前景,进行单片机的系统开发设计在当今电子领 域有着重

11、大的意义。单片机又称单片微控制器 ,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机 相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 同时,学习使用单片机是了解计算机原理与结构的最佳选择。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有 较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的 功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能 做

12、到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞 定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写 的程序可以实现咼智能,咼效率,以及咼可靠性!由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级 汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为 什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不 用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视

13、化高级语言编写的小程序里面即使只有 一个按钮,也会达到几十K的尺寸!对于家用 PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨 型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。1.2课题背景与意义计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行 通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传 输时,避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS

14、-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。 它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计 算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间 串行二进制数据交换接口技术标准”该标 准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以 规定,还对各种信 号的电平加以规定。随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单 片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。PC机具有强大的监控和管理功能,而单片机则具有快速

15、及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种 通信解决方案。因此如何实现PC机与单片机之间的通讯具有非常重要的现实意 义。1.3课题研究内容设计要求实现如下功能(1)完成最小系统设计;(2)设计串行通信接口,实现与 PC机的通信;(3)具有人机对话功能,可通过键盘进行输入。具有串行通信功能的数据采集模块为通用化模块设计,下位机A/D芯片可采集工业现场的标准信号,经单片机数据量化能够实时上传给PC机,灵活组网,使用十分方便。基于单片机技术的发展,随着其成本的降低,这种通过RS232 串口与外围数据采集设备的通信模式将会更大地发挥其市场价值。下章

16、先介绍 串行通信基础知识。第二章串行通信基础2.1串行通信协议最被人们熟悉的串行通信技术标准是EIA 232、EIA-422和EIA 485,也就是以前所称的RS-232、RS-422和RS-485。由于 EIA提出的建议标准都是以“ RS乍为前缀,所以在工业通信领域,仍然习惯将上述标准 以RS作前缀称谓。EIA 232、EIA-422和EIA 485都是串行数据接口标准,最初都是 由电子工业协会(EIA )制订并发布的,EIA-232在1962年发布,后来陆 续 有不少改进版本,其中最常用的是EIA-232-C版。(1)EIA-232目前EIA-232是PC机与通信工业中应用最广泛的一种串行

17、接口。EIA-232被定义为一种在低速率串行通信中增加通信距离的单端标准。EIA-232采取不平衡传输方式,即所谓单端通信。标准规定,EIA 232的传送距离要求可达 50英尺(约15米),最高速率为20kbps。(2)EIA-422由于EIA-232存在传输距离有限等不足,于是EIA-422诞生了。EIA-422标准全称是 平衡电压数字接口电路的电气特性”,它定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到 4000英尺(约1219米),并允许在一条平衡总线上连接最多10个接收器。当然,EIA 422也有缺陷:因为其平衡双绞线的长度与传输速率成反比,所以在 100kbps

18、速率以内,传输距离才可能达到最大值,也就是说,只有在很短 的距离下才能获得最高传输速率。一般在100米长的双绞线上所能获得的最大传输速率仅为 1Mbps。另外有一点必须指出,在EIA-422通信中,只有一个主设备(Master),其余为从设备(Salve),从设备之间不能进行通 信,所以EIA-422支持的是点对多点的双向通信。(3)EIA-485为扩展应用范围,EIA 于1983年在 EIA-422 基础上制定了EIA-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为 TIA/EIA-485-A

19、标准。由于EIA-485是从EIA-422基础上发展而来的,所以EIA-485许多电气规定与EIA-422相仿,如都采用平衡传输方式、都需要在传输线上接终 接电阻、最大传输距离约为1219米、最大传输速率为10Mbps等。但是,EIA-485可以采用二线与四线方式,采用二线制时可实现真正的多点双向 通信,而采用四线连接时,与EIA-422 样只能实现点对多点通信,但它比EIA-422有改进,无论四线还是二线连接方式总线上可接多达32个设备。由于EIA-232、EIA-422与EIA-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,标准内容规定比较简单,在此标准基 础上,用户可

20、以建立自己的高层通信协议。因此,这些串行通信技术应用 很广,如录像机、计算机以及许多工业控制设备上都配备有EIA - 232串行通信接口。2.2通信方式通信方式分为并行通信方式和串行通信方式两种2.2.1串行通信所谓"串行通信"是指将数据字节分成一位一位的形式在一条传输线上逐个 地传送,此时只需要一条数据线,外加一条公共信号地线和若干控制信号线。 因此一次只能传输一位,所以对于一个字节的数据,至少要分8位才能传送完毕。串行通信的必要过程是:发送时,要把并行数据变成串行数据发送到线路 上去,接受时,要把串行信号再变成并行数据,这样才能被计算机及其他设备 处理。如图2.1所示。

21、停止位 0 100 00 0 起始位| I I I I I I i I |1»IIIi>9III-11I1.j|1 IIP1H|1IIIPII图2.1串行通信方式串行通讯方式,由于高速率的要求,处于计算机内部的CPU与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现CPU与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计 算机时,数据格式由位(bit)转化为字节数据;串行端口的本质功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU经过串行端口发送出去时,字节 数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。反之,当

22、 计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。2.2.2并行通信通信有并行和串行两种方式。并行通讯通常是将数据的各位用多条数据线同时进行传输,并由传输的数据位数线外加地址线和通信控制线。优点是传输速率高,缺点是长距离传输成本高,可靠性差,只适用于近距离传输。2.3串行通信方式串行通信又有两种方式:异步串行通信和同步串行通信。2.3.1异步串行通信方式异步串行通信方式是指通信的发送与接收设备使用各自的时钟控制数据的 发送和接收过程。为使双方收、发协调,要求发送和接收设备的时钟尽可能一 致。异步串行通信的字符物格式所谓异步串行通信是指具有不规则数据 段传送特性的串行数据传输异步通

23、信数据帧的第一位是开始位,在通信线上没有数据传送时处于 逻辑 T状态。当发送设备要发送一个字符数据时,首先发出一个逻辑0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当 接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此, 起始位所起的作用就是表示字符传送开始。当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可 以是5, 6, 7或8位的数据。在字符数据传送过程中,数据位从最低位开 始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差 错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质

24、,这种性质用于检错,虽 有限但很容易实现。 在奇偶位或数据位之后发送的是停止位,可以是1位、1. 5位或2位。停止位是一个字符数据的结束标志。在异步通信中,字符数据以图所示的格式一个一个地传送。在发送间 隙,即空闲时,通信线路总是处于逻辑T状态,每个字符数据的传送均以 停j 止: 位:空下一字符 闲起始位逻辑0”开始2,如图2.2.1所示。起始位空闲一一个字符帧 校验 数据位位:LSBMSB!图22异步串行通信字符帧格式异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销 较小,但每个字符要附加23位,用于起止位,校验位和停止位,各帧之间还 有间隔,因此传输效率不高。在单片机与单片

25、机之间,单片机与计算机之间通信时,通常采用异步串行 通信。2.3.2同步串行通信方式同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方完全达到完全同步。此时,传输数据的位之间的距离均为 位间隔”的整数倍,同时传送 的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收 方的同步可以通过外同步和自同步两种方法实现。如图222所示SNYSNY数据1数据2Y二个同步字符数据n连续几个数据CRCiCRC2丿2字节校验码图2.3同步串行通信数据格式2.4串行通信的制式2.4.1单工单工是指数据传输仅能沿一个方向,不能实现反方向传输3。如图2.3.1所 示。图2.4单工2.4.2半双工

26、半双工是指数据传输可以沿两个方向,但需要分时进行。如图2.3.2所示图2.5半双工2.4.3全双工全双工是指数据可以同时进行双向传输。如图2.3.3所示图2.6全双工2.5波特率数据的传输速度可以用波特率表示。波特率是美妙传输二进制代码的位数, 单位:位/s。在异步通讯中,接收方和发送方应使用相同的波特率,才能成功 传输数据。波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可 对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的, 而方式1和方式3的波特率是可变的,由定时器 T1的溢出率来决定。串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来

27、源不同, 所以,各种方式的波特率计算公式也不相同 。方式0的波特率fosc/12方式2的波特率 =(2SMOD/64)-fosc方式1的波特率方式3的波特率=(2SMOD/32)=(2SMOD/32)(T1溢出率)(T1溢出率)当T1作为波特率发生器时,最典型的用法是使 T1工作在自动再装入的8位定 时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。如公式2-1所示。(2-1)T1 溢出率 =fosc /12 256 (TH1) 2.6串行通信的错误校验2.6.1奇偶校验在传送数据时,数据位尾随的1位为奇偶校验位(1或0),奇校验时,数 据中1的个数

28、与校验位1的个数之和应为奇数;偶校验时,数据中 1的个数与 校验位1的个数之和应为偶数。接收字符时,对 1的个数进行校验,若发现不 一致,则说明传输数据过程中出现了差错5 02.6.2代码和校验代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的 校验字符(校验和)附加到数据块末尾。接收方接收数据时同时对数据块(除 校验字节外)求和(或各字节异或),将所得的结果与发送方的 校验和”进行比 较,相符则无差错,否则即认为传送过程中出现了差错。2.6.3循环冗余校验这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常 用于对磁盘信息的传输,存储区的完整性校验等。这种校验方法

29、纠错能力强, 广泛应用于同步通信中。2.7串行通信的工作方式串行接口可由SCON中的SM0和SM1设置4种工作方式。2.7.1 方式0方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行 输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1) 引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。(1)方式0输出写入SBUFRXD(数据)-芒旦-.史竺_ txd(移位脉冲)|_J_|_J_L_l_LJLJ_LJ_L_l_LJ TI (中断标志)'图2.7方式0输出时序(2)方式0输入REN=1 IRI=0RXD(数

30、据输入)D1:D2:D3D4 D5D6TXD(移位脉冲)图2.8方式0输入时序方式0接收和发送电路,如图RXD 80C51TXDP1.0 -74LS164CLK CLRGND图2.9全双工272方式1(1)方式1输出写入 sbuf|TXD起始亘;卫:巴竺竺- T7 停止位TI (中断标志)图2.10方式1输出时序(2)方式1输入rxd '起始 卫;p.卫- 24、!d£. Ids '停止位 位米样脉冲丁- 二 '.7 ; W RI (中断标志)图2.11方式1输入时序用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚 电平,检测到RXD引脚输

31、入电平发生负跳变时,则说明起始位有效,将其移入 输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入 移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最 后一次移位。当RI=0,且SM2=0 (或接收到的停止位为1)时,将接收到的9 位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1, 向CPU请求中断。2.7.3方式2和方式3万式2或万式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD 为数据接收引脚。1帧共11位空闲数据位9位停止位空闲D0D7赳RBf3/TB8LSBMSB图2.12异步通信字符帧格式方式2和方式3时起始

32、位1位,数据9位(含1位附加的第9位,发送时 为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2 的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出 率决定。(1)方式2和方式3输出写入 sbUFTXD 起始 卫 色卫20 卫卫.卫6,卫7詞砂 停止位TI (中断标志)图2.13方式2和方式3的发送时序发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出 位(D0)到TXD引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位, 并由TXD引脚输出。第一次移位时,停止位“ 1移入输出移位寄存器的第9位上,以后每次移 位,左边都移入

33、0。当停止位移至输出位时,左边其余位全为 0,检测电路检测 到这一条件时,使控制电路进行最后一次移位,并置 TI=1,向CPU请求中断。(2)方式2和方式3输入RXD停止位n 血fwi nnna 耐训 几冊丽 Jiiwi iuiji fwi hiw位采样脉冲RI (中断标志)图2.14方式2和方式3的接收时序接收时,数据从右边移入输入移位寄存器,在起始位 0移到最左边时,控 制电路进行最后一次移位。当 RI=0,且SM2=0 (或接收到的第9位数据为1) 时,接收到的数据装入接收缓冲器 SBUF和RB8(接收数据的第9位),置RI=1, 向CPU请求中断。如果条件不满足,则数据丢失,且不置位R

34、I,继续搜索RXD 引脚的负跳变。2.8本章小结本章介绍了串行口的通信协议,通信方式,串行口的通信制式,串行口的 工作方式,串行通信的错误校验,串行通信的波特率,等串行通信的基础知识, 接下来将从具体的软件来实现计算机与单片机的之间的通信。19>XTAL1PO.O/ADOP0.1WD1Pa2ZAD2XTAL2P0.3XAD3 PO 4WD4 Pa.5D5 PG.5/AD6RSTPD.7/AD7P2.0/ASP2.VA9P2 2/A10;PSEN AT89C51P2.3/A11i ALEP2.4/A12EAP2 5/A13P2.0/A14P2.7/A15P1,0H 2P3.0/RXD:P1

35、 1AT2EXP3.1HXDPI 2P32/NT0P3 3jWT1P3 4)T0.4P1 sP35)T1P1 6P36JWRP17P3.7IRDU1s'±abldiHi吕兰兰二弐aqHi亠Hf-图3.1 89C51单片机引脚图第三章系统开发基础3.1系统硬件3.1.1微处理器芯片89C51(1) 89C51组成:89C51由8个部件组 成,即微处理器(CPU),数据存储器(RAM), 程序存储器(EEPROM), I/O 口(P0,P1, P2, P3),串行口,定时器计数器,中断系统 及特殊功能寄存器(SFR) 数据存储器:片内为128个字节,片外 最多可外扩64K字节;

36、程序存储器:片内为4K EERPOM, 片外最多可外扩64K字节; 中断系统:具有5个中断源,2级中断 优先权; 定时器/计数器:2个16位的定时器/计 数器,具有四种工作方式; 串行口: 1个全双工的串行口,具有四种工作方式;P0,P1,P2, P3:为 4个并行 I/O 口;特殊功能寄存器(SFR):共有21个,用于对片内各功能模块进行管理, 控制,监视。实际上是一些控制寄存器和状态寄存器,是一个特殊功能的RAM 区。微处理器(CPU):为8位的CPU,且内含一个1位CPU (位处理器)(2)引脚及功能:电源及时钟引脚VCC( 40):接+5V直流电源VSS( 20):接地XTAL 1(

37、19):接外部晶体的一个引脚。在单片机内部,它是一个反向放 大器的输入端;XTAL2 (18):接外部晶体的一个引脚。在单片机内部接到内部反相器的输出端; 控制引脚RST/VPD(9):当震荡器运行时,在此引脚加上两个机器周期的高电平 将使单片机复位(RST)。掉电期间,此引脚可接上备用电源(VPD),以保持 内部RAM的数据,当Vcc下降到低于规定的值,而VPD在其规定的电压范 围内(5+0.5V)时,VPD就向内部RAM提供备用电源;ALE/PROG(30):当访问单片机外部存储器时,ALE (地址锁存允许) 输出脉冲的负跳沿,用于16位地址的低8位的锁存信号。即使不访问外部存储 器,AL

38、E端仍有正脉冲信号输出,此频率为始终震荡器频率的1/6。ALE端可以驱动8个TTL负载。对于EPROM型单片机(8751),在EPROM编程 期间,此引脚用来输入编程脉冲(PROG);PSEN(29):此脚的输出是单片机访问外部程序存储器的读选通信号。 在由外部程序存储器取指令(或常数)期间,每个机器周期PSEN两次有效。PSEN可以驱动8个LSTTL负载;EA/VPP(31):当EA端保持高电平时,单片机访问内部程序存储器, 但在PC值超过0FFFFH,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,只访问外部程序存储器。对于89C51,因其片内有 4KFFPROM,故该脚接高电平

39、。在 FFPROM编程期间,VPP编程电压为 +12V 或 +5V。 I/O 口引脚P0 口( 39-32):双向8位三态I/O 口,此口为地址总线(低 8位)及数 据总线分时复用口,可带8个LSTTL负载;P1 口( 1-8): 8位准双向I/O 口,可带4个LSTTL负载;P2 口( 21-28): 8位准双向I/O 口,与地址总线(高8位)复用,可带4 个LSTTL负载;P3 口( 10-17): 8位准双向I/O 口,双功能复用口。3.1.2 显示芯片HD7279A(1) HD7279A是键盘/显示器的串行控制芯片,能同时驱动 8位共阴极LED数码管或64个独立的LED发光二极管以及6

40、4键的键盘(8*8键盘矩阵)。(2)引脚及功能:28脚双列直插式封装,单一 +5V供电图3.2 HD7279引脚图表2 1 HD7279引脚说明引脚名称说明1, 2Vcc+5v电源3, 5NC悬空4Vss接地6CS片选信号,低电平有效7CLK同步时钟输入端8DATA串行数据写入/读出端9KEY接键有效输出端10-16SG-SALED的g-a段驱动输出17DP小数点驱动输出端18-25DIG0-DIG7LED驱动输出端26CLKO振荡输出端27RCRC振荡器连接端28RESET复位端,低电平有效3.1.3 串行通信芯 MAX232(1) 通常PC机的主板会提供一个打印机输出并行端口 (LPT),

41、两个串行口 (C0M1、COM2),并行口主要进行短距离的数据传送,至少需要8根数据线同时进行数据的传送,因而传送速率较快。而长距离的数据传送只能采用串 行口,串行口只需要一根数据线进行数据传送,传送距离较长,投资较少,但传送速率较低。RS 232C也是人们常用的网络通信接口。此处,PC机与单片 机的通信便采用该接口。(2) 接口电路为了能使单片机与PC机之间通信,必须使二者遵循相同的通信协议。由于 下位机的8031芯片串行口,输入输出为TTL逻辑电平,高电平为3.8 V左右, 低电平为0.3 V左右,这种以TTL电平传送数据的方式,抗干扰性较差。而 上位机的RS232C串行口则采用+12 V

42、和-12 V电平方式,使0信号和1 信号的电平差别增大,从而增强了抗干扰性。为了解决这一矛盾,可采用一个 RS 232C电平转换器。它由发送器1488和接收器1489组成(见图3.13)。图3.3串行口连接电路(3)在+5V电源供电情况下降TTL电平转换为±0V的RS-232电平,完全可 以替代传统的MC-1488、MC-1489芯片的功能,简化了电路设计,因此得到了 广泛应用。引脚及功能:Vcc:电源;GND :接地T1i n,T2i n:TTI/CMOS 输入引脚Rlout, R2outTTI/CMOS输出引脚Tlout: RS-232输出口U叵!区叵叵区C1+V+SC2+C2-

43、味伽咼图3.4 MAX232引脚图R1in: RS-232输入口3.2软件工具及编程语言3.2.1选用VB开发上位机软件Visual Basic(简称VB)是 Windows操作系统下简单,易学,咼效的应用软件开发工具,已广泛地应用于各个领域,在微机串口方面也有很强的功能。 很多情况下我们需要把工程技术领域中系统采集的数据交给计算机来处理,或 者需要让计算机发送指令来控制我们的系统。而大多数的微处理器都带用串口, 这个时候需要编写一个界面良好的上位机软件来和微处理器进行通信。显然, 选择VB来开发上位机软件是一个不错的主意。3.2.2 MSComm 控件的主要属性、事件在 Visual Bas

44、ic 中有一个名为 Microsoft Communication Control(简称MSComm)的通信控件,利用这个控件我们可以很方便的编写一个与单片机通信 的上位机。(1)MSComm的属性由于MSComm控件属性很多,在此笔者仅介绍与实现串口通信密切相关 的核心属性。Commport:设置通信所占用的串口号。如设成1(默认值),表示对 Corn1进行操作。Sett ing:对串口通信的相关参数。包括串口通信的比特率,奇偶校验,数 据位长度、停止位等。其默认值是“9600 N ,8,1”,表示串口比特率是9600bit /s,不作奇偶校验,8位数据位,1个停止位。Portopen:设置

45、串口状态,值为 True时打开串口,值为False时关闭串口。In put :从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输 入寄存器将被清空。Oupout:发送数据到输出寄存器。In Buffer Cou nt :设置输入寄存器所存储的字符数,当将其值设为0时,则输入寄存器将被清空。In put Mode :设置从输入寄存器中读取数据的形式。若值为 0,则表示以文 本形式读取;值为1,则表示以二进制形式读取。Out Buffer Count :设置输出寄存器所存储的字符数,当将其值设为0时,则输出寄存器将被清空。RThreshold:设置在 MSComm 控件设置 CommEve

46、nt 属性为 comEv Receive 并产生On Comm事件之前要接受的字符数。CommEve nt属性:返回最近的通讯事件或错误。通过对它具体属性值的查 询,我们就可以获得通讯事件和通讯错误的完整信息。当其值是comEvReceive时表示接收到数据。(2)MSComm的事件除了公共事件之外,MSComm只有一个 On Comm事件。当 CommEve nt 属性值变化时将发生On Comm事件,指示发生一个通信事件或错误 。当我们 设置Rtheshold属性值为0时,将使得捕获comEvReceive事件无效。3.2.3编程小结单片机要发送和接收的操作其实都是对串行数据缓冲器 (SB

47、UF)进行调用。 串行数据缓冲器SBUF用来存放需发送和接收的数据,它由两个独立的寄存器组 成,一个是发送缓冲器,另一个是接收缓冲器,例如:(1)date=SBUF;表示单片机接收到数据data。SBUF=date;表示单片机发送数据到上位机。3 . 3系统方案设计系统方框图如图3.5所示图3.5系统方框图系统方框图中可以看出用此方案设计的系统由电源电路、数据采集放大电路、A/D转换电路、D/A转换电路、MAX232串行接口电路、单片机外围电路、LED显示电路、键盘电路等部分组成。此方案的特点是:硬件电路的实现较为简 单、所用元器件也较少、系统可以配上外部的各种传感器采集电路作为系统的被 测对

48、象的模拟输入信号来源,如压力、温度、湿度的采集等等;配上相应的模拟 采集电路和软件就可以实现各种不同的功能、还能用LED数码管十进制显示相应 的测量数据,如可以显示测得的压力、温度、湿度;还可以实现和PC机串行通信和ISP编程下载功能。第四章系统方案实施4.1接口设计4.1.1系统连接电路系统连接电路如图4.1所示。TXD/P 3. 1RXD/P3TVC4J1594837o1DB9261 383C310.11 1T1 IN1 01T2 怙C1 +DC1 - GR1 IN V -R2 IN VVCC0.121 2R1 OUT9R2 OUT1 4T1 OUTT2 OUTC2 +57466C2C1M

49、 AX232EWVCCE(16)C20.1 gF0.1 gF图4.1单片机与PC机串行通信接口的电路串行通信部分主要是由MAX232电平转换电路和ISP编程下载电路组成, 其原理是:MAX232芯片把单片机引脚的 COMS电平(05V)转换为RS232 电平(-12V +12V),AT89S52单片机有一个全双工的串行通信口,而 PC机 有一个RS232的通信接口。只要用 RS232 D型9针的引脚的双边母头接到 PC 机上,而另一头和 MAX232相连接,MAX232的输出再和AT58S52相连就可 以实现单片机和PC机的串行通信。具体连线如上图8所示,AT89S52的串行 通信引脚的TXD

50、和RXD分别接到MAX232的 T1IN和T1OUT 上, MAX232的 R1OUT和R1IN分别接到RS232的2、3 上, RS232的5脚接地。MAX232外 围元件只有四个电容,根据 MAX232的典型应用电路,可取0.1 g F / 5的电解 电容。ISP编程口和 AT89S52 的连线为:AT89S52 的 P1.5、P1.6 P1.7、RESET 分别连接到ISP的3、4、5、7脚上,ISP的1、2脚联合接电源9、10脚联合 接地即可.直接从上位机上下载可执行的二进制代码文件,无须外加写读器。D1为下载指示灯,R1为限流电阻,发光二极管的压降为 2V,电流取5mA,其 阻值为:

51、R1=5-2/0.005=600Q,考虑到和ISP 一起共电,在此取1K。4.1.2串行通信电路单片机除了具有四个8位并行口外,还具有串行接口。该串行接口是一个 全双工串行通信接口,既能同时进行串行发送和接收。它可以作UART (通用异步接收和发送器)用,也可以作为同步位移寄存器用。应用串行接口可以实 现89C51单片机系统之间点对点的单片机通信、多机通信和89C51与系统机(如 IBM-PC机等)的单机或多机通信。MCS-51串行口的输入输出均为 TTL 电平。这种以TTL电平传输数据的方式,抗干扰性差,传输距离短。为了提 高通讯距离,工程技术人员一般采用标准串行接口,如RS-232、RS-

52、422A、RS-485等标准串行接口来进行串行通讯。其中RS-232是异步串行通讯中应用 最广泛的标准总线,它包含了按位串行传输的电气和机械方面的规定。适用于 数据终端设备(DCE)和数据传输设备(DCE)之间的接口。RS-232是美国电子工业协会正式公布的串行总线标准,也是目前最常用的串行接口标准,主要用来实现计算机与计算机之间、计算机与外设之间的数据 通讯。RS-232串行通信是双工的,可以同时接收和发送。其逻辑电平与TTL、CMOS电平完全不同:逻辑 “ C规定为+5V+15V ;逻辑“ 1规定为-5V-15V之 间。由于RS-232发送和接收之间有公共地,传输采用非平衡模式,因此共模噪

53、 声会耦合到信号系统中,其标准建议的最大通信距离为15米。但实际应用中在 300bit/s的速率下可达到300米,并且最大传输速率为20Kbps。由于RS-232规定的电平和一般任意微处理器的逻辑电平不一致,故必须进行电平转换。本次设计选用 MAX232芯片实现TTL与232电平之间的转换, 与MAX232相连的一侧是 AT89C51单片机,另一侧是 GPRS模块,由它们来 实现数据的无线传输。RS-232通讯电路如图4.2所示:"uf丄川12U4+5VO.luf1.0 uf345678C1 + V+C1-C2+C2V-VC CGN DMCoX231C n151 out151 in2

54、Ci n 251 out1615141312109|+5VRX DTX DMA X232162-713ry84C9r5cRS2 321.0 uf1.0uf图4.2 RS-232通讯电路4.2软件设计4.2.1显示HD7279显示程序用单片机驱动LED数码管有很多方法,按显示方式分为静态显示和动态显 示;按译码方式可分为硬件译码和软件译码 9。静态显示就是显示驱动电路具 有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示 数据需要更新时再传送一次新数据,所有数码管都是一直亮着的,这样显示数 据稳定,占用很少的处理时间。动态显示需要单片时刻对显示器件进行数据刷 新,数码管一位一位地轮流被点亮,对每一个数码管来说,它是每隔一段时间 亮一次,利用人的视觉暂留功能可以看到整个显示,但必须保证扫描的速度足 够快,字符才不闪烁。一般来说,静态显示的功耗较大,动态显示的功耗较少, 但静态显示占用单片机的处理时间少,动态显示占用单片机的处理时间多。硬 件译码就是显示的段码

温馨提示

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

评论

0/150

提交评论