基于89c52rc的modbus通信程序设计_第1页
基于89c52rc的modbus通信程序设计_第2页
基于89c52rc的modbus通信程序设计_第3页
基于89c52rc的modbus通信程序设计_第4页
基于89c52rc的modbus通信程序设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、诚信声明诚信声明本人声明:我所呈交的本科毕业设计论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。 申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名: 日期: 年 月 日 北京化工大学毕业设计(论文) II 毕业设计(论文)任务书毕业设计(论文)任务书设计(论文)题目: 基于 89C52RC 的 MODBUS 通信程序设计 学院: 信息学院 专业:通信工程

2、 班级: 学号: 学生: 指导教师: 专业负责人 1设计(论文)的主要任务及目标(1) 查阅相关文献资料,了解相关知识,并能够应用该学科技术解决实际问题。(2) 利用所掌握的通信协议和通信芯片知识,设计基本电路,并编写程序。2设计(论文)的基本内容和要求(1) 查阅相关资料,写文献综述。翻译一篇 5000 字的与课题相关的外文资料。(2) 学习设计方法,采用 Protel 设计电路图和 PCB 图,编写发送接收程序。(3)编写 MODBUS 通信程序实现帧格式组装和拆包,调试程序,给出实验结果。(4) 在完成上面各项工作的基础上,撰写符合学校相关规定毕业论文。3主要参考文献1 李伯榕,乔毅.

3、基于 MODBUS 网络的温度控制模块的研究J.江苏电器, 2021 No.11,32(03):32-34.2 文小玲,余飞,卢圣文,刘翠梅. 基于 MODBUS 协议的串口通信软件设计J. 湖南工业大学学报,2021,22(06):100-102.4进度安排设计(论文)各阶段名称起 止 日 期1查阅、阅读,准备文献综述、英文翻译文献2 月 14 日2 月 29 日2学习 89C52RC 芯片和 MODBUS 协议的相关知识,理解89C52RC 的 MODBUS 通信程序的原理过程。3 月 01 日3 月 30 日3学习 89C52RC 系统的设计和 C 程序设计方法,采用Protel 设计电

4、路图和 PCB 图,编写通信发送接收程序。4 月 01 日4 月 30 日 北京化工大学毕业设计(论文) III 4掌握 MODBUS 协议的帧格式,编写发送数据的帧格式组装和接收数据帧的拆包程序,调试,给出实验结果。5 月 01 日5 月 15 日5毕业论文的撰写与修改5 月 16 日6 月 5 号摘摘 要要单片机具有体积小,功能强,成本低,应用面广等优点,目前的温度控制系统多采用单片机进行系统设计。基于 89C52RC 的 MODBUS 通信程序设计就是针对于温度控制系统进行的设计。在这里主要使用 AT89C52 芯片和 AD590 温度传感器,实现温度的检测和显示功能,再通过 MODBU

5、S 通信协议实现单片机与 PC的连接程序设计,通过 PC 对被控现场的温度实现调节和控制。在这里有两方面设计,硬件电路设计和软件程序设计。硬件电路设计包括人机互换模块包括按键模块和数码显示模块。按键模块用来输入设定的温度,数码管显示模块用来显示当前测得的温度。温度传感器模块包括 A/D 转换模块和传感器模块。加热控制模块用来给水加热。上位机通信模块通过串口和 PC 建立通信渠道。软件设计包括温度检测模块,加热器控制模块,按键模块,数码管显示模块和串口驱动模块。温度检测模块通过 A/D 转换器将温度值转换成数字值存放,加热器控制模块控制加热器开关的通断,按键模块用于设定温度值;数码管模块用于显示

6、检测到的温度值和设定的温度值,串口驱动模块用于从上位机收发数据。关键词关键词:AT89C52 ;MODBUS 通信协议;温度控制 北京化工大学毕业设计(论文) IV ABSTRACTThe MCU has the advantages of small size,low cost, wide range of applications; temperature control systems use a single-chip system design. 89C52RC MODBUS communication program is designed for the temperature

7、control system. Mainly use AT89C52 chip AD590 temperature sensor, temperature detection and display functions and programming of MCU and PC connection, and then through the MODBUS protocol to regulate and control the PC charged with the temperature of the scene. There are two aspects of design, hard

8、ware circuit design and software programming. The hardware circuit design, including the man-machine interchangeable modules including key module and digital display module. The key module is used to enter the set temperature; the digital display module is used to display the current measured temper

9、ature. The temperature sensor module consists of the A / D converter module and sensor module. Heating control module is used for water heating. The host computer communication module through the serial port and PC to establish communication channels.The software design includes temperature detectin

10、g module, the heater control module, keyboard module, digital tube display module and serial port driver module. Temperature detection module temperature values by the A / D converter to convert the numeric value stored, the heater control module controls the heater switches off, the button module i

11、s used to set the temperature value; the digital control module is used to display the detected temperature value and the temperature set value, the serial port driver module used to send and receive data from the host computer.Key words:AT89C52 ,Modbus protocol ,Temperature control 北京化工大学毕业设计(论文) V

12、 目目 录录前前 言言.1第第 1 章章 绪论绪论.2第 1.1 节 选题背景.2第 1.2 节 选题简介.2第第 2 章章 总体设计的技术分析总体设计的技术分析.3第 2.1 节 AT89C52 单片机.32.1.1 单片机的发展.32.1.2 芯片的选择.42.1.3 AT89C52 功能简介.5第 2.2 节 AD590 温度传感器.9第 2.3 节 AD0804 模数转换原理.10第 2.4 节 MODBUS 协议.112.4.1 通讯传送方式 .122.4.2 通讯规约 .122.4.3 Modbus 帧描述.13第 2.4 节RS232 简介.14第第 3 章章 硬件设计硬件设计.

13、16第 3.1 节 系统结构.16第 3.2 节 单片机 AT89C52 基础电路.163.2.1 复位操作和复位电路.163.2.2 振荡电路和时钟.17第 33 节 信号的采样及处理.18第 3.4 节 人机交互与串口通信单元设计.203.4.1 数码管显示电路.203.4.2 加热器控制电路.203.4.3 串口通信电路.21 北京化工大学毕业设计(论文) VI 第第 4 章章 软件设计软件设计.23第 4.1 节 设计思路、主程序流程图.23第 4.2 节 数码管显示程序.24第 4.3 节 按键程序.24第 4.4 节 加热器控制程序.25第 4.5 节 串口收发程序.26第 4.6

14、 节 MODBUS 协议帧格式程序.264.6.1 MODBUS 协议帧格式组装.264.6.2 CRC 校验.274.6.3 MODBUS 数据帧的拆包.29结结 论论.31参考文献参考文献.32致致 谢谢.35附附 录录 1.36附附 录录 2.37北京化工大学毕业设计(论文)1 前前 言言温度是工业对象中主要的被控参数之一,它目前应用于很多方面,例如水温的控制,锅炉的温度控制,大棚的温度控制等,在这里是对地铁消防管道的的温度控制。从中就可以看出温度对于当今世代的重要性。温度过高或过低会影响工业过程中的很多方面,它会影响工具的使用,影响器具的承受能力等。对象温度往往要求严格控制,温度控制器

15、的引入,对提高控制精度意义重大,并已经在诸多工程设施方面得到了广泛的应用。目前多采用单片机设计温度控制系统,单片机具有体积小,功能强,成本低,应用面广等优点,它最早是被用在工业控制领域。早期的单片机都是 8 位或 4 位的。其中最成功的是 INTEL 的 8031,因为简单可靠而性能不错获得了很大的好评。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和 核心处理的高端单片机甚至可以直接使用专用的 Windows 和 Linux 操作系统。温度控制系统是通过采用单片机控制,使温度能够在设定值及变化范围内变化。采用单片机来实现

16、温度控制不仅具有控制方便、简单、灵活等优点,而且可以大幅度提高被控温度的技术指标。MODBUS 协议的应用为实时性和可靠性要求比较高的系统提供了一种很好的通讯方案,它最大限度地节约了成本、降低开发风险、提高系统的兼容性和可移植性。采用 MODBUS 协议实现了上、下位机之间的通信,很好地满足了工业现场的要求,更好的适应了现代企业需要。在这里有两方面设计,硬件电路设计和软件程序设计。硬件电路设计包括人机互换模块包括按键模块和数码显示模块。按键模块用来输入设定的温度,数码管显示模块用来显示当前测得的温度。温度传感器模块包括 A/D 转换模块和传感器模块。加热控制模块用来给水加热。上位机通信模块通过

17、串口和 PC 建立通信渠道。软件设计包括温度检测模块,加热器控制模块,按键模块,数码管显示模块和串口驱动模块。温度检测模块通过 A/D 转换器将温度值转换成数字值存放,加热器控制模块控制加热器开关的通断,按键模块用于设定温度值;数码管模块用于显示检测到的温度值和设定的温度值,串口驱动模块用于从上位机收发数据。北京化工大学毕业设计(论文)2 第第 1 章章 绪论绪论第第 1.1 节节 选题背景选题背景温度是工业对象中主要的被控参数之一1,它目前应用于很多方面,在这里是对地铁消防管道的的温度控制, ,对象温度往往要求严格控制2,温度控制器的引入,对提高控制精度意义重大,并已经在诸多工程设施方面得到

18、了广泛的应用。本文是基于 89C52RC 的 MODBUS 通信程序的温度控制器的硬件电路和软件程序的设计。由于通信方式多样化,更需要有通信协议来进行规范3。MODBUS 协议是由Modicon 公司开发且已是工业领域全球最流行的协议4-5。此协议支持传统的 RS-232、RS-422、RS-485 和以太网设备。硬件方面采用 AT89C52 开发的系统性能可靠、成本较低、软件设计灵活简单、硬件接口功能丰富,具有扩展性好、通用性强等优点6。 本文是基于 89C52RC 的 MODBUS 通信程序设计,利用单片机 89C52 和MODBUS 通信程序设计温度控制器,使温度在工业中能够被跟好的控制

19、。第第 1.2 节节 选题简介选题简介在该温度控制系统中,单片机作为核心部件进行检测控制,增强了设计的通用性,适时性。地铁消防管道温度控制系统使用 AT89C52 控制器和 AD590 温度传感器,实现温度的检测功能和显示功能,然后能够通过上位机(PC)是指上下线温度,并且能够对被控制现场的温度实现智能的调节,来保持被控制现场的温度的基本恒定。序进行说明,包括控制算法,偏差计算等。控制是否升温或降温。北京化工大学毕业设计(论文)3 第第 2 章章 总体设计的技术分析总体设计的技术分析第第 2.1 节节 AT89C52 单片机单片机 2.1.1 单片机的发展单片机的发展随着大规模集成电路的出现及

20、其发展,将计算机的 CPU、RAM、ROM、定时/计数器和多种 I/O 接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机 。 单片机7现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从 8 位、16 位到 32 位,数不胜数,应有尽有,有与主流 C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:(1) 微型单片化现在常规的单片机普遍都是将中央处理器(CPU)8、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和

21、串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如 A/D 转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将 LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。(2) 低功耗 CMOS 化MCS-51 系列9的 8031 推

22、出时的功耗达 630mW,而现在的单片机普遍都在100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了 CMOS(互补金属氧化物半导体工艺)。像 80C51 就采用了 HMOS(即高密度金属氧化物半导体工艺)和 CHMOS(互补高密度金属氧化物半导体工艺)。CMOS北京化工大学毕业设计(论文)4 虽然功耗低,但由于其物理特征决定其工作速度不够高,而 CHMOS 则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。(3) 主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以 80C51

23、为核心的单片机占主流,兼容其结构和指令系统的有 PHILIPS 公司的产品,ATMEL 公司10的产品和中国台湾的 Win bond 系列单片机。所以 80C51 占据了半壁江山。而 Microchip 公司的 PIC精简指令集合(RISC)也有着强劲的发展势头,中国台湾的 HOLTEX 公司近年的单片机产量与日俱增,与其底价质优的优势,占据一定的市场份额。此外还有MOTOROLA 公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。九十年代以后,单片机在结构上采用双 CPU 或内部流水线,C

24、PU 位数有 8 位、16 位、32 位,时钟频率高达 20MHZ,片内带有 PWM 输出、监视定时器 WDT、可编程计数器阵列 PCA、DMA 传输、调制解调器等。芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。这类单片机有 NEC 公司的 MPD7800,MITSUBISHI 公司的 M337700,REVKWELL 公司的 R6500。 2.1.2 芯片的选择芯片的选择温度控制系统是通过采用单片机控制,使温度能够在设定值及变化范围内变化。采用单片机来实现温度控制不仅具有控制方便、简单

25、、灵活等优点,而且可以大幅度提高被控温度的技术指标。根据学校毕业设计要求本系统选用 ATMEL 公司的 AT89系列单片机11。AT89 系列有 AT89C51,AT89C52 等。89C5212与 89C51 的区别是内存大小不同,C51 的是 4K,C52 是 8K,并且根据节点所需实现功能的复杂程度和技术需要,在这个系统中采用 89C5213芯片。AT89C52 单片机是 ATMEL 公司的 51系列单片机。AT89C52 单片机是一款高性能 CMOS 8 位单片机,片内含 8KB 可反复擦写的 Flash 只读程序存储器和 256B 随机存取数据存储器(RAM) ,器件采用北京化工大学

26、毕业设计(论文)5 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS51 指令系统, 片内置通用 8 位中央处理器和 Flash 存储单元,AT89C52 单片机可提供较复杂系统控制应用场合。系统使用 AT89C52 控制器和 AD590 温度传感器,实现温度的检测和显示功能,能够通过上位机设置上下限温度,并且能够对被控现场的温度实现智能调节,以保持被控现场的温度基本恒定。2.1.3 AT89C52 功能简介功能简介AT89C52 是 51 系列单片机的一个型号,它是 ATMEL 公司生产的。AT89C52是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes

27、的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应用场合14。AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52 可以按照常规方法进行编程,但不可以在线编程(S 系列的才支持在线编程)。其将通用的微处理

28、器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。AT89C52 基本配置如下:兼容 MCS51 指令系统15 8k 可反复擦写(1000 次)Flash ROM 32 个双向 I/O 口 ,256x8bit 内部 RAM16 3 个 16 位可编程定时/计数器中断 ,时钟频率 0-24MHz 2 个串行中断,可编程 UART 串行通道 2 个外部中断源共 6 个中断源 2 个读写中断口线 ,3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能AT89C52 为 40 脚双列直插封装的 8 位通用微处理器17,采用工业标准的 C51北京化工大

29、学毕业设计(论文)6 内核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU通信等。主要管脚有:XTAL1(19 脚)和 XTAL2(18 脚)为振荡器输入输出端口,外接 12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和 VSS(20 脚)为供电端口,分别接+5V 电源的正负端。P0P3 为可编程通用 I/O 脚18,其功能用途由软件定义,在本设计中

30、,P0 端口(3239 脚)被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR 输入端,10 脚和 11 脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS(18 脚)和SCLS(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板CPU19 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。如下是 AT89C52 的 40 条引脚的具体功能。(1) 电源引脚 GND 和Vcc (或 GND) (20 脚):接地端。Vss (40 脚):接电源。正常操作及对 Flash ROM 编程和验证时接+5V 电Vcc源

31、。(2)外接晶体引脚 XTAL1 和 XTAL2XTAL1(19 脚):接外部晶体和微调电容的一端。在 AT89C52 单片机内,它是振荡电路反向放大器的输入端及内部时钟发生器的输入端,振荡电路的频率就是晶体的固有频率。当采用外部振荡器时,此引脚输入外部时钟脉冲。XTAL2(18 脚):接外部晶体和微调电容的另一端。在 AT89C52 单片机片内,它是振荡电路反相放大器的输出端。在采用外部振荡器时,此引脚应悬浮。(3)控制信号引脚 RST、ALE/、和/PROGPSENEAVppRST(9 脚):复位信号输入端,高电平有效。当振荡器工作时,在此引脚上出现两个机器周期以上的高电平,就可以使单片机

32、复位。ALE/(30 脚):地址锁存允许信号。当 AT89C52 单片机上电正常工PROG作后,ALE 端不断向外输出正脉冲信号,此信号频率为振荡器频率的 1/6。AT89C52 单片机在并行扩展外部存储器(包括并行扩展 I/O 接口)时,P0 口用于分时传送低 8 位地址和数据信号。当 ALE 信号有效时,P0 口传送的是低 8 位地址信号;ALE 信号无效时,P0 口传送的是 8 位数据信号。在 ALE 信号的下降沿,锁北京化工大学毕业设计(论文)7 定 P0 口传送的低 8 位地址信号,这样可以实现低 8 位地址与数据的分离。ALE 信号可以用作对外输出的时钟或定时信号。需注意的是每当访

33、问外部数据存储器时,将跳过一个 ALE 脉冲。ALE 端可以驱动(吸收或流出电流)8 个 TTL 门电路。在对 AT89C52 单片机片内 8KB Flash ROM 编程(固化)时,此引脚用于输入编程脉冲。PROG(29 脚):外部程序存储器的读选通信号。当 AT89C52 单片机由外部PSEN程序存储器取指令(或常数)时,每个机器周期内两次有效输出。当访问外部PSEN数据存储器时,这两次有效的信号将不出现,端同样可以驱动 8 个 TTLPSENPSEN们电路。/(31 脚):内部/外部 ROM 选择端。EAVpp当端接高电平时,CPU 访问并执行内部程序存储器的指令;但当 PC(程序EA计

34、数器)值超过 8KB(1FFFH)时,将自动转去执行外部程序存储器中的程序。当端接低电平时,CPU 只访问并执行外部程序存储器中的指令,而不管是否有内部EA程序存储器。需要注意的是,如果保密位 LB1 被编程,复位时在内部会锁存端EA的状态。在对 AT89C52 单片机片内 Flash ROM 编程(固化)时,此引脚用于实施编程电源。高电压编程时,为+12V,低电压编程时,为+5V。VppVppVpp(4) 输入和输出引脚 P0 口、P1 口、P2 口、P3 口P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8

35、个 TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与 AT89C51

36、不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入北京化工大学毕业设计(论文)8 (P1.1/T2EX) ,P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问 8

37、位地址的外部数据存储器(如执行 MOVX RI 指令)时,P2 口输出 P2 锁存器的内容。Flash 编程或校验时,P2 亦接收高位地址和一些控制信号。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL) 。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能。此外,P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。AT89C52 20共有 6 个中

38、断向量:两个外中断(INT0 和 INT1) ,3 个定时器中断(定时器 0、1、2)和串行口中断。所有这些中断源如图 9 所示。这些中断源可通过分别设置专用寄存器 IE 的置位或清 0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位 EA,它能控制所有中断的允许或禁止。注意表 5 中的 IE.6 为保留位,在 AT89C51 中 IE.5 也是保留位。程序员不应将“1”写入这些位,它们是将来 AT89 系列产品作为扩展用的。定时器 2 的中断是由 T2CON 中的 TF2 和 EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是 TF2 或

39、EXF2 产生中断,而由软件清除中断标志位。定时器 0 和定时器 1 的标志位 TF0 和 TF1 在定时器溢出那个机器周期的 S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器 2 的标志位TF2 在定时器溢出的那个机器周期的 S2P2 状态置位,并在同一个机器周期内查询到该标志。AT89C52 内部结构图如下图 11 所示。北京化工大学毕业设计(论文)9 图图 11 AT89C52 内部结构图内部结构图第第 2.2 节节 AD590 温度传感器温度传感器AD590 是美国模拟器件公司生产的单片集成两端感温电流源。(1)主要特性北京化工大学毕业设计(论文)10 流过器件

40、的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即: A/K (21)式中: 流过器件(AD590)的电流,单位为 mA;T热力学温度,单位为K。 AD590 的测温范围为-55+150。 AD590 的电源电压范围为 4V30V。电源电压可在 4V6V 范围变化,电流 变化 1mA,相当于温度变化 1K。AD590 可以承受 44V 正向电压和 20V 反向电压,因而器件反接也不会被损坏。 输出电阻为 710MW。 精度高。AD590 共有 I、J、K、L、M 五档,其中 M 档精度最高,在-55+150范围内,非线性误差为0.3。 AD590 的引脚共有 3 个,查各种资料里 ,

41、只用了两个引脚 (即+ -),第三个脚可以不用,是接外壳做屏蔽用的。测量温度是把整个器件放到需要测温度的地方。 AD590 的输出电流值说明如下: 其输出电流是以绝对温度零度( -273)为基准,每增加 1,它会增加1A 输出电流,因此在室温 25时,其输出电流 Iout=(273+25)=298A。 (2)AD590 注意事项Vo 的值为 Io 乘上 10K,以室温 25而言,输出值为10K298A=2.98V。测量 Vo 时,不可分出任何电流,否则测量值会不准。第第 2.3 节节 AD0804 模数转换原理模数转换原理ADC0804 是属于连续渐进式(Successive Approxim

42、ation Method)的 A/D 转换器,这类型的 A/D 转换器除了转换速度快(几十至几百 us) 、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。北京化工大学毕业设计(论文)11 以输出 8 位的 ADC0804 动作来说明“连续渐进式 A/D 转换器”的转换原理,动作步骤如下表示(原则上先从左侧最高位寻找起) 。第一次寻找结果:10000000 (若假设值输入值,则寻找位假设位1)第二次寻找结果:11000000 (若假设值输入值,则寻找位假设位1)第三次寻找结果:11000000 (若假设值输入值,则寻找位该假设位0)第四次寻找结果:11010000 (若假设值输

43、入值,则寻找位假设位1)第五次寻找结果:11010000 (若假设值输入值,则寻找位该假设位0)第六次寻找结果:11010100 (若假设值输入值,则寻找位假设位1)第七次寻找结果:11010110 (若假设值输入值,则寻找位假设位1)第八次寻找结果:11010110 (若假设值输入值,则寻找位该假设位0)这样使用二分法的寻找方式,8 位的 A/D 转换器只要 8 次寻找,12 位的 A/D 转换器只要 12 次寻找,就能完成转换的动作。ADC0804 的管脚图如图22所示图图 22 AD0804 管脚图管脚图第第 2.4 节节 MODBUS 协议协议北京化工大学毕业设计(论文)12 MODB

44、US 是 OSI 模型第 7 层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。自从 1979 年21出现工业串行链路的事实标准以来,MODBUS 使成千上万的自动化设备能够通信。目前,继续增加对简单而雅观的 MODBUS22结构支持。互联网组织能够使 TCP/IP 栈上的保留系统端502 访问 MODBUS。MODBUS 是一个请求/应答协议23,并且提供功能码规定的服务。MODBUS 功能码是 MODBUS 请求/应答 PDU 的元素。这里描述 MODBUS 事务处理框架内使用的功能码。2.4.1 通讯传送方式通讯传送方式通讯传送分为独立的信息头,和发

45、送的编码数据。以下的通讯传送方式定义也与 MODBUS RTU 通讯规约相兼容:初始结构 = 4 字节的时间地址码 = 1 字节功能码 = 1 字节数据区 = N 字节错误校检 = 16 位 CRC 码结束结构 = 4 字节的时间地址码:地址码为通讯传送的第一个字节。 这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。 主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。功能码:通讯传送的第二个字节。 MODBUS24通讯规约定义功能号为 1 到127。作为主机请求发送,通过功能码告诉从机执

46、行什么动作。 作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为 (比如功能码大与此同时 127)25,则表明从机没有响应操作或发送出错。数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。北京化工大学毕业设计(论文)13 2.4.2 通讯规约通讯规约当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。 如果

47、出错就不发送任何信息。 信息帧结构如下表21所示。表表 21 信息帧结构信息帧结构地址码:地址码是信息帧的第一字节 (8 位),从 0 到 255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 功能码:主机发送的功能码告诉从机执行什么任务。表22 列出的功能码都有具体的含义及操作。表表 22 功能码含义及操作功能码含义及操作数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如, 功能码告诉从机读取寄存器的值,则数据

48、区必需包含要读取寄存器的起始地址及读取长度。 对于不同的从机,地址和数据信息都不相同。错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用 CRC-16 校验方法。地址码功能码数据区错误校验码8 位8 位N 8 位16 位代码含义操作03读取数据读取当前寄存器内一个或多个二进制值06重置单一寄存器把设置的二进制值写入单一寄存器北京化工大学毕业设计(论文)14 2.4.3 Modbus 帧描述帧描述Modbus 26应用协议

49、定义了简单的独立于其下面通信层的协议数据单元(PDU - Protocol Data Unit):图图 21 Modbus 协议数据单元协议数据单元在不同总线或网络的 Modbus27 协议映射在协议数据单元之外引入了一些附加的域。发起 Modbus 事务处理的客户端构造 Modbus PDU,然后添加附加的域以构造适当的通信 PDU。图图 22 串行链路上的串行链路上的 Modbus 帧帧在 Modbus 串行链路,地址域只含有子节点地址。如前文所述,合法的子节点地址为十进制 0-247。每个子设备被赋予 1-247 范围中的地址。主节点通过将子节点的地址放到报文的地址域对子节点寻址。当子节

50、点返回应答时, 它将自己的地址放到应答报文的地址域以让主节点知道哪个子节点在回答。功能码指明服务器要执行的动作。功能码后面可跟有表示含有请求和响应参数的数据域。错误检验域是对报文内容执行冗余校验 的计算结果。根据不同的传输模式(RTU or ASCII)使用两种不同的计算方法28。第第 2.4 节节RS232 简介简介北京化工大学毕业设计(论文)15 RS-23229是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA)所制定的异步传输标准接口。通常 RS-232 接口以 9 个接脚(DB-9)或是 25 个接脚(DB-25)

51、的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。RS-232-C 是美国电子工业协会 EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS 是英文“推荐标准”的缩写,232 为标识号,C 表示修改次数。RS-232-C 总线标准设有 25 条信号线,包括一个主通道和一个辅助通道。在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C 标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800

52、、9600、19200 波特。RS-232-C 标准规定,驱动器允许有 2500pF 的电容负载,通信距离将受此电容限制,例如,采用 150pF/m 的通信电缆时,最大通信距离为 15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是 RS-232 属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于 20m 以内的通信。串行通信接口标准经过使用和发展,目前已经有几种。但都是在 RS-232 标准的基础上经过改进而形成的30。所以,以 RS-232C 为主来讨论。RS-323C 标准是美国 EIA(电子工业联合会)与 BELL 等公司一起开发的 1969 年公布

53、的通信协议。它适合于数据传输速率在 02021 0b/s 范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C 制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。在讨论 RS-232C 接口标准的内容之前,先说明两点:首先,RS-232-C 标准最初是远程通信连接数据终端设备 DTE(Data Terminal Equipment)与数据通信设备 DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计

54、算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对 RS-232C 标准与计算机不兼容的地方就不难理解了。其次,RS-232C 标准中所提到的“发送”和“接收”,都是站在 DTE 立场上,北京化工大学毕业设计(论文)16 而不是站在 DCE 的立场来定义的。由于在计算机系统中,往往是 CPU 和 I/O 设备之间传送信息,两者都是 DTE,因此双方都能发送和接收。第第 3 章章 硬件设计硬件设计第第 3.1 节节 系统结构系统结构地铁管道温度控制系统使用 AT89C52 控制器和 AD5

55、90 温度传感器,实现温度的检测和显示功能,能够通过上位机设置上下限温度,并且能够对现场的温度实现智能调节,以保持被控现场温度的基本恒定。温度控制系统旨在检测水温并对其进行控制。图 31 所示是系统总体构架。其中电源模块为单片机提供 5V 电压,为温度传感器 AD590 提供标准的 15V 电压。人机互换模块包括按键模块和数码显示模块。按键模块用来输入设定的温度,数码管显示模块用来显示当前测得的温度。温度传感器模块包括 A/D 转换模块和传感器模块。加热控制模块用来给水加热。上位机通信模块通过串口和 PC 建立通信渠道。89C52RC温度传感器检测模块人机互换模块加热器控制上位机通信模块图图

56、31 温度控制系统的总体框架温度控制系统的总体框架北京化工大学毕业设计(论文)17 第第 3.2 节节 单片机单片机 AT89C52 基础电路基础电路3.2.1 复位操作和复位电路复位操作和复位电路(1)复位操作AT89C52 的 RST 引脚是复位信号的输入端口,高电平有效。在时钟振荡稳定工作的情况下,该引脚若有低电平上升到高电平并持续两个机器周期(若晶振频率选12MHz,则 2 个机器周期为 2) ,系统将实现一次复位操作。单片机在 RST 高电s平有效后的第二个机器周期开始执行复位操作,并在 RST 变为低电平前的每个机器周期重复执行内部复位操作。(2)复位电路复位操作分为手动复位和上电

57、自动复位。在这里采用上电自动复位电路,图 32为一种上电自动复位电路。网络标号 RST 连接单片机 AT89C52 的 9 管脚。图图 32 上电自动复位电路上电自动复位电路在复位电路上电瞬间,RC 电路充电,由于电容上电压不能突变,所以 RST 引脚出现高电平。RST 引脚出现的高电平竟会随着对电容 C 的充电过程而逐渐回落,北京化工大学毕业设计(论文)18 为了保证 RST 引脚出现的高电平持续两个机器周期以上的时间,需要合理地选择电阻和电容的参数值,而电阻和电容参数的取值随着时钟频率的不同而变化,时钟频率越低电阻和电容的取值越大。3.2.2 振荡电路和时钟振荡电路和时钟在 AT89C52

58、 单片机芯片内部,有一个振荡电路和时钟发生器,引脚 XTAL1 和XTAL2 之间接入晶体振荡器和电容后构成内部时钟方式。也可以使用外部振荡器,由外部振荡器产生的信号直接加载到振荡器的输入端,作为 CPU 的时钟源,称为外部时钟方式。大多数单片机均采用内部时钟的方式。图 33 为片内振荡器接法。图图 33 片内振荡器接法片内振荡器接法在 AT89C52 单片机内部,引脚 XTAL2 和 XTAL1 连接着一个高增益反向放大器,XTAL1 引脚是反向放大器的输入端,XTAL2 引脚是反向放大器的输出端。芯片内的时钟发生器是一个 2 分频触发器,振荡器的输出为其输入,输出为两oscf相的时钟信号(

59、状态时钟信号) ,频率为振荡器输出信号频率的 1/2。状态时钟经oscf3 分频后为低字节地址锁存信号 ALE,频率为振荡器输出信号频率的 1/6,经 6oscf分频以后为机器周期信号,频率为/12。、一般取 2030pF 的陶瓷电容器。oscf1C2C晶振一般选择 12MHz。如果安装 12MHz 的晶振片,单片机的时钟信号频率为 6MHz,机器周期信号的北京化工大学毕业设计(论文)19 频率为 1MHz,机器周期为 1。大多数指令在 2 个机器周期完成,即使用 12MHzs的晶振片时,单片机执行一条指令大约为 2,据此便可以实现程序延时子程序的s编写。第第 3.3 节节 信号的采样及处理信

60、号的采样及处理要想用单片机 AT89C52 控制地铁消防管道的温度恒定,必须通过温度传感器对外界温度信号进行采集,再经信号转换电路对外界信号进行转换,然后送入单片机进行处理,并进行相应的控制。外界系统的信号采样和转换电路主要由温度传感器AD590 和 A/D 转换电路 ADC0804 组成。系统首先通过温度传感器采样外部模拟信号,再将信号由 ADC0804 进行模数转换,最后将处理后的信号送入单片机AT89C52。图 34 的下面部分是 AD590 用于测量热力学温度的基本应用电路。因为流过 AD590 的电流与热力学温度成正比,当电阻 R1 和电位器 R2 的电阻之和为1kW 时,输出电压随

温馨提示

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

评论

0/150

提交评论