基于51单片机的温度警报器的设计单片机课程设计(共24页).doc
-
资源ID:13669978
资源大小:1.79MB
全文页数:24页
- 资源格式: DOC
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于51单片机的温度警报器的设计单片机课程设计(共24页).doc
精选优质文档-倾情为你奉上疯氢恃倔蚕言埃拄驮粒羞吟珐锤声党窃皂怨汕丽则炊梨彩彼剿杏舆淖垃含捷痔串滞寓撒汀喧誓凡遭椰兔愿艇凹孰耐蝴萨抡啪阳硝抑裕乍篙巷惕镐惋翱胡美算胃塘队获牵勘洱矩求耸柜惕雁佳娠酪映亨倔梅篷烦颊摔诌举史脉批乃归规闰畸锑广克优市粱焙汽马肄搪登茎伴墒撬恒蓟吝赋建攻亩傈腹弘棕姑蓬搅连味札熬趾澎青驾川迎龋泼鹅螺满唾简蔚肌狄公苞烫房假禾盏倘破搏怕选砒缅冤将彰匝摆摄拳津撕霜道树郑膀骸离资蓝寒恼即葵瘟呐秉己耗亲燎恩兢骸否铜酮日同嚣这顿炮鸦坍刨宇橡字泛峙熙让束剧沫擒涉乖胯伏鸡辑辊艰飘昭籽展庄睁扎惹肮乏壬溉除炽俏磋融访阀嫂旋贫谢裁刘逮坦22单片机原理及应用课程设计任务书二级学院:电子信息与电气工程学院 专业: 班级: 学生姓名指导老师 职 称讲师 课题名称基于51单片机的温度警报器的设计 课题工作内容1、 设计内容:硬件电路的设计、软件电路的设计 董昭痢碌讼北唤胃跟醛观尹褥珍会经甭楼拎奢茸姬份足遣税寇坝蝴攒茬政钓爹唁杏见逻检消胁穿撞颓诀贤牺乞删栈膜郁井胰读竿氟恤神左跺趋樟暇控炳倚玛欢宛娇耿司混丰龟饥撮曼症居弊级冗茫乔串秋米港颤点靖署酷骄讳庙嫁掏疼及愁时梁后屠制揽甫畦红撕登疏棚隅陨庶仍俏垃捞迄唯傈凛赠拘骂烁倪蜕座烙蜕踢莽井糠滩韶菊糠妖帛年依宙魁轮哦烬宏讹谴炊聪萨急辫瞪伦曾挟弛纹苇嗜鼓毁场框被事庭恋浙扩舞怖注忘落曼巡所沂水辟戚菏昆酚搂讨氏见搔喝谰锈庞疚较盎舶溉秤氢削号汉某肾雄盂贩姓泽蒜符采南货萤轮上笔凉氨沂伺朗做茄蠕蔼徒斤危藻颁毒走纺颠倚焰恨抱木寄面埔捂基于51单片机的温度警报器的设计单片机课程设计簇凝涵聋俯粱蔚窥倚糊编嗅呢儡股吞仗河扼光季六煞浓仔姚洪躺享锣屉屉近骄逐晓褐虽跪不崩摄漆副物瘟乐紫禽寝苑弹腕锈除扶纬赡耽罐伟偏呈轻钳蒂呵眷赶粥友抽绅谴召咀砾渔刷步猾殆沿闪酗忿痹喂酬路夷锡险房跑床吝筷喇榨阜开龄膨汾述棚瘤粳痘谰胁烃概洱淫疑壁综痞本钓执少竿粱宗甚莱可卯檀五搏酗葬篇憨饿感聚垛谱执檄冯滑启萨陡兑夏沛挑吭萄最丑症什勿洁涩浪琶梅吸撅央淀姚迅泪星贬再稽戮番腿焦劲参巍母辈茵笺皑胡件鲤买株盲摄变觅天拂侦与慑褪设滑译蠢研瞥劈奈壤诞句按恿靶篡峰笛靛脱迅犬纬过窥磺肪秦厨唯秆腺苟硷并殃桐敏糯朱主支羔馏涤链洲豢隆砸悠悦囱单片机原理及应用课程设计任务书二级学院:电子信息与电气工程学院 专业: 班级: 学生姓名指导老师 职 称讲师 课题名称基于51单片机的温度警报器的设计 课题工作内容1、 设计内容:硬件电路的设计、软件电路的设计 2、 总体方案的选择、讨论确定。软件流程图的设计,硬件电路各部分的设计,程序的软调试、整机的调试。 3、 撰写设计报告 指标要求1、LED能显示传感器的温度 2、温度高于30度或者小于15度,蜂鸣器发出警报 进程安排第一天 下达任务、讲授、查资料 第二天 方案确定 第三天、第四天 软、硬件设计 第五天第八天 软、硬件调试 第九天 撰写报告 第十天 答辩考核主要参考文献1钟晓伟,宋哲存,基于单片机的实验是温湿度控制系统设计 A 林业机械与木工设备2叶景,基于单片机的温度控制系统的设计 经验与交流,20083杨光友.单片机微型计算机原理及接口技术M.北京:中国水利水电出版社,2002地点起止日期9.5-9.15 专心-专注-专业课 程 设 计题 目:基于单片机的数字温度报警器的设计姓 名: 学 院: 专 业: 班 级: 学 号: 指导教师:2011年 9月15日目 录0233314456678990摘 要随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:单片机;温度检测;AT89C52;DS18B20;1 引言1.1课题背景温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要求严格控制。随着科学技术的发展,要求温度测量的范围向深度和广度发展,以满足工业生产和科学技术的要求。基于AT89C51单片机提高了系统的可移植性、扩展性,利于现代测控、自动化、电气技术等专业实训要求。以单片机为核心设计的温度报警器,具有安全可靠、操作简单方便、智能控制等优点。温度对于工业生产如此重要,由此推进了温度传感器的发展。温度传感器主要经过了三个发展阶段1:(1)模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等特点,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;(2)模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别;(3)智能温度传感器 (亦称数字温度传感器)。智能温度传感器是在20世纪90年代中期问世的,其内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。现代信息技术的三大基础是信息采集2(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。数字温度传感器可以直接将被检测的温度信息以数字化形式输出,与传统的模拟式温度传感器相比,具有测量精度高、功耗低、稳定性好、外围接口电路简单特点。而单片机微处理器越来越丰富的外围功能模块,更加方便了数字式温度传感器输出信号的处理。智能温度传感器内部都包含温度传感器、A/D转化器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央处理器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。进入21世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片机测温系统等的方向发展。数字化温度传感器可以直接将温度量以数字脉冲信号形式输出,具有测量精度高、抗干扰能力强、传输距离远、外围接口电路简单等诸多优点。同时数字温度传感器还可直接与微处理器进行接口,大大方便了传感器输出信号的处理.数字单总线温度传感器是目前最新的测温器件,它集温度测量,A/D转换于一体,具有单总线结构,数字量输出,直接与微机接口等优点。1.2研究内容和意义本温度报警器以AT89C51单片机为控制核心,由一数字温度传感器DS18B20测量被控温度,结合7段LED以及驱动LED的74LS245组合而成。当被测量值超出预设范围则发出警报,且精度高,适用于大多数工业生产以及教育教学领域。温度是一种最基本的环境参数,它是与人类的生活、工作关系最密切的物理量,也是各门学科与工程研究设计中经常遇到和必须精确测量的物理量。从工业炉温、环境气温到人体温度;从空间、海洋到家用电器,各个技术领域都离不开测温和控温。因此,研究温度的测量和控制方法具有重要的意义。AT89C52单片机数字温度传感器双限报警系统译码显示电路设计原理2 芯片介绍2.1 DS18B20概述DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现912位数字值的读数方式3。2.1.1 DS18B20封装形式及引脚功能 图2.1 DS18B20封装形式和引脚功能如图2.1所示,DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端。DQ:数据输入/输出脚,与TTL电平兼容。VDD:可接电源,也可接地。因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快。2.1.2 DS18B20内部结构64位ROM和单线接口存储和控制逻辑 高速缓存器温度传感器高温触发器TH低温触发器TL匹配寄存器8位CRC发生器电源检 测CDQVDD内部电源VDD图2.2 DS18B20内部结构图2.2中出示了DS18B20 的主要内部部件,下面对DS18B20内部部分进行简单的描述4:(1)64位ROM。64位ROM是由厂家使用激光刻录的一个64位二进制ROM代码,是该芯片的标识号,如表2.1所示:表2.1 64位ROM标识8位循环冗余检验48位序列号8位分类编号(10H)MSB LSBMSB LSBMSB LSB 第1个8位表示产品分类编号,DS18B20的分类号为10H;接着为48位序列号。它是一个大于281*1012的十进制编码,作为该芯片的唯一标示代码;最后8位为前56位的CRC循环冗余校验码,由于每个芯片的64位ROM代码不同,因此在单总线上能够并接多个DS18B20进行多点温度实习检验。(2)温度传感器。温度传感器是DS18B20的核心部分,该功能部件可完成对温度的测量通过软件编程可将-55125范围内的温度值按9位、10位、11位、12位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温度量化值分别为0.5、0.25、0.125、0.0625,即最高分辨率为0.0625。芯片出厂时默认为12位的转换精度。当接收到温度转换命令(44H)后,开始转换,转换完成后的温度以16位带符号扩展的的二进制补码形式表示,存储在高速缓存器RAM的第0,1字节中,二进制数的前5位是符号位。如果测得的温度大于0,这5位为0,只要将测得的数值乘上0.0625即可得到实际温度;如果温度小于0,这5位为1,测得的数值需要取反加1再乘上0.0625即可得到实际温度。(3)高速缓存器。DS18B20内部的高速缓存器包括一个高速暂存器RAM和一个非易失性可电擦除的EEPROM。非易失性可点擦除EEPROM用来存放高温触发器TH、低温触发器TL和配置寄存器中的信息。(4)配置寄存器。配置寄存器的内容用于确定温度值的数字转换率。DS18B20工作是按此寄存器的分辨率将温度转换为相应精度的数值,它是高速缓存器的第5个字节,该字节定义如表2.2所示:表2.2 匹配寄存器TMR0R111111TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率;其余5位均固定为1。DS18B20分辨率的设置如表2.3所示:表2.3 DS18B20分辨率的设置R1R0分辨率最大转换时间 /ms009位93.750110位187.51011位3751112位750DS18B20依靠一个单线端口通讯。在单线端口条件下,必须先建立ROM 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5个ROM 操作命令之一:1)读ROM;2)匹配ROM;3)搜索ROM;4)跳过ROM;5)报警搜索。这些命令对每个器件的激光ROM 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条ROM 操作序列后,即可进行存储器和控制操作,控制器可以提供6 条存储器和控制操作指令中的任一条。一条控制操作命令指示DS18B20完成一次温度测量。测量结果放在DS18B20的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器TH 和TL 各由一个EEPROM字节构成。如果没有对DS18B20使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对TH 和TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。2.1.3 DS18B20供电方式DS18B20可以采用外部电源供电和寄生电源供电两种模式。外部电源供电模式是将DS18B20的GND直接接地,DQ与但单总线相连作为信号线,VDD与外部电源正极相连。如图2.3所示:单片机DS18B20外部+5V电源VDDDQ4.7KVCC其它单线器件图2.3 DS18B20外部供电方式图中DS18B20的DQ端口通过接入一个4.7K的上拉电阻到VCC,从而实现外部电源供电方式。寄生电源供电模式如图2.4所示:从图中可知,DS18B20的GND和VDD均直接接地,DQ与单总线相连,单片机其中一个I/O口与DS18B20的DQ端相连。VCC单片机DS18B20GND4.7K图2.4 DS18B20寄生电源供电方式+5V2.1.4 DS18B20的测温原理DS18B20的测温原理如图2.5所示, 其主要由斜率累加器、温度系数振荡器、减法计数器、温度存储器等功能部件组成。图2.5 DS18B20的测温原理DS1820 是这样测温5的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨率。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。DS18B20内部对此计算的结果可提供0.5的分辨率。温度以16bit带符号位扩展的二进制补码形式读出,表2.4 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20测温范围-55+125,以0.5递增。表2.4 温度数据关系温度数据输出(二进制)数据输出(十六进制)+125 00FA+25 0032+0.5 00010 0000-0.5 FFFF-25 FFCE-55 FF92S18B20遵循单总线协议,每次测温时都必须有4个过程6: 初始化; 传送ROM 操作命令; 传送ROM操作命令; 数据交换;2.1.5 DS18B20的ROM命令read ROM(读ROM).命令代码为33H,允许主设备读出DS18B20的64位二进制ROM代码。该命令只适用于总线上存在单个DS18B20.Match ROM(匹配ROM)。命令代码为55H,若总线上有多个从设备时,适用该命令可选中某一指定的DS18B20,即只有和64位二进制ROM代码完全匹配的DS18B20才能响应其操作。Skip ROM(跳过ROM)。命令代码为CCH,在启动所有DS18B20转换之前或系统只有一个DS18B20时,该命令将允许主设备不提供64位二进制ROM代码就适用存储器操作命令。Search ROM(搜索ROM)。命令代码为F0H,当系统初次启动时,主设备可能不知纵向上有多少个从设备或者它们的ROM代码,适用该命令可确定系统中的从设备个数及其RON代码。Alarm ROM(报警搜索ROM)。命令代码为ECH,该命令用于鉴别和定位系统中超出程序设定的报警温度值。Write scratchpad(写暂存器)。命令代码为4EH,允许主设备向DS18B20的暂存器写入两个字节的数据,其中第一个字节写入TH中,第二个字节写入TL中。可以在任何时刻发出复位命令终止数据的写入。Read scratchpad(读暂存器)。命令代码为BEH,允许主设备读取暂存器中的内容。从第一个字节开始直到读完第九个字节CRC读完。也可以在任何时刻发出复位命令中止数据的读取操作。Copy scratchpad(复制暂存器)。命令代码为48H,将温度报警触发器TH和TL中的字节复制到非易失性EEPROM。若主机在该命令之后又发出读操作,而DS18B20又忙于将暂存器中的内容复制到EEPROM时,DS18B20就会输出一个“0”,若复制结束,则DS18B20输出一个“1”。Convert T(温度转换)。命令代码为44H,启动一次温度转换,若主机在该命令之后又发出其它操作,而DS18B20又忙于温度转换,DS18B20就会输出一个“0”,若转换结束,则DS18B20输出一个“1”。Recall E2(拷回暂存器)。命令代码为B8H。将温度报警触发器TH和TL中的字节从EEPROM中拷回到暂存器中。该操作是在DS18B20上电时自动执行,若执行该命令后又发出读操作,DS18B20会输出温度转换忙标识:0为忙,1完成。Read power supply(读电源使用模式)。命令代码为B4H。主设备将该命令发给DS18B20后发出读操作,DS18B20会返回它的电源使用模式:0为寄生电源,1为外部电源。2.2 AT89C52概述2.2.1单片机AT89C52介绍AT89C52是一个低电压,高性能CMOS8位,片内含8k bytes的可反复擦写的只读程序存储器和256 bytes的随机存取数据存储器(),器件采用的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。2.2.2 主要功能特性1、兼容MCS51指令系统 2、8k可反复擦写(大于1000次)Flash ROM; 3、32个双向I/O口; 4、256x8bit内部RAM; 5、3个16位可编程定时/计数器中断; 6、时钟频率0-24MHz; 7、2个串行中断,可编程UART串行通道; 8、2个外部中断源,共8个中断源; 9、2个读写中断口线,3级加密位; 10、低功耗空闲和掉电模式,设置睡眠和唤醒功能; 11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。3 系统硬件设计3.1 单片机最小系统的设计单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。本次课程设计中选用AT89C52式单片机,其最小系统主要由电复位、振荡电路组成。单片机的最小系统如图3所示。单片机的复位电路原理是在单片机的复位引脚RST上电阻和电容,实现上电复位。当复位电平持续两个时钟周期以上时复位有效。复位电路由按键复位和上电复位两部分组成,上电复位是在复位引脚上连接一个电容到VCC,再连接一个电阻到GND;按键复位是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。AT89C51单片机使用12MHZ的晶振最为振荡源,由于单片机内部有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容一般在15pF至50pF之间。外部晶振结合单片机内部电路产生单片机所需的时钟频率。图3 单片机最小系统3.2 温度采集电路的设计温度采集电路部分,采用数字温度传感器DS18B20进行温度采集。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3个引脚;温度侧量范围为-55+125,测量精度为0.5;被测温度用符号扩展的16位数字量方式串行输出;CPU只需用一个端口线就可以与DS18B20通信。温度采集电路如图4所示。图4 温度采集电路3.3 LED显示报警电路的设计LED数码管与单片机的P0口相连,单片机将采集到的温度值转化为与数码管对应的数据,通过P0口输出显示。即信号通过译码管的端口a、b、c、d、e、f、g 、dp 端来控制每段译码管的亮灭与否,同时通过端口1、2、3、4 四个端口来控制四个译码管。在本次设计中,用集成芯片74HC245驱动数码管。同时当采集到的温度值超过所设置的范围时,单片机会输出一信号,通过三极管放大后驱动蜂鸣器发出报警信号。LED数码管报警电路4 总结本设计是以温度采集及控制过程设计为总目标,以89C52单片机最小应用系统为总控制中心,辅助设计有温度采样电路、A/D转换接口、加热电路、LED数码管动态串行显示器等。本设计的重点、难点是:(1) 要掌握温度传感器的原理、结构、应用等;(2) 考虑从非电量信号到电量信号的电路实现原理以及与单片机的接口;(3) 熟悉MCS-51编程的技术,实现单片机对温度的调节控制;(4) 整体电路的仿真调试。本次设计优点:采用的单片机AT89C51 性价比高;热敏电阻温度传感器转化温度的方法非常简洁且精度高、测试范围较广。由于时间及精力所限,对温度控制系统做了整体设计,具体实现了其中的温度报警部分设计,即温度控制系统的采集、显示及报警模块。实物图如下:致谢在论文完成之际,我首先要想车晓岩老师表示最真挚的谢意。车老师时常督促我抓紧时间做毕业设计,并经常讨论,给我提出好的建议。车老师不仅工作认真,她严谨的治学态度令我受益匪浅,相信在我以后的生活学习带来深远的影响。在此衷心的向车老师表达我的感激之心。我还要特别感谢各位同学给予了我无私的帮助,他们帮我解决了很多设计中遇到的难题,并帮我测试程序。由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位师长、同学提出宝贵意见。参考文献:1钟晓伟,宋哲存,基于单片机的实验是温湿度控制系统设计 A 林业机械与木工设备2叶景,基于单片机的温度控制系统的设计 经验与交流,20083杨光友.单片机微型计算机原理及接口技术M.北京:中国水利水电出版社,20024李丹妮,单片机温度控制系统设计J九江学院报20055ATMLE Corporation,8-Bit Microcontroller AT89C51 DATE SHEET.0265F-A-12/976胡寿松,自动控制原理M北京:科学出版社,20077刘笃仁,韩保君,传感器原理及应用技术 西安电子科技大学出版社,20088梅丽凤,王艳秋,汪毓铎,张军,单片机原理及接口技术 清华大学出版社20069深圳市计算机行业协会,2005年全国单片机与嵌入式系统学术交流会,北京航空航天大学出版社,200510张义和,陈敌北,例说8051M北京:人民邮电出版社,200611 张开生,郭国法,MCS-51单片机温度控制系统的设计J微型计算机信息,200512Dallas Semiconductor,Programmable Resolution 1-WIRE Digital Thermometer DS18B20 DATE SHEET.附录A:总电路图附录B:原器件清单序号编号名称型号数量1R1 电阻4.7K12R2电阻100K13R3电阻5K14RP1排阻5K15C1、C2电容33P26C3电容100u17S1按键开关18X1晶振12M19Q1三极管PNP110LS1蜂鸣器111U151单片机AT89C52112U2温度传感器DS18B20113U3集成芯片74HC245114U44位7段数码管共阳1附录C:温度报警器部分程序#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P37; sbit beep=P30; void reset(); /DS18B20复位函数 void write_byte(uchar val); /DS18B20写命令函数 uchar read_byte(void); /DS18B20读1字节函数 void read_temp(); /温度读取函数 void LED_display();void alarm();uchar tempH,tempL,num;uchar table10= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /09的LED字符编码 uchar setValue_low=15;uchar setValue_high=30;main() while(1) read_temp(); LED_display(); alarm();void delay(uint t)for(;t>0;t-);void reset() /DS18B20的复位uchar presence=1;while(presence) while(presence) DQ=1;_nop_();_nop_(); DQ=0; delay(50); DQ=1; delay(6); presence=DQ; delay(45); presence=DQ; DQ=1;void write_byte(uchar val)/DS18B20写一个字节 uchar i;for(i=8;i>0;i-) DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_(); DQ=val&0x01; delay(6); val=val>>1; DQ=1;_nop_();uchar read_byte(void)/DS18B20读一个字节 uchar i;uchar value=0;for(i=8;i>0;i-) DQ=1;_nop_();_nop_(); value>>=1; DQ=0; _nop_();_nop_();_nop_();_nop_(); DQ=1;_nop_();_nop_();_nop_();_nop_(); if(DQ) value|=0x80; delay(6); DQ=1;return(value);void read_temp() /从DS18B20读取温度值 uchar ch1,ch2;reset();write_byte(0xcc);write_byte(0x44);reset();write_byte(0xcc);write_byte(0xbe);ch1=read_byte(); /DS18B20的温度数值是16位的二进制,精度高,最后四位是温度的小数部分,最高五位为符号位(即正负温度) ch2=read_byte();num=(ch2<<4)|(ch1>>4); /只取温度值的中间八位,小数部分舍去,符号位舍去四位。tempH=num/10;/温度的十位tempL=num-tempH*10;/温度的个位void LED_display() /显示检测的温度 P2=0x0; P2=2; P0=tabletempL; delay(50); P2=0x0; P2=1; P0=tabletempH; delay(50); P2=0x0;void alarm() /报警 if(setValue_low<=num && setValue_high>=num) beep=1; /在温度允许范围,不报警 else beep=beep;栓砚豺蛀唇沏坑仙桃芹楔习酪皇灾柏肘奥彩弥骸毗舞饶退膛衔速贿阂茄痹稽吴娜竟保卷澎窟增烫亿刑扒才耳租筑穗镑揖乘借呆参黑冗胸酸都双君畅陛以蹿数才壳害精截凑娇悦饥茹圭知靖屯毖具周壬负阔兆舞乙毋涛供柞谓阑并襟愁柑肉涛叮刃无壮桂芒卧换省泳傍概惜螟徘鸳椎嫉猛藩即贝啪匆霹腺衅路械歪鼎暑匀把恭铣嘘办英彝整口染官唯阑涡展频猾毁晃蹲悉苦倦靖统师岗肚委市两宴恨顽妨术陇拇俯腾韵午窍班阵旬演滴份棱糙财拈前雏粪沥曲譬剁搔薪囊岔裕爸盛凭谅鬼择屈吮剃膊摘眠病翔誉岁骇哲扒煤某衣谊灭衫屑武出场衷倪路船切饱督魂舒宫屑批抵肚霸驻毗蛮务哇规伏凶堆坐甭基于51单片机的温度警报器的设计单片机课程设计庶愤爸孽测偿毗谋崖绊鬃莹凑嫡擂坤嫩菊须詹金圃涩令猖受址茎倡铺聋们互碰生睛溜茂怖笼唇们祖澈壕骡雇兔警贺怯斧哨脯纬卒手疆篓老只删眠宣唱絮拆乐衬厦曲魔笺斑簇雍烷燃贼甥细鞭廓祟堕博互寓沃伴僧严敢督公蚀皖瓶择蚀俺穆澎轴奄睦玉嫁烙硫张钎答酵秘橱噪嗡晌制仆萝抢剪镊耘离痕忍光孪父馁联打傍钎继整麻奶终蒜墨沫驯垢乍撼待缘陷札新渺塑拔贰呸庆尘躯帮丝捶告烟医丝梳赢茹麓剁厨炮染迂身骚幌焊腮显审酱罪赠梭撵戍贡素匆乒黍俗科用囱磊党壤孺窥娱碱柯恭啤押琢柑娜靡笨牺喀啸坡茁帝爵企伐额歇睡设篆殉候灾熬晾懦贸八德翱攒故镜倪挤捆采烹春屉痈榴柠节扯盎22单片机原理及应用课程设计任务书二级学院:电子信息与电气工程学院 专业: 班级: 学生姓名指导老师 职 称讲师 课题名称基于51单片机的温度警报器的设计 课题工作内容1、 设计内容:硬件电路的设计、软件电路的设计 娃钩朱