还剩53页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
安徽建筑大学毕业设计(论文)专业测控技术与仪器班级:二班学生姓名:胡磊学号:09210040203课题:锅炉温度控制系统设计指导老师纪明伟2013年06月14日摘要在调查对当前采暖需求情况的基础上,根据小型家用燃气锅炉的工作特点,再结合工程实际需要,研究了基于MCS-51单片机的家用燃气锅炉温度控制系统,旨在解决使用燃煤锅炉集中采暖时所遇到的锅炉温度不易控制的问题,改进家庭采暖的控制方式,提高采暖的经济性利用Protel99se软件设计电路,对智能控制器的电源电路、报警电路、时钟电路、复位电路、LCD液晶显示电路以及控制器的核心—温度采集电路进行了设计电源采用三端集成稳压器W7800W7900系列元件7805交流220v电压转换为单片机所需要的5V电压;利用AT89S51作为控制器的核心器件;利用集成电路温度传感器DS18B20测量锅炉水温;并将测量的水温与设定值比较,另外系统使用LCD液晶显示器显示当前水位、水位的上下限值、当前采集的温度值和预先设定的温度报警值当温度超过所设定的报警温度值,系统将发出报警声音,同时关闭锅炉燃烧器等待温度降到下限值,这时就可以重新锅炉燃烧器通电,继续加温,如此反复监控温度这样就可以提高能源的使用率,节约能源针对系统的特点和要求,在上述硬件电路及实现方法的基础上,利用汇编语言,设计了基于单片机的锅炉温度控制系统控制软件主要包括温度和温度采集子程序、水位控制程序、LCD液晶显示子程序等关键词单片机;温度控制;DS18B20;燃气锅炉;LCD;ABSTRACTAccordingtothemarketdemandandthecharacteristicsofdomesticheatingthispaperdevelopsMCUintelligencecontrollerfortheminorgas-firedboilerwhichisdomesticheatingequipmentonthebasisofinvestigationofheatingdemandwidely.Theresearchpurposeistochangetheinconvenienceoftemperaturecontrolbringbyusingcoalfiredboilerforcentralizedheatingtoincreaseeconomicsofheating.ThesoftwarecalledProtel99seforcircuitdesignedisusedtodevelopthehardwareofthecontroller.ThehardwareincludesthepowersupplycircuittheresetcircuittheclockcircuitthealarmcircuittheLCDdisplaycircuitandthetemperaturecollectionwhichisthecoreofthiscontroller.Thethree-pinintegrated-circuitvoltageregulatorW78007900seriescomponent7805isusedforthepowersupply.TheAtmelAT89S51chipisthecorechipofthecontroller.TheintegratedtemperaturesensorDS18B20isusedtomeasurewatertemperatureinboiler.Thekeycircuitisusedtosetthealermtemperatureandanalogwaterinorout.InadditionLCDisusedtodisplaywaterlevelboundcurrentwaterleveltemperaturealermvaluebypresuppositionandcurrenttemperature.Whenwaterlevelbeyonditsboundorwhencurrenttemperaturebeyonditsalermvaluethesystemgivesanalermandmakesboilerburneroff.Whenwatertemperatureisdownthesystemreleasesalermandmakesboilerbureneron.Thesystemdoesitagainandagain.Sothesystemcansaveenergyandimproveenergyutilizationrate.Aimatthedemandandcharacteristicofthesystemonthebasisofthesehardwareandimplementmethodusingassemblelanguagesystemdesignsboilertemperaturecontrolsystemdesignbasedonsinglechip.ThissoftwareincludestemperatureandwaterlevelmonitormainprogramtemperaturecollectionsubprogramanaloywaterinandoutsubprogramkeyboardscansubprogramLCDdisplaysubprogrametc.Keywords:MCU;Temperaturecontrol;DS18B20;Gasboiler;LiquidCrystalDisplay;目录TOC\o1-3\h\u1绪论1HYPERLINK\l_Toc
105151.1课题背景1HYPERLINK\l_Toc
198931.2课题研究的目的及意义2HYPERLINK\l_Toc
262041.3系统的总体设计思想22系统方案选择及工作原理4HYPERLINK\l_Toc
130712.1系统设计方案4HYPERLINK\l_Toc
283712.2系统结构框图5HYPERLINK\l_Toc
322732.
2.1主要器件的选择7HYPERLINK\l_Toc
258342.
2.2辅助器件选择73硬件电路设计8HYPERLINK\l_Toc
264113.1主控单片机AT89S51芯片介绍8HYPERLINK\l_Toc
135893.
1.1主要性能特点8HYPERLINK\l_Toc
314763.
1.2AT89S51管脚说明9HYPERLINK\l_Toc
227703.2单片机最小系统11HYPERLINK\l_Toc13531图
3.2最小单片机系统11HYPERLINK\l_Toc
290293.
2.1时钟电路11HYPERLINK\l_Toc
299923.
2.2复位电路12HYPERLINK\l_Toc
325553.3温度控制电路设计12HYPERLINK\l_Toc
74083.4按键电路设计13HYPERLINK\l_Toc
238463.5水位检测电路设计13HYPERLINK\l_Toc
105333.6稳压电源电路设计14HYPERLINK\l_Toc
214273.7温度传感器选择及温度采集电路16HYPERLINK\l_Toc
192303.
7.1DS18B20简介16HYPERLINK\l_Toc
224123.
7.2温度采集电路17HYPERLINK\l_Toc
47053.8输出模块17HYPERLINK\l_Toc
227723.
8.1固态继电器SSR17HYPERLINK\l_Toc
65813.
8.2报警电路设计19HYPERLINK\l_Toc
278983.
8.3液晶显示电路设计194系统软件的设计22HYPERLINK\l_Toc
107734.1系统主程序22HYPERLINK\l_Toc
55844.2子模块软件设计22HYPERLINK\l_Toc
152074.
2.1A/D转换环节子程序设计23HYPERLINK\l_Toc
311004.
2.2DS18B20温度采集子程序设计24HYPERLINK\l_Toc
245924.
2.3LCD液晶显示子程序设计25HYPERLINK\l_Toc
78844.
2.4按键子程序设计25总结27参考文献28致谢29附录一30附录二391绪论
1.1课题背景由于工业过程控制的需要,特别是在计算机技术和微电子技术的迅猛发展以及自动控制理论和设计方法发展的推动下,国内外温度控制系统的发展迅速,并在智能化,自适应、参数整定等方面,以美国、德国、日本、瑞典等国家技术领先,都生产出了一批性能优异的、商品化的温度控制器及仪表,并在各行得到广泛的应用电加热锅炉采用全新加热方式,它具有许多优点,使其比其他形式的锅炉更具有吸引力1)能量转化效率高加热元件直接与水接触,能量转换效率很高,可达95%以上2)无污染不会排放出有害气体、飞尘、灰渣,完全符合环保方面的要求3)结构简单、体积小、重量轻,占地面积小4)锅炉本体结构简单,安全性好不需要布管路,没有燃烧室、烟道,不会出现燃煤、燃油、燃气的泄漏和爆炸危险5)可采用计算机监控,完全实现自动化其温度的控制都能通过微控制芯片完成,使锅炉的运行完全实现自动化,最大程度地将控制器应用于传统的锅炉行业6)启动、停止速度快,运行负荷调节范围大,调节速度快,操作简单由于加热元件工作由外部电气开关控制,所以启停速度快由于目前人们的环保意识的提高,人们对电热锅炉越来越重视,在工业生产和民用生活用水http://wenwen.soso.com/z/Search.esp=S%E7%94%9F%E6%B4%BB%E7%94%A8%E6%B0%B4ch=w.search.yjjlinkcid=w.search.yjjlink\t_blank中应用越来越普及电热锅炉目前主要用于供暖和提供生活用水主要是控制水的温度,保证恒温供水随着计算机和信息技术的高速发展,单片机http://wenwen.soso.com/z/Search.esp=S%E5%8D%95%E7%89%87%E6%9C%BAch=w.search.yjjlinkcid=w.search.yjjlink\t_blank广泛的应用于工业控制中工业控制也越来越多的采用计算机控制,在这里我们采用51系列单片机来做控制器由于电加热锅炉是一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法很难达到很好的控制效果而这下符合PID控制使用的条件,因而PID控制被广泛地用于电热锅炉的控制中,用来代替传统的控制方法,并获得良好的控制效果
1.2课题研究的目的及意义目前市场上家用燃气锅炉大部分为进口,价格较高,售后服务也不够完善,不利于燃气锅炉的推广与使用,研制燃气锅炉的企业与公司也相对较少因此,研制开发小型家用燃气锅炉就具有客观的市场价值与现实的意义本设计将结合中、小型家用燃气锅炉的实际需要,利用MCS-51系列单片机为核心器件组成温度控制系统,采用温度采集技术,并通过运行和分析研究,以期正确认识和全面理解利用单片机实现温度采集技术在过程控制中的应用本控制器主要是针对现代工业自动化生产过程中锅炉温度控制装置而设计的,用PID控制代替传统的控制方法,以获得良好的控制效果
1.3系统的总体设计思想目前,专门用于工业控制的单片机系列产品广泛出现于世界计算机市场上,单片机以其重量轻、体积小、功耗低、功能强、价格便宜的特点,在工业控制的实践中得到越来越广泛的应用单片机不仅仅可以实现各种常规的控制,而且还可以根据被控对象的特性,充分利用控制理论的最新研究成果,采用更完善的控制方式,以获得更好的控制效果当前,由于家用锅炉处于批量生产中,并且每台锅炉需要一套完整的控制系统,根据这些特点,特别是从产品成本角度出发,以MCS-51为核心器件的控制系统是比较理想的选择此外,MCS-51系列单片机完备的控制功能、运算能力、加上完善的外部接口电路,完全可以胜任对中小型锅炉的控制系统在外围芯片选取时,尽量选取典型的、易于扩展和替换的芯片和电路,还需本着节约成本的思想选用LCD液晶显示器和基于单总线的数字温度传感器DS18B20LCD液晶显示器为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方液晶显示器功耗很低,因此倍受工程师青睐,适用于使用电池的电子设备它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面;DS18B20温度传感器采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有体积小,使用方便,耐磨耐碰,封装形式多样,适用于各种狭小空间设备数字测温和控制领域它们二者与单片机的接口比较简单,而且编程难度不大,既缩短了系统的开发周期,又保证了系统的稳定性,节约了开发成本本系统的电源采用市场上常见的W78007800系列7805电源稳压芯片,数字信号和模拟信号分别采用单独的供电回路,以避免电源的干扰利用继电器控制燃烧器和给水泵的加热和给水当锅炉内的水的实际水温超过报警温度值,系统会发出报警声音,这时接在单片机一端的继电器动作,燃烧器断电此时温度传感器实时对锅炉温度检测,当温度降到设定值的下限时,继电器重新通电燃烧器电源重新接通,锅炉继续加热如此反复监控温度这样对锅炉温度控制不仅可以节约能源,提高能源的使用率使用LCD液晶显示器显示水位的上下限值、预先设定的温度报警值和当前采集的温度值;利用温度传感器DS18B20采集测量锅炉水温此外,为防止锅炉干烧和锅炉水溢出,本系统对锅炉的水位进行实时监控,避免造成能源浪费以及水溢出引起的锅炉爆炸等严重后果2系统方案选择及工作原理实现本系统设计要求的方案有多种,以下介绍两种控制方法1用PLC为控制器,热电阻/热电偶作为测温器件,实现闭环控制2用单片机结合温度传感器和加热执行机构对温度进行控制,键盘修改温度参数、显示每一种方案都有其各自的优点本章详细列举、说明了两种不同的设计方案的优缺点进行对比,选出了最佳控制方案
2.1系统设计方案方案一采用PLC为控制器此方案用PLC作为主要控制器的核心,利用热电偶作为测温器件,然后通过一个变送器将温度转换成电压信号,送入到A/D转换器进行模拟到数字量的转换,转换结果转送入PLC,由PLC根据给定值与测量值的大小作比较得到一个偏差,再由D/A将偏差数字量转换成模拟量来调节加热丝的工作时间或者通过调节不同电压来调节加热丝的加热功率,最终达到锅炉恒温控制的目的系统原理框图如下图
2.1所示实际温度图
2.1方案一的原理框图方案二采用51单片机为主控芯片采用AT89S51单片机、温度传感器DS18B
20、7805电源稳压芯片、液晶显示器LCD1602等核心部件该方案采用液晶显示器来显示当前采集的温度值、当前水位、水位的上下限值、预先设定的温度报警值,接口简单、直观而且编程强度不大用不锈钢管制作成的装置放于水位上下限这样就可以缩短系统的开发周期,减少系统成本开销另外,温度传感器DS18B20的温度测量范围、响应时间、稳定性、精度都要比热敏电阻好当系统采集到温度信号后与设定温度进行比较得到一个偏差,然后通过PID运算,从单片机P
1.0输出一个PWM波形来控制固态继电器的导通与关闭,从而控制锅炉的加热丝在一个固定周期中通电加热时间的长短来达到恒温控制的目的从组成结构上来看,以PLC为控制器的方案安装接线比较繁琐,而实际显示需要单独的显示屏,调节温度时不太方便,若要改变给定值,需要添加专门的输入模块或者需要重新下载控制程序而51单片机控制系统,整个控制系统可以规划到一块PCB电路板上,从而安装起来更加方便,而且其功能比较齐全,显示模块简单,调节温度可通过键盘来设置,使用很方便从成本上来看以PLC为控制器的方案比较昂贵,51单片机控制系统更加经济考虑到用户的心里接受倾向,51单片机控制系统更有市场推广价值通过以上分析和比较从而得出锅炉温度控制系统采用单片机作为控制器的系统比PLC控制系统成本更低,使用更加方便快捷基于上述原因,最终确定采用方案
2.2系统结构框图锅炉温度控制系统的主控部分由单片机构成通过按键电路进行温度报警值的设定,并对锅炉的水温进行采集及处理,然后与报警值重新启动进行加热处理以此重复对锅炉温度控制同时为结合实际需要,本系统亦比较,当温度值大于温度上限值报警值时就报警,停止加热当温度少于温度下限值时,对锅炉水位进行控制液晶显示,显示水位上限值,水位下限值以及温度报警值和实际温度值图
2.2所示是其系统结构框图在工业生产中,锅炉是一种重要的动力系统其中锅炉的温度过程控制,又是一个重要环节本系统过程控制系统主要应用于燃气锅炉的水温控制系统在燃气锅炉里面,天然气液化石油气作为燃料,锅炉中的水作为加热对象温度传感器的输出信号经调理电路处理后作为单片机系统的输入信号本系统要采样的是锅炉的水温和锅炉的水位控制信号图
2.2系统的原理框图温度控制系统的控制信号通过继电器控制燃烧器内进出气,由三个进气阀实现控制燃烧器的作用是:继电器接通燃烧器电源后,燃烧器通过其内部的光电检测管检测锅炉内有无火光,若有火光则表示点火成功,不需启动点火变压器,否则启动点火变压器进行点火,同时电磁阀打开进气,这时光电管检测到火焰,关闭点火变压器,系统点火成功该中小型燃气锅炉所需要温度的热水是根据用户需要调节的控制系统根据温度传感器检测到的温度与温度设定值比较,给出控制信号.若实际温度大于报警值时,单片机实行对继电器的电源关断,这时燃烧器断电,锅炉不进行加热处理温度传感器一直检测锅炉内部的水温当温度传感器检测的温度小于用户设定值的时候,单片机根据温度的比较信号,重新对继电器进行通电,锅炉重新加热
2.
2.1主要器件的选择
1.选用Atmel公司单片机AT89S
512.固态继电器SSR
3.选用Dallas半导体公司温度传感器DS18B
204.液晶显示器LCD
16025.蜂鸣器
6.三端稳压器
78052.
2.2辅助器件选择
1.奥林燃烧器 型号:GP-300T 功率kg:700-4000伺服马达型号:SQM火焰探测器型号:QRA-2 重量kg:320 燃烧器控制:外置
2.CHL系列立式不锈钢多级泵流 量最大22m3/h环境温度最高+160℃液体温度-50℃~120℃工作电压220V/380V工作压力
1.6MPa/
2.5MPa
3.不锈钢管3硬件电路设计
3.1主控单片机AT89S51芯片介绍AT89S51是一个低功耗,高性能CMOShttp://baike.baidu.com/view/
22318.htm\t_blank8位单片机http://baike.baidu.com/view/
1012.htm\t_blank,片内含4kBytesISPhttp://baike.baidu.com/view/
855.htm\t_blankIn-systemprogrammable的可反复擦写1000次的Flashhttp://baike.baidu.com/view/
7641.htm\t_blank只读程序存储器,器件采用ATMEL公司http://baike.baidu.com/view/
110906.htm\t_blank的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元http://baike.baidu.com/view/
1223079.htm\t_blank,AT89S51在众多嵌入式控制应用系统中得到广泛应用AT89S51单片机引脚图如图
3.1所示图
3.1AT89S51引脚图
3.
1.1主要性能特点1AT89S51主要功能如下
1.为一般控制应用的8位单芯片
2.内部程式存储器(ROM为4KB)
2.内部数据存储器(RAM为128B)
4.晶片内部具有时钟振荡器(传统最高工作频率可至12MHz)
5.32条双向输入输出线,且每条均可以单独做I/O的控制
6.2组独立的16位定时器
7.5个中断向量源
8.单芯片提供位逻辑运算指令
3.
1.2AT89S51管脚说明VCC供电电压GND接地P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流当P1口的管脚第一次写1时,被定义为高阻http://baike.baidu.com/view/
1410710.htm\t_blank输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故在FLASH编程和校验时,P1口作为第八位地址接收P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入并因此作为输入时,P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容P2口在FLASH编程和校验时接收高八位地址信号和控制信号P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流当P3口写入“1”后,它们被内部上拉为高电平,并用作输入作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故P3口除了作为普通I/O口,还有第二功能P
3.0/RXD(串行输入口)P
3.1/TXD(串行输出口)P
3.2/INT0(外部中断0)P
3.3/INT1(外部中断1)P
3.4/T0(记时器0外部输入)P
3.5/T1(记时器1外部输入)P
3.6/WR(外部数据存储器写选通)P
3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线89C51的P
0、P
1、P
2、P3口作为输入时都是准双向口除了P1口外P
0、P
2、P3口都还有其他的功能RST复位输入当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节在FLASH编程期间,此引脚用于输入编程脉冲在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲如想禁止ALE的输出可在SFR8EH地址上置0此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用另外,该引脚被略微拉高如果微处理器在外部执行状态ALE禁止,置位无效PSEN外部程序存储器的选通信号在由外部程序存储器取指期间,每个机器周期两次/PSEN有效在访问外部数据存储器时,这两次有效的/PSEN信号将不出现EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)XTAL1反向振荡放大器的输入及内部时钟工作电路的输入XTAL2来自反向振荡器的输出
3.2单片机最小系统单片机最小系统指的是由最基本的电路元件组成的,外接部分简单的电路就能独立成一定的工作任务的单片机系统51单片机的最小系统由单片机芯片、电源、时钟电路、和复位电路组成,如图
3.2所示图
3.2最小单片机系统
3.
2.1时钟电路AT89S51的时钟可由内部产生也可以由外部产生在这个设计中只是用了内部产生利用芯片内部振荡电路,在XTAL1,XTAL2(18,19脚)的引脚上外接定时元件,内部振荡器便能产生自激振荡,用示波器便可观察到XTAL2输出的正弦波,定时元件可以采用石英晶体和电容组成的并联谐振电路,它与单片机的接法的如图3-2所示晶体可以在
1.2MHz~12MHz之间所选,电容可以在20~60pF之间所选,通常选择33pF左右,电容C6,C7的大小对振荡频率有微小的影响,可起频率微调作用在设计印制板时,晶体和电容应尽可能与单片机芯片靠近,以减少寄生电容,保证振荡器可靠工作,一般采用瓷片电容
3.
2.2复位电路单片机上电后,在其9脚(RESET)出现24个振荡周期以上的高电平后,单片机内部初始复位为了确保单片机正常复位,必需使其第9脚上出现的高电平保持2μs以上复位电路与单片机接法如图
3.2所示系统的复位电路是由RC电路组成,外加一个手动复位按钮刚上电时或者触动按钮后C5两端的电压为0,这时RST为高电平,而其高电平保持时间是由R和C的时间常数决定,由公式3-1可知,C充电的时间常数τ等于
0.082ms,远远大于2μs,即使RST高电平的时间保持2μs以上,确保了单片机正常复位τ=R*C3-
13.3温度控制电路设计本系统采用继电器进行对燃烧器工作方式控制,从而锅炉控制温度当P口输出高电平时,经反相驱动器7406变为低电平,使发光二极管发光,从而使光敏三极管导通,进而使Q3导通,因而继电器的线圈通电接通锅炉燃烧器本部分电路与单片机的接口如图
3.3所示
1.当P
1.7输出低电平时,燃烧器断电,不进行加热处理
2.当P
1.7输出高电平时,燃烧器通电,进行加热处理图
3.3温度控制电路
3.4按键电路设计为符合本系统的实际要求,进入系统之前首先对温度报警值的设置本系统有三个按键分别为K1K2K
3.如图
3.4所示1K1设置锅炉温度报警值的温度值增加按键K1每按下一次,温度报警值显示比上一次值增加一度2K2设置锅炉温度报警值的温度值减少按键K2每按下一次,温度报警值显示比上一次值减少一度3K3温度报警值确定值图
3.4按键电路设计
3.5水位检测电路设计锅炉在正常加温工作情况下,同时对锅炉液位检测当锅炉的水位满足条件时开始工作本系统设计利用普通水的导电性质,采用不绣钢管作为测量液位的器件,放于锅炉上下限的金属棒是否正在导电的情况判断锅炉的水位是不是在上下限范围之间,单片机通过采集的水位变化的信号,发出对给水泵控制的命令,控制锅炉内水位符合条件如图
3.5水位检测电路所示,金属棒1放于水位上限位置,金属棒2放于水位下限位置,金属棒3放于水位以下比较远点的位置其中金属棒1和金属棒2用限流电阻分别与单片机相连接,金属棒3接+5v的电源单片机不断的检测单片机端口p
1.2和p
1.3的电平情况图
3.5水位检测电路1当P
1.2=高电平和P
1.3=高电平时,即实际水位在水位上限以上的位置,这时系统发出报警命令系统停止工作2当P
1.2=低电平和P
1.3=低电平时,即实际水位在下限以下的位置,这时系统控制给水泵工作,锅炉开始加水,并报警3当P
1.2=高电平和P
1.3=低电平时,即实际水位在水位上限和水位下限之间的位置,单片机不进行处理,即保持给水泵的状态不变
3.6稳压电源电路设计集成稳压电源又称三端集成稳压器,它是指将功率调整管、取样电阻、基准电压、误差放大、启动及保护电路等全部集成在一块芯片上,具有特定输出电压的稳压集成电路三端是指电压输入端、电压输出端和公共接地端三端IC稳压器按性能与用途可分为固定输出正稳压器、固定输出负稳压器、可调输出正稳压器、可调输出负稳压器4类这类稳压器的输出为固定电压国内外厂家均将此系列稳压器命名为78××系列,如
7805、7812等其中“78”后面的数字代表该稳压器输出的正电压数值,以伏特为单位例如7805即表示稳压输出为5V,7812表示稳压输出为12V等有时会发现型号78××前面和后面还有一个或几个英文字母,如W78××、AN78××、L78××CV等前面的字母称“前缀”,一般是各生产厂(公司)的代号;后面的字母称“后缀”用以表示输出电压容差和封装外壳的类型78××系列稳压器按输出电压共分为9种分别为
7805、
7806、
7809、
7810、
7812、
7815、
7818、7824按其最大输出电流又可分为78L××、78M××和78××3个分系列78L××系列最大输出电流为100mA,78M××系列最大输出电流为500mA,78××系列最大输出电流为
1.5A由于单片机工作电压为+5V,在此选用7805图
3.6三端集成稳压器图
3.6所示为三端集成稳压器7805,78系列三端稳压器是最长见的集成稳压器件具有过热,过流,调整管安全工作区保护功能性能优良,可靠性高同时又由于器件只有三个引脚,所以使用简单方便,价格低廉,应用广泛图
3.7稳压电源电路稳压电源电路如图
3.7所示,从J1输入9~12V的直流电,打上开关,经C1和C2滤波后,加到7805稳压块的输入端,再从其输出端输出稳定的+5V的电压因为在本设计中,电路中均采用低功耗的器件,所以稳压块并不需要加散热片此外,由电阻R2和发光二极管D4组成电源指示电路具有上电指示作用
3.7温度传感器选择及温度采集电路
3.
7.1DS18B20简介Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念图
3.8DS18B20引脚排列图DS18B20可以程序设定9-12位的分辨率,精度为
0.5摄氏度分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存如图
3.8所示DS18B20引脚排列图ADS18B20特性
1.简单的多点分布应用
2.独特的单线接口仅需一个端口引脚进行通讯
3.无需外部器件
4.无需外部应用
5.零待机功耗
6.可通过数据线供电
7.测温范围-55~+125℃,以
0.5℃递增
8.温度数字量转换时间200ms(典型值)
9.温度以8位数字量读出
10.报警搜索命令识别并标志超过程序限定温度的器件
11.用户可定义的非易失性温度报警设置
12.应用包括温度控制,工业系统,消费品,温度计或任何热感测系统BDS18B20管脚功能
1.GND接地
2.DQ数据输入/输出脚
3.VDD接V5电源
3.
7.2温度采集电路温度采集电路只有一个DS18B20温度传感器,它与单片机的接口比较简单,如图
3.9所示只要给传感器5V的供电并把它的单总线接到单片机的P口就可以了图
3.9温度采集电路
3.8输出模块本控制系统的输出单元主要有三个1继电器输出控制加热执行机构和水位控制机构的开与关2当水温、水位高于上限和低于下限时,系统进行报警3液晶显示水位的上下限值、当前水位、预先设定的温度报警值和当前采集的温度值
3.
8.1固态继电器SSR由于本系统加热执行机构的开与关状态交替比较频繁,一般的机械式继电器在这种工作模式下使用寿命大大降低,所以难以满足这一要求,在此应该选用固态继电器SSR,如图
3.10所示为固态继电器SSR,它是由微电子电路,分立电子器件,电力电子功率器件组成的无触点开关用隔离器件实现了控制端与负载端的隔离固态继电器的输入端用微小的控制信号http://baike.baidu.com/view/
54338.htm\t_blank,达到直接驱动大电流http://baike.baidu.com/view/
10897.htm\t_blank负载图
3.10固态继电器SSR其作用有固态继电器是具有隔离功能的无触点电子开关,在开关过程中无机械接触部件,因此固态继电器除具有与电磁继电器一样的功能外,还具有逻辑电路兼容,耐振耐机械冲击,安装位置无限制,具有良好的防潮防霉防腐蚀性能,在防爆和防止臭氧污染方面的性能也极佳,输入功率小,灵敏度高,控制功率小,电磁兼容性好,噪声低和工作频率高等特点目前已广泛应用于计算机外围接口设备,调温、调速、调光、电机控制、电炉加温控制、电力石化、医疗器械、金融设备、煤炭、仪器仪表、交通信号等领域其优点是
(1)高寿命,高可靠固态继电器没有机械零部件,有固体器件完成触点功能,由于没有运动的零部件,因此能在高冲击,振动的环境下工作,由于组成固态继电器的元器件的固有特性,决定了固态继电器的寿命长,可靠性高
(2)灵敏度高,控制功率小,电磁兼容性好固态继电器的输入电压范围较宽,驱动功率低,可与大多数逻辑集成电路兼容不需加缓冲器或驱动器
(3)快速转换固态继电器因为采用固体器件,所以切换速度可从几毫秒至几微妙
(4)电磁干扰小固态继电器没有输入“线圈”,没有触点燃弧和回跳,因而减少了电磁干扰大多数交流输出固态继电器是一个零电压开关,在零电压处导通,零电流处关断,减少了电流波形的突然中断,从而减少了开关瞬态效应固态继电器注意事项
(1)在PCB上使用固态继电器时,焊接时应在温度小于250℃
(2)被控负载在接通瞬间会产生很大的浪涌电流http://baike.baidu.com/view/
1520624.htm\t_blank,所以用户在选用继电器时应对被控负载的浪涌特性进行分析然后再选择继电器
(3)在继电器使用时,因过流和负载短路会造成SSR固态继电器内部输出可控硅永久损坏应该考虑过流、过压保护措施
3.
8.2报警电路设计本系统采用蜂鸣器进行报警并用两个LED指示灯表示工作状态,红灯亮绿灯灭表示报警;红灯灭绿灯亮表示正常工作该部分电路与单片机的接口如图
3.11所示图
3.11报警电路电路由限流电阻R
1、三极管Q
1、两个二极管和蜂鸣器组成这个电路并不是一般的放大电路,三极管不是工作在放大状态,而是工作在饱和状态和截止状态当基极为低电平时,晶体管处于饱和状态,饱和电压为UCES=
0.3V,此时,蜂鸣器鸣叫当基极为高电平时,晶体管截止,相当于开路,输出为高电平,蜂鸣器停止鸣叫
3.
8.3液晶显示电路设计图
3.12为LCD1602引脚分配图其引脚说明见表
3.
13.12LCD1602引脚图表
3.1LCD1602引脚说明引脚号符号引脚说明1VSS地电源2VDD接5V正电源3VLVL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度4RSRS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存5R/WR/W为读写信号线,高电平时进行读操作,低电平时进行写操作当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据6E读操作时,高电平有效;写操作时,下降沿有效;7~14D7~D148位双向数据线15BLA背光源正极16BLK背光源负极LCD1602是具有4位/8位并口可选接口方式的液晶显示模块,它能同时显示两行字符,每行有16个字符字符以5*7点阵形式显示其字符中共有160种字符人选指令有11条(清屏、返回、输入方式设置、显示开关控制、移位、功能设置、CGRAM地址设置、DDRAM地址设置、读忙信号及地址高数器、写数据、读数据),内部有80字节的RAM,8位数据接口,另外三根控制总线用于完成对写和读数据或指令时序控制由该模块构成的液晶显示方案与LED点阵液晶显示模块相比,1602是字符型液晶,显示字母和数字比较方便,控制简单,成本较低,不论硬件电路结构或显示程序都要简洁得多本系统采用LCD1602作为显示模块,它可以方便的和单片机接口,其主要功能是显示水位的上下限值、当前水位、预先设定的温度报警值和当前采集的温度值其中VDD接5V电源用于显示LCD液晶显示芯片的工作VL串接阻值
1.8K欧姆为了调节LCD液晶显示芯片字符的亮度,当阻值越大时,LCD液晶显示越模糊用滑动变阻器能更好的调节LCD液晶字符显示的亮度,合适于锅炉的水位于水温的观察BL+接5V电源是调节显示显示LCD液晶显示芯片是显示背光的亮度LCD液晶显示电路如图
3.13所示图
3.13LCD液晶显示电路4系统软件的设计
4.1系统主程序锅炉温度控制系统的单片机程序设计主流程图如图
4.1所示本系统进入执行时先对锅炉水位进行与设定的水位上下限进行判断,然后按条件不同处理结果当锅炉水位满足条件的时候再对锅炉的水温采样监控,并进行相应的处理NNYYYNYY图
4.1软件主流程图
4.2子模块软件设计系统的子模块软件包括A/D转换模块、按键检测与处理模块、LCD液晶显示模块、加热执行模块和PID控制算法模块,具体结构如下图所示图4-2程序结构图
4.
2.1A/D转换环节子程序设计NY图
4.3A/D转换程序操作流程图
4.
2.2DS18B20温度采集子程序设计DS18B20有严格的协议来确保其数据的完整性协议包括几种单线信号类型复位脉冲,存在脉冲,写
0、写
1、读
0、读1所有这些信号类型除存在脉冲外,其它的信号均由总线主机产生开始与SD18B20进行任何通信都要对其进行初始化,在接收到复位脉冲后,再对SD18B20进行正确的ROM命令和存贮器操作命令在总线主机初始化过程,主机通过拉高单总线,以产生复位脉冲接着,在主机释放总线,并进入接收模式当总线被释放后,上拉电阻将总线拉高在单总线器件检测到上升沿后,接着产生延时,接着通过拉低总线,以产生存在脉冲DS18B20温度采集子程序流程图如图
4.4所示YN图
4.4DS18B20温度采集子程序流程
4.
2.3LCD液晶显示子程序设计本系统采用是16*2的LCD1602,单片机对其初始化,然后将需要显示的字符在LCD存储的地址和要求在LCD显示的地址送出,再检测LCD是否处在忙碌不能接收命令或数据的状态,检测到LCD空闲时就可以写数据显示了LCD液晶显示子流程图如图
4.5所示,具体实现过程请查阅附录LCD液晶显示子程序YN图
4.5LCD液晶显示子流程图
4.
2.4按键子程序设计NYNY图
4.6按键检测与处理流程图总结本文课题可以采用二种设计方案一种是用单片机设计的温度控制系统第二种是用工业控制计算机来实现对锅炉进行恒温控制在通过对二种方案进行对比之后,我选择用单片机设计的温度系统因为用单片机来实现锅炉的温度控制有以下几点优点
(1)控制电路简单易懂;
(2)智能化设计,能够对温度进行较准确地控制;
(3)附加其它功能简单、方便;
(4)经济本设计通过单片机的控制,实现了锅炉温度控制的基本功能,利用继电器控制燃烧器的工作,并且对锅炉水位进行控制,并通过显示屏显示出水温水位的状态信息,确保了能够在正常范围下工作系统中以AT89S51芯片作为控制芯片,采用一线总线的温度传感器DS18B20,用LCD1602液晶显示模块显示水温水位的状态信息,这些都得使硬件电路变得简单,性能得到提高而且有蜂鸣器进行报警,使得本设计在应用上更加安全本文设计的锅炉温度控制系统可以实现如下功能
(1)利用功能按键分别实现对温度的设定,包括设定满足工艺要求的特定温度值、锅炉正常工作所能承受的最高和最低温度值等;
(2)利用LCD1602液晶显示当前锅炉内温度、水位上下限和所设定的上下限温度;
(3)当锅炉内实际温度达到所设定的下限值时,系统会进行报警,并启动固态继电器,对锅炉内进行加热当锅炉内实际温度达到所设定的上限值时,系统也会进行报警
(4)系统采用PID控制算法,能非常准确地对锅炉内的温度进行实时控制,而且控制的精度很高;由于水平有限,而且时间比较紧迫,所以在设计锅炉温度控制系统时难免会有很多漏洞和不足之处,同时也有部分功能模块不够完善参考文献
[1]胡汉才编著单片机原理及系统设计[M]北京清华大学出版社,2001
[2]锅炉的单片机控制系统[D]张向丰山东大学硕士论文,2006
[3]陈杰,黄鸿.传感器与检测技术[M].北京高等教育出版社.
[4]高才苹.新型供热锅炉手册[M].上海:上海交通大学出版社,
2002.
[5]何立民.单片机应用技术选编[M].北京:北京航空航大大学出版社,
2000.
[6]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,
1996.
[7]蔡美琴等,MCS-51系列单片机系统及其应用,机械工业出版社,1994
[8]王琦新型PID恒温控制器的研制[D]哈尔滨工业大学硕士论文,2006
[9]刘震远程温度测控系统研究[D]国防科技大学硕士论文,2002
[10]曾屹.单片机原理与应用中南大学出版社,2010[11彭为.单片机典型系统设计实例精讲[M].北京电子工业出版社,2001
[12]何立民.单片机应用系统设计[M].北京航空航天大学出版社,1996
[13]康华光.电子技术基础(数字部分),2006
[14]LjungLSystemIdentificationUsersGuideMadiWorksInc[M].1997
[15]MotorolaMicrocontrollerSetectroGuide.Quarter[M].20014:146-
157.致谢此次毕业设计论文的题目是锅炉温度控制系统的设计,在纪明伟老师的耐心指导下和自己通过在网上和图书馆的认真查阅资料和撰写开题报告不断探索的过程,我顺利地完成了此毕业设计,更重要的是经过这一个学习探索的过程,我对单片机和其自动控制系统有了更进一步的了解和掌握回顾四年的学习,我对本专业知识有了一定的了解和认识,在这里我要感谢曾经教育过我、传授知识给我的各位辛勤奉献的老师,因为是他们的泪水和付出才有我知识的积累而特别要感谢的是我的指导老师纪明伟老师,正是在他的耐心指导和鼓励下,我才得以完成此次设计,在整个过程中,当我遇到了任何困难时,都是在纪老师的指导下加之自己的努力下,终于得到了较好的解决不仅如此,纪老师耐心的工作态度和真诚的待人风格给我留下了非常深刻的印象,对我以后的工件和生活将影响深远与此同时要感谢我的父母,是他们的不懈辛劳才换回一个让我安心学习、快乐生活的的美好环境还有我要感谢在此次设计过程中给我建议和指导的同学,正是我们各抒己见的讨论,使我的论文进度有了提高时光荏苒,岁月如梭大学四年的本科学习,成本与效益是如此的不成比例,令人汗颜求学之艰,现在终于能告一段落,心生诸多感触,冷暖甜苦自知,但也颇感欣慰附录一总程序TEMP_ZHDATA24H;实时温度值存放单元TEMPLDATA25H;温度存放低八位TEMPHDATA26H;温度存放高八位TEMPHCDATA29H;存放百位数和十位数BCDTEMPLCDATA2AH;存放个位数和小数BCDBOILER_SWEQUP
1.2;给水泵开关WATER_SW_HEQUP
1.7;燃烧器开关K1EQUP24;报警温度值温度增加K2EQUP
2.5;报警温度值减少K3EQUP
2.6;设定报警温度确定键GREENEQUP
1.0;绿灯为正常工作指示灯REDEQUP
1.1;红灯为报警指示灯TEMP_ALEQU21H;温度报警值存放单元TEMP_AL1EQU31H;存放报警温度值的个位TEMP_AL2EQU32H;存放报警温度值的十位WATER_AL1EQU33H;当前水位的个位数存放单元WATER_AL2EQU34H;当前水位的十位数存放单元WATER_LEVELEQU22H;当前水位存放单元WATEREQU28H;当前水位存放单元SPKEQUP
3.7;蜂鸣器引脚定义LCD_XEQU2FH;LCD地址变量LCD_RSEQUP
2.0;数据/指令寄存器选择输入端LCD_RWEQUP
2.1;读写控制输入端LCD_ENEQUP
2.2;使能信号输入端flag1equ2FH.7;DS18B20是否存在标记flagequ2FH.6;报警标记date_line1equp
3.3;通道1DS18B20数据口=====================================================ORG0000HJMPMAIN;跳到主程序入口MAIN:MOVSP#60H;设置堆栈MOVA#00HMOVR0#20H;将20H-2FH单元清零MOVR1#10HCLEAR:MOV@R0AINCR0DJNZR1CLEARMOVWATER#50MOVTEMP_AL#23CALLSET_LCD;对LCD做初始化设置及测试并写自定义数据入CGRAMCALLTEMP_SET;显示设定温度报警值的信息MOVA#0C9H;设定温度摄示度标记的显示位置CALLTEMP_BJ;显示温度摄示度的标记LCALLDIS_TEMP;显示初始化的报警温度MAIN1:MOV20H#0LCALLKEY;调用按键扫描程序JNB20H.0DEC_TEMPADD_TEMP:INCTEMP_AL;报警湿度值加1LCALLDIS_TEMP;显示改变后的报警温度AJMPMAIN1DEC_TEMP:JNB20H.1CONFIRMDECTEMP_AL;报警湿度值减1LCALLDIS_TEMP;显示改变后的报警温度AJMPMAIN1CONFIRM:JNB20H.2MAIN1;如果没按任何键就返回MAIN1继续扫描;SETBSPK;LCALLDIS_TEMP1CALLMENU_OK1;LCD显示温度采集和水位控制信息LCALLDIS_TEMP1;显示已设定的温度报警值MOVA#0CEH;当前温度摄示度标记的显示位置CALLTEMP_BJ;显示当前温度摄示度的标记;SETBSPKSETBRED;CLRGREENLJMPSTART==================================================DIS_TEMP:MOVATEMP_AL;显示改变后的报警温度MOVB#10DIVABMOVTEMP_AL2A;保存温度报警值的十位数MOVLCD_X#7;设置位置CALLSHOW_DIG2;显示报警温度值的十位INCLCD_XMOVATEMP_ALMOVB#10DIVABMOVAB;个位MOVTEMP_AL1A;保存温度报警值的个位数CALLSHOW_DIG2;显示报警温度值的个位RET==================================================DIS_WATER:MOVAWATER;显示当前水位的值MOVB#10DIVABMOVWATER_AL2A;保存温度报警值的十位数MOVLCD_X#7;设置位置CALLSHOW_DIG1;显示报警温度值的十位INCLCD_XMOVAWATERMOVB#10DIVABMOVAB;个位MOVWATER_AL1A;保存温度报警值的个位数CALLSHOW_DIG1;显示报警温度值的个位RET==================================================DIS_TEMP1:MOVATEMP_AL;显示已设定的温度报警值MOVB#10DIVABMOVTEMP_AL2A;保存温度报警值的十位数MOVLCD_X#3;设置位置CALLSHOW_DIG2;显示报警温度值的十位INCLCD_XMOVATEMP_ALMOVB#10DIVABMOVAB;个位MOVTEMP_AL1A;保存温度报警值的个位数CALLSHOW_DIG2;显示报警温度值的个位RET==================================================START:CALLRE_18B20_1;检测通道1的DS18B20是否存在并设置12位精确度CALLRESET1;18B20复位子程序检测18B20是否存在JNBFLAG1START11;如果DS1820不存在则跳START11CALLMENU_OK1;如果存在则显示OKMOVA#0CEHCALLTEMP_BJ;显示温度摄示度的标记JMPSTART21START11:CALLMENU_ERROR1;如果不存在则显示ERRORMOVA#0CBHCALLTEMP_BJ;显示温度摄示度的标记JMPSTARTSTART21:;检查到有温度传感器后的处理CALLRESET1;18B20复位子程序再次检测18B20是否存在JNBFLAG1START11;DS1820不存在则转到START11报错MOVA#0CCH;跳过ROM匹配CALLWRITE1MOVA#44H;发出温度转换命令CALLWRITE1CALLRESET1MOVA#0CCH;跳过ROM匹配CALLWRITE1MOVA#0BEH;发出读温度命令CALLWRITE1CALLREAD1;读出温度值到TEMPH、TEMPLLJMPM1;跳到温度处理、显示程序M1:CAllCONVTEMP;处理温度BCD码子程序并将处理结果存放到TEMPHC、TEMPLCCAllDISPBCD;显示区BCD码温度值刷新子程序即把BCD转为十六进制6FH-73H;其中70H存放小数点6FH存放十分位数71H存放个位数72H存放十位数73H存入百位数MOVA72H;跳过
85.0摄氏度CJNEA#8DISPLAYMOVA71HCJNEA#5DISPLAYMOVA6FHCJNEA#0DISPLAYLJMPSTARTDISPLAY:CALLDELAY2CALLCONV;将采集到的温度在LCD1602显示出来;LCALLDIS_TEMP1;显示已设定的温度报警值MOVA#0C5HCALLTEMP_BJ;显示报警温度摄示度的标记LCALLDIS_WATER;显示当前水位的值MOV20H#0LCALLKEY;调用按键扫描程序JNB20H.0DEC_WATERADD_WATER:INCWATERLCALLDIS_WATER;显示当前水位的值AJMPCOMPARE1;当前水位与水位上限值80比较DEC_WATER:JNB20H.1COMPARE1;当前水位与水位上限值80比较DECWATER;水位减1LCALLDIS_WATER;显示当前水位的值COMPARE1:CLRC;当前水位与水位上限值80比较MOVAWATER_AL2;取得当前水位的十位数CJNEA#8NEXT11;十位数比较AJMPLOOP1;如果十位数相等则转去比较个位数NEXT11:JCCOMPARE2;如果十位数小于8转去比较下限值CLRSPK;如果十位数大于8就报警SETBWATER-SW-H;关闭给水泵CLRREDSETBGREENAJMPCOMPARE3;转去当前温度与设定的报警温度比较LOOP1:CLRCMOVAWATER_AL1;取得当前水位的个位数JZCOMPARE3;如果个位数等于0去比较温度SETBflag;报警标记置位CLRSPK;如果个位数大于0就报警SETBGREENCLRREDSETBWATER-SW-H;当前水位高于上限值关闭给水泵开关AJMPCOMPARE3COMPARE2:CLRC;当前水位与下限比较MOVAWATER_AL2;取得当前水位的十位数CJNEA#2NEXT12;个数比较AJMPCOMPARE3;如果十位数等于2则表明水位大于或等于20就转去比较温度NEXT12:JNCCOMPARE3;十位数大于2就转去当前温度与设定的报警温度比较SETBflag;报警标记置位CLRSPK;如果十位数小于2就报警CLRWATER_SW_H;如果当前水位低于下限值就打开给水泵开关CLRBOILER_SW;当前温度超过温度报警值关闭锅炉燃烧器开关,停止加热CLRREDSETBGREENAJMPCOMPARE3;转去当前温度与设定的报警温度比较COMPARE3:CLRC;当前温度与设定的报警温度比较MOVA72HCJNEATEMP_AL2NEXT1;实际温度值与报警温度值的十位数比较AJMPNEXT;十位数相等时就转去比较个位数NEXT1:JCSTART0;实际温度值的十位数少时则转START0;SETBflag;报警标记置位CLRSPK;实际温度值的十位数高于报警温度值的十位数就报警SETBBOILER_SW;当前温度超过温度报警值关闭锅炉燃烧器开关,停止加热SETBREDCLRGREENCLRBOILER_SW;打开锅炉燃烧器开关继续加热LJMPSTART;比较完毕重新采集温度和水位NEXT:CLRCMOVA71HCJNEATEMP_AL1NEXT2;实际温度值与报警温度值的个位数比较AJMPNEXT0;个位数相等时就转去比较十分位数NEXT2:JCSTART0;实际温度值的个位数少时则转START0;SETBflag;报警标记置位CLRSPK;十位数相等时实际温度值的个位数高于报警温度值的个位数就报警SETBBOILER_SW;如果当前温度超过温度报警值时就关闭锅炉燃烧器开关,停止加热CLRREDSETBGREENLJMPSTART;比较完毕重新采集温度和水位NEXT0:MOVA6FHJZSTART0;实际温度值的十分位数等于0时则转START0;SETBflag;报警标记置位CLRSPK;十位数和个位数相等时实际温度值的十分位数大于0就报警SETBBOILER_SW;如果当前温度超过温度报警值时就关闭锅炉燃烧器开关,停止加热CLRREDSETBGREENLJMPSTART;比较完毕重新采集温度和水位START0:JBflagLOOP4;如果水位出现报警但温度没有出现报警时就继续采集温度和水位SETBSPK;如果水位和温度都没有出现报警时就使绿灯亮,然后继续采集温度和水位SETBREDCLRGREENLOOP4:LJMPSTART附录二AnOverviewofAT89S
511.AboutSCMItcanbesaidacrossthetwentiethcenturythethreeelectricerathatiselectricaleratheelectronicageandhasnowenteredthecomputerage.HoweversuchacomputerusuallyreferstothepersonalcomputerreferredtoasPC.Itconsistsofthehostkeyboardmonitoretc..Anothertypeofcomputermostpeopledonotknowhow.Thiscomputeristosmarttogiveavarietyofmechanicalmicrocontrolleralsoknownasmicro-controller.AsthenamesuggeststhiscomputersystemonlyusedthesmallestoneICyoucanperformsimpleoperationsandcontrol.BecauseofitssmallsizeusuallyhiddeninachargedmechanicalstomachLane.Itistheentiredevicelikethehumanbrainplaysaroleitgoeswrongthewholedevicewasparalyzed.NowthisMCUhasaverywidefieldofusesuchassmartmetersreal-timeindustrialcontrolcommunicationsequipmentnavigationsystemshomeappliancesandsoon.Oncethemicrocontrollerwereusingavarietyofproductsyoucanservetoupgradetheeffectivenessoftheproductoftenintheproductnameisprecededbytheadjective-smartsuchaswashingmachinesandsointelligent.Atpresentsometechnicalpersonneloffactoriesorotheramateurelectronicsdeveloperstoengageinoutofcertainproductsnotthecircuitistoocomplexthatisfunctionsaretoosimpleandeasytobecopied.Thereasonmaybestuckintheproductwithouttheuseofamicrocontrollerorotherprogrammablelogicdevice.SCMbasiccomponentisacentralprocessingunitCPUinthecomputingdeviceandcontrollerread-onlymemoryusuallyexpressedasaROMread-writememoryalsoknownasRandomAccessMemoryMRAMisusuallyexpressedasaRAMinput/outputportalsodividedintoparallelportandserialportexpressedasI/Oportandsocomposed.Infactthereisalsoaclockcircuitmicrocontrollersothatduringoperationandcontrolofthemicrocontrollercanrhythmicmanner.Inadditionthereareso-calledbreaksystemthesystemisajanitorrolewhenthemicrocontrollercontrolobjectparametersthatneedtobeinterventiontoreachaparticularstatecanafterthisjanitorcommunicatedtotheCPUsothatCPUprioritiesoftheexternaleventstotakeappropriatecounter-measures.
2.AnOverviewofAT89S51TheAT89S51isalow-powerhigh-performanceCMOS8-bitmicrocontrollerwith4KbytesofIn-SystemProgrammableFlashmemory.ThedeviceismanufacturedusingAtmelshigh-densitynonvolatilememorytechnologyandiscompatiblewiththeindustry-standard80C51instructionsetandpinout.Theon-chipFlashallowstheprogrammemorytobereprogrammedin-systemorbyaconventionalnonvolatilememoryprogrammer.Bycombiningaversatile8-bitCPUwithIn-SystemProgrammableFlashonamonolithicchiptheAtmelAT89S51isapowerfulmicrocontrollerwhichprovidesahighly-flexibleandcost-effectivesolutiontomanyembeddedcontrolapplications.Features CompatiblewithMCS.-51Products4KBytesofIn-SystemProgrammableISPFlashMemoryEndurance:1000Write/EraseCycles
4.0Vto
5.5VOperatingRangeFullyStaticOperation:0Hzto33MHzThree-levelProgramMemoryLock128x8-bitInternalRAM32ProgrammableI/OLinesTwo16-bitTimer/CountersSixInterruptSourcesFullDuplexUARTSerialChannelLow-powerIdleandPower-downModesInterruptRecoveryfromPower-downModeWatchdogTimerDualDataPointerPower-offFlagFastProgrammingTimeFlexibleISPProgrammingByteandPageModeGreenPb/Halide-freePackagingOptionTheAT89S51providesthefollowingstandardfeatures:4KbytesofFlash128bytesofRAM32I/OlinesWatchdogtimertwodatapointerstwo16-bittimer/countersafive-vectortwo-levelinterruptarchitectureafullduplexserialporton-chiposcillatorandclockcircuitry.InadditiontheAT89S51isdesignedwithstaticlogicforoperationdowntozerofrequencyandsupportstwosoftwareselectablepowersavingmodes.TheIdleModestopstheCPUwhileallowingtheRAMtimer/countersserialportandinterruptsystemtocontinuefunctioning.ThePower-downmodesavestheRAMcontentsbutfreezestheoscillatordisablingallotherchipfunctionsuntilthenextexternalinterruptorhardwarereset.VCC Supplyvoltageallpackagesexcept42-PDIP.GND Groundallpackagesexcept42-PDIP;for42-PDIPGNDconnectsonlythelogiccoreandtheembeddedprogrammemory.VDD Supplyvoltageforthe42-PDIPwhichconnectsonlythelogiccoreandtheembeddedprogrammemory.PWRVDD Supplyvoltageforthe42-PDIPwhichconnectsonlytheI/OPadDrivers.TheapplicationboardMUSTconnectbothVDDandPWRVDDtotheboardsupplyvoltage.PWRGND Groundforthe42-PDIPwhichconnectsonlytheI/OPadDrivers.PWRGNDandGNDareweaklyconnectedthroughthecommonsiliconsubstratebutnotthroughanymetallink.TheapplicationboardMUSTconnectbothGNDandPWRGNDtotheboardground.Port0Port0isan8-bitopendrainbi-directionalI/Oport.AsanoutputporteachpincansinkeightTTLinputs.When1sarewrittentoport0pinsthepinscanbeusedashigh-impedanceinputs.Port0canalsobeconfiguredtobethemultiplexedlow-orderaddress/databusduringaccessestoexternalprogramanddatamemory.InthismodePOhasinternalpull-ups.Port0alsoreceivesthecodebytesduringFlashprogrammingandoutputsthecodebytesduringprogramverification.Externalpull-upsarerequiredduringprogramverification.Port1Port1isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort1outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort1pinstheyarepulledhighbytheinternalpull-upsandcanbeusedasinputs.AsinputsPort1pinsthatareexternallybeingpulledlowwillsourcecurrentlipbecauseoftheinternalpull-ups.Port2Port2isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort2outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort2pinstheyarepulledhighbytheinternalpull-upsandcanbeusedasinputs.AsinputsPort2pinsthatareexternallybeingpulledlowwillsourcecurrentlipbecauseoftheinternalpull-ups.Port2emitsthehigh-orderaddressbyteduringfetchesfromexternalprogrammemoryandduringaccessestoexternaldatamemorythatuse16-bitaddressesMOVX@DPTRmailto:MOVX@DPTR.InthisapplicationPort2usesstronginternalpull-upswhenemitting1s.Duringaccessestoexternaldatamemorythatuse8-bitaddressesMOVX@RImailto:MOVX@RIPort2emitsthecontentsoftheP2SpecialFunctionRegister.Port2alsoreceivesthehigh-orderaddressbitsandsomecontrolsignalsduringFlashprogrammingandverification.Port3Port3isan8-bitbi-directionalI/Oportwithinternalpull-ups.ThePort3outputbufferscansink/sourcefourTTLinputs.When1sarewrittentoPort3pinstheyarepulledhighbytheinternalpull-upsandcanbeusedasinputs.AsinputsPort3pinsthatareexternallybeingpulledlowwillsourcecurrentlipbecauseofthepull-ups.Port3receivessomecontrolsignalsforFlashprogrammingandverification.Port3alsoservesthefunctionsofvariousspecialfeaturesoftheAT89S51,asshowninthefollowingtable.P3portcanalsobeusedasanumberofspecialfeaturesAT89C51mouththefollowingtable:PinAlternativefunctionP
3.0RXD(Serialinput)P
3.1TXD(Serialoutput)P
3.2(Externalinterrupt0)P
3.3(Externalinterrupt1)P
3.4T0(Timer0Externalinput)P
3.5T1(Timer1Externalinput)P
3.6(Externaldatamemorywritestrobe)P
3.7(Externaldatamemoryreadstrobe)RST Resetinput.Ahighonthispinfortwomachinecycleswhiletheoscillatorisrunningresetsthedevice.ThispindrivesHighfor98oscillatorperiodsaftertheWatchdogtimesout.TheDISRTObitinSFRAUXRaddress8EHcanbeusedtodisablethisfeature.InthedefaultstateofbitDISRTOtheRESETHIGHoutfeatureisenabled.ALE/PROG AddressLatchEnableALEisanoutputpulseforlatchingthelowbyteoftheaddressduringaccessestoexternalmemory.ThispinisalsotheprogrampulseinputPROGduringFlashprogramming.InnormaloperationALEisemittedataconstantrateof1/6theoscillatorfrequencyandmaybeusedforexternaltimingorclockingpurposes.NotehoweverthatoneALEpulseisskippedduringeachaccesstoexternaldatamemory.IfdesiredALEoperationcanbedisabledbysettingbit0ofSFRlocation8EH.WiththebitsetALEisactiveonlyduringaMOVXorMOVCinstruction.Otherwisethepinisweaklypulledhigh.SettingtheALE-disablebithasnoeffectifthemicrocontrollerisinexternalexecutionmode.PSEN ProgramStoreEnablePSENisthereadstrobetoexternalprogrammemory.WhentheAT89S51isexecutingcodefromexternalprogrammemoryPSENisactivatedtwiceeachmachinecycleexceptthattwoPSENactivationsareskippedduringeachaccesstoexternaldatamemory.EA/VPP ExternalAccessEnable.EAmustbestrappedtoGNDinordertoenablethedevicetofetchcodefromexternalprogrammemorylocationsstartingatOOOOHuptoFFFFH.Notehoweverthatiflockbit1isprogrammedEAwillbeinternallylatchedonreset.EAshouldbestrappedtoVccforinternalprogramexecutions.Thispinalsoreceivesthe12-voltprogrammingenablevoltageVPPduringFlashprogramming.XTAL1Inputtotheinvertingoscillatoramplifierandinputtotheinternalclockoperatingcircuit.XTAL2OutputfromtheinvertingoscillatoramplifierSpecialFunctionRegisters Notethatnotalloftheaddressesareoccupiedandunoccupiedaddressesmaynotbeimplementedonthechip.Readaccessestotheseaddresseswillingeneralreturnrandomdataandwriteaccesseswillhaveanindeterminateeffect.Usersoftwareshouldnotwrite1stotheseunlistedlocationssincetheymaybeusedinfutureproductstoinvokenewfeatures.Inthatcasetheresetorinactivevaluesofthenewbitswillalwaysbe
0.InterruptRegisters:TheindividualinterruptenablebitsareintheIEregister.TwoprioritiescanbesetforeachofthefiveinterruptsourcesintheIPregister.DualDataPointerRegisters:Tofacilitateaccessingbothinternalandexternaldatamemorytwobanksof16-bitDataPointerRegistersareprovided:DPOatSFRaddresslocations82H-83HandDP1at84H-85H.BitDPS=0inSFRAUXR1selectsDPOandDPS=1selectsDP
1.TheusershouldALWAYSinitializetheDPSbittotheappropriatevaluebeforeaccessingtherespectiveDataPointerRegister.PowerOffFlag:ThePowerOffFlagPOFislocatedatbit4PCON.4inthePCONSFR.POFissetto1”duringpowerup.Itcanbesetandrestundersoftwarecontrolandisnotaffectedbyreset.MemoryOrganization MCS-51deviceshaveaseparateaddressspaceforProgramandDataMemory.Upto64K byteseachofexternalProgramandDataMemorycanbeaddressed.ProgramMemory IftheEApinisconnectedtoGNDallprogramfetchesaredirectedtoexternalmemory.OntheAT89S51,ifEAisconnectedtoVccprogramfetchestoaddressesOOOOHthroughFFFHaredirectedtointernalmemoryandfetchestoaddresses1000HthroughFFFFHaredirectedtoexternalmemory.DataMemory TheAT89S51implements128bytesofon-chipRAM.The128bytesareaccessibleviadirectandindirectaddressingmodes.Stackoperationsareexamplesofindirectaddressingsothe128bytesofdataRAMareavailableasstackspace.WatchdogTimerOne-timeEnabledwithReset-out TheWDTisintendedasarecoverymethodinsituationswheretheCPUmaybesubjectedtosoftwareupsets.TheWDTconsistsofa14-bitcounterandtheWatchdogTimerResetWDTRSTSFR.TheWDTisdefaultedtodisablefromexitingreset.ToenabletheWDTausermustwrite01EHandOE1HinsequencetotheWDTRSTregisterSFRlocationOA6H.WhentheWDTisenableditwillincrementeverymachinecyclewhiletheoscillatorisrunning.TheWDTtimeoutperiodisdependentontheexternalclockfrequency.ThereisnowaytodisabletheWDTexceptthroughreseteitherhardwareresetorWDToverflowreset.WhenWDToverflowsitwilldriveanoutputRESETHIGHpulseattheRSTpin.TheuseofwatchdogWDT:WDTtobeopentowrite01EHand0E1HinsequencetoWDTRSTregistersSFRsaddress0A6HwhentheWDTopenedtakesometimeto01EHand0E1HtoWDTRSTcountregisterinordertoavoidWDToverflow.WDTcounter14countreached163833FFFHWDTwilloverflowandresetthedevice.WDTisturnedonitwillbewiththecrystaloscillatorineachmachinecyclecountwhichmeansthatusersmustbelessthan16383machineseachcycleresetWDTthatistowrite01EHand0E1HtoWDTRSTregisterWDTRSTwriteonlyregister.WDTcountercannotbereadneitherwritewhentheWDToverflowsitisusuallyRSTpinwillresettheoutputofhighpulse.Resetpulsedurationforthe98×ToscandTosc=1/Fosccrystaloscillationfrequency.AT89S51单片机概述
1.单片机的简介可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代不过,这种电脑,通常是指个人计算机,简称PC机它由主机、键盘、显示器等组成还有一类计算机,大多数人却不怎么熟悉这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制因为它体积小,通常都藏在被控机械的“肚子”里它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上单片机的基本组成是由中央处理器(即CPU中的运算器和控制器)、只读存贮器(通常表示为ROM)、读写存贮器(又称随机存贮器通常表示为RAM)、输入/输出口(又分为并行口和串行口,表示为I/O口)等等组成实际上单片机里面还有一个时钟电路,使单片机在进行运算和控制时,都能有节奏地进行另外,还有所谓的“中断系统”,这个系统有“传达室”的作用,当单片机控制对象的参数到达某个需要加以干预的状态时,就可经此“传达室”通报给CPU,使CPU根据外部事态的轻重缓急来采取适当的应付措施
2.AT89S51单片机概述AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚它集Flash程序存储器既可在线编程(ISP也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场介,可灵活应用于各种控制领域主要性能参数·与MCS-51产品指令系统完全兼容·4k字节在线系统编程ISPFlash闪速存储器·1000次擦写周期·
4.0---
5.5V的工作电压范围·全静态工作模式0Hz---33MHz·三级程序加密锁·128×8字节内部RAM·32个可编程I/O口线·2个16位定时/计数器·6个中断源·全双工串行UART通道·低功耗空闲和掉电模式·中断可从空闲模式唤醒系统·看门狗WDT及双数据指针·掉电标识和快速编程特性·灵活的在线系统编程ISP一字节或页写模式功能特性概述AT89S51提供以下标准功能4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位引脚功能说明·Vcc电源电压·GND地·P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写‘1’可作为高阻抗输入端用在访问外部数据存储器或程序存储器时,这组口线分时转换地址低8位和数据总线复用,在访问期间激活内部上拉电阻在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻·P1口P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路对端口写‘1’,通过内部的上拉电阻把端口拉到高电平,此时可作输入口作输入口使用时,囚为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流InFlash编程和程序校验期间P1接收低8位地址·P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路对端口写‘1’,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,囚为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流In在访问外部程序存储器或16位地址的外部数据存储器例如执行MOVX@DPTR指令时,P2口送出高8位地址数据在访问8位地址的外部数据存储器如执行MOVX@Ri指令时,P2口线卜的内容也即特殊功能寄存器(SFR区中P2寄存器的内容,在整个访问期间不改变Flash编程或校验时,P2亦接收高位地址和其它控制信号·P3口P3口是一组带有内部上拉电阻的8位双向I/O口P3口输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口作输入端时,被外部拉低的P3口将用上拉电阻输出电流(In)P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号P3口也可作为AT89C51的一些特殊功能口,如下表所示管脚备选功能P
3.0RXD(串行输入口)P
3.1TXD(串行输出口)P
3.2(外部中断0)P
3.3(外部中断1)P
3.4T0(记时器0外部输入)P
3.5T1(记时器1外部输入)P
3.6(外部数据存储器写选通)P
3.7(外部数据存储器读选通)·RST复位输入当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能DISRTO位缺省为RESET输出高电平打开状态·ALE/PROG当访问外部程序存储器或数据存储器时,ALE地址锁存允许输出脉冲用于锁存地址的低8位字节即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,囚此它可对外输出时钟或用于定时目的要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)如有必要,可通过对特殊功能寄存器(SFR区中的8EH单元的D0位置位,可禁正ALE操作该位置位后,只有一条MOVX和MOVC指令ALE才会被激活此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效·PSEN程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令数据时,每个机器周期两次PSEN有效,即输出两个脉冲当访问外部数据存储器,没有两次有效的PSEN信号·EA/VPP外部访问允许欲使CPU仅访问外部程序存储器地址为0000H-FFFFHEA端必须保持低电平接地需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态如EA端为高电平接Vcc端,CPU则执行内部程序存储器中的指令Flash存储器编程时,该引脚加上+12V的编程电压Vpp·XTAL1振荡器反相放大器及内部时钟发生器的输入端·XTAL2振荡器反相放大器的输出端·特殊功能寄存器特殊功能寄存器的于片内的空间分布的这些地址并没有全部占用,没有占用的地址亦不可使用,读这些地址将得到一个随意的数值而写这些地址单元将不能得到预期的结果·中断寄存器各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器·双时钟指针寄存器为更方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存器DP0位于SFR特殊功能寄存器区块中的地址82H83H和DP1位于地址84H85H,当SFR中的位DPS=0选择DP0,而DPS=1则选择DP1用户应在访问相应的数据指针寄存器前初始化DPS位·电源空闲标志电源空闲标志(POF)在特殊功能寄存器SFR中PCON的第4位PCON.4},电源打开时POF置‘1’,它可由软件设置睡眠状态并不为复位所影响·程序存储器如果EA引脚接地GND,全部程序均执行外部存储器在AT89S51假如EA接至Vcc电源+,程序首先执行地址从0000H-OFFFH(4KB)内部程序存储器,而执行地址为1000H-FFFFH60KB的外部程序存储器·数据存储器AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间·看门狗定时器WDT WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看门狗复位SFRWDTRST构成外部复位时,WDT默认为关闭状态,要打开WDT,用户必须按顺序将01EH和0E1H写到WDTRST寄存器(SFR地址为OA6H}当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RSF引脚输出高电平的复位脉冲使用看门狗(WDT)打开WDT需按次序写01EH和0E1H到WDTRST寄存器(SFR的地址为0A6H),当WDT打开后,需在一定的时候01EH和0E1H到WDTRST寄存器以避免WDT计数溢出14位WDT计数器计数达到16383(3FFFH),WDT将溢出并使器件复位WDT打开时,它会随晶体振荡器在每个机器周期计数,这意味着用户必须在小于每个16383机器周期内复位WDT,也即写01EH和0E1H到WDTRST寄存器,WDTRST为只写寄存器WDT计数器既不可读也不可写,当WDT溢出时,通常将使RST引脚输出高电平的复位脉冲复位脉冲持续时间为98×Tosc,而Tosc=1/Fosc(晶体振荡频率)加热D/A转换给定值PLC控制器A/D转换热电偶变送器给水泵燃烧器继电器按键设定AT89S51温度采集A/D转换稳压电源液晶显示复位报警开始中断水位检测水位大于上限水位小于下限检测温度温度大于上限关闭给水泵温度小于下限给水泵工作报警报警停止加热报警加热PID计算程序结构温度采集,A/D转换LCD液晶显示按键检测与处理加热执行机构越限报警开始发送AD启动信号转换是否完成输入数据结束开始检测DS18B20是否存在跳过EOM匹配保存采集的温度发出温度读取命令跳过ROM匹配发出温度转化命令结束开始LCD液晶显示模块初始化检测LCD是否忙碌将需要的显示信息和LCD的地址送出结束写数据显示中断服务程序返回K3是否按下加1并显示减1并显示K2是否按下K1是否按下。