单片机温度控制与检测课程设计文档格式.docx
- 文档编号:15049966
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:20
- 大小:152.52KB
单片机温度控制与检测课程设计文档格式.docx
《单片机温度控制与检测课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《单片机温度控制与检测课程设计文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
当温度在设置范围内绿灯亮。
2设计方案及原理
2.1温度测量部分
DS18B20适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围-55~+125℃,可编程为9~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。
综上,在本系统中我采用温度芯片DS18B20测量温度。
该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
该芯片直接向单片机传输数字信号,便于单片机处理及控制。
2.2主控制部分
在设计方案中传感器将温度信号转化电信号,以9位2进制的形式传递给单片机处理。
P0口;
是一个复用锻炼端口,既可以作为通用的8位准双向I/O端口进行数据并行输入/输出,也可以作为复用的地址/数据总线,通常提供低八位地址,在这里主要是与LCD显示屏链接;
P1口:
通用八位准双向I/O端口,设计中用于键位的设置;
P2口:
是一个复用端口,从理论上讲,可以作为8位准双向I/O端口使用,但实际使用时总是作为高位地址总线使用,设计中用于与指示灯通信;
P3口:
是一个复用端口,设计中用于读取传感器的温度信号。
2.3设计方案
考虑到使用温度传感器,结合单片机电路设计采用一只DSL8B20温度传感器直接测取温度,之后进行温度转换依次完成设计要求,本系统电路设计方框图如所示。
它由六部分组成:
控制部分主芯片采用AT80C52;
温度采集部分采用DS18B20;
温度显示部分采用LCD液晶显示屏;
加热控制电路;
蜂鸣器控制电路;
警示灯显示电路。
图1系统结构框图
3硬件设计
3.1硬件电路
该系统采用AT89C52芯片,显示部分选择LCD液晶显示屏,与单片机接口链接。
基于单片机和显示屏的选择原理和方案,在该系统中我们还选择小的键盘作为简单的控制部分。
其中“+”“-”用来调节液晶显示屏的温度范围,设置键可以移动光标。
在前面基本原理的叙述中,上文中已经提到采集,检测温度可以利用传感器DS18B20,它的原理之前已介绍,经过前面各个模块功能原理及连接图型的描述与分析,现在将各模块连接起来,作为一个整体的基于单片机的温度控制系统,绘制其硬件连接图见附录B。
4软件设计
4.1流程图及说明
本设计方案由硬件和软件结合实现。
首先将硬件电路连接好,加载已经写好的程序,由软件实现相应控制。
脉冲信号由外部石英晶体向单片机输入,温度设置信号由P1.2、P1.3、P1.4三个管脚输入单片机,当温度传感器DS18B20传递回来的温度若高于设置的上限温度时,与P2.0相连接的红色指示灯闪烁;
当传递回来的温度低于设置的下限温度时,与P2.1相连接的绿色指示灯亮,此时,P2.4口输出为低电平,继电器自动闭合,开始加热;
当温度在所设置的上限温度与下限温度之间时,与P2.2连接的绿灯亮。
而由DS18B20传递回来的温度会经过单片机内部的软件处理,由P0口输出到液晶实现显示。
从而,实现了温度的检测、控制及显示,流程图如图2所示。
图2系统流程图
5系统仿真及调试结果
5.1加热时仿真结果与分析
在设定系统温度为40~60摄氏度的情况下,由传感器采集的实际温度为29.0摄氏度,由图可见指示灯黄色亮。
为达到预定温度系统处于加热状态。
在仿真图中可见,P2.4口输出为低电平,加热装置开始工作,蜂鸣器报警,输出仿真结果如图3所示。
图3加热仿真结果图
5.2温度范围内仿真结果及分析
在设定系统温度为40~60摄氏度的情况下,传感器采集的的实时温度为56摄氏度,在设置温度范围内,绿灯亮,P1.0口输出为高电平,蜂鸣器不工作输出仿真结果如图4所示。
图4正常工作仿真图
5.3高于设定范围时的仿真结果
在设定系统温度为40~60摄氏度的情况下,传感器采集温度为64.0摄氏度,超出温度设置上限,红灯亮,蜂鸣器报警,仿真结果如图5所示。
图5高温时仿真图
6总结
在一般生活中,有许多方方面面需要对温度的控制,主要是能够保证温度在一定的范围内变化或是保持在恒温,这对系统的稳定性要求很高,对系统的反应能力没有太多的要求。
在本设计中主要介绍了单片机与温度测量的方法,以及各硬件电路的连接方法,最终实现将温度控制在40摄氏度以上,且若高于60摄氏度时发出报警。
在本设计中也可用LED显示代替LCD编程上会更加简便而且可以根据设计需要来拓展显示温度的位数。
本制作的设计中使用了继电器控制的只是隔离电路,以P2.4口的状态来控制加热装置,因此,还可以实现许多其它功能的电路。
通过本次课程设计让我学会了protues以及visio的使用方法,认识到理论知识和实践之间的巨大差异,动手能力不足,在以后的学习中我会努力加强在这方面训练。
参考文献
[1]王思明,苟军年等编著.单片机原理及应用系统设计.北京:
科学出版社,2012
[2]曹巧媛主编.单片机原理及应用(第二版).北京:
电子工业出版社,2002
[3]何力民编.单片机高级教程.北京:
北京航空大学出版社,2000
附录A硬件电路连接图
附录B源程序
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitDQ=P3^7;
//18B20接口
sbitd1=P2^0;
//高于上限时,红灯闪烁
sbitd2=P2^1;
//低于下限温度时,绿灯闪烁
sbitd3=P2^2;
//黄灯正常时发光
sbitfeng=P1^0;
//不在正常范围内时蜂鸣器响
sbitsw=P2^4;
//当低于下限时,继电器吸合,升温开始工作
sbitrs=P2^6;
//1602控制位选择
sbitrw=P2^5;
sbiten=P2^7;
bitflag;
bitflag_f;
chartemph,templ;
//上限温度下线温度变量定义
ucharcodetable1[]={"
CT:
C"
};
ucharcodetable2[]={"
H:
+90.0L:
+40.0"
charhf='
+'
hs=9,hg=0,hd=0,lf='
ls=4,lg=0,ld=0;
//温度调整全局变量
voiddelayus(uintus)//延长时间为11*us+3微秒
{
while(--us)_nop_();
}
voiddelayms(uintms)//延时函数1秒
{uintx,y;
for(x=ms;
x>
0;
x--)
for(y=0;
y<
110;
y++);
//*************LCD1602控制函数*****************//
voidlcd_write_com(ucharcom)//写指令
delayms(5);
//维持信号稳定
rs=0;
rw=0;
en=0;
delayms
(1);
en=1;
P0=com;
voidlcd_write_date(uchardate)//写数据
rs=1;
P0=date;
voidlcd_init()//液晶初始化
uchari;
delayms(15);
lcd_write_com(0x38);
lcd_write_com(0x01);
lcd_write_com(0x06);
lcd_write_com(0x0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 控制 检测 课程设计