【毕业设计】21-基于单片机的智能恒温箱/温度报警装置设计(原理图+仿真+源代码+答辩论文+答辩PPT)
文章目录
- 【毕业设计】21-基于单片机的智能恒温箱/温度报警装置设计(原理图+仿真+源代码+答辩论文+答辩PPT)
- 任务书
- 设计说明书
- 摘要
- 设计框架架构
- 设计说明书及设计文件
- 源码展示
任务书
恒温控制在工业生产过程中举足轻重,温度的控制直接影响着工业生产的质量。本文设计了基于单片机的智能恒温箱,要求选择合适的主控芯片、温度检测器、显示器以及报警器。硬件设计主要包括温度采集电路、键盘电路、报警电路、显示电路以及电源电路。
主要内容:本文采用单片机为主控制器,通过温度传感器测得箱内温度,并将温度信号传递给主控制器,主控制器通过相应程序设计控制恒温箱温度,若温度不合格则发出报警信号。
资料链接
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,20962字
英文文献及翻译
答辩PPT
设计说明书
摘要
随着科学的进步,社会的不断发展,智能控制系统已经成为了一种常用的技术,应用在各行各业中,由于现在对温度控制要求极高,传统的恒温箱无法实现较高精度的温度控制,本文针对此现象设计出一款智能恒温箱来满足当前系统设计要求,可以实现温度控制及报警的功能,
本文的设计流程为对系统的研究背景分析了解系统的工作情况、工作原理,确定本文的研发方向。对系统需要实现的功能确定;对系统的功能分析;对系统元器件选型确定系统总方案;对系统的软件部分设计。首先编写程序的总流程,然后再对系统的报告字模块编写程序,最后将程序调用在主函数中完成程序的设计,最后通过仿真软件将系统仿真出来,测试系统功能。本文设计的基于单片机的的智能恒温箱使用STC89C52单片机为主控芯片;DS18B20温度监测,使LCD1602液显示系统的信息;通过按键实现人机交互功能实现对系统的控制;蜂鸣器作为声学报警器;LED作为光学报警器。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,LCD1602液晶显示器。
通过对系统的硬件电路设计,程序编写,最后使用仿真软件Proteus来测试系统功能,完成本次设计。本系统实现了智能温度箱的控制设计可以对其进行推广,并且功能迭代,实现对智能化大力应用推广。
设计框架架构
前 言… 1
第一章 绪 论… 2
第一节 研究背景… 2
第二节 研究意义… 2
第三节 本文的主要研究内容… 3
第四节 本章小结… 3
第二章 基于单片机的智能恒温箱系统方案确定… 5
第一节 系统功能分析… 5
第二节 系统设计方案选择… 5
一、方案一… 5
二、方案二… 6
第三节 系统主要元器件介绍… 6
一、单片机介绍… 6
二、LCD显示器介绍… 6
三、温度传感器介绍… 7
第三节 系统结构总框图… 7
第四节 本章小结… 8
第三章 基于单片机的智能恒温箱系统硬件电路设计… 9
第一节 单片机最小系统电路设计… 9
第二节 电源电路设计… 10
第三节 按键电路设计… 10
第四节 LED电路设计… 11
第五节 LCD液晶显示电路设计… 11
第六节 温度传感器电路设计… 13
第七节 蜂鸣器报警电路设计… 13
第八节 系统总电路图设计… 14
第九节 本章小结… 15
第四章 基于单片机的智能恒温箱系统的软件设计… 16
第一节 Keil软件介绍… 16
第二节 软件总设计流程… 17
第三节 按键模块程序设计… 18
第四节 LED模块程序设计… 19
第五节 LCD液晶显示模块程序设计… 20
第六节 温度传感器程序设计… 23
第七节 蜂鸣器报警模块程序设计… 25
第八节 本章小结… 26
第五章 基于单片机的智能恒温箱系统的仿真… 27
第一节 仿真软件介绍… 27
第二节 系统调试… 28
第三节 系统测试… 29
第四节 本章小结… 33
总 结… 34
致 谢… 35
参考文献… 36
附 录… 38
一、英文原文… 38
二、英文翻译… 41
三、工程图纸… 43
四、源代码… 44
设计说明书及设计文件
答辩论文低重复率文档,20962字
源码展示
void main (void)
{
u8 key;
wendu=check_wendu(); //初始化时调用温度读取函数 防止开机85°C
Init1602(); //调用初始化显
LCD_Write_String(0,0," Intellect Temp"); //开机界面
LCD_Write_String(1,0,"SET:00 NOW:00.0");
delay_ms(1000);
wendu=check_wendu(); //初始化时调用温度读取函数 防止开机85°C
while (1) //主循环
{
key=Key_Scan(); //按键扫描
wendu=check_wendu(); //读取温度值
if(key==KEY_SET)
{
Mode++;
}
switch(Mode) //判断模式的值
{
case 0: //监控模式
{
Display_1602(yushe_wendu,wendu); //显示预设温度,预设烟雾,温度值,烟雾值
if(wendu>=(yushe_wendu*10)) //温度大于等于预设温度值时(为什么是大于预设值*10:因为我们要显示的温度是有小数点后一位,是一个3位数,25.9°C时实际读的数是259,所以判断预设值时将预设值*10)
{
Buzzer=0; //打开蜂鸣器报警
Led_Yellow=0; //打开温度报警灯
Led_Gre =1; //关闭未报警指示灯
}
else //温度值小于预设值时
{
Led_Yellow=1; //关闭报警灯
Led_Gre =0; //打开未报警指示灯
}
if((wendu<(yushe_wendu*10))) //当烟雾小于预设值并且温度也小于预设值时 (&&:逻辑与,左右两边的表达式都成立(都为真,也就是1)时,该if语句才成立)
{
Buzzer=1; //停止报警
}
break;
}
case 1://预设温度模式
{
SelectPosition(1,3) ; //指定位置
write_com(0x0d); //阴影闪烁
if(key==KEY_ADD) //加键按下
{
yushe_wendu++; //预设温度值(阀值)加1
if(yushe_wendu>=99) //当阀值加到大于等于99时
yushe_wendu=99; //阀值固定为99
LCD_Write_Char(1,4,yushe_wendu,2) ;//显示预设温度
}
if(key==KEY_MINUS) //减键按下
{
if(yushe_wendu<=1) //当温度上限值减小到1时
yushe_wendu=1; //固定为1
yushe_wendu--; //预设温度值减一,最小为0
LCD_Write_Char(1,4,yushe_wendu,2) ;//显示预设温度
}
break; //执行后跳出switch
}
default :
{
write_com(0x38);//屏幕初始化
write_com(0x0c);//打开显示 无光标 无光标闪烁
Mode=0; //恢复正常模式
break;
}
}
}
}