《毕业设计(论文)基于单片机的水温控制系统设计【毕业论文】.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的水温控制系统设计【毕业论文】.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕业设计(论文)-基于单片机的水温控制系统设计【毕业论文】郑州科技学院 专科毕业设计(论文)题 目 基于单片机的水温控制系统设计 学生姓名 殷志双 专业班级 08电气(2)班 学 号 200626103 所 在 系 电气工程系 指导教师 李月英 完成时间 2010 年 3 月 10 日 郑 州 科 技 学 院毕业设计(论文)任务书题目 基于单片机的水温控制系统设计 专业 电气自动化 学号 200626103 姓名 殷志双 主要内容、基本要求、主要参考资料等: 主要内容:1 .检索与课题有关的国内外资料;2 .确定系统设计方案;3 .设计电路原理图;4 .编制系统相应程序,并上机调试;5 .编写
2、毕业设计说明书一份。 基本要求:1 .能够理解控制系统的要求;2 .理解单片机的工作原理;3 .能够正确完成控制系统的设计。 主要参考资料:单片机原理及接口技术资料;测量技术方面资料;智能温度传感器相关资料。完 成 期 限: 2011年4月10日指导教师签章: 专业负责人签章: 2010年11月6日郑州科技学院毕业设计(论文)开题报告表课题名称基于单片机的水温控制系统设计指导教师李月英 学生姓名殷志双学 号200626103专 业电气自动化技术课题来源: 指导老师命题范围内选题。设计目的:1.通过毕业设计,增强了收集、整理资料的能力;2.进一步理解了单片机技术和电气自动控制相关知识;3.利用单
3、片机AT80C51技术使自己的系统达到自动控制水温的效果。设计要求:1 .能够理解控制系统的要求;2 .理解单片机的工作原理;3 .能够正确完成控制系统的设计设计思路:首先根据系统的控制要求,设计出合理的控制方案,并进行可行性论证;然后,在硬件方面,要经过温度采集、信号放大、滤波、AD转换等一系列工作才能得到温度的数字量根据需求按照系统的功能要求,逐级划分模块并分别调试通过。能够完成温度的显示和控制,但功能和精度有待于进一步提高。通过液晶显示屏实时显示温度基于单片机的水温控制系统设计摘 要本设计首先阐述了水温控制在社会上的意义,又讲解了单片机控制系统本设计以单片机AT8为核心,通过3个数码管显
4、示温度和4个按键实现人机对话,使用单总线温度转换芯片DS18B20实时采集温度并通过数码管显示,并提供各种运行指示灯用来指示系统现在所处状态,如:温度设置、加热、停止加热等,整个系统通过四个按键来设置加热温度和控制运行模式。 单片机数码管显示单总线DS18B20.BASED TEMPERATURE CONTROL SYSTEMABSTRACTThe design of temperature control in the first expounded the significance of the community, but also explained the water system
5、MCU control the basic structure and characteristics. The design of a microcontroller AT80C51 as the core, through the three temperature digital display and 4 keys to achieve man-machine dialogue, the use of single-chip bus temperature conversion temperature DS18B20 real-time acquisition and through
6、the digital display and offers a variety of operating light to indicate System now in which state, such as: temperature setting, heating, and stop heating, the entire system through the four buttons to set the heating temperature and control the operating mode.On the hardware side, the choice of the
7、 more common single chip, this paper focused on the temperature measurement methods in detail, the software, developed to meet the control requirements of the program, in addition, also fully considered the requirements of practical application Designed to take into account the cost, power consumpti
8、on, security, stability, noise immunity, and many other issues with the rationality and feasibility.朗读显示对应的拉丁字符的拼音字典 - 查看字典详细内容朗读显示对应的拉丁字符的拼音字典 - 查看字典详细内容KEY WORDSMonolithic integrated circuit, demonstration, single main line, DS18B20目 录中文摘要I英文摘要II1水温控制系统的简述11.1 水温控制系统的意义11.2 水温控制系统的发展12 系统方案论证33 系统
9、总体设计43.1 系统结构框图43.2 系统子模块44 系统硬件设计54.1 单片机最小系统电路54.2 键盘电路54.3 数码管及指示灯显示电路64.4 温度采集电路84.5 电源电路134.6 报警电路134.7 加热管控制电路145 系统软件设计155.1 主程序流程图15 5.2 各个模块的流程图170. 读取温度DS18B20模块的流程17. 键盘扫描处理流程19. 报警处理流程206 系统调试21 6.1 硬件电路调试21 6.2 软件调试21 6.3 系统操作说明22 6.4 数据测试22总 结25致 谢26参考文献27附录I:系统源程序28附录II:系统硬件总图381 水温控制
10、系统的简述1.1 水温控制的意义 温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。特别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对水温的控制,把身边的水资源好好地利用起来。1.2 水温控制系统发展 在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准,以单片机为核心设计的炉温控制系统,可以同时
11、采集多个数据,并将数据通过通讯口送至上位机进行显示和控制。那么无论是哪种控制,我们都希望水温控制系统能够有很高的精确度(起码是在满足我们要求的范围内),帮助我们实现我们想要的控制,解决身边的问题。 及时准确地得到温度信息并对其进行适时的控制,在许多工业场合中都是重要的环节。水温的变化影响各种系统的自动运作,例如冶金、机械、食品、化工各类工业中,广泛使用的各种加热炉、热处理炉、反应炉等对工件的处理温度要求严格控制传统的温度采集电路相当复杂,需要经过温度采集、信号放大、滤波、AD转换等一系列工作才能得到温度的数字量,并且这种方式不仅电路复杂,元器件个数多,而且线性度和准确度都不理想,抗干扰能力弱。
12、现在常用的温度传感器芯片不但功率消耗低、准确率高,而且比传统的温度传感器有更好的线性表现,最重要的一点是使用起来方便。DS18B20采集温度变化信号,通过数码管显示其温度值,最后各个继电器电路部分控制温度,使其达到稳定。使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。比较上述两种方案,方案2明显的改善了方案1的不足及缺点,并具有控制简单、控制温度精度高的特点,因此本设计电路采用方案2。3 系统总体设计3.1 系统结构框图本设计主要是通过对单片机编程将由温度传感器DS18B20采集的温度外加驱动电路显示出
13、来,包括对继电器的控制,进行升温,当温度达到上下限蜂鸣器进行报警。其结构框图如图-1:图 1 系统结构框图 1 单片机最小系统电路部分 2 键盘扫描电路部分 3 数码管温度显示和运行指示灯电路部分 4 温度采集电路部分 5 继电器控制部分 6 报警部分因为8单片机内部自带8K的ROM和256字节的RAM,因此不必构建单片机系统的扩展电路。如图1,单片机最小系统有复位电路和振荡器电路。值得注意的一点是单片机的31脚必须接高电平,否则系统将不能运行。因为该脚不接时为低电平,单片机将直接读取外部程序存储器,而系统没有外部程序存储器,所以必须接VCC。图1 单片机最小系统键盘是单片机应用系统中的主要输
14、入设备,单片机使用的键盘分为编码键盘和非编码键盘。编码键盘采用硬件线路来实现键盘的编码,每按下一个键,键盘能够自动生成按键代码,并有去抖功能。因此使用方便,但硬件较复杂。非编码键盘仅仅提供键开关状态,由程序来识别闭合键,消除抖动,产生相应的代码,转入执行该键的功能程序。非编码键盘中键的数量较少,硬件简单,在单片机中应用非常广泛。图为按键和AT8的接线图,检测仪共设有4个按键,每个按键由软件来决定其功能,4个按键功能分别为 1 SW1:设定按键 设定按键 2 加法按键 当前位加5 3 减法按键 当前位减5 4 退出设置键 系统初始化 图2 单片机按键和AT8的接线图(1)数码管显示说明各个数码管
15、的段码都是单片机的数据口输出即各个数码管输入的段码都是一样的为了使其分别显示不同的数字可采用动态显示的方式即先只让最低位显示0 含点 ,经过一段延时,再只让次低位显示1,如此类推。由视觉暂留只要我们的延时时间足够短,就能够使得数码的显示看起来非常的稳定清楚过程如-1。表-1 数码管编码表段码位码显示器状态08H01H0abH02H112H04H222H08H3a1H10H424H20H504H40H6aaH80H7本论文中使用了3个数码管,其中前两位使用动态扫描显示实测温度,在设置加热温度的时候,两个数码管是闪烁,以提示目前处在温度设置状态。第三位数码管静态显示符号“”。(2)运行指示灯说明本
16、热水器温度控制系统中共使用到3个LED指示灯和3个数码管。右上角的红色LED是电源指示灯;数码管右边的红色LED是加热指示灯,当刚开机或温度降到设定温度5以下时,该灯会亮,表示目前处于加热状态;当温度上升到设定温度时,该LED灭,同时数码管右边的绿色LED亮,表示目前处于保温状态,用户可以使用热水器;当温度再次下降到设定温度5以下时,绿色LED灭,红色加热的LED灯亮不断循环图3 LED数码管显示电路图4.4 温度采集电路(1) DS18B20介绍Dallas最新单线数字温度传感器DS18B20简介新的一线器件”体积更小、适用电压更宽、更经济Dallas半导体公司的数字化温度传感器DS1820
17、是世界上第一片支持一线总线接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、DS1822一线总线”数字化温度传感器同DS1820一样,DS18B20也支持一线总线”接口,测量温度范围为 -55+125,在-10+85范围内,精度为0.5。DS1822的精度较差为2。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。其DS18B20的管脚配置和封装结构如图所示引脚定义: DQ为数字信号输入/输出端; GND为电源地; VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 图-4 DS18B20封装(2)DS
18、18B20的单线(1wire bus)系统单线总线结构是DS1820的突出特点,也是理解和编程的难点。从两个角度来理解单线总线:第一,单线总线只定义了一个信号线,而且DS1820智能程度较低(这点可以与微控制器和SPI器件间的通信做一个比较),所以DS1820和处理器之间的通信必然要通过严格的时序控制来完成。第二,DS1820的输出口是漏级开路输出,这里给出一个微控制器和DS1820连接原理图。这种设计使总线上的器件在合适的时间驱动它。显然,总线上的器件与(wired AND)关系。这就决定:(1)微控制器不能单方面控制总线状态。之所以提出这点,是因为相当多的文献资料上认为,微控制器在读取总线
19、上数据之前的I/O口的置1操作是为了给DS1820一个发送数据的信号。这是一个错误的观点。如果当前DS18b20发送0,即使微控制器I/O口置1,总线状态还是0;置1操作是为了是I/O口截止(cut off),以确保微控制器正确读取数据。(2)除了DS1820发送0的时间段,其他时间其输出口自动截止。自动截止是为确保:1时,在总线操作的间隙总线处于空闲状态,即高态。2时,确保微控制器在写1的时候DS1820可以正确读入。由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单
20、总线的协议时序来完成对DS18B20芯片的访问。 DS18B20的复位时序,如图-5 图-5 DS18B20的复位时序图 DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的读时序图如图。图-6 DS18B20的读时序 DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线
21、要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。如图所示。图-7 DS18B20的写时序图(3)DS18B20的供电方式在图中示出了DS18B20的寄生电源电路。当DQ或VDD引脚为高电平时,这个电路便“取”的电源。寄生电路的优点是双重的远程温度控制监测无需本地电源缺少正常电源条件下也可以读ROM。为了使DS18B20能完成准确的温度变换,当温度变换发生时,DQ线上必须提供足够的功率。有两种方法确保 DS18B20 在其有效变换期内得到足够的电源电流。第一种方法是发生温度变
22、换时,在 DQ 线上提供一强的上拉,这期间单总线上不能有其它的动作发生。如图 所示,通过使用一个 MOSFET 把 DQ 线直接接到电源可实现这一点,这时DS18B20 工作在寄生电源工作方式,在该方式下 VDD 脚必须连接到地。 图-8 DS18B20供电方式1另一种方法是 DS18B20 工作在外部电源工作方式,如图 所示。这种方法的优点是在 DQ 线上不要求强的上拉,总线上主机不需要连接其它的外围器件便在温度变换期间使总线保持高电平,这样也允许在变换期间其它数据在单总线上传送。此外,在单总线上可以并联多个 DS18B20,而且如果它们全部采用外部电源工作方式,那么通过发出相应的命令便可以
23、同时完成温度变换。 图-9 DS18B20供电方式2(4)DS18B20设计中应注意的几个问题DS18B20具有测温系统简单、测温精度高、连接方便、占用接口线少等优点但在实际应用中也应注意以下几方面的问题较小的硬件开销需要相对复杂的软件进行补偿由于DS18B20 与微处理器间采用串行数据传送因此 在对DS18B20 进行读写编程时必须严格的保证读写时序否则将无法读取测温结果。在DS18B20 有关资料中均未提及1Wire上所挂DS18B20数量问题容易使人误认为可以挂任意多个DS18B20在实际应用中并非如此。当1Wire上所挂DS18B20超过8个时就需要考虑微处理器的总线驱动问题这一点在进
24、行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。实际应用中测温电缆线建议采用屏蔽4芯双绞线其中一对线接地线与信号线另一组接VCC 和地线屏蔽层在源端单点接地。本文以广泛应用的数字温度传感器DS18B20为例说明了1Wire总线的操作过程和基本原理。事实上基于1Wire总线的产品还有很多种如1Wire总线的E2PROM、实时时钟、电子标签等。他们都具有节省I/O资源、结构简单、开发快捷、成本低廉、便于总线扩展等优点因此有广阔的应用空间具有较大的推广价值。本设计将温度传感器DS18B20与单片机TXD引脚相连,读取温度传感器的数值。DS18B20与单片机连接图如图所示-
25、10所示。图-10 DS18B20与单片机连接图采用L7805稳压块,输出为5V。电子组件要正常运作都需要电源电压供电,一般常用的电源电压为+5V或+12V,因为数字IC (Ingegrated Circuit:集成电路)所供给的电压为+5V而CMOS IC所供给的电压为+12V,7805是一个稳压块。7805稳压管把高电压转换到低电压,7805稳压管具有保护单片机的作用。L7805输出端要并联上一个电解电容,滤除交流电干扰,防止损坏单片机系统。本设计采用两种供电方式,一种为V直流稳压电源变换成5V的直流电;另一种为四节干电池共6V经二极管加压后得到将近5V的直流电源,电源配以开关和指示灯,以
26、方便使用。黄色发光二极管表示保温,红色的表示加热状态。图-11 系统电源设计图同时可以在系统里设定温度上限值,由于加热停止后,加热管还有余热当采集到的外界温度高于当前所设定温度上限值时,程序就会进入报警子程序,触发蜂鸣器进行报警。报警电路原理图如图所示。图-12 报警电路图中的三极管8550的作用是增加驱动能力,比9012的驱动电流还大些,因此选用8550。当程序进入报警子程序时,把P2.7置0,就会触发蜂鸣器,发出报警声音。继电器是常用的输出控制接口,可以做交直流信号的输出切换。它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制
27、较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器控制接点操作说明如下:COM:Common,共同点。输出控制接点的共同接点。NC:Normal Close常闭点。以Com为共同点,NC与COM在平时是呈导通状态的。NO:Normal Open常开点。NO与COM在平时是呈开路状态的,当继电器动作时,NO与COM导通,NC与COM则呈开路状态。当89S52的P2.5输出高电平时,继电器不导通,反之当输出低电平时,继电器导通,这样就激活了连接回路。图-13 单片机控制继电器本系统采用的是循环查询方式,来显示和控制温度的。主要包括四段程序的设计:DS18B20读温
28、度程序,数码管的驱动程序,键盘扫描程序,以及抱经处理程序。图 -1 主程序流程由于DS18B20采用的是一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。DS18B20单线通信功能是分时完成的,它有严格的时隙概念。因此系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点, DS18B20必须首先调用启动温度转换函数,根据数据
29、手册上对应转换时间来超作,如为12位转换,则应该是最大750mS,另外在对DS18B20超作时,时序要求非常严格,因此最好禁止系统中断。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的读时序:(1)对于DS18B20的读时序分为读0时序
30、和读1时序两个过程。 (2)对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序(1)对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 (2)对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。系统程序设计主要包括三部分:读出温度子程序、温度转换
31、命令子程序、显示温度子程序。图-2读取温度DS18B20模块的流程程序代码为:GET_TEMPER:SETBDQ;读出转换后的温度值LCALLINIT_1820;先复位DS18B20JBFLAG1,TSS2RET;判断DS1820是否存在?若DS18B20不存在则返回TSS2:MOVA,#0CCH;DS18B20已经被检测到!跳过ROM匹配LCALLWRITE_1820MOVA,#44H;发出温度转换命令LCALLWRITE_1820LCALLDISPLAY;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒LCALLINIT_1820;准备读温度前先复位MOVA,
32、#0CCH;跳过ROM匹配LCALLWRITE_1820MOVA,#0BEH;发出读温度命令LCALLWRITE_1820LCALLREAD_18200;将读出的温度数据保存到35H/36HRET此流程为键盘扫描处理,CPU通过检测各数据线的状态 0或1 就能知道是否有按键闭合以及哪个按键闭合。键盘管理程序的功能是检测是否有按键闭合,如果有按键闭合,消除抖动,根据键号转到相应的键处理程序,按键流程图如图-3所示。图-3键盘扫描子程序流程图运行程序后,温度传感器DS18B20即可对环境进行温度采集,并送LED数码管显示。我们可以在程序里设定温度上限值,当采集到的外界温度高于当前所设定温度上限值时
33、,程序就会进入报警子程序,触发蜂鸣器进行报警。流程图如图-4所示。图-4 报警子程序流程图6 系统调试6.1 硬件电路调试仔细检查所接电路,按照硬件原理图接线,理论上是能实现的,如果数码管不显示,则应该检查线路是否正确,或是因为单片机没有工作,还有集电极和发射极是否接对。如果只显示两个八,则可能是DS18B20没有接正确,检查上拉电路是否接好。另外要注意的是,由单片机输出的控制信号比较小,需要进行放大才能驱动继电器工作,否则就不能实现升温过程,通常选用8550三极管来进行放大。还有220V交流电绿色接头和加热管黄色接头必须接正确,否则导致电路烧坏。蜂鸣器是低电平有效。如果能注意这些问题,电路基
34、本不会出错。如果硬件电路检查后,没有问题却实现不了设计要求,则可能是软件编程的问题,首先应检查初始化程序,然后是读温度程序,显示程序,以及继电器控制程序,对这些分段程序,要注意逻辑顺序,调用关系,以及涉及到了标号,有时会因为一个标号而影响程序的执行,除此之外,还要熟悉各指令的用法,以免出错。本人在设计的时候在伟福仿真软件进行调试,通过此软件进行调试可以很方便的观察单片机内部各个寄存器及内部存储器变化情况,以方便进行调试。图为单片机功能调试图图-1 单片机功能调试图硬件与软件调试相结合,仔细检查各个模块的设计,旧能顺利完成任务,实现设计要求,在调试过程中必须认真耐心,不能有一点马虎,否则遗漏一个
35、小的问题就会导致整个设计的失败本系统上电后数码管显示当前测量温度,此时加热指示灯和保温指示灯均不点亮;若此时按“自动加热”键,则单片机自动将预加热温度设置为80并开始加热,送出一个加热信号,并点亮加热指示灯;若按“温度设置”键,则进入预加热温度设置界面,此时数码管闪烁显示预设置温度,此时通过按键“”和“”进行设置温度,预设置温度按“5”递增或递减,设置好温度后再按一次“温度设置”键确定,单片机保存预设置温度,并开始加热。此时单片机通过数码管显示实时检测的温度并和预设置温度进行对比,如果实测温度大于或等于预设置温度,则单片机发出停止加热信号并熄灭加热指示灯,点亮保温指示灯,且当超过预设温度时发出
36、报警;当温度下降到预设置温度以下5度时,单片机再次发出加热信号,同时熄灭保温指示灯,点亮加热指示灯,依次循环控制。1静态数据测试取一桶净水,改变它的温度,观察数码管上显示的温度值,并用温度计进行测温,记录两组数据,比较差异。记录表如下:表-1 静态温度数据测试表温度123456显示温度234763778490测量温度244763808491有测试数据可知,本系统测温结果与温度计测温基本一致,能满足设计,证明了设计的合理性。2动态数据测试进行温度设定,通过设定温度值(75),观察加热管的加热情况,以及数码管的显示值,再用温度计测量水温,每隔一段时间记录一次数据,将两组值进行比较。记录表如下:(设
37、定前温度为25)表-2 静态温度数据测试表组数分组12345678910111213显示温度25293439424853586267707375测量温度25283438424953596367717475通过上表可看出在加热的过程中,显示的温度与实测的温度近似一样,说明系统的设计达到精度要求,但还是略有偏差,基本不影响设计结果。整个测试过程表明设计达到了任务书的要求,证明了该方案是合理可行的,顺利完成了设计,达到了预想结果。此设计虽然能够完成温度的显示和控制,但功能和精度有待于进一步提高。以后可以通过加入PID算法优化控制功能,并通过液晶显示屏实时显示温度。经过半年的忙碌和工作,本次毕业设计已
38、经接近尾声,作为一个科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。l 乐建波 编著温度控制系统化学工业出版社 谢自美 编著 电子线路设计?实验?测试(第二版) 华中科技大学出版社 2000 赵丽娟 邵欣编著基于单片机的温度监控系统的设计与实现 机械制造 郭炳坤 简单的恒温箱温控电路J.仪器与未来,1991EMPER_LEQU29H;用于保存读出温度的低8位TEMPER_HEQU28H;用于保存读出温度的高8位FLAG1EQU38H;是否检测到DS18B20标志位A_BITEQU20H;数码管个位数存
39、放内存位置B_BITEQU21H;数码管十位数存放内存位置B1EQU70H;温度小数点位A1EQU71H;设定温度值DQEQUP3.1;DQ为DS18B20数据位BELLEQUP2.7;/蜂鸣报警ORG0000H;单片机内存分配申明!AJMPMAIN0;/前面的都是定义MAIN:MOVR0,#10ACALLDELAY125DJNZR0,M1;/此段为灯闪5次,无实际意义;/MAIN0:MOVA1,#80;默认加热为80度MAIN1:LCALLD1820;调用读温度子程序 LCALLDISPLAY;调用数码管显示子程序 MOVA,29H CLRC CJNEA,A1,MAIN1_1 SETBBEL
40、L;/温度相等,关闭蜂鸣器 AJMPMAIN1_1_A;/下等不用叫蜂鸣器MAIN1_1:JCMAIN1_2;为1转移,表示小于设定温度 CPLBELL;蜂鸣器断续鸣叫MAIN1_1_A:CLRP2.3;/下面是表示没达到温度 AJMPMAIN2MAIN1_2:SETBBELL;/关闭蜂鸣器 CLRP2.5;/开发热管;/上面的是大于,关发热管 ACALLDELAY125;/延时防抖动,常用的手法,网上很多介绍的 JBP1.0,MAIN1;/再次查看 JNBP1.0,$;/等按键完全松手才进入!MAIN2_1:ACALLDISPLAY1 JBP1.2,MAIN2_2 ACALLDELAY125
41、 JBP1.2,MAIN2_2 JNBP1.2,$ MOVA,#5 ADDA,A1 CLRC CJNEA,#100,MAIN2_1_1 MOVA,#99 AJMPMAIN2_1_3;/上面这一段是+5度按键,按下+5度MAIN2_1_1:JCMAIN2_1_3MAIN2_1_2:CLRCMOVA,#99MAIN2_1_3:MOVA1,AMAIN2_2:JBP1.4,MAIN2_3ACALLDELAY125JBP1.4,MAIN2_3JNBP1.4,$MOVA,A1CJNEA,#99,ZY1MOVB,#4AJMPZY2ZY1:MOVB,#5ZY2:CLRCMOVA,A1SUBBA,BMAIN2_
42、2_1:JNCMAIN2_2_2MOVA1,#0AJMPMAIN2_3;/上面这一段是-5度按键,按下-5度MAIN2_2_2:MOVA1,AMAIN2_3:JBP1.6,MAIN2_1ACALLDELAY125JBP1.6,MAIN2_1JNBP1.6,$AJMPMAIN1;/上面这一段是退出的意思的!D1820:LCALLGET_TEMPER;调用读温度子程序MOVB1,29HMOVA,29HMOVC,40H;将28H中的最低位移入CRRCAMOVC,41HRRCAMOVC,42HRRCAMOVC,43HRRCAMOV29H,AMOVA,B1MOVB,#10HMULABMOVB,#10HD
43、IVABMOVB,#10MULABMOVB,#10HDIVABMOVB1,ARET;/上面这一段是读取温度后进行转换的意思!;/;/;/INIT_1820:SETBDQ;这是DS18B20复位初始化子程序NOPCLRDQ;主机发出延时537微秒的复位低脉冲MOVR1,#3TSR1:MOVR0,#107DJNZR0,$DJNZR1,TSR1SETBDQ;然后拉高数据线NOPNOPNOPNOPMOVR0,#25HTSR2:JNBDQ,TSR3;等待DS18B20回应DJNZR0,TSR2LJMPTSR4;延时TSR3:SETBFLAG1;置标志位,表示DS1820存在LJMPTSR5TSR4:CLRFLAG1;清标志位,表示DS1820不存在LJMPTSR7TSR5:MOVR0,#117TSR6:DJNZR0,TSR6;时序要求延时一段时间TSR7:SETBDQ