具有rs-485通信功能的8路温度检测仪软件设计毕业设计论文_第1页
具有rs-485通信功能的8路温度检测仪软件设计毕业设计论文_第2页
具有rs-485通信功能的8路温度检测仪软件设计毕业设计论文_第3页
具有rs-485通信功能的8路温度检测仪软件设计毕业设计论文_第4页
具有rs-485通信功能的8路温度检测仪软件设计毕业设计论文_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

西安工程大学本科毕业设计(论文)摘要温度是工业生产和自动控制中最常见的工艺参数之一,生产过程需要对温度进行检测和控制。为了满足对温度采集和测量要求,实现对各个支路温度的检测,本系统就是采用了AT89S52为主控的8路温度检测的系统。该系统可以实现多个点的温度检测和数值显示并且具有RS-485通信功能。该系统包括的模块主要有温度的采集,单片机的控制,AD转换,温度值的显示,RS-485通信。它主要使用的是热敏电阻Pt100温度传感器实现温度检测,并通过AD转换对采集到的数值进行转换,随后将温度显示在液晶屏上,并对温度设置上下阈值来实现温度报警功能。论文首先简单介绍了该系统的基本原理及整体结构,接着分硬件、软件两部分对整个系统进行阐述,其中软件部分详细描述。最后是系统的调试与分析,对系统的功能进行了验证。关键词:AT89S52,RS-485,AD转换,PT100温度传感器ABSTRACTTemperatureisoneofthemostcommonparametersinindustrialproductionandautomaticcontroloftechnological,thereistheneedofthedetectionandcontrolintheproductiveprocess.Inordertomeettherequirementoftemperatureacquisitionandmeasurementtodetecteight-channel`stemperature,sowewilldesignasimplytemperaturedetectionsystemwhichfocusontheAT89S52.Thissystemcandetectthetemperature,displaythevaluesofnumberwithRS-485communicationfunction.Thissystemincludesthecollectionoftemperature,thecontrolofthesinglechipmicrocomputer,ADconversion,displaythetemperaturevalueandRS-485communication.ItdetecttemperatureandtransferthetemperaturewhichismainlyuseaPT100temperaturesensor.ThendisplaythetemperatureontheLiquidCrystalDisplay.Andsetupthetopandthebottomtemperaturevalue.Ifthetemperaturedoesn`treachtherangeofthetopandbottom,thesystemwillgiveanalarm.Thispaperfirstintroducesthebasicprincipleandthemassivestructureofthesystem.Thenitisdividedintotwopartstothewholesystemhardwareandsoftwarearedescribed,thesoftwarepartwillgiveadetaildescription.Finallythereisaneedtodebugandanalyzethesystemtotestifythesystem.KEYWORDS:AT89S52,RS-485communication,ADconversion,Pt100temperaturesensor目录TOC\o"1-4"\h\z\u前言 前言在人类的生产生活之中,温度扮演着极其重要的角色,温度对工业的发展有着及其重要的影响,因此传感器也有着飞速的发展,来适应这种对温度的检测要求。基于此,本设计就是一个对温度的循环检测系统,以满足生产生活对温度检测的需要。随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本文主要介绍了一个基于AT89S52单片机的测温系统,描述了利用温度传感器PT100测温系统的过程,对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,灵敏度高、体积小、功耗低等优点,适合于我们日常生活温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展[1]。PT100在-50~600℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等,正是基于此,PT100在各个行业中受到广泛应用。此系统设计了一款基于PT100的多路温度巡检仪,可同时测量8路PT100信号,通过LCD1602,同时循环显示8路温度值。其中PT100是铂热电阻,它的阻值跟温度的变化成正比。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是铂热电阻,它的阻值跟温度的变化成正比。PT100的阻值与温度变化关系为:当PT100温度为0℃时它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。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转换模块ADC0809简介ADC0809是8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。故可实现该系统的8路温度的转换要求。ADC0809原理首先输入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单片机AT89S52AT89S52是一种低功耗、高性能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模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通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显示LCD16021602液晶也叫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转换子程序设计该设计采用的是ADC0809,它是一个8路模拟输入的8逐次逼近式ADC。它内部还有一个8位通道选择开关,其作用就是可以根据地址译码的信号来选择8路模拟输入,8路模拟信号分时共用ADC转换器进行转换。其引脚功能如下:IN0—IN7:8位模拟量输入端ADDA,ADDB,ADDC:模拟量输入通道地址选择线,其8位编码分别对应IN0—IN7,通道选择表如下表3-1所示ALE:地址锁存端START:ADC转换启动信号,正脉冲有效,该信号要求保持在200ns以上。其上升沿将内部逐次逼近寄存器清0,下降沿启动ADC转换EOC:转换结束信号,可作为中断请求信号,或者供CPU查询CLK:时钟输入端,要求频率范围在10kHz—1.2MHzOE:允许输入信号VREF(+),VREF(-):基准参考电压的正,负值OUT1—0UT8:8路数字量输出端表3-1通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ADC0809的信号设置为START=0,START=1,START=0,这样就可以产生一个启动转换的正脉冲,进行AD转换的时候,查询EOC的标志信号来检测A/D转换是否完毕,当EOC是低电平是时候,就指示的是操作正在进行当中,直到转换完成后EOC就再次变成了高电平。当微处理器收到变成高电平的EOC的时候,便立刻送出OE信号,读取转换结果。START产生一个启动脉冲,将采集到的温度数值进行A/D转换,EOC为低电平对其进行转换,将转换后的采集的温度值经过OE送出,读取转换后的温度再用显示屏显示出来。将采集到的信号,经过A/D转换并由单片机系统读取。ADC0809应用说明(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连(2)

初始化时,使ST和OE信号全为低电平(3)

送要转换的哪一通道的地址到A,B,C端口上(4)在ST端给出一个至少有100ns宽的正脉冲信号(5)是否转换完毕,我们根据EOC信号来判断(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机在该设计中,滤波程序是抑制抗干扰的一种有效的措施,该系统程序中套用了滤波程序,将经过AD转换后的数值进行处理。对每路温度的采集分5次采集,求出这5个数据中的最大值最小值,MAX—MIN求出差值,求出5个采集点的数学期望,将此进行比较,若差值大于期望值,则会认为采集到的数据点不合要求,舍弃该采集值,重新进行采集。增加了该滤波程序,可以舍去偶然因素引起的波动和采集不稳定引起的误差,可以抑制信号的干扰成分,消除随机误差,使得温度的采集更加的稳定。主要的流程图如图3-2所示。图3-2A/D转换的流程图3.3LCD温度显示程序设计在温度的显示上,采用LCD1602.可以显示两行字符,每行16个,显示容量为162。通过并行接口,可与单片机的I/O口直接相连。1602的引脚和功能如下:VSS:电源地VDD:电源正极,接+5V电源VL:液晶显示偏压信号RS:数据/指令寄存器选择端。高电平时选择数据寄存器,低电平时选择指令寄存器。R/W:读/写选择端。高电平时为读操作,低电平时为写操作E(6):使能信号,下降沿触发D0-D7:I/O口数据传输线BLA:背光源正极BLK:背光源负极当RS及R/W的引脚信号为1且E的引脚由1变成了0时,读取数据:当RS的引脚信号为1时,R/W引脚信号为0,且E的引脚由1变成了0,存入数据。故可以根据设置RS及R/W的高低电平来控制数据的读取,存入。它具体的指令操作包括清屏,回车,输入模式控制,显示开关控制,以为控制,显示模式控制如下3-2表所示。表3-2指令系统指令名称控制信号指令代码功能RSR/WD7D6D5D4D3D2D1D0清屏0000000000显示清屏:(1)数据指针清0(2)所有显示清除回车0000000010显示回车,数据指针清0输入模式控制00000001NS设置光标,显示画面移动方向显示开关控制000000D/LDCB设置显示,光标,闪烁开关移位控制000001S/CR/L××使光标或显示画面移位显示模式控制00001D/LNF××设置数据总线位数,点阵方式GGRAM地址设置0001ACGDDRAM地址指针设置001ADD忙状态检查01BFAC读数据11数据从RAM中读取数据写数据10数据对RAM进行写数据数据指针设置0080H+地址码(0~27H,40H~47H)设置数据地址指针在该系统之中,先对LCD进行初始化设置,将AD转换后的数值向LCD发送,LCD读取数据,然后写入函数,最后将采集到的温度值显示在LCD1602的屏幕上。其流程图如下图3-3所示。

图3-3LCD显示流程图3.4报警子程序设计该系统具有设定上下限报警功能,若采集到的温度值超过了设置的上下限温度值,则会驱动蜂鸣器产生报警信号LED也会闪烁报警,而如果在此范围之内,则LED正常发亮,说明温度显示正常。如下3-4所示。用if语句控制,蜂鸣器在低电平有效,故采集到温度不在范围之内时,将引脚置低电平,P02置0,三极管将会产生一个压差,电路导通后,蜂鸣器就会报警,红色LED也会闪烁。图3-4报警子程序流程图3.5按键设置程序设计从电路图中可以看出,该系统中设计了3个按键,分别控制着系统的“通道+”,“通道-”,还有“确认”这三个功能,用来选择显示的通道。通常,按键的闭合与否通常用高电平与低电平来进行检测的。当键闭合时,该键为低电平;当键断开时,该键为高电平。然而,按键的闭合与断开之间存在着机械弹性,在机械弹性的作用下,按键在闭合断开之间会出现抖动的过程。在抖动期间,检测按键的通/断作用,就很可能导致错误的出现,按键的一次按下或者释放都将被误认为是很多次的操作,因此,在按键的处理之中,应该设置软件上的去抖动方法。在软件中去抖动就是利用延时子程序,再确认按键是否仍然闭合,若仍然闭合,则确认为按键按下,消除了这个抖动的影响,流程图如下图3-5所示。图3-5按键设置处理程序流程图3.6RS-485通信模块程序设计上位机和下位机之间的串行通信采用RS-485标准接口,PC端接一个RS232的转换电路,就实现RS485总线控制。MAX485的引脚功能如下:RO:接收器的输入端DI:驱动器的输入端RE:接收使能端DE:发送使能端A端:接收的差分信号端B端:发送的差分信号端GND:接地端在总的系统电路图中可以看出,485与PC之间经过了232的转换,从而实现通信功能,RE与DE是共用了一个引脚,因为485是一个半双工的工作状态,如图3-6所示,可以满足数据传输的需求。当RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态。当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0,其主要的流程图如图3-7所示。图3-6半双工工作方式图3-7485通信流程图第4章调试与仿真在完成了硬件设计跟软件设计的基础上,就将对产生的程序进行调试,本系统采用的调试是仿真调试,基于Keil和Proteus的联调过程中,对系统进行调试仿真。Keil集成开发环境是众多单片机应用开发优秀软件之一,它集编辑,编译,仿真于一体,支持汇编语言,PLM语言,C语言的程序设计,容易操作。4.1软件仿真4.1.1建立程序文件(1)打开KeiluVision4,新建Keil项目,选择AT89C51单片机作为CPU;建立一个文件夹作为工作文件夹,进入集成开发环境中,选择菜单“Project—NewuVisionProject”,在弹出的“NewuVisionProject”对话框中,将“保存在”下拉列表中选择自己的工作文件夹,在“文件名”中键入文件名,保存,如图4-1。关闭对话框,将会弹出“SelectDeviceforTargetTarget1”对话框,选择芯片类型为AT89C51。单击确定即可,如图4-2。图4-1建立新的工程名图4-2选择所需单片机型号(2)新建C源文件,编写程序并将其导入到“SourceGroup1”之中;单击“creatanyemptydocument”,在弹出的文本框中输入C语言程序,输入完毕之后,将其保存。在弹出的“SaveAs”中,确定保存在了自己的文件夹中,在文件名输入源文件名和扩展名,单击“保存”按钮,关闭对话框,保存程序,如图4-3所示。图4-3保存C源文件单击右键“Project”窗口中的“SourceGroup1”,在弹出的对话框选择“AddfilestoGroup‘SourceGroup1’”,在“文件类型当中选择.C源文件”如图4-4所示。图4-4添加C源文件选中欲添加的源程序,单击“Add”按钮,将源程序添加到工程当中。而在“SourceGroup1”中将出现该源程序文件名。(3)在“OptionforTarget”对话框中。选择“Output”“CreateHEXFile”选项。如图4-5所示。图4-5设置生成.HEX文件(4)编译源程序,修改程序中的错误直到通过。4.1.2加载目标代码文件(1)在ProteusISIS中,左键双击AT89C51元件,打开“EditComponent”对话框,设置单片机的频率为12MHz;(2)在该窗口中“ProgramFilm”栏中,选择先前生成的“.HEX”文件,如图4-6所示;图4-6设置单片机频率及选择“.HEX”文件(3)在ProteusISIS菜单栏目中选择【File】【SaveDesign】选项,保存设计;(4)在ProteusISIS菜单栏中,打开“Debug”下拉菜单,在菜单中选择“UseRemoteDebugMonitor”选项,以支持与Keil的联调。4.1.3进行调试与仿真(1)在Keil的栏目中选择【Debug】【Start/StopDebugSession】选项,或者在工具栏中直接点击图标,进入调试环境状态;(2)按“F5”键,顺序执行程序;(3)ProteusISIS界面中,按动按键设置上下阈值,拨动滑动变阻器仿真温度值。在此说明的是,温度的采集中PT100传感器的工作原理是可调电阻原理,电阻值的变化引起电压变化,经过转换得到温度值,故在此用滑动变阻器来代替了传感器来进行软件的仿真。本仿真针对一路通道的温度采集进行了仿真调试,其Proteus仿真图如4-7所示。图4-7Proteus温度采集仿真图按动开关,可以看到LCD液晶屏上面显示出了欢迎语句,LCD启动,如图4-8所示。图4-8LCD启动,进入主页面拨动滑动变阻器,可以看到LCD上显示的温度数值的变化,如图4-9,4-10可以看出其显示的变化。图4-9LCD显示的温度值图4-10拨动滑动变阻器之后LCD显示的温度值4.2硬件调试经过了软件的仿真后,将程序烧到单品机中,进行硬件调试,即将生成的.hex文件载入系统控制中心单片机中。板子进入工作状态,电源指示灯亮,表示工作正常。LCD1602液晶上也显示出了转换后的温度值,如图4-11所示。图4-11LCD的温度值显示用螺丝刀转动滑动变阻器,可以观察到各路温度的变化。切换通道,可以观察到不同通道的温度值,如图4-12所示。图4-12比较不同通道,LCD显示的温度值其中在温度报警模块中,若温度正常显示,则LED绿色灯亮,若超出测量显示范围,则红色的LED闪烁,如图4-13所示。图4-13温度报警模块显示4.3产生的问题与分析在系统的调试过程中产生的问题多种多样,下面就所产生的问题进行分析,以及它是如何得到解决作一些简单的阐述。1.按键设置问题在按动按键的时候,发现出现转换错乱的现象,按动一下按键,显示不变或者多次改变。经过查看模块程序,发现DELAY程序的延迟时间有的太短有的太长,所以造成了一次的按键操作系统没有反应或者系统当成了多次操作。因此给程序中的延迟时间做适当的调整后,按键恢复正常状态。2.第3路温度变化问题第3路滑动变阻器用螺丝刀旋转,企图得到温度值显示的变化,但是观察到液晶显示屏上没有改变。进行了软件的排查和硬件的排查,排查后发现变阻器出现故障,重新换取了一个后发现显示正常3.温度采集数值的稳定问题在数据的采集中,发现数值的显示不稳定,结果有误差。观察知,偶然因素引起的误差可以使得数据不稳定。采取的措施是在温度的采集中加入数字滤波,采集5次数值,求取期望值,差值比较,这样增加了系统的抗干扰性和抑制干扰因素的能力。第5章结论与展望最后本章对这个总体论文及其设计进行一个总结,并提出不足之处与改进方法。5.1结论在硬件的器件选择基础上,根据电路结构框图及其原理图的基础。在软件设计中,实现了温度采集,AD转换,温度显示等功能。总之,本设计基本符合了设计的基本要求。在这次的毕业设计之中,对温度传感器,以及AD转换等都有了一些认识,同时也学习到了一些书本上学习不到的东西,不仅仅增强的是一种动手的能力,而且还培养了发现问题解决问题的意识,能力。在这次的毕业设计,使得我对学习到的理论知识有了深刻的理解与体会。同时,也发现自己的很多不足,学习的理论知识功底不足,C语言学习不牢靠,不能够完全融会贯通所学到的知识。对知识的运用能力很不到位,考虑问题不充分不全面。所以在今后的学习之中,必须努力的充实自己,锻炼自己的各种能力,使得自身的理论素养与实践动手能力得到更大的提高。5.2展望这个系统的设计基本完成了它的功能,但是当然还存在一些不足的地方,所以,可以改进。(1)在该设计中是有线温度控制,可以采用无线模块方式实现远程温度数据采集。实现远端环境数据的采集,可以不受距离的限制。(2)RS-485可以实现数据之间的转换,通过协议以及软硬件配合,可以实现上位机,与PC通信的功能,在本设计中没有充分体现这个特性。(3)在测量精度上还有待提高。参考文献[1]何丽华,谭成武,许治平,单片机多路温度巡检仪[J],自动化仪表,1998[2]张红兵王华凌编著,基于铂电阻Pt100的温度传感器设计[J],电子制作,2012(11):36[3]温宗周,单片机原理及接口技术(第1版)[M],北京:中国电力出版社,2009:1-101[4]薛纪文,C语言程序设计教程(第1版)[M],北京:北京邮电大学出版社,2010:14-160[5]朱清慧,翟天嵩,王志奎,Proteus教程—电子线路设计,制版与仿真(第1版)[M],北京:清华大学出版社,2008:200-210[6]杜克铭,姚燕,李景涌,\o"基于STC89C52的多路温度传感器标定系统"基于STC89C52的多路温度传感器标定系统[J],电子技术应用,2009(04)[7]钟伟雄,\o"基于8051单片机的温度采集系统"基于8051单片机的温度采集系统,科技创新导报,2008(31)[8]陈忠平,51单片机C语言程序设计经典实例(第1版)[M],北京:电子工业出版社,2012:271-280,337-346[9]刘鲲,孙春亮,单片机C语言入门(第1版)[M],北京:人民邮电出版社,2008:43-116[10]KonicaCorporation.Konica7040WorkgroupDocumentSystemuser’sManual.KonicaBusinessTechnologies,Inc,1998.[11]康光华,电子技术基础(第5版)[M],北京:高等教育出版社,2005:102-113[12]何祥林,基于AT89C51的温度检测系统,鄂州大学学报,2009(2)18—20[13]乔智伟,王洪林,智能多路温度检测仪系统的设计[J],华北电力技术,1999[14]JohnT.Kemper,Temperaturesinseveralvariables:Kernelfunctions,representations,andparabolicboundaryvalues,TransactionsoftheAmericanMathematicalSociety,1972[15]AshishSyal

,

VictorLee

,

AndréIvanov

,

JosepAltet,CMOSDifferentialandAbsoluteThermalSensors,JournalofElectronicTesting,2002[16]陶孝海,51单片机的C语言编程技巧[J],计算机时代,2009(06)41—42[17]王伟,李树荣,基于8051单片机温度采集及无线发送[J],现代电子技术,2011(1):146—149[18]关健成,何碧霞,基于单片机的多点温度采集系统[J],飞机设计,2010(04):76—80[19]谭浩强,C程序设计(第2版)[M],北京:清华大学出版社,2006:67-120[20]赵悦王冬梅罗建刘小焦,基于不同温度传感器的温度检测系统,成都大学学报,2011(3):60—263[21]朱顺华,,王成春,邹逢兴,单片机控制系统的硬件抗干扰设计微计算机信息[J],2007:86-88[22]虞日跃,史洪源,RS-485总线的理论与实践[J].电子技术应用,2001:55-57[23]吴林,仲崇权,杨素英等.一种基于RS-485总线的多路温度数据采集系统设计[J],2001,20(4):11—13致谢经过这段时间的学习,毕业设计也即将结束了。在这段时间内得到了很多的帮助和支持。才让自己对自己有了一个全面的认识,使得自己得到了锻炼与提升。首先应该感谢指导老师的指导,王延年老师使得我对系统有一个整体模块脉络的认识,王老师广博的知识,敏锐的思维方式让人受益。其次还要感谢王老师给我们安排的学长,熊伟学长,在此过程中,很多细微的设计问题,还有一些不懂的不明白的地方学长都给了耐心的指导,让设计可以顺利进行,对提出的问题也都认真解答。论文中的细小问题都给与指导改正,认真的审阅检查。再次,感谢一起做设计的硬件同学,从硬件选型到设计都给了很大的帮助,在设计中给了很多支持。最后,还要感谢西安工程大学通信教研室的全体老师、同学,是他们创造了良好的工作和学习氛围,在论文工作过程中给予了极大的支持。现在,感谢所有帮助过给与支持的老师同学。祝所有毕业生同学在今后的人生道路上一帆风顺!附录系统程序#include"reg52.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedint#defineDPDRP2sbitRS=P0^6;//sbitRW=P0^7;sbitEN=P3^7;sbitST=P3^6;sbitEOC=P3^3;sbitOE=P3^4;sbitCLK=P3^5;sbitA1=P3^0;sbitB1=P3^1;sbitC1=P3^2;sbitLED_R=P0^1;sbitLED_G=P0^0;sbitbeep=P0^2;sbitS1=P0^3;sbitS2=P0^4;sbitS3=P0^5;uintTemperature;unsignedlongTEMP;ucharAD_DATA[2];voidbaojing();ucharcodeDispTab_1[]={'0','1','2','3','4','5','6','7','8','9','','-'};ucharDispBuf[6];charchar_char_1[]={"WENDUCAIJI"};charchar_char_2[]={"THANKYOU!"};charchar_char_3[]={"WELCOMETOUSE"};ucharn;voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddelay1(uintz){while(--z);}voidinit() { EA=1; IT1=1; TMOD=0x01; TH0=(65536-100)/256;TL0=(65536-100)%256; TR0=1; ET0=1; ST=0; OE=0; }voidt0(void)interrupt1using0 { TH0=(65536-100)/256;TL0=(65536-100)%256; CLK=~CLK; }voidAD(){ ST=0; A1=0; B1=0; C1=0; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[0]=P1; OE=0; ST=0; A1=1;B1=0;C1=0; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[1]=P1; OE=0; ST=0; A1=0; B1=1; C1=0; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[2]=P1; OE=0; ST=0; A1=1; B1=1; C1=0; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[3]=P1;OE=0; ST=0; A1=0; B1=0; C1=1; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[4]=P1; OE=0; ST=0; A1=1; B1=0; C1=1; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[5]=P1; OE=0; ST=0; A1=0; B1=1; C1=1; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[6]=P1; OE=0; ST=0; A1=1; B1=1; C1=1; delay1(10); ST=1; delay1(10); ST=0; while(EOC==0); OE=1; AD_DATA[7]=P1; OE=0; }voidwrite_Directive(ucharcom) { RS=0; RW=0; delay(1); EN=0; DPDR=com; delay(1); EN=1; delay(1); EN=0; delay(1); }voidwrite_Data(uchardate) { RS=1; RW=0; delay(1); EN=0; DPDR=date; delay(1); EN=1; delay(1); EN=0; delay(1); }voidLCD_init() { write_Directive(0x38); write_Directive(0x38);write_Directive(0x06); write_Directive(0x01);write_Directive(0x0c); }voidwrite_Data_String(){ uchari,j; DispBuf[0]=n; DispBuf[1]=TEMP/100; DispBuf[2]=TEMP%100/10; DispBuf[3]=TEMP%100%10; i=DispBuf[0]; DispBuf[0]=DispTab_1[i]; i=DispBuf[1]; DispBuf[1]=DispTab_1[i]; i=DispBuf[2]; DispBuf[2]=DispTab_1[i]; i=DispBuf[3]; DispBuf[3]=DispTab_1[i]; write_Directive(0x80+0x19); write_Data('I'); write_Data('N'); write_Data(DispBuf[0]); write_Data('-'); write_Data(DispBuf[1]); write_Data(DispBuf[2]); write_Data(DispBuf[3]); write_Data(0xdf); write_Data(0x43);delay(400); write_Directive(0x80+0x58); for(j=0;j<16;j++) { write_Data(char_char_1[j]); delay(20); }}/*voidwrite_Directive_xiaoguo(){ uchark; for(k=0;k<16;k++) { write_Directive(0x06); delay(400); } //write_Directive(0x50); for(k=0;k<16;k++) { write_Directive(0x06); delay(20); }}*/voidwrite_Data_String2() {ucharj; write_Directive(0x80+0x40); for(j=0;j<15;j++) { write_Data(char_char_3[j]); delay(20); } write_Directive(0x80+0x01); for(j=0;j<15;j++) { write_Data(char_char_2[j]); delay(200); } } voidmain(){ucharj; uchari=0; init(); LCD_init(); n=0; write_Data_String2(); for(j=0;j<16;j++) { write_Directive(0x1c); delay(10); } while(1) { LED_G=0; AD(); Temperature=AD_DATA[n]; TEMP=Temperature*500/255; baojing(); if(S2==0){delay(10);if(S2==0){while(!S2);delay(10);n++; if(n==8)n=7;}} if(S3==0){delay(10);if(S3==0){while(!S2);delay(10);n--;if(n==-1)n=0;}} write_Data_String(); } }voidbaojing(){if(TEMP>200) {

温馨提示

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

评论

0/150

提交评论