毕业设计(论文)单片机智能温度报警系统.doc

上传人:laozhun 文档编号:3977961 上传时间:2023-03-30 格式:DOC 页数:21 大小:2.54MB
返回 下载 相关 举报
毕业设计(论文)单片机智能温度报警系统.doc_第1页
第1页 / 共21页
毕业设计(论文)单片机智能温度报警系统.doc_第2页
第2页 / 共21页
毕业设计(论文)单片机智能温度报警系统.doc_第3页
第3页 / 共21页
毕业设计(论文)单片机智能温度报警系统.doc_第4页
第4页 / 共21页
毕业设计(论文)单片机智能温度报警系统.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《毕业设计(论文)单片机智能温度报警系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)单片机智能温度报警系统.doc(21页珍藏版)》请在三一办公上搜索。

1、编号(学号):0301080135私立华联学院毕 业 论 文 (设 计)( 08 届大专)题 目: 单片机智能温度报警系统 系 别: 电子信息工程系 专 业: 电子信息工程技术 姓 名: 指导教师: 完成日期: 2010 年 4 月 21 日摘要:介绍了单总线数字温度传感器DSI8B20模块的特性,利用DS18B20设计了一种基于STC89C52单片机的智能温度报警系统。该智能温度报警系统以STC公司生产的STC89C52为控制器,结构简单、测温准确。软件使用模块化结构并对温度进行刷新显示和报警处理。Abstract: The single-bus digital temperature se

2、nsor DSI8B20 module features, the use of DS18B20 designed based on STC89C52 of Intelligent temperature alarm system. The intelligent temperature alarm system to STC produced STC89C52 the controller structure is simple, accurate temperature measurement. Software uses a modular structure. Refresh and

3、temperature display and alarm processing.关键词: 单片机 DS18B20 温度传感器 数字温度计 STC89C52一、 引言在工业生产中,温度的控制尤其重要,因而对温度报警系统的需求也越来越大。如何设计一款成本低廉、测量准确、操作简单的智能温度报警系统成为一个重要问题。在本次设计中,整个系统以SCT98C52为核心。温度传感器DS18B20完成环境温度转换功能。其输出为数字形式,可以直接给单片机进行处理;键盘为简单的三键控制,处理方式采用中断方式,减少了占用CPU时间。这种设计的成本较小,结构简单、操作方便,并且测量也很准确,能够满足工业生产的需要 温

4、度控制,在工业自动化控制中占有非常重要的地位。单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。将单片机控制方法运用到温度控制系统中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。现代自动控制越来越朝着智能化发展,在很多自动控制系统中都用到了工控机,小型机、甚至是巨型机处理机等,当然这些处理机有一个很大的特点,那就是很高的运行速度,很大的内存,大量的数据存储器。但随之而来的是巨额的成本。在很多的小型系统中,处理机的成本占系统成本的比例高达20%,而对于这些小型的系统来说,配置一个如此高速

5、的处理机没有任何必要,因为这些小系统追求经济效益,而不是最在乎系统的快速性,所以用成本低廉的单片机控制小型的,而又不是很复杂,不需要大量复杂运算的系统中是非常适合的。 温度控制,在工业自动化控制中占有非常重要的地位,如在钢铁冶炼过程中要对出炉的钢铁进行热处理,才能达到性能指标,塑料的定型过程中也要保持一定的温度。随着科学技术的迅猛发展,各个领域对自动控制系统控制精度、响应速度、系统稳定性与自适应能力的要求越来越高,被控对象或过程的非线性、时变性、多参数点的强烈耦合、较大的随机扰动、各种不确定性以及现场测试手段不完善等,使难以按数学方法建立被控对象的精确模型的情况。 随着电子技术以及应用需求的发

6、展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。伴随着科学技术的发展,电子技术有了更高的飞跃,我们现在完全可以运用单片机和电子温度传感器对某处进行温度检测,而且我们可以很容易地做到多点的温度检测,如果对此原理图稍加改进,我们还可以进行不同地点的实时温度检测和控制。二、设计目的学习了单片机课程之后,为了加深对理论知识的理解,学习理论知识在实际中的运用,加深自己的动手能力,我通过查找资料,应用STC89C52单片机和DS18B20温度芯片制作了一个智能温度报警系统。提高对单片机的认识,提高焊接能力。三、使用中央单元处理器介绍1、主控芯片STC89C52 S

7、TC89C52 是一种带8K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Eras-able Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000 次。该器件采用STC高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8 位CPU 和闪烁存储器组合在单个芯片中,STC的STC89C52是一种高效微控制器。STC89 单片机为嵌入式控制系统提供了一种灵活性高且价廉的方案。2 、DS18B20数字温度传感器DSI8B20 是DALLA

8、S 公司的最新单线数字温度传感器,它体积小、经济。是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。它的测量温度范围为一55 +125。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持355 V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。DSI8B20 可以程序设定912 位的分辨率,精度为05。可以选择更小的封装方式,更宽的电压适用范围。分辨率设定及用户设

9、定的报警温度存储在EPROM 中,掉电后依然保存。DS18B20 的性能是新一代产品中最好的,性能价格比也非常出色,继“一线总线”的早期产品后, DSI8B20开辟了温度传感器技术的新概念。DS18B20 和DS18B22 使电压特性及封装有更多的选择,让用户可以构建适合自己的经济的测温系统。S18B20 内部结构主要由4 部分组成:64 位光刻ROM, 温度传感器、非挥发的温度报警触发器TH 和2TL,配置寄存器。 DSI8B20的管脚排列如图1所示。本次设计智能温度报警系统的温度采集就由DSI8B20 完成。将DSI8B20 的GND 脚接地,VDD 脚接高电平,而单总线DQ 脚接单片机的

10、外部中断1 脚,具体的采集电路DSI8B20的管脚排列图1但在系统调试时也出现了很多问题。第一个问题是温度输出总是85。后来经过反复实验才发现DSI8B20从测温结束到将温度值转换为数字量需要一定的转换时间。这是必须保证的,不然会出现转换错误的现象。第二个问题是在实际使用中发现的,就是要使电源电压保持在5V左右,若电源电压过低,会使所测得的温度与实际温度出现偏高现象。四、系统软件设计本设计智能温度报警系统由温度采集、信号处理、温度监测、输出控制四部分组成。它通过预先设在单片机中的高低温度值来对非常温度值进行报警,从DSI8B20 采集到的温度经信号调理电路处理后直接送入单片机进行刷新。微控制器

11、根据信号数据及设定的各种控制参数,按照嵌入的软件控制规律执行计算与处理,自动显示温度值、输出相应的控制信号,并根据当前状态输出正常、报警等信号,同时将各种数据通过数码管进行显示监控。系统的软件设计流程图如图2 所示。图2 软件设计流程图1.1、方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。1.2、方

12、案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。2.1系统总体设计温度计电路设计总体设计方框图如图3所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。 STC89C52LED显示DS18B20温 度

13、传 感 器单片机复位时钟振荡报警温度调整键蜂鸣器,指示灯图31总体设计方框图图32系统仿真图2.2系统模块系统由单片机最小系统、显示电路、按键、温度传感器等组成。如图4所示图4 2.2.1 主控制器单片机STC89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用电池供电。晶振采用12MHZ。如图5所示复位电路采用上电加按钮复位。如图6所示图5晶振电路图6复位电路2.2.2 显示电路显示电路采用4位共阴极LED数码管,P0口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。P2口的低四位作为数码管的位选端。采用动态扫

14、描的方式显示。如图7所示图7 数码管显示电路2.2.3温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下:1、独特的单线接口仅需要一个端口引脚进行通信;2、多个DS18B20可以并联在惟一的三线上,实现多点组网功能3、无须外部器件;4、可通过数据线供电,电压范围为3.05.5;5、零待机功耗;6、温度以或位数字;7、用户可定义报警设置;8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9、负电压

15、特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图8所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。图8 温度传感器与单片机的连接2.2.4报警温度调整按键本系统设计三个按键,

16、采用查询方式,一个用于选择切换设置报警温度和当前温度,另外两个分别用于设置报警温度的加和减。均采用软件消抖。如图9所示图9 按键电路3系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序,按键扫描处理子程序等。3.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图10所示。初始化读取温度设置键是否按下读出温度值温度计算处理显示数据刷新发温度转换开始命令NY调用显示子程序设置报警温度图10 主程序流程图 3.2读出温度子

17、程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图11示3.3温度转换命令子程序发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图12所示Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY 图12 温度转换流程图图11 读温度流程图3.4 计算温度子程序计算

18、温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图13所示。3.5 显示数据刷新子程序显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。程序流程图如图14。 开始温度零下?温度值取补码置“1”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“0”标志NY温度数据移入显示寄存器分离显示温度NY标志位为1?Y最高位显示“”最高为显示分理出的数据 结束 图13计算温度流程图 图14显示数据刷新流程图3.6按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否则显示当前温度

19、。如下图15示。设置键按下增加键是否按下减少键是否按下显示切换标志位是否为“0”调用显示子程序报警温度加1报警温度减1YNYNYN图15 按键扫描处理子程序4 实验仿真进入protuse后,连接好电路,并将程序下载进去。将DS18B20的改为0.1,数码管显示温度与传感器的温度相同。如图16所示图16 温度显示仿真当再次按下SET键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,按ADD或DEC分别对报警温度进行加一或减一。如图17所示图17 温度调试仿真当第三次按下SET键时,退出温度报警线设置。显示当前温度。五、电路实物图使用元器件:主控器STC89C52一片、DS18B20温度

20、测量传感器一片、30P瓷片电容2个、1K电阻5个、100欧电阻8个10K电阻1个、8550三极管5个,12M晶体1片、按钮开关1个、复位按钮3个、蜂鸣器1个、离子电池1个、USB接口1个、万能电路板一块、5V电源一个、四位七段数码管1块、导线若干。 六、 结束语实验表明:该智能温度报警系统结构简单、测温准确,具有一定的实际应用价值。该智能温度报警系统只是DSI8B20在温度控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短信息的方式发送给用户,使用户能够随时对温度进行监控。此外,还能广泛地应用于各种工业生产领域,如建筑,仓储等行业。 通过这

21、次对数字温度计的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字温度计的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。在焊接过程中我曾将温度传感器的电源、地焊反啦,导致温度传感器急剧发热,后经观察和查询资料才得以改正。从这次的课程

22、设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。特别是对单片机C语言产生了更深的兴趣,能用Portel,PROTEUS等专业软件,掌握了电子电路调试的方法,能独立解决设计与调试过程中出现的一般问题,能正确选用元器件与材料,能对所设计电路的指标和性能进行测试并提出改进意见,能查阅各种有关手册和正确编写设计报告。由于这次的设计是一个人单独作一个课题,所以我是采用以自学为主的学习方法。在学完模拟电子技术基础和数字电子技术基础课程之后,还要对单片机基础的深入研

23、究。在复习和课程设计任务有关的单元电路,理清头绪,按照电子电路的一般设计步骤进行设计。一个人做有点困难,途中不知碰到了多少难题,有些问题需要请教老师和同学,在解决这些实际难题中我的动手能力和知识巩固都得到了很大的提高。程序名称:DS18B20温度测量、报警系统简要说明:DS18B20温度计,温度测量范围099.9摄氏度 可设置上限报警温度、下限报警温度 即高于上限值或者低于下限值时蜂鸣器报警 默认上限报警温度为38、默认下限报警温度为5 报警值可设置范围:最低上限报警值等于当前下限报警值 最高下限报警值等于当前上限报警值 将下限报警值调为0时为关闭下限报警功能C语言程序: #include #

24、include DS18B20.h #define uint unsigned int#define uchar unsigned char /宏定义#define SETP3_1 /定义调整键#define DECP3_2 /定义减少键#define ADDP3_3 /定义增加键#define BEEP P3_7 /定义蜂鸣器bit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P27; /小数点uchar x=0; /计数器signed char m; /温度值全局变量uchar n; /温度值全局变量uchar set_st=0

25、; /状态标志signed char shangxian=38;/上限报警温度,默认值为38signed char xiaxian=5; /下限报警温度,默认值为38uchar codeLEDData=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;/*延时子程序*/void Delay(uint num)while( -num );/*初始化定时器0*/void InitTimer(void)TMOD=0x1;TH0=0x3c;TL0=0xb0; /50ms(晶振12M)/*定时器0中断服务程序*/void timer0(void

26、) interrupt 1TH0=0x3c;TL0=0xb0;x+;/*外部中断0服务程序*/void int0(void) interrupt 0EX0=0; /关外部中断0if(DEC=0&set_st=1)shangxian-;if(shangxianxiaxian)shangxian=xiaxian;else if(DEC=0&set_st=2)xiaxian-;if(xiaxian99)shangxian=99;else if(ADD=0&set_st=2)xiaxian+;if(xiaxianshangxian)xiaxian=shangxian;/*读取温度*/void chec

27、k_wendu(void)uint a,b,c;c=ReadTemperature()-5;/获取温度值并减去DS18B20的温漂误差a=c/100; /计算得到十位数字b=c/10-a*10; /计算得到个位数字m=c/10; /计算得到整数位n=c-a*100-b*10; /计算得到小数位if(m99)m=99;n=9; /设置温度显示上限 /*显示开机初始化等待画面*/Disp_init() P2 = 0xbf; /显示-P1 = 0xf7;Delay(200);P1 = 0xfb;Delay(200); P1 = 0xfd;Delay(200);P1 = 0xfe;Delay(200)

28、;P1 = 0xff; /关闭显示/*显示温度子程序*/Disp_Temperature() /显示温度P2 =0xc6; /显示CP1 = 0xf7;Delay(300);P2 =LEDDatan; /显示个位P1 = 0xfb;Delay(300);P2 =LEDDatam%10; /显示十位DIAN = 0; /显示小数点P1 = 0xfd;Delay(300);P2 =LEDDatam/10; /显示百位P1 = 0xfe;Delay(300);P1 = 0xff; /关闭显示/*显示报警温度子程序*/Disp_alarm(uchar baojing)P2 =0xc6; /显示CP1

29、= 0xf7;Delay(200);P2 =LEDDatabaojing%10; /显示十位P1 = 0xfb;Delay(200);P2 =LEDDatabaojing/10; /显示百位P1 = 0xfd;Delay(200);if(set_st=1)P2 =0x89;else if(set_st=2)P2 =0xc7; /上限H、下限L标示P1 = 0xfe;Delay(200);P1 = 0xff; /关闭显示/*报警子程序*/void Alarm()if(x=10)beep_st=beep_st;x=0;if(m=shangxian&beep_st=1)|(mxiaxian&beep

30、_st=1)BEEP=0;else BEEP=1;/*主函数*/void main(void) uint z;InitTimer(); /初始化定时器EA=1; /全局中断开关TR0=1;ET0=1; /开启定时器0IT0=1; IT1=1;check_wendu();check_wendu();for(z=0;z300;z+)Disp_init(); 私立华联学院毕业论文(设计)任务书论文(设计)题目单片机智能温度报警系统下发任务日期2011年3 月1 日学生姓名梁旭指导教师冯金成一、论文(设计)主要内容论文形式:科技论文、实验报告、科研成果总结等二、论文(设计)的基本要求插图:不少于5幅三、论文(设计)工作进度安排阶段论文(设计)各阶段名称日期1开题03.142写草稿03.213修改、定稿、画图4.084提交、打印4.215答辩5.056备注:四、应收集的资料及主要参考文献(指导教师指定)1 曾令琴 模拟电子技术 人民邮电出版社2 李晓荃 单片机原理与应用 电子工业出版社3 电子报 人民邮电出版社4 何立民 单片机的语言应用程序设计 北京航空航天大学出版社 5 网上资料指导教师评语: 指导教师签字: 年 月 日评审小组意见:评定成绩: 评审小组负责人签字: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号