1、当温度在设置范围内绿灯亮。2 设计方案及原理2.1温度测量部分DS18B20适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围55125,可编程为912位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以看出DS18B2
2、0可以非常方便的被用于远距离多点温度检测系统。综上,在本系统中我采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。2.2主控制部分在设计方案中传感器将温度信号转化电信号,以9位2进制的形式传递给单片机处理。P0口;是一个复用锻炼端口,既可以作为通用的8位准双向I/O端口进行数据并行输入/输出,也可以作为复用的地址/数据总线,通常提供低八位地址,在这里主要是与LCD显示屏链接;P1口:通用八位准双向I/O端口,设计中用于键位的设置;P2口:是一个
3、复用端口,从理论上讲,可以作为8位准双向I/O端口使用,但实际使用时总是作为高位地址总线使用,设计中用于与指示灯通信;P3口:是一个复用端口,设计中用于读取传感器的温度信号。2.3设计方案考虑到使用温度传感器,结合单片机电路设计采用一只DSL8B20温度传感器直接测取温度,之后进行温度转换依次完成设计要求,本系统电路设计方框图如所示。它由六部分组成:控制部分主芯片采用AT80C52;温度采集部分采用DS18B20;温度显示部分采用LCD液晶显示屏;加热控制电路;蜂鸣器控制电路;警示灯显示电路。图1 系统结构框图3 硬件设计3.1硬件电路该系统采用AT89C52芯片,显示部分选择LCD液晶显示屏
4、,与单片机接口链接。基于单片机和显示屏的选择原理和方案,在该系统中我们还选择小的键盘作为简单的控制部分。其中“+”“-”用来调节液晶显示屏的温度范围,设置键可以移动光标。在前面基本原理的叙述中,上文中已经提到采集,检测温度可以利用传感器DS18B20,它的原理之前已介绍,经过前面各个模块功能原理及连接图型的描述与分析,现在将各模块连接起来,作为一个整体的基于单片机的温度控制系统,绘制其硬件连接图见附录B。4 软件设计4.1流程图及说明本设计方案由硬件和软件结合实现。首先将硬件电路连接好,加载已经写好的程序,由软件实现相应控制。脉冲信号由外部石英晶体向单片机输入,温度设置信号由P1.2、P1.3
5、、P1.4三个管脚输入单片机,当温度传感器DS18B20传递回来的温度若高于设置的上限温度时,与P2.0相连接的红色指示灯闪烁;当传递回来的温度低于设置的下限温度时,与P2.1相连接的绿色指示灯亮,此时,P2.4口输出为低电平,继电器自动闭合,开始加热;当温度在所设置的上限温度与下限温度之间时,与P2.2连接的绿灯亮。而由DS18B20传递回来的温度会经过单片机内部的软件处理,由P0口输出到液晶实现显示。从而,实现了温度的检测、控制及显示,流程图如图2所示。图2 系统流程图5 系统仿真及调试结果5.1加热时仿真结果与分析在设定系统温度为4060摄氏度的情况下,由传感器采集的实际温度为29.0摄
6、氏度,由图可见指示灯黄色亮。为达到预定温度系统处于加热状态。在仿真图中可见,P2.4口输出为低电平,加热装置开始工作,蜂鸣器报警,输出仿真结果如图3所示。图3 加热仿真结果图5.2温度范围内仿真结果及分析在设定系统温度为4060摄氏度的情况下,传感器采集的的实时温度为56摄氏度,在设置温度范围内,绿灯亮,P1.0口输出为高电平,蜂鸣器不工作输出仿真结果如图4所示。图4 正常工作仿真图5.3高于设定范围时的仿真结果在设定系统温度为4060摄氏度的情况下,传感器采集温度为64.0摄氏度,超出温度设置上限,红灯亮,蜂鸣器报警,仿真结果如图5所示。图5 高温时仿真图6 总结在一般生活中,有许多方方面面
7、需要对温度的控制,主要是能够保证温度在一定的范围内变化或是保持在恒温,这对系统的稳定性要求很高,对系统的反应能力没有太多的要求。在本设计中主要介绍了单片机与温度测量的方法,以及各硬件电路的连接方法,最终实现将温度控制在40摄氏度以上,且若高于60摄氏度时发出报警。在本设计中也可用LED显示代替LCD编程上会更加简便而且可以根据设计需要来拓展显示温度的位数。本制作的设计中使用了继电器控制的只是隔离电路,以P2.4口的状态来控制加热装置,因此,还可以实现许多其它功能的电路。通过本次课程设计让我学会了protues 以及visio的使用方法,认识到理论知识和实践之间的巨大差异,动手能力不足,在以后的
8、学习中我会努力加强在这方面训练。参考文献1 王思明,苟军年等编著.单片机原理及应用系统设计.北京:科学出版社,20122 曹巧媛主编.单片机原理及应用(第二版). 北京 :电子工业出版社,20023 何力民编. 单片机高级教程.北京 :北京航空大学出版社,2000附录 A硬件电路连接图附录 B源程序#include intrins.h#define uchar unsigned char#define uint unsigned int sbit DQ=P37;/18B20接口sbit d1=P20;/高于上限时,红灯闪烁sbit d2=P21;/低于下限温度时,绿灯闪烁sbit d3=P22
9、;/黄灯 正常时发光sbit feng=P10;/不在正常范围内时 蜂鸣器响sbit sw=P24;/当低于下限时,继电器吸合,升温开始工作sbit rs=P26;/1602控制位选择sbit rw=P25;sbit en=P27;bit flag;bit flag_f;char temph,templ;/ 上限温度 下线温度变量定义uchar code table1= CT: C;uchar code table2=H:+90.0 L:+40.0char hf=+,hs=9,hg=0,hd=0,lf=,ls=4,lg=0,ld=0;/温度调整全局变量void delayus(uint us)
10、/延长时间为11*us+3微秒 while(-us)_nop_();void delayms(uint ms)/延时函数1秒 uint x,y; for(x=ms;x0;x-) for(y=0;y110;y+);/*LCD1602控制函数*/void lcd_write_com(uchar com)/写指令 delayms(5);/维持信号稳定 rs=0; rw=0; en=0; delayms(1); en=1; P0=com;void lcd_write_date(uchar date)/写数据 rs=1; P0=date;void lcd_init()/液晶初始化 uchar i; delayms(15); lcd_write_com(0x38); lcd_write_com(0x01); lcd_write_com(0x06); lcd_write_com(0x0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1