【毕业设计】21-基于单片机的智能恒温箱/温度报警装置设计(原理图+仿真+源代码+答辩论文+答辩PPT)
任务书
恒温控制在工业生产过程中举足轻重,温度的控制直接影响着工业生产的质量。本文设计了基于单片机的智能恒温箱,要求选择合适的主控芯片、温度检测器、显示器以及报警器。硬件设计主要包括温度采集电路、键盘电路、报警电路、显示电路以及电源电路。
主要内容:本文采用单片机为主控制器,通过温度传感器测得箱内温度,并将温度信号传递给主控制器,主控制器通过相应程序设计控制恒温箱温度,若温度不合格则发出报警信号。
资料链接
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,20962字
英文文献及翻译
答辩PPT
设计说明书
摘要
随着科学的进步,社会的不断发展,智能控制系统已经成为了一种常用的技术,应用在各行各业中,由于现在对温度控制要求极高,传统的恒温箱无法实现较高精度的温度控制,本文针对此现象设计出一款智能恒温箱来满足当前系统设计要求,可以实现温度控制及报警的功能,
本文的设计流程为对系统的研究背景分析了解系统的工作情况、工作原理,确定本文的研发方向。对系统需要实现的功能确定;对系统的功能分析;对系统元器件选型确定系统总方案;对系统的软件部分设计。首先编写程序的总流程,然后再对系统的报告字模块编写程序,最后将程序调用在主函数中完成程序的设计,最后通过仿真软件将系统仿真出来,测试系统功能。本文设计的基于单片机的的智能恒温箱使用STC89C52单片机为主控芯片;DS18B20温度监测,使LCD1602液显示系统的信息;通过按键实现人机交互功能实现对系统的控制;蜂鸣器作为声学报警器;LED作为光学报警器。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,LCD1602液晶显示器。
通过对系统的硬件电路设计,程序编写,最后使用仿真软件Proteus来测试系统功能,完成本次设计。本系统实现了智能温度箱的控制设计可以对其进行推广,并且功能迭代,实现对智能化大力应用推广。
设计框架架构
设计说明书及设计文件
答辩论文低重复率文档,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;
}
}
}
}