恒温控制在工业生产过程中举足轻重,温度的控制直接影响着工业生产的质量。本文设计了基于单片机的智能恒温箱,要求选择合适的主控芯片、温度检测器、显示器以及报警器。硬件设计主要包括温度采集电路、键盘电路、报警电路、显示电路以及电源电路。
主要内容:本文采用单片机为主控制器,通过温度传感器测得箱内温度,并将温度信号传递给主控制器,主控制器通过相应程序设计控制恒温箱温度,若温度不合格则发出报警信号。
资料链接
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,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°CInit1602(); //调用初始化显LCD_Write_String(0,0," Intellect Temp"); //开机界面LCD_Write_String(1,0,"SET:00 NOW:00.0"); delay_ms(1000);wendu=check_wendu(); //初始化时调用温度读取函数 防止开机85°Cwhile (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++; //预设温度值(阀值)加1if(yushe_wendu>=99) //当阀值加到大于等于99时yushe_wendu=99; //阀值固定为99LCD_Write_Char(1,4,yushe_wendu,2) ;//显示预设温度}if(key==KEY_MINUS) //减键按下{if(yushe_wendu<=1) //当温度上限值减小到1时yushe_wendu=1; //固定为1yushe_wendu--; //预设温度值减一,最小为0LCD_Write_Char(1,4,yushe_wendu,2) ;//显示预设温度}break; //执行后跳出switch} default : {write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁Mode=0; //恢复正常模式break;}} }
}