具有RS485通信功能的8路温度检测仪软件设计毕业设计论文Word文件下载.docx
《具有RS485通信功能的8路温度检测仪软件设计毕业设计论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《具有RS485通信功能的8路温度检测仪软件设计毕业设计论文Word文件下载.docx(59页珍藏版)》请在冰点文库上搜索。
PT100的阻值与温度变化关系为:
当PT100温度为0℃时它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
它的工业原理:
当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。
由于PT100热电阻的温度与阻值变化关系,人们便利用它的这一特性,发明并生产了PT100热电阻温度传感器。
它是集温度湿度采集于一体的智能传感器。
温度的采集范围可以在-200℃~+200℃,湿度采集范围是0%~100%[2]。
因此本设计中选择该铂热电阻进行温度的采集,达到精准且范围广的要求。
本设计以AT89S52为核心部件,因为它与MCS-51兼容,4K字节可编程FLASH存储器,寿命可达1000写/擦循环,数据保留时间长达10年,全静态工作时的频率为0Hz-24MHz,三级程序存储器锁定,128×
8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式。
基于这些特性,该设计以此单片机为核心部件来处理控制温度的循环显示采集系统。
以AT89S52为处理控制核心,利用PT100温度传感器来采集温度,经过AD转换将采集到的数值经过转换后进行温度值的显示,其中RS-485可以实现串口通信。
根据该系统的要求,将要完成如下的任务:
1、设计一个8通道的温度巡检仪程序。
2、带RS-485传输接口用于传输检测数据。
3、循环检测8路-50~200℃的Pt100传感器温度信号。
4、可以对每一路信号设置报警上限和下限。
5、带显示器件,用于显示:
各路测量信号和报警状态。
6、带报警继电器触点输出。
基于此,在软件的设计上将分为系统的初始化,温度的采集,RS-485通信传输,温度的显示,温度上限以及下限的报警等模块来组成。
主要实现8路温度的巡检。
第1章绪论
本章将会主要对温度显示,RS-485通信原理,PT100温度传感器等及其系统的总设计方案进行一个简单大致的介绍。
1.1基本原理
本系统由单片机、温度采集、按键、显示、报警、数据传输等部分组成。
其中AT89S52单片机为系统核心,主要完成对温度数据的采集和处理,控制系统的工作,协调串行通信向上位机发送数据信息。
本系统能实现对8路温度的检测和显示,可预设各路温度的上、下限值,设置定点和巡回检测方式及报警功能。
测温的模拟电路是把当前PT100热电阻传感器的电阻值,经过A/D转换器把模拟电压转为数字信号后传给单片机AT89S52,单片机再根据处理换算把测量得的温度传感器的电阻值转换为温度值,并将数据送出到显示屏上进行显示。
1.1.1传感器部分
铂电阻的特点是精度高,稳定性好,性能可靠。
铂在氧化性气氛中,甚至在高温下的物理、化学性质都非常稳定。
因此铂被公认为是目前制造热电阻材料。
铂电阻主要为标准电阻温度计使用,也常被用在工业测量中。
铂电阻的阻值温度之间的关系:
在0~850℃范围内可用下式表示,
(1—1)
在-200~0℃范围内则用下式表示,
(1—2)
式中Rt---温度为t℃时的铂电阻的阻值;
R0---温度为0℃时的铂电阻的阻值;
A、B、C为常数,
/℃;
对满足上述关系的热电阻,其温度系数约为3.9×
10-3℃。
PT100是铂热电阻,它的阻值跟温度的变化成正比。
1.1.2主控制部分
设计采用Pt100模拟温度传感器采集数据,单片机通电后,Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、A/D转换后送入单片机,单片机始终等待A/D转换值的到来。
此方案采用AT89S52型号的八位单片机实现。
单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。
而且体积小,硬件实现简单,安装方便,高性能。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
1.1.3AD转换模块
1.1.3.1ADC0809简介
ADC0809是8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
故可实现该系统的8路温度的转换要求。
1.1.3.2ADC0809原理
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收。
1.1.4485通信模块
RS485由于传输速率高,传输距离远,故本系统采用RS485标准。
但由于微机标准配置通常只提供RS232C串行端口,因此需要使用RS232C/RS485通信接口进行转接。
通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号。
RS485采用差分传输方式,可以有效地提高共模抗干扰能力,最高传输速率可达1200Kb/s。
RS485的特性包括:
(1)RS-485的电气特性:
逻辑“1”以两线间的电压差为+(2—6)V表示;
逻辑“0”以两线间的电压差为-(2—6)V表示。
接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
(2)RS-485的数据最高传输速率为10Mbps。
(3)RS-485接口强,即抗噪声干扰性好。
(4)RS-485接口的最大传输距离标准值为4000英尺,实际上可达3000米(理论上的数据,在实际操作中,极限距离仅达1200米左右)。
1.2系统方案
1.2.1系统的整体结构
该设计需要完成对8路温度的检测。
通过一些硬件及其配套的软件来实现RS-485通信功能的8路温度检测功能。
其经过PT100对温度采集,ADC0809进行AD转换,LCD温度数据的显示,传输等过程。
其系统的整体结构框图如下图1所示。
图1—1系统原理模块
1.2.2软件介绍
(1)KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选。
KeilC5的优点如下:
a.KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
b.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
(2)Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、8086、PIC10/12/16/18/24/30/DsPIC33和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
功能是:
1.原理布图2.PCB自动或人工布线3.SPICE电路仿真。
1.2.3系统测试
为了验证系统的可靠性,在系统设计完毕后就需要对各功能模块进行测试。
首先在Keil上面对编写的程序进行编译检测错误,根据Proteus的仿真原理图进行软件的仿真。
其次进行硬件测试,上电前仔细检查各元器件是否正确焊接在电路板上,硬件测试完毕后,将生成的HEX文件载入到单片机中;
最后进行系统总体调试,验证系统功能。
1.3章节安排
本论文共分为五章。
第1章是绪论,主要阐述了设计中的一些基本原理和系统总体方案设计。
第2章是硬件设计,主要介绍简单的原理图,及其硬件功能模块的实现。
第3章是软件设计,详细阐述各个模块软件设计,及其各个子程序的流程介绍,实现方式等。
第4章是调试与分析,通过测试程序,验证各模块的功能,并对调试过程中产生的问题进行分析与总结。
第5章是系统设计的结论与展望,在这一章中,结论对系统的设计结果作了简单的总结,展望则根据系统中存在的不足提出了一些相应的改进的方法。
第2章硬件设计
在设计过程中,将系统功能分为硬件和软件两部分来分别实现。
本章详细介绍了系统设计的硬件部分在电路实现的过程中的硬件原理图及其选择的主要器件。
2.1总体设计
根据系统的功能要求,硬件方面需要完成如下设计:
以单片机AT89S52为核心部件,Pt100温度的采集,基于ADC0809的数模转换,数据通信,控制报警,按键设计,温度显示等,其整体设计框图如图2-1所示。
图2-1硬件总体设计框图
其中,各个模块的功能如表2-1所示。
表2—1各模块功能
部件
功能
测量PT100
采集温度值
A/D转换ADC0809
对采样的值进行数模转换
数据通信RS-485
使得该系统具有通信功能
控制报警蜂鸣器
在温度低于上限或者高于上限时
驱动报警
按键模块
通过按键设置上下限进行确认
显示模块
采用液晶显示屏对数值进行显示
单片机控制
整个系统的核心控制处
系统性能特点及工作原理:
本系统由单片机、温度采集、按键、显示、报警、数据传输等部分组成。
Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、A/D转换后送入单片机,之后通过液晶显示温度数值。
其中AT89S52单片机为系统核心,主要完成对温度数据的采集和处理,控制系统的工作,协调RS485串行通信。
本系统能实现对8路温度的检测和显示,可预设各路温度的上、下限值,设置定点或巡回检测方式及报警功能。
2.2系统主要器件的介绍
2.2.1单片机AT89S52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
它具有如下的特性:
(1)与MCS-51单片机产品兼容;
(2)8K字节在系统可编程Flash存储器;
(3)1000次擦写周期;
(4)全静态操作:
0Hz-33MHz;
(5)三级加密程序存储器;
(6)32个可编程I/O口线;
(7)三个16位定时器/计数器;
(8)8个中断源;
(9)全双工UART串行通道;
(10)低功耗空闲和掉电模式;
(11)掉电后中断可唤醒;
(12)看门狗定时器;
(13)双数据指针;
(14)掉电标识符。
2.2.2A/D转换芯片
ADC0809是8位逐次逼近式A/D模数转换器。
ADC0809具有以下的主要特性:
(1)8路输入通道,8位A/D转换器,即分辨率为8位;
(2)具有转换起停控制端;
(3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时);
(4)单个+5V电源供电;
(5)模拟输入电压范围0~+5V,不需零点和满刻度校准;
(6)工作温度范围为-40~+85摄氏度;
(7)低功耗,约15mW。
2.2.3温度传感器
PT100是铂热电阻,它的阻值会随着温度的变化而改变。
PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的但他们之间的关系并不是简单的正比的关系,而更应该趋近于一条抛物线。
Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大。
2.2.4显示LCD1602
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它的特性有:
(1)3.3V或5V工作电压,对比度可调;
(2)内含复位电路;
(3)提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种
功能;
(4)有80字节显示数据存储器DDRAM;
(5)内建有192个5X7点阵的字型的字符发生器CGROM;
(6)8个可由用户自定义的5X7的字符发生器CGRAM。
2.2.5MAX485芯片
MAX485接口芯片是Maxim公司的一种RS-485芯片。
采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式。
它完成将TTL电平转换为RS-485电平的功能。
MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。
MAX485的驱动器摆率不受限制,可以实现最高2.5Mbps的传输速率。
驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态。
接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出。
具有较高的抗干扰性能。
2.3总体电路图
该设计以AT89S52为核心构造,对总体的功能进行设计。
上述对系统的器件进行了介绍,根据系统的总体框图,及其各模块的作用。
以系统的性能工作原理为核心,得到的主控电路图如图2-2所示。
图2-2系统总体电路图
其中包括:
(1)PT100测温及其放大电路
(2)AD转换连接电路
(3)单片机AT89S52的复位电路
(4)单片机AT89S52的时钟电路
(5)1602液晶显示电路
(6)报警及其按键上下限设置电路
第3章软件设计
在硬件设计的基础上,需要对它进行相应的编写应用程序。
本系统的软件设计采用的是C语言进行编程,C是一种很具有结构化的语言。
不仅具有丰富的运算符和数据类型,以便于实现各类复杂的数据结构,它还可以直接访问内存地址,进行(bit)位操作,尤其能够胜任开发操作系统的工作。
由于C语言实现了对硬件的编程操作,因此C语言既有较高语言的功能,也有低级语言的优势。
C语言的维护也比汇编语言维护起来方便快捷,便于模块方式组织程序,方便调试和维护,语言灵活。
在C编程的基础上,根据硬件电路原理图,本系统的软件程序主要包括了:
主程序,初始化,LCD1602的温度显示,报警函数子程序设计,数据的AD转换,485通信设计。
3.1主程序的设计
主程序就是监控程序,主程序首先对各个IO口进行初始化,然后用Pt100温度传感器对温度进行检测。
我们可以定义温度的最高上限和下限的两个阈值,并确认。
之后温度传感器采集到的温度经过AD转换,由单片机处理过,将采集到的温度值显示在液晶显示屏上。
同时,如果采集到的温度超过了阈值范围,都将中断进入报警系统,对采集到的温度产生报警信号;
如果采集到的温度在介于阈值范围之间,则正常显示温度,并且循环显示8路温度,直到将8路温度全部显示完毕。
根据这种流程思想,就可以确定一个主要的程序流程方向,来实现本系统的主流程图如3-1所示。
图3-1函数主流程图
3.2AD转换子程序设计
该设计采用的是AD