1设计要求1.报警器的报警温度可调,温度测量范围:15℃~30℃2.具有超出上下限报警功能3.允许误差±1℃4.利用数码管显示温度值2系统方案比较、设计与论证2.1总体设计框图该设计框图由七个部分组成,其关系如下图1所示图12.2主控制器模块方案1:采用可编程逻辑器件CPLD作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑我们放弃了此方案。方案2:采用STC89C52单片机作为整个系统的核心,用其控制温度报警功能,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现温度的自动显示并报警功能,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。STC89C52单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是STC89C52单片机价格非常低廉。温度传感器按键控制复位电路单片机报警电路数码管显示屏蜂鸣报警器2.3温度测量方案1:采用数字温度芯片DS18B20测量实际温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外STC89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。方案2:采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成(如下图),热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D转换电路,感温电路比较麻烦。图2热电偶电路图从以上两种方案,容易看出方案二的测温装置可测温度范围宽、体积小,但是线性误差较大。方案一的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案一。2.4设置温度方案1:采用键盘输入设置温度,键盘则可以用4个按键,一个复位键,一个功能设定键,一个加减一个减键。四个键比较常用,而且用到的接口得到了极好的利用,仅需要4个接口。方案2:可采用4*4矩阵键盘,该键盘需要8个接口,而我们不需这么多键。综上所述,我们选择第一种方案。2.5显示模块方案1:用数码管进行显示。数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。方案2:用LCD液晶进行显示。LCD由于其显示清晰,显示内容丰富、清晰,显示信息量大,使用方便,显示快速而得到了广泛的应用。单对于此系统我们不需要显示丰富的内容,而且LCD液晶价格贵,因此我们选择了此方案。综上所述我们选择方案12.6电源选取由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。方案1:采用5V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在小型电动车上使用极为不方便。因此我们放弃了此方案。方案2:采用3节1.5V干电池共4.5V做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。综上所述采用方案23系统器件选择温度传感器的选择由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。图3外部封装形式图4传感器电路图4硬件实现及单元电路设计4.1主控制模块主控制最系统电路如图4所图5单片主控电路P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9(RXD)P3.010(TXD)P3.111(INT0)P3.212(INT1)P3.313(T0)P3.414(T1)P3.515(WR)P3.616(RD)P3.717XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U1U1Y112MC20.1uFC30.1uFVCCGNDR1110KC110uFVCC1234J1VCCS1R1100R3100R4100R5100R6100R7100R8100R9100ABCDEFGDPR151KR141KR131KR121KS2S3S4GNDP24P25P34P35P36P374.2显示模块电路显示采用四位数码管显示,当位选打开时,送入相应的段码,则相应的数码管打开,关掉位选,打开另一个位选,送入相应的段码,则数码管打开,而每次打开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。显示电路如图5图6数码管显示4.3数码管显示驱动电路三极管8550来驱动4位数码管,不仅简单,而且价格便宜。图7驱动电路4.4温度传感器(DS18B20)电路4.4.1DS18B20基本介绍DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号处理器处理。DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,下图电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。图8温度传感器电路引脚图4.4.2DS18B20控制方法DS18B20有六条控制命令:1温度转换44H启动DS18B20进行温度转换2读暂存器BEH读暂存器9个字节内容3写暂存器4EH将数据写入暂存器的TH、TL字节4复制暂存器48H把暂存器的TH、TL字节写到E2RAM中5重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节6读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU4.4.3DS18B20供电方式DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。本设计采用电源供电方式,P2.2口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个上拉电阻和STC89C52的P2.2来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10μs。采用寄生电源供电方式是VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三状态的。主机控制DS18B20完成温度转换必须经过3个步骤:初始化。ROM操作指令。存储器操作指令。4.6声光报警电路电路如图8主要是用来设定温度报警温度的、有高温和低温报警。图9蜂鸣器、发光二极管驱动引脚图5系统软件设计5.1程序结构分析主程序调用了3个子程序,分别是数码管显示程序、温度信号处理程序、按键设定报警温度程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码管的显示送数,控制系统的显示部分。按键设定程序:可以设定低温和高温报警可精确到0.1度。5.2系统程序框图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比较,其程序流程见图9所示。通过调用读温度子程序把存入内存储中的整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。图10DS18B20温度流程图5.2.1DS18B20初始化程序流程图调用显示子程序初始1s初次上发温度转换开始命令读出温度值温度计算处理显示数据刷新在DS18B20工作之前需要进行初始化,流程图如下:图11初始化程序流程图5.2.2读温度子程序流程图读温度子程序的主要功能是从DS18B20中读出温度数据,移入温度暂存器保存。其程序流程图如下:图12温度子程序流程图6课程设计总结通过这次的课程设计的过程,我自己对整个电路系统的结果还是比较满意,也是自己第一次没有依靠整体的从网络上进行复制粘贴,而是自己去设计连图并且进行测试,最后的功能大致是实现了,并且七段数码管达到了更换显示循环数。并且在高温的时候控制了两个LED灯组的开关问题,但是整个的电路设计上也存在很多的缺点,比图整个的电路过于繁琐,需要两个热敏电阻,增加了电路制作的成本,并且七段数码管没能在自后红的LED亮起来的时候进行清零。并且整个的电路接线过多,元器件过多,链接复杂所以我自己认为我的这个设计还需要再加改进。发复位命令发跳过ROM命令初始化成功结束发复位命令发跳过ROM命令发读取温度命令移入温度暂存器结束7课程设计心得自这次的课程设计的作业过程中,自己从最先开始的对整个的课题开始构思再到整个课题的模块分析,到最后的借助protel这款软件进行电路绘制,这也是自己第一次完全靠自己而不依赖于网络的一次课程设计,在这个期间我觉得自己还是学到了很多的知识,想了很多的办法并且在这期间对自己所学的几门电路的知识进行了巩固。但是整个的电路在设计的时候也存在很多的不足,整个的电路过于复杂,并且需要两套不同的温控感应装置使得实际成本会增高,而且最后的再超高温的时候数码显像管没能达到清零的作用,所以还是很遗憾,不过相信在以后更多的见到电路以后可以克服这个问题,使得整个的电路可以更加的简洁,更加的实用。参考文献1单片机原理及应用(第二版).北京:电子工业出版社,20022单片机高级教程.北京:北京航空大学出版社,20003传感器技术与应用.北京机械工业出版社,2002451单片机C语言应用开发技术大全,北京:人民邮电出版社,20085C程序设计.北京:清华大学出版社,2007;6MCS-51单片机原理及嵌入式系统应用[M].西安:西安电子科技大学出版社附录1整体电路原理图附录2部分源程序#includereg52.h#includeeepom52.h#defineucharunsignedchar#defineuintu