1、基于单片机的温度控制系统的基于单片机的温度控制系统的设计 系(院): 学生姓名: 专业班级: 学 号: 指导教师: 20XX 年 XX 月 XX 日声 明本人所呈交的 基于单片机的温度控制系统的设计 ,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。作者签名: 日期: 【摘要】本课题主要介绍基于AT89S51单片机和DS18B20数字温度传感器的温度控制系统。该系统利用AT89S51单片机分别采集各个温度点的温度,实现温度显示、报
2、警等功能。它以AT89S51单片机为主控制芯片,采用数字温度传感器DS18B20实现温度的检测,测量精度可以达到0.5摄氏度。该系统采用LED显示,形象直观的显示测出的温度值。本文功能设计目标包括以下几个方面:温度采集部分,时钟电路,复位电路,报警电路,继电器控制电路,按键输入部分以及数码管显示部分。基于AT89S51单片机的单总线温度测控系统具有硬件组成简单、读书方便、精度高、测温范围广等特点,在实际工程中得到广泛应用。【关键词】:AT89S51 DS18B20 温度测控ABSTRACTThis paper mainly introduced based on AT89S51 microco
3、ntroller and digital temperature sensor DS18B20 temperature control system. The system uses AT89S51 chip were collected in each temperature point temperature, temperature display, alarm and other functions. It takes AT89S51 MCU as the main control chip, the use of digital temperature sensor DS18B20
4、to realize the temperature measurement, the measurement precision can reach 0.5 degrees celsius. The system adopts LED display, intuitive display of the image of measured temperature values. In this paper, function design objectives include the following several aspects: temperature acquisition part
5、, a clock circuit, reset circuit, an alarm circuit, a relay control circuit, a key input part and a digital display part. Based on the AT89S51 MCU single bus temperature measurement and control system has simple hardware composition, reading convenience, high precision, wide measuring range and othe
6、r characteristics, are widely used in practical engineering.【KEY WORD】: AT89S51 DS18B20 temperature control 引言二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。在农业中,用于保证蔬菜大棚的
7、恒温保产等。随着社会的发展,温度的测量及控制变得越来越重要。本文采用单片机AT89S51设计了温度实时测量及控制系统。单片机AT89S51 能够根据温度传感器DS18B20 所采集的温度在数码管上实时显示,通过控制从而把温度控制在设定的范围之内。所有温度数据均通过数码显示器LED显示出来。系统可以根据时钟存储相关的数据。通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼我们在微型计算机应用方面的实际工作能力。一、系统总体方案本方案使用单片机AT89S51作为控制核心,以智能温度传感器DS18B20为温度测量元
8、件,对各点温度进行检测,设置温度上下限,超过其温度值就报警。显示电路采用LED显示模块,使用二级管,电阻和蜂鸣器组成的报警电路。如图1所示。单片机AT89S51温度采集时钟电路报警电路按键输入LED显示复位电路温度控制电路图1系统总体框图二、单片机AT89S51(一)单片机的发展概况1970年微型计算机研制成功之后,随之即出现了单片机(即单片微型计算机) 美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,这也算是单片机的第一次公众亮相。1976年Intel公司首先推出能称为单片机的MCS-48系列单片微型计算机。它以体积小、三、硬件电路设计(一)温度
9、采集部分采用一线制数字温度传感器DS18B20来作为本课题的温度传感器。传感器输出信号进4.7K的上拉电阻直接接到单片机的P1.0引脚上。DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和(二)时钟电路时钟电路是单片机的心脏,具有相当重要的作用,它控制着单片机的工作节奏。MCS-51单片机允许的时钟频率是依靠单片机的型号而改变的,典型值为12MHZ。AT89S51内部有一个反相振荡放大器,XTA
10、L1和 XTAL2分别是该反向振荡放大器的输入端和输出端。该反向放大器可被配制成片内振荡器,石晶振荡和陶瓷振荡均可采用这种反向放大器。本设计采用的晶振频率为12MHZ。其时钟电路如图4所示。51系列单片机还可作为外部时钟使用。在使用外部时钟时,外部时钟从XTAL1输入,而XTAL2必须悬空。图4 时钟电路(三)复位电路复位使单片机处于起始状态,并且从该起始状态开始运行。AT89S51的RST引脚是复位端,该引脚可以连续保持2个机器周期(24个时钟振动周期)以上的高电平,这样才能使单片机复位。内部复位电路在每一个机器周期的S5P2期间都采样斯密特触发器作为输出端,该触发器的作用可抑制RST引脚的
11、噪声干扰,并且在复位期间不产生ALE信号,而内部RAM处于不断电状态。其中的数据信息不会丢失,也就是说即复位后,只会影响SFR中的内容,内部RAM中的数据将不受任何影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位电路采用按键复位方式。按键复位电路如图5所示。 图5 复位电路(四)按键输入电路键盘被分为编码式键盘和非编码式键盘两种,键盘上闭合键的识别是由专用的硬件译码器实现的,并且产生键编号和键值两种方式,称为编码式键盘;而靠软件识别的是非编码式键盘方式。在单片机组成的测控系统中,通常用得
12、最多的是非编码键盘。在这里我们采用的就是非编码式键盘。键盘的连接方式采用独立连接式,这样的连接方式能够简化程序的编写。由S2来控制电路的开始和结束,S3和S4分别控制温度的上限和下限,当由DS18B20采集到的温度高于上限温度或下限温度,报警电路报警,温度控制电路开始工作。如图6所示。图6 按键输入(五)LED电路采用LED作为系统的数据显示器具有价格低、性能稳定和响应速度快等特点。LED显示方式有静态显示、动态显示和串口显示。为了节省系统本身的硬件资源,在这里LED的显示方式采用动态显示方式。所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),每隔一段时间点亮一次。动态显示器的优点是节省硬
13、件资源,成本较低。由单片机P00,P01,P2,P03,P04,P05,P06控制数码管的段码显示,决定数码管显示的字符,由P2.0,P2.1,P2.2,P2.3控制输出数码管的位码,决定哪个数码管显示。如图7所示。(七)温度控制电路控制电路是作为单片机系统的后向通道,他的作用是将单片机处理后的数字控制信号用输出口输出,并将该数字输出的信号用于对控制对象的控制。由于单片机的输出信号电平很低,无法用来直接驱动外围设备进行工作,因此,在单片机的后向通道中往往需要外围设备的驱动、信号电平的转换以及隔离放大等技术来支持。本次设计采用继电器作为控制电路的主要器件,通过继电器可以实现直流信号控制交流负载的
14、功能,从而实现单片机系统的控制功能。单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。继电器电路中有一个三极管9012的保护电路,即将一个二极管反向接到三机管的两端。当温度未达到要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源与电热器接通,电热器加热,温度慢慢升高。如图9所示。图10 温度过高四、软件设计 (一)主程序流程图系统的软件部分由主程序流程图、中断子程序流程图、按键流程图和显示流程图四部分组成。系统的主程序流程图如图11,当有信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计目的。图11系统程序流程图主程序温度采集部分,将采集到的温度进行处理,送给数码管
15、显示,同时对测到的温度和设定的温度范围进行比较,如果在正确的温度范围内,则继续采集,如果低于设定的温度下限,启动加热器进行加热,如果高于设定的温度上限,启动风扇降温,使得温度在正常的范围内。(二)中断程序流程图图12为中断子程序的流程图,这个主要是为了保障整个软件程序在运行时可以达到中断,从而使系统进一步达到完善。中断程序是为了处理过程中重要的及时请求。在一般情况下,CPU只是不断的循环运行主程序(包括必要的子程序)。当中断事件发生时,CPU必须中断目前运行的指令(挂起),及时地运行中断程序。中断事件处理完毕后,再从断点开始继续运行原来的程序指令。在本系统中读 DS18B20的温度的占用CPU
16、时间较长,需要先进行中断保护才行。不然其他部分不能很正常的工作。图12 中断程序流程图(三)显示流程图图13为系统的显示流程图。主要是通过对传输过来的信号进行显示后,给操作者提供提示。已达到为本系统提供对温度的显示和监控的目的。图13 显示流程图结束语经过这次毕业设计,我觉得自己学到了不少东西。归纳起来,主要有以下几点:1作为一名应用电子专业的学生,大学三年多的时间以来我们都是在学习电子理论方面的最最基础的知识,从没有真正地去应用和实践。由于平时我对电子方面的了解比较感兴趣,平时花了很多时间研究各种自己感兴趣的电子知识,具有一定的实际操作能力,但是经过这次毕业设计,我接触并且了解到了更多平时没
17、有接触到的仪器设备、元器件以及相关的使用调试经验,发现了自己很多不足之处。我还体会到了所学理论知识的重要性:知识掌握得越多,设计得就更全面、更顺利、更好。2了解一项自己从没有研究的一个课题时,需要的是你的耐心和信心。只有我们有足够的恒心去专研,才能完美的完成毕业设计。毕业设计把我们从学校里学到的理论知识合理的运用到实践里,这不仅仅能开拓我们的视野,还增强了自己的学习能力。巩固了我们的基础知道,培养了我们的创新能力,也教会了我们团结合作的意志。 3学会了怎么查资料,毕业论文是一个很大的课题,里面需要方方面面的知识,一个人不可能什么都会,什么都懂,所以这就需要我们去查询这些资料,从哪找,怎么找。因
18、此当我们在做毕业设计时,要有针对性的去查找,然后加以吸收,运用到自己的脑海里。这对我们将来的学习和工作会有很大的作用。4实践和学习能力得到了进一步的提高,也获得了很多调试经验。5毕业设计对以前学过的理论知识起到了回顾过滤作用,增强了我们对理论指导的吸收和理解能力。6毕业设计培养了我们严肃认真和实事求是的工作态度,对我们将来的发展具有很大的积极意义。不仅培养了我们吃苦耐劳的精神,还增强了我与同学之间的友谊,一起努力,一起拼搏,在这里我要感谢我的指导老师和所有我的同学们!附录一 原理图附录二 PCB图附录三 源程序ORG 0000HTEMPER_L EQU 29HTEMPER_H EQU 28HF
19、LAG1 EQU 38H;是否检测到DS18B20标志位A_BIT EQU 20H ;数码管个位数存放内存位置B_BIT EQU 21H ;数码管十位数存放内存位置XS EQU 30HMOV A,#00HMOV P2,AMAIN:LCALL GET_TEMPER;调用读温度子程序MOV A,29HMOV B,ACLR CRLC ACLR CRLC ACLR CRLC ACLR CRLC ASWAP AMOV 31H,AMOV A,BMOV C,40H;将28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,ALCAL
20、L DISPLAY;调用数码管显示子程序AJMP MAIN; 这是DS18B20复位初始化子程序INIT_1820:SETB P1.0NOPCLR P1.0;主机发出延时537微秒的复位低脉冲MOV R1,#3GET_TEMPER:SETB P1.0LCALL INIT_1820;先复位DS18B20JB FLAG1,TSS2RET ; 判断DS1820是否存在?若DS18B20不存在则返回TSS2:MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待A
21、D转换结束,12位的话750微秒LCALL DISPLAYLCALL INIT_1820;准备读温度前先复位MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCARET; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据 READ_18200:MOV R4,#2 ; 将温度高位和低位从DS18B20中读出MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:MOV R2,#8;数据一共有8位RE01:CLR CSETB P1.
22、0NOPNOPCLR P1.0NOPNOPNOPSETB P1.0MOV R3,#9RE10: DJNZ R3,RE10MOV C,P1.0MOV R3,#23RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RETDISPLAY:CLR CSUBB A, #30JNB CY, T1MOV A, BCLR CSUBB A,#25JNB CY, XIANSHICLR P1.1LJMP XIANSHIT1:CLR P1.2XIANSHI:MOV A,BMOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT
23、,A ;十位在AMOV A_BIT,B ;个位在BMOV R0,#4 CLR C;多加的DPL1: MOV R1,#250 ;显示1000次DPLOP:MOV DPTR,#NUMTAB1MOV A,A_BIT ;取个位数MOVC A,A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码CLR P2.1 ;开个位显示ACALL D1MS ;显示1MSSETB P2.1MOV DPTR,#NUMTABMOV A,B_BIT ;取十位数MOVC A,A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.2 ;开十位显示 ACALL D1MS ;显示
24、1MSSETB P2.2JC XSW;多加的MOV A,31HMOV B,#160DIV ABMOV XS,BXSW:MOV A,XS MOVC A,A+DPTRMOV P0,A CLR P2.0 ACALL D1MS SETB P2.0SETB C;多加的DJNZ R1,DPLOP ;250次没完循环DJNZ R0,DPL1 ;4个250次没完循环RET;1MS延时(按12MHZ算)D1MS: MOV R7,#80 DJNZ R7,$RETNUMTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,7FH,7FH,7FH,7FH,7FH,7FHNUMT
25、AB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFHEND参考文献1 张毅刚.单片机原理及应用M.高等教育出版社,2004.2 曹巧媛.单片机原理及应用(第二版)M.北京:电子工业出版社,2002.3 何力民编.单片机高级教程M.北京:北京航空大学出版社,2000.4 金发庆等编.传感器技术与应用M.北京机械工业出版社,2002.5 赵娜,赵刚,于珍珠等.基于51 单片机的温度测量系统J. 微计算机信息,2007.6 胡寿松自动控制原理M北京:国防工业出版社,2000.7 周润景,张丽娜基于PROTEUS 的电路及单片机系统设计与仿真M北京:航空航天大学出版社,2006.8 王忠飞,胥芳MCS-51 单片机原理及嵌入式系统应用M西安:西安电子科技大学出版社,2007.9 沙占右.王晓军.数字化测量M.北京:机械工业出版社,2009.10 索雪松等.传感器与信号处理电路J.北京:中国水利水电出版社,2008.致 谢专业排版,专业论文写作修改 降低论文重复率 制作答辩幻灯片免费提供论文下载 论文指导等服务免费咨询请联系淘宝旺旺:文交天下友淘宝搜索 文天下新浪微博 文交天下友_修改论文
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1