基于89C52RC的MODBUS通信程序设计.docx

上传人:b****6 文档编号:8366367 上传时间:2023-01-30 格式:DOCX 页数:21 大小:37.50KB
下载 相关 举报
基于89C52RC的MODBUS通信程序设计.docx_第1页
第1页 / 共21页
基于89C52RC的MODBUS通信程序设计.docx_第2页
第2页 / 共21页
基于89C52RC的MODBUS通信程序设计.docx_第3页
第3页 / 共21页
基于89C52RC的MODBUS通信程序设计.docx_第4页
第4页 / 共21页
基于89C52RC的MODBUS通信程序设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于89C52RC的MODBUS通信程序设计.docx

《基于89C52RC的MODBUS通信程序设计.docx》由会员分享,可在线阅读,更多相关《基于89C52RC的MODBUS通信程序设计.docx(21页珍藏版)》请在冰豆网上搜索。

基于89C52RC的MODBUS通信程序设计.docx

基于89C52RC的MODBUS通信程序设计

通信工程专业毕业论文--基于89C52RC的MODBUS通信程序设计

 

摘要

单片机具有体积小,功能强,成本低,应用面广等优点,目前的温度控制系统多采用单片机进行系统设计。

基于89C52RC的MODBUS通信程序设计就是针对于温度控制系统进行的设计。

在这里主要使用AT89C52芯片和AD590温度传感器,实现温度的检测和显示功能,再通过MODBUS通信协议实现单片机与PC的连接程序设计,通过PC对被控现场的温度实现调节和控制。

在这里有两方面设计,硬件电路设计和软件程序设计。

硬件电路设计包括人机互换模块包括按键模块和数码显示模块。

按键模块用来输入设定的温度,数码管显示模块用来显示当前测得的温度。

温度传感器模块包括A/D转换模块和传感器模块。

加热控制模块用来给水加热。

上位机通信模块通过串口和PC建立通信渠道。

软件设计包括温度检测模块,加热器控制模块,按键模块,数码管显示模块和串口驱动模块。

温度检测模块通过A/D转换器将温度值转换成数字值存放,加热器控制模块控制加热器开关的通断,按键模块用于设定温度值;数码管模块用于显示检测到的温度值和设定的温度值,串口驱动模块用于从上位机收发数据。

关键词:

AT89C52;MODBUS通信协议;温度控制

ABSTRACT

TheMCUhastheadvantagesofsmallsize,lowcost,widerangeofapplications;temperaturecontrolsystemsuseasingle-chipsystemdesign.89C52RCMODBUScommunicationprogramisdesignedforthetemperaturecontrolsystem.MainlyuseAT89C52chipAD590temperaturesensor,temperaturedetectionanddisplayfunctionsandprogrammingofMCUandPCconnection,andthenthroughtheMODBUSprotocoltoregulateandcontrolthePCchargedwiththetemperatureofthescene.Therearetwoaspectsofdesign,hardwarecircuitdesignandsoftwareprogramming.Thehardwarecircuitdesign,includingtheman-machineinterchangeablemodulesincludingkeymoduleanddigitaldisplaymodule.Thekeymoduleisusedtoenterthesettemperature;thedigitaldisplaymoduleisusedtodisplaythecurrentmeasuredtemperature.ThetemperaturesensormoduleconsistsoftheA/Dconvertermoduleandsensormodule.Heatingcontrolmoduleisusedforwaterheating.ThehostcomputercommunicationmodulethroughtheserialportandPCtoestablishcommunicationchannels.Thesoftwaredesignincludestemperaturedetectingmodule,theheatercontrolmodule,keyboardmodule,digitaltubedisplaymoduleandserialportdrivermodule.TemperaturedetectionmoduletemperaturevaluesbytheA/Dconvertertoconvertthenumericvaluestored,theheatercontrolmodulecontrolstheheaterswitchesoff,thebuttonmoduleisusedtosetthetemperaturevalue;thedigitalcontrolmoduleisusedtodisplaythedetectedtemperaturevalueandthetemperaturesetvalue,theserialportdrivermoduleusedtosendandreceivedatafromthehostcomputer.

Keywords:

AT89C52,Modbusprotocol,Temperaturecontrol

前言1

第1章绪论2

第1.1节选题背景2

第1.2节选题简介2

第2章总体设计的技术分析3

第2.1节AT89C52单片机3

单片机的发展3

芯片的选择4

AT89C52功能简介5

第2.2节AD590温度传感器9

第2.3节AD0804模数转换原理10

第2.4节MODBUS协议11

通讯传送方式12

通讯规约12

Modbus帧描述13

第2.4节 RS232简介14

第3章硬件设计16

第3.1节系统结构16

第3.2节单片机AT89C52基础电路16

复位操作和复位电路16

振荡电路和时钟17

第3.3节信号的采样及处理18

第3.4节人机交互与串口通信单元设计20

数码管显示电路20

加热器控制电路20

串口通信电路21

第4章软件设计23

第4.1节设计思路、主程序流程图23

第4.2节数码管显示程序24

第4.3节按键程序24

第4.4节加热器控制程序25

第4.5节串口收发程序26

第4.6节MODBUS协议帧格式程序26

MODBUS协议帧格式组装26

CRC校验27

MODBUS数据帧的拆包29

结论31

参考文献32

致谢35

附录136

附录237

前言

温度是工业对象中主要的被控参数之一,它目前应用于很多方面,例如水温的控制,锅炉的温度控制,大棚的温度控制等,在这里是对地铁消防管道的的温度控制。

从中就可以看出温度对于当今世代的重要性。

温度过高或过低会影响工业过程中的很多方面,它会影响工具的使用,影响器具的承受能力等。

对象温度往往要求严格控制,温度控制器的引入,对提高控制精度意义重大,并已经在诸多工程设施方面得到了广泛的应用。

目前多采用单片机设计温度控制系统,单片机具有体积小,功能强,成本低,应用面广等优点,它最早是被用在工业控制领域。

早期的单片机都是8位或4位的。

其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。

当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。

而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

温度控制系统是通过采用单片机控制,使温度能够在设定值及变化范围内变化。

采用单片机来实现温度控制不仅具有控制方便、简单、灵活等优点,而且可以大幅度提高被控温度的技术指标。

MODBUS协议的应用为实时性和可靠性要求比较高的系统提供了一种很好的通讯方案,它最大限度地节约了成本、降低开发风险、提高系统的兼容性和可移植性。

采用MODBUS协议实现了上、下位机之间的通信,很好地满足了工业现场的要求,更好的适应了现代企业需要。

在这里有两方面设计,硬件电路设计和软件程序设计。

硬件电路设计包括人机互换模块包括按键模块和数码显示模块。

按键模块用来输入设定的温度,数码管显示模块用来显示当前测得的温度。

温度传感器模块包括A/D转换模块和传感器模块。

加热控制模块用来给水加热。

上位机通信模块通过串口和PC建立通信渠道。

软件设计包括温度检测模块,加热器控制模块,按键模块,数码管显示模块和串口驱动模块。

温度检测模块通过A/D转换器将温度值转换成数字值存放,加热器控制模块控制加热器开关的通断,按键模块用于设定温度值;数码管模块用于显示检测到的温度值和设定的温度值,串口驱动模块用于从上位机收发数据。

第1章绪论

第1.1节选题背景

温度是工业对象中主要的被控参数之一[1],它目前应用于很多方面,在这里是对地铁消防管道的的温度控制,,对象温度往往要求严格控制[2],温度控制器的引入,对提高控制精度意义重大,并已经在诸多工程设施方面得到了广泛的应用。

本文是基于89C52RC的MODBUS通信程序的温度控制器的硬件电路和软件程序的设计。

由于通信方式多样化,更需要有通信协议来进行规范[3]。

MODBUS协议是由Modicon公司开发且已是工业领域全球最流行的协议[4-5]。

此协议支持传统的RS-232、RS-422、RS-485AT89C52开发的系统性能可靠、成本较低、软件设计灵活简单、硬件接口功能丰富,具有扩展性好、通用性强等优点[6]。

本文是基于89C52RC的MODBUS通信程序设计,利用单片机89C52和MODBUS通信程序设计温度控制器,使温度在工业中能够被跟好的控制。

第1.2节选题简介

在该温度控制系统中,单片机作为核心部件进行检测控制,增强了设计的通用性,适时性。

地铁消防管道温度控制系统使用AT89C52控制器和AD590温度传感器,实现温度的检测功能和显示功能,然后能够通过上位机(PC)是指上下线温度,并且能够对被控制现场的温度实现智能的调节,来保持被控制现场的温度的基本恒定。

序进行说明,包括控制算法,偏差计算等。

控制是否升温或降温。

第2章总体设计的技术分析

第2.1节AT89C52单片机

单片机的发展

随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时/计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机。

单片机[7]现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

1微型单片化

现在常规的单片机普遍都是将中央处理器(CPU)[8]、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。

甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。

现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

2低功耗CMOS化

MCS-51系列[9]的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。

像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。

CMOS虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。

所以这种工艺将是今后一段时期单片机发展的主要途径。

3主流与多品种共存

现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司[10]的产品和中国台湾的Winbond系列单片机。

所以80C51占据了半壁江山。

而Microchip公司的PIC精简指令集合(RISC)也有着强劲的发展势头,中国台湾的HOLTEX公司近年的单片机产量与日俱增,与其底价质优的优势,占据一定的市场份额。

此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。

在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。

九十年代以后,单片机在结构上采用双CPU或内部流水线,CPU位数有8位、16位、32位,时钟频率高达20MHZ,片内带有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。

芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。

这类单片机有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。

芯片的选择

温度控制系统是通过采用单片机控制,使温度能够在设定值及变化范围内变化。

采用单片机来实现温度控制不仅具有控制方便、简单、灵活等优点,而且可以大幅度提高被控温度的技术指标。

根据学校毕业设计要求本系统选用ATMEL公司的AT89系列单片机[11]。

AT89系列有AT89C51,AT89C52等。

89C52[12]与89C51的区别是内存大小不同,C51的是4K,C52是8K,并且根据节点所需实现功能的复杂程度和技术需要,在这个系统中采用89C52[13]芯片。

AT89C52单片机是ATMEL公司的51系列单片机。

AT89C52单片机是一款高性能CMOS8位单片机,片内含8KB可反复擦写的Flash只读程序存储器和256B随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机可提供较复杂系统控制应用场合。

系统使用AT89C52控制器和AD590温度传感器,实现温度的检测和显示功能,能够通过上位机设置上下限温度,并且能够对被控现场的温度实现智能调节,以保持被控现场的温度基本恒定。

AT89C52功能简介

AT89C52是51系列的一个型号,它是ATMEL公司生产的。

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程S系列的才支持在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C52兼容MCS51指令系统8k可反复擦写1000次)FlashROM32个双向I/O口256x8bit内部RAM

④3个16位可编程定时/计数器中断时钟频率0-24MHz

2个串行中断可编程UART串行通道

2个外部中断源共6个中断源

2个读写中断口线3级加密位

低功耗空闲和掉电模式软件设置睡眠和唤醒功能

①(或GND)(20脚):

接地端。

②(40脚):

接电源。

正常操作及对FlashROM编程和验证时接+5V电源。

2外接晶体引脚XTAL1和XTAL2

①XTAL1(19脚):

接外部晶体和微调电容的一端。

在AT89C52单片机内,它是振荡电路反向放大器的输入端及内部时钟发生器的输入端,振荡电路的频率就是晶体的固有频率。

当采用外部振荡器时,此引脚输入外部时钟脉冲。

②XTAL2(18脚):

接外部晶体和微调电容的另一端。

在AT89C52单片机片内,它是振荡电路反相放大器的输出端。

在采用外部振荡器时,此引脚应悬浮。

3控制信号引脚RST、ALE/、和/

①RST(9脚):

复位信号输入端,高电平有效。

当振荡器工作时,在此引脚上出现两个机器周期以上的高电平,就可以使单片机复位。

②ALE/(30脚):

地址锁存允许信号。

当AT89C52单片机上电正常工作后,ALE端不断向外输出正脉冲信号,此信号频率为振荡器频率的1/6。

AT89C52单片机在并行扩展外部存储器(包括并行扩展I/O接口)时,P0口用于分时传送低8位地址和数据信号。

当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是8位数据信号。

在ALE信号的下降沿,锁定P0口传送的低8位地址信号,这样可以实现低8位地址与数据的分离。

ALE信号可以用作对外输出的时钟或定时信号。

需注意的是每当访问外部数据存储器时,将跳过一个ALE脉冲。

ALE端可以驱动(吸收或流出电流)8个TTL门电路。

在对AT89C52单片机片内8KBFlashROM编程(固化)时,此引脚用于输入编程脉冲。

③(29脚):

外部程序存储器的读选通信号。

当AT89C52单片机由外部程序存储器取指令(或常数)时,每个机器周期内两次有效输出。

当访问外部数据存储器时,这两次有效的信号将不出现,端同样可以驱动8个TTL们电路。

④/(31脚):

内部/外部ROM选择端。

当端接高电平时,CPU访问并执行内部程序存储器的指令;但当PC(程序计数器)值超过8KB(1FFFH)时,将自动转去执行外部程序存储器中的程序。

当端接低电平时,CPU只访问并执行外部程序存储器中的指令,而不管是否有内部程序存储器。

需要注意的是,如果保密位LB1被编程,复位时在内部会锁存端的状态。

在对AT89C52单片机片内FlashROM编程(固化)时,此引脚用于实施编程电源。

高电压编程时,为+12V,低电压编程时,为+5V。

4输入和输出引脚P0口、P1口、P2口、P3口

①P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

②P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流IIL。

与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),

③P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流IIL。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器(如执行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个中断向量:

两个外中断(INT0和INT1),3个定时器中断(定时器0、1、2)和串行口中断。

所有这些中断源如图9所示。

  这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的允许或禁止。

IE也有一个总禁止位EA,它能控制所有中断的允许或禁止。

  注意表5中的IE.6为保留位,在AT89C51中IE.5也是保留位。

程序员不应将“1”写入这些位,它们是将来AT89系列产品作为扩展用的。

  定时器2的中断是由T2CON中的TF2和EXF2逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2或EXF2产生中断,而由软件清除中断标志位。

  定时器0和定时器1的标志位TF0和TF1在定时器溢出那个机器周期的S5P2状态置位,而会在下一个机器周期才查询到该中断标志。

然而,定时器2的标志位TF2在定时器溢出的那个机器周期的S2P2状态置位,并在同一个机器周期内查询到该标志。

AT89C52内部结构图如下图1?

?

1所示。

图1?

?

1AT89C52内部结构图

第2.2节AD590温度传感器

AD590是美国模拟器件公司生产的单片集成两端感温电流源。

1主要特性

①流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:

A/K2?

?

1

式中:

―流过器件(AD590)的电流,单位为mA;T―热力学温度,单位为K。

②AD590的测温范围为-55℃~+150℃。

③AD590的电源电压范围为4V~30V。

电源电压可在4V~6V范围变化,电流变化1mA,相当于温度变化1K。

AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。

④输出电阻为710MW。

⑤精度高。

AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃ AD590的引脚共有3个,查各种资料里,只用了两个引脚即+-第三个脚可以不用,是接外壳做屏蔽用的测量温度是把整个器件放到需要测温度的地方。

  AD590的输出电流值说明如下:

  其输出电流是以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Iout(273+25)298μA。

AD590注意事项  Vo的值为Io乘上10K,以室温25℃而言,输出值为10K×298μA2.98V测量Vo时,不可分出任何电流

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1