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

下载本文档

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

文档简介

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

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

3、will send the collected data to a pc for a serial port, to ensure that the transmission of all the timeliness and accuracy data, it must establish reliable communication. in the development of the control system, signal control and collection of microcomputer system itself, then through asynchronous

4、 serial communication to the real-time signal transmitted pc.pc using vb programming for serial communication, scm c51 use for programming. the paper describes using vb c51 and pc machine and mcu development method of serial communication, and briefly introduces the method of using vb communication

5、control is presented, and debugging. using placed on site mcs a 51 scm system in the pc host hanging on the serial communication, through serial communication circuit and control system software and pc and mcu exchange data on site, receiving and sending data. serial communication system is using st

6、andard interface host. the system of communication by the pc is active on a visit each mcs kindhearted passive communication 51-series microcomputer. for pc and calibration adopts single-chip data communications parity. keywords: single chip; serial communication; vb program design; host computer 目

7、录 第一章第一章 绪论绪论.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 串行通信的错误校验.10 2.6.1 奇偶校验.10 2.6.2 代码和校验.10 2.6.3 循环冗余校验.10 2.7

8、 串行通信的工作方式.11 2.7.1 方式 0.11 2.7.2 方式 1.12 2.7.3 方式 2 和方式 3.13 2.8 本章小结.14 第三章第三章 系统开发基础系统开发基础.15 3.1 系统硬件.15 3.1.1 微处理器芯片 89c51.15 3.1.2 显示芯片 hd7279a.17 3.1.3 串行通信芯 max232.18 3.2 软件工具及编程语言.19 3.2.1 选用 vb 开发上位机软件.19 3.2.2 mscomm 控件的主要属性、事件.19 3.2.3 编程小结.20 33 系统方案设计.21 第四章第四章 系统方案实施系统方案实施.22 4.1 接口设计

9、.22 4.1.1 系统连接电路.22 4.1.2 串行通信电路.23 4.2 软件设计.24 4.2.1 显示 hd7279 显示程序.24 4.2.2 串行口通信.25 4.2.3 vb 通信程序.26 4.3 小结.27 第五章第五章 结束语结束语.28 致致 谢谢.29 参考文献参考文献.30 第一章 绪论 1.11.1 单片机单片机技术介绍技术介绍 单片机也被称为 微控制器(microcontroller unit) ,常用英文字母的缩 写 mcu 表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有 cpu 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 cpu

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

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

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

13、程的水平为什么不用呢? 原因很简单,就是单片机没有家用计算机那样的cpu,也没有像硬盘那样 的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮, 也会达到几十 k 的尺寸!对于家用 pc 的硬盘来讲没什么,可是对于单片机 来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以 汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作 系统和应用软件拿到家用 pc 上来运行,家用 pc 的也是承受不了的。 1.21.2 课题背景与意义课题背景与意义 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行 通讯二种方式。由于串行通讯方式具有使用线路少

14、、成本低,特别是在远程传 输时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯 双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。 rs-232-c 接口(又称 eia rs-232-c)是目前最常用的一种串行通讯接口。 它是在 1970 年由美国电子工业协会(eia)联合贝尔系统、 调制解调器厂家及计 算机终端生产厂家共同制定的用于串行通讯的标 准。它的全名是“数据终端设 备(dte)和数据通讯设备(dce)之间 串行二进制数据交换接口技术标准”该标准 规定采用一个 25 个脚的 db25 连接器,对连接器的每个引脚的信号内容加以规 定,还对各种信 号的电平

15、加以规定。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单 片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。pc 机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过 pc 机的 rs-232 串行接口与外部设备进行通信,是许多测控系统中常用的一种 通信解决方案。因此如何实现 pc 机与单片机之间的通讯具有非常重要的现实意 义。 1.31.3 课题研究内容课题研究内容 设计要求实现如下功能 (1)完成最小系统设计; (2)设计串行通信接口,实现与 pc 机的通信; (3)具有人机对话功能,可通过键盘进行输入。 具有串行通信功能的数据采集模块为

16、通用化模块设计,下位机 a/d 芯片可 采集工业现场的标准信号,经单片机数据量化能够实时上传给 pc 机,灵活组 网,使用十分方便。基于单片机技术的发展,随着其成本的降低,这种通过 rs232 串口与外围数据采集设备的通信模式将会更大地发挥其市场价值。下章 先介绍串行通信基础知识。 第二章 串行通信基础 2.12.1 串行通信协议串行通信协议 最被人们熟悉的串行通信技术标准是eia232、eia-422 和 eia485,也就是以前所称的 rs-232、rs-422 和 rs-485。由于 eia 提出 的建议标准都是以 “rs”作为前缀,所以在工业通信领域,仍然习惯将上述标 准以 rs 作前

17、缀称谓。 eia232、eia-422 和 eia485 都是串行数据接口标准,最初都是由 电子工业协会( eia)制订并发布的, eia-232 在 1962 年发布,后来陆续 有不少改进版本,其中最常用的是eia-232-c 版。 (1)eia-232 目前 eia-232 是 pc 机与通信工业中应用最广泛的一种串行接口。 eia-232 被定义为一种在低速率串行通信中增加通信距离的单端标准。 eia-232 采取不平衡传输方式,即所谓单端通信。标准规定,eia232 的 传送距离要求可达 50 英尺(约 15 米) ,最高速率为 20kbps。 (2)eia-422 由于 eia-23

18、2 存在传输距离有限等不足,于是 eia-422 诞生了。eia- 422 标准全称是“平衡电压数字接口电路的电气特性 ”,它定义了一种平衡通 信接口,将传输速率提高到 10mbps,传输距离延长到 4000 英尺(约 1219 米) ,并允许在一条平衡总线上连接最多10 个接收器。当然, eia422 也 有缺陷: 因为其平衡双绞线的长度与传输速率成反比,所以在100kbps 速 率以内,传输距离才可能达到最大值,也就是说,只有在很短的距离下才能 获得最高传输速率。一般在 100 米长的双绞线上所能获得的最大传输速率仅 为 1mbps。另外有一点必须指出,在 eia-422 通信中,只有一个

19、主设备 (master) ,其余为从设备( salve) ,从设备之间不能进行通信,所以eia- 422 支持的是点对多点的双向通信。 (3)eia-485 为扩展应用范围, eia 于 1983 年在 eia-422 基础上制定了 eia-485 标 准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上, 同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命 名为 tia/eia-485-a 标准。 由于 eia-485 是从 eia-422 基础上发展而来的,所以 eia-485 许多电 气规定与 eia-422 相仿,如都采用平衡传输方式、都需要在传输线上接终接

20、 电阻、最大传输距离约为 1219 米、最大传输速率为 10mbps 等。但是, eia-485 可以采用二线与四线方式,采用二线制时可实现真正的多点双向通 信,而采用四线连接时,与 eia-422 一样只能实现点对多点通信,但它比 eia-422 有改进, 无论四线还是二线连接方式总线上可接多达32 个设备。 由于 eia-232、eia-422 与 eia-485 标准只对接口的电气特性做出规定, 而不涉及接插件、电缆或协议,标准内容规定比较简单,在此标准基础上, 用户可以建立自己的高层通信协议。因此,这些串行通信技术应用很广,如 录像机、计算机以及许多工业控制设备上都配备有eia232

21、串行通信接 口。 2.22.2 通信方式通信方式 通信方式分为并行通信方式和串行通信方式两种 2.2.12.2.1 串行通信串行通信 所谓串行通信是指将数据字节分成一位一位的形式在一条传输线上逐个 地传送,此时只需要一条数据线,外加一条公共信号地线和若干控制信号线。 因此一次只能传输一位,所以对于一个字节的数据,至少要分8位才能传送完 毕。串行通信的必要过程是:发送时,要把并行数据变成串行数据发送到线路 上去,接受时,要把串行信号再变成并行数据,这样才能被计算机及其他设备 处理。如图 2.1 所示1。 发送设备接收设备 8 位顺次传送 gnd 停止位起始位 11 000 11 0001 d7d

22、6d5d4d3d2d1d0 图 2.1 串行通信方式 串行通讯方式,由于高速率的要求,处于计算机内部的cpu与串口之间 的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现cpu与外围数 据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计 算机时,数据格式由位 (bit)转化为字节数据;串行端口的本质功能是作为 cpu和串行设备间的编码转换器。当数据从 cpu经过串行端口发送出去时, 字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。反之, 当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。 2.2.22.2.2 并行通信并行通信 通信有并行和串

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

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

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

26、单片机与单片机之间,单片机与计算机之间通信时,通常采用异步串行 通信。 2.3.22.3.2 同步串行通信方式同步串行通信方式 同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方完全达到 完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送 的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收 方的同步可以通过外同步和自同步两种方法实现。如图 2.2.2 所示 snysny数据 1数据 2数据 n.crc1crc2 二个同步字符连续几个数据2 字节校验码 图 2.3 同步串行通信数据格式 2.42.4 串行通信的制式串行通信的制式 2.4.12.4.1

27、单工单工 单工是指数据传输仅能沿一个方向,不能实现反方向传输3。如图 2.3.1 所 示。 发送设备接收设备 数据流 通信连接 图 2.4 单工 2.4.22.4.2 半双工半双工 半双工是指数据传输可以沿两个方向,但需要分时进行。如图 2.3.2 所示。 发送设备 接收设备接收设备 发送设备 数据流 通信连接 图 2.5 半双工 2.4.32.4.3 全双工全双工 全双工是指数据可以同时进行双向传输。如图 2.3.3 所示。 发送设备 接收设备接收设备 发送设备 数据流 通信连接 图 2.6 全双工 2.52.5 波特率波特率 数据的传输速度可以用波特率表示。波特率是美妙传输二进制代码的位数

28、, 单位:位/s。在异步通讯中,接收方和发送方应使用相同的波特率,才能成功 传输数据。 波特率的计算 在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可 对单片机串行口编程为四种工作方式,其中方式 0 和方式 2 的波特率是固定的, 而方式 1 和方式 3 的波特率是可变的,由定时器 t1 的溢出率来决定。 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同, 所以,各种方式的波特率计算公式也不相同4。 方式 0 的波特率 = fosc/12 方式 2 的波特率 =(2smod/64) fosc 方式 1 的波特率 =(2smod/32)(t1 溢出率) 方式 3

29、的波特率 =(2smod/32)(t1 溢出率) 当 t1 作为波特率发生器时,最典型的用法是使 t1 工作在自动再装入的 8 位定 时器方式(即方式 2,且 tcon 的 tr1=1,以启动定时器) 。这时溢出率取决于 th1 中的计数值。如公式 2-1 所示。 t1 溢出率 = fosc /12256 (th1) (2-1) 2.62.6 串行通信的错误校验串行通信的错误校验 2.6.12.6.1 奇偶校验奇偶校验 在传送数据时,数据位尾随的 1 位为奇偶校验位(1 或 0) ,奇校验时,数 据中 1 的个数与校验位 1 的个数之和应为奇数;偶校验时,数据中 1 的个数与 校验位 1 的个

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

31、广泛应用于同步通信中。 2.72.7 串行通信的工作方式串行通信的工作方式 串行接口可由 scon 中的 sm0 和 sm1 设置 4 种工作方式。 2.7.12.7.1 方式方式 0 0 方式 0 时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行 输入或输出口。数据由 rxd(p3.0)引脚输入或输出,同步移位脉冲由 txd(p3.1)引脚输出。发送和接收均为 8 位数据,低位在先,高位在后。波 特率固定为 fosc/12。 (1)方式 0 输出 图 2.7 方式 0 输出时序 (2)方式 0 输入 图 2.8 方式 0 输入时序 d0 d1 d2 d3 d4 d5 d6 d7 写

32、入sbuf rxd(数据) txd(移位脉冲) ti(中断标志) ren=1 rxd(数据输入) txd(移位脉冲) ri=0 d0d1d2d3 d4 d5d6d7 方式 0 接收和发送电路,如图 图 2.9 全双工 2.7.2 方式方式 1 (1)方式 1 输出 图 2.10 方式 1 输出时序 (2)方式 1 输入 图 2.11 方式 1 输入时序 用软件置 ren 为 1 时,接收器以所选择波特率的 16 倍速率采样 rxd 引 脚电平,检测到 rxd 引脚输入电平发生负跳变时,则说明起始位有效,将其 移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从 输入移位寄存器右

33、边移入,起始位移至输入移位寄存器最左边时,控制电路进 行最后一次移位。当 ri=0,且 sm2=0(或接收到的停止位为 1)时,将接收到 的 9 位数据的前 8 位数据装入接收 sbuf,第 9 位(停止位)进入 rb8,并置 ri=1,向 cpu 请求中断。 74ls164 rxd txd p1.0 80c51 clrclk a b gnd 74ls165 rxd txd p1.0 80c51 s/lclk q gnd d0 d1 d2 d3 d4 d5 d6 d7 停止位 rxd ri(中断标志) 起始 位采样脉冲 d0 d1 d2 d3 d4 d5 d6 d7 写入sbuf 停止位 tx

34、d ti(中断标志) 起始 2.7.32.7.3 方式方式 2 2 和方式和方式 3 3 方式 2 或方式 3 时为 11 位数据的异步通信口。txd 为数据发送引脚, rxd 为数据接收引脚 。 图 2.12 异步通信字符帧格式 方式 2 和方式 3 时起始位 1 位,数据 9 位(含 1 位附加的第 9 位,发送时 为 scon 中的 tb8,接收时为 rb8) ,停止位 1 位,一帧数据为 11 位。方式 2 的波特率固定为晶振频率的 1/64 或 1/32,方式 3 的波特率由定时器 t1 的溢出 率决定。 (1)方式 2 和方式 3 输出 图 2.13 方式 2 和方式 3 的发送时

35、序 发送开始时,先把起始位 0 输出到 txd 引脚,然后发送移位寄存器的输出 位(d0)到 txd 引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位, 并由 txd 引脚输出。 第一次移位时,停止位“1”移入输出移位寄存器的第 9 位上 ,以后每次移 位,左边都移入 0。当停止位移至输出位时,左边其余位全为 0,检测电路检测 到这一条件时,使控制电路进行最后一次移位,并置 ti=1,向 cpu 请求中断。 (2)方式 2 和方式 3 输入 停 止 位数据位9位 起 始 位 lsbmsb 空 闲 空 闲 d0 d7 1帧共11位 rb8/tb8 d0 d1 d2 d3 d4 d5 d6 d

36、7 写入sbuf 停止位 txd ti(中断标志) 起始 tb8 ri(中断标志) 位采样脉冲 d0 d1 d2 d3 d4 d5 d6 d7 停止位 rxd 起始 rb8 图 2.14 方式 2 和方式 3 的接收时序 接收时,数据从右边移入输入移位寄存器,在起始位 0 移到最左边时,控 制电路进行最后一次移位。当 ri=0,且 sm2=0(或接收到的第 9 位数据为 1) 时,接收到的数据装入接收缓冲器 sbuf 和 rb8(接收数据的第 9 位) ,置 ri=1,向 cpu 请求中断。如果条件不满足,则数据丢失,且不置位 ri,继续 搜索 rxd 引脚的负跳变。 2.82.8 本章小结本

37、章小结 本章介绍了串行口的通信协议,通信方式,串行口的通信制式,串行口的 工作方式,串行通信的错误校验,串行通信的波特率,等串行通信的基础知识, 接下来将从具体的软件来实现计算机与单片机的之间的通信。 第三章 系统开发基础 3.13.1 系统硬件系统硬件 3.1.13.1.1 微处理器芯片微处理器芯片 89c5189c51 (1)89c51组成:89c51由 8 个部件组 成,即微处理器(cpu) ,数据存储器(ram) , 程序存储器(eeprom),i/o口 (p0,p1,p2,p3) ,串行口,定时器计数器, 中断系统及特殊功能寄存器(sfr) 数据存储器:片内为 128 个字节,片外

38、最多可外扩 64k字节; 程序存储器:片内为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(4

39、0):接+5v 直流电源 vss(20):接地 xtal1(19):接外部晶体的一个引脚。在单片机内部,它是一个反向 图 3.1 89c51 单片机引脚图 放大器的输入端; xtal2(18):接外部晶体的一个引脚。在单片机内部接到内部反相器 的输出端; 控制引脚 rst/vpd(9):当震荡器运行时,在此引脚加上两个机器周期的高电平 将使单片机复位(rst) 。掉电期间,此引脚可接上备用电源(vpd) ,以保持 内部ram的数据,当vcc下降到低于规定的值,而vpd在其规定的电压范 围 内(5+0.5v)时,vpd就向内部ram提供备用电源; ale/prog(30):当访问单片机外部存储器

40、时,ale(地址锁存允许) 输出脉冲的负跳沿,用于 16 位地址的低 8 位的锁存信号。即使不访问外部存储 器,ale端仍有正脉冲信号输出,此频率为始终震荡器频率的 1/6。ale端 可以驱动 8 个ttl负载。对于eprom型单片机(8751) ,在eprom编程 期间,此引脚用来输入编程脉冲(prog) ; psen(29):此脚的输出是单片机访问外部程序存储器的读选通信号。 在由外部程序存储器取指令(或常数)期间,每个机器周期psen两次有效。 psen可以驱动 8 个lsttl负载; ea/vpp(31):当 ea 端保持高电平时,单片机访问内部程序存储器, 但在pc值超过0ffffh

41、,将自动转向执行外部程序存储器内的程序。当ea 保持低电平时,只访问外部程序存储器。对于89c51,因其片内有 4kffprom,故该脚接高电平。在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.23

42、.1.2 显示芯片显示芯片 hd7279ahd7279a (1)hd7279a是键盘/显示器的串行控制芯片,能同时驱动 8 位共阴极 led数码管或 64 个独立的led发光二极管以及 64 键的键盘(8*8 键盘矩阵)。 (2)引脚及功能: 28 脚双列直插式封装,单一+5v供电。 图 3.2 hd7279 引脚图 表 21 hd7279 引脚说明 引脚名称说明 1,2 vcc+5v 电源 3,5nc悬空 4vss接地 6cs片选信号,低电平有效 7clk同步时钟输入端 8data串行数据写入/读出端 9key接键有效输出端 10-16sg-saled 的 g-a 段驱动输出 17dp小数点

43、驱动输出端 18-25dig0-dig7led 驱动输出端 26clko振荡输出端 27rcrc 振荡器连接端 28reset复位端,低电平有效 3.1.33.1.3 串行通信芯串行通信芯 max232max232 (1)通常pc机的主板会提供一个打印机输出并行端口(lpt),两个串行 口(com1、com2),并行口主要进行短距离的数据传送,至少需要8根数据 线同时进行数据的传送,因而传送速率较快6。而长距离的数据传送只能采用串 行口,串行口只需要一根数据线进行数据传送,传送距离较长,投资较少,但 传送速率较低。rs232c也是人们常用的网络通信接口。此处,pc 机与单片 机的通信便采用该接

44、口。 (2)接口电路 为了能使单片机与pc机之间通信,必须使二者遵循相同的通信协议。由于 下位机的8031芯片串行口,输入输出为 ttl 逻辑电平,高电平为3.8 v左右, 低电平为0.3 v左右,这种以ttl电平传送数据的方式,抗干扰性较差。而 上位机的rs232c串行口则采用+12 v和-12 v电平方式,使0信号和1 信号的电平差别增大,从而增强了抗干扰性。为了解决这一矛盾,可采用一个 rs232c电平转换器。它由发送器1488和接收器1489组成(见图 3.13)。 10 11 20 8031 3 2 7 pc com1 1488 txd rxd gnd rxd txd 图 3.3 串

45、行口连接电路 (3)在+5v电源供电情况下降ttl电平转换为10v的rs-232电平,完全 可以替代传统的mc-1488、mc-1489芯片的功能,简化了电路设计,因此得到 了广泛应用。 引脚及功能: vcc:电源; gnd:接地 t1in,t2in:ttl/cmos输入引脚 r1out,r2out:ttl/cmos输出引脚 t1out:rs-232输出口 r1in:rs-232输入口 图3.4 max232引脚图 3.23.2 软件工具及编程语言软件工具及编程语言 3.2.13.2.1 选用选用 vbvb开发开发上位机软件上位机软件 visual basic(简称vb)是windows操作系

46、统下简单,易学,高效的应 用软件开发工具,已广泛地应用于各个领域,在微机串口方面也有很强的功能。 很多情况下我们需要把工程技术领域中系统采集的数据交给计算机来处理,或 者需要让计算机发送指令来控制我们的系统。而大多数的微处理器都带用串口, 这个时候需要编写一个界面良好的上位机软件来和微处理器进行通信。显然, 选择vb来开发上位机软件是一个不错的主意。 3.2.23.2.2 mscomm 控件的主要属性、事件控件的主要属性、事件 在 visual basic 中有一个名为 microsoft communication control(简称 mscomm)的通信控件,利用这个控件我们可以很方便的

47、编写一个与单片机通信 的上位机7。 (1)mscomm 的属性 由于 mscomm 控件属性很多,在此笔者仅介绍与实现串口通信密切相关 的核心属性。 commport:设置通信所占用的串口号。如设成 1(默认值),表示对 corn1 进行操作。 setting:对串口通信的相关参数。包括串口通信的比特率,奇偶校验,数 据位长度、停止位等。其默认值是“9600,n,8,1”,表示串口比特率是 9600bits,不作奇偶校验,8 位数据位,1 个停止位。 portopen:设置串口状态,值为 true 时打开串口,值为 false 时关闭串口。 input:从输入寄存器读取数据,返回值为从串口读取

48、的数据内容,同时输 入寄存器将被清空。 oupout:发送数据到输出寄存器。 inbuffer count:设置输入寄存器所存储的字符数,当将其值设为 0 时,则 输入寄存器将被清空。 input mode:设置从输入寄存器中读取数据的形式。若值为 0,则表示以文 本形式读取;值为 1,则表示以二进制形式读取。 out buffer count:设置输出寄存器所存储的字符数,当将其值设为 0 时, 则输出寄存器将被清空。 rthreshold:设置在 mscomm 控件设置 commevent 属性为 comev receive 并产生 oncomm 事件之前要接受的字符数。 commeven

49、t 属性:返回最近的通讯事件或错误。通过对它具体属性值的查 询,我们就可以获得通讯事件和通讯错误的完整信息。当其值是 comevreceive 时表示接收到数据。 (2)mscomm 的事件 除了公共事件之外,mscomm 只有一个 oncomm 事件。当 commevent 属 性值变化时将发生 oncomm 事件,指示发生一个通信事件或错误8。当我们设 置 rtheshold 属性值为 0 时,将使得捕获 comevreceive 事件无效。 3.2.33.2.3 编程小结编程小结 单片机要发送和接收的操作其实都是对串行数据缓冲器(sbuf)进行调用。 串行数据缓冲器sbuf用来存放需发送

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

51、统 的被测对象的模拟输入信号来源,如压力、温度、湿度的采集等等;配上相应 的模拟采集电路和软件就可以实现各种不同的功能、还能用led数码管十进制 显示相应的测量数据,如可以显示测得的压力、温度、湿度;还可以实现和pc 机串行通信和isp编程下载功能。 pc 机 max232 电平转换 电路 电源电路 控 制 器 单片机 at89s52 led 显 示电路 按键 电路 外部存 储器 d/a 转 换电路 a/d 转 换电路 外部采 集电路 第四章 系统方案实施 4.14.1 接口设计接口设计 4.1.14.1.1 系统连接电路系统连接电路 系统连接电路如图 4.1 所示。 1 6 2 7 3 8

52、4 9 5 j1 d b9 r1 in 13 r2 in 8 t1 in 11 t2 in 10 gnd 15 v+ 2 v- 6 vcc 16 r1 out 12 r2 out 9 t1 out 14 t2 out 7 c1+ 1 c1 - 3 c2+ 4 c2 - 5 u 1 m a x 232ew e(16) c 3 0.1f c 4 0.1f c 2 0.1f c 1 0.1f rxd/p 3.0 txd/p 3.1 vcc 12 34 56 78 910 j1 is p vcc d 1 r 1 1k p 1.5 p 1.6 p 1.7 rese t 图 4.1 单片机与 pc 机串行

53、通信接口的电路 串行通信部分主要是由 max232 电平转换电路和 isp 编程下载电路组成, 其原理是:max232 芯片把单片机引脚的 coms 电平(05v)转换为 rs232 电平(-12v +12v) ,at89s52 单片机有一个全双工的串行通信口,而 pc 机 有一个 rs232 的通信接口。只要用 rs232 d 型 9 针的引脚的双边母头接到 pc 机上,而另一头和 max232 相连接,max232 的输出再和 at58s52 相连就可 以实现单片机和 pc 机的串行通信1。具体连线如上图 8 所示,at89s52 的串 行通信引脚的 txd 和 rxd 分别接到 max2

54、32 的 t1in 和 t1out 上,max232 的 r1out 和 r1in 分别接到 rs232 的 2、3 上,rs232 的 5 脚接地。max232 外围元件只有四个电容,根据 max232 的典型应用电路,可取 0.1f 50v 的电 解电容。isp 编程口和 at89s52 的连线为:at89s52 的 p1.5、p1.6 p1.7、reset 分别连接到 isp 的 3、4、5、7 脚上,isp 的 1、2 脚联合接电源 9、10 脚联合接地即可.直接从上位机上下载可执行的二进制代码文件,无须外 加写读器。d1 为下载指示灯,r1 为限流电阻,发光二极管的压降为 2v,电流

55、 取 5ma,其阻值为:r1=5-2/0.005=600,考虑到和 isp 一起共电,在此取 1k。 4.1.24.1.2 串行通信电路串行通信电路 单片机除了具有四个 8 位并行口外,还具有串行接口。该串行接口是一个 全双工串行通信接口,既能同时进行串行发送和接收。它可以作 uart(通用 异步接收和发送器)用,也可以作为同步位移寄存器用。应用串行接口可以实 现 89c51 单片机系统之间点对点的单片机通信、多机通信和 89c51 与系统机 (如 ibm-pc 机等)的单机或多机通信。mcs-51 串行口的输入输出均为 ttl 电平。这种以 ttl 电平传输数据的方式,抗干扰性差,传输距离短

56、。为 了提高通讯距离,工程技术人员一般采用标准串行接口,如 rs-232、rs- 422a、rs-485 等标准串行接口来进行串行通讯。其中 rs-232 是异步串行通 讯中应用最广泛的标准总线,它包含了按位串行传输的电气和机械方面的规定。 适用于数据终端设备(dce)和数据传输设备(dce)之间的接口。 rs-232 是美国电子工业协会正式公布的串行总线标准,也是目前最常用的 串行接口标准,主要用来实现计算机与计算机之间、计算机与外设之间的数据 通讯。rs-232 串行通信是双工的,可以同时接收和发送。其逻辑电平与 ttl、cmos 电平完全不同:逻辑“0”规定为+5v+15v;逻辑“1”规

57、定为-5v- 15v 之间。由于 rs-232 发送和接收之间有公共地,传输采用非平衡模式,因此 共模噪声会耦合到信号系统中,其标准建议的最大通信距离为 15 米。但实际应 用中在 300bit/s 的速率下可达到 300 米,并且最大传输速率为 20kbps8。 由于 rs-232 规定的电平和一般任意微处理器的逻辑电平不一致,故必须进 行电平转换。本次设计选用 max232 芯片实现 ttl 与 232 电平之间的转换, 与 max232 相连的一侧是 at89c51 单片机,另一侧是 gprs 模块,由它们来 实现数据的无线传输。rs-232 通讯电路如图 4.2 所示: c1+ 1 v

58、+ 2 c1- 3 c2+ 4 c2- 5 v- 6 2co ut 7 2ci n 8 251 out 9 25 1in 10 151 in 11 151 out 12 1c in 13 1co ut 14 gn d 15 vc c 16 m a x232 u4 m a x232 1 6 2 7 3 8 4 9 5 rs2 32 1.0 uf 1.0 uf 1.0 uf 1.0 uf 0.1 uf +5v rx d tx d +5v 图 4.2 rs-232 通讯电路 4.24.2 软件设计软件设计 4.2.14.2.1 显示显示 hd7279hd7279 显示程序显示程序 用单片机驱动 le

59、d 数码管有很多方法,按显示方式分为静态显示和动态显 示;按译码方式可分为硬件译码和软件译码9。静态显示就是显示驱动电路具 有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示 数据需要更新时再传送一次新数据,所有数码管都是一直亮着的,这样显示数 据稳定,占用很少的处理时间。动态显示需要单片时刻对显示器件进行数据刷 新,数码管一位一位地轮流被点亮,对每一个数码管来说,它是每隔一段时间 亮一次,利用人的视觉暂留功能可以看到整个显示,但必须保证扫描的速度足 够快,字符才不闪烁。一般来说,静态显示的功耗较大,动态显示的功耗较少, 但静态显示占用单片机的处理时间少,动态显示占用单片机的处理时间多。硬 件译码就是显示的段码完全由硬件完成,单片机只要送出标准的 bcd 码即可, 硬件接线有一定标准。软件译码是用软件来完成硬件的功能。硬件简单,接线 灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。 本次设计采用 led 数码管动态显示,因为 led 是动态显示,所以每一次 程序循环过程中只能点亮一位数码管,程序流程图如图 4.3 所示。 进入定时显示中断 关显示 数码管位数n=n+1%8 n=1吗? 闪烁吗? n=2吗? 点亮led1 n=7吗? 本位亮吗? 闪烁吗? 本位亮吗? 点亮led8 退出定时显示中断 n

温馨提示

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

评论

0/150

提交评论