当前位置:首页 > 电加热炉温度控制系统设计
2.2.4 程序设计
由于整个程序工程量比较大,我采用模块化设计方法来设计这个程序。首先定义在后面将会用到的变量,不可能一次定义准确,所以边定义边补充。然后编写子函数,包括LCM初始化子函数、显示指定坐标的一个字符子函数、ds18b20初始化函数、ds18b20延迟子函数、读取ds18b20当前温度子函数、液晶显示子函数、键盘扫描子函数、设定工作模式子函数、按键加法子函数、按键减法子函数、24C02读写驱动程序、定时器t0中断子函数等子程序,最后是主函数。
2.3 调试和仿真
在Keil软件中编写完程序后,编译生成.Hex文件,单片机可以执行.Hex文件。在Protues软件中,给单片机加载所生成的.Hex文件,按下运行按钮,系统开始仿真。系统仿真截图如下图所示。
图2.5系统仿真图(一)
上一张是当温度采样值小于设定值,电热炉处于工作状态时的仿真截图。以下这张是当温度采样值高于设定值后,系统自动做出反应,使电热炉断电停止工作的仿真截图。
8
图2.6系统仿真图(二)
3 结果分析
由以上仿真结果可以知道,此次的设计基本成功。当采样温度低于设定值的时候,系统不会对电热炉做出相应动作,电热炉保持加热。一旦采样温度高于设定值,系统就会做出反应,使电加热炉断电停止加热。当温度降下来后,系统又会自动控制电加热炉重新开始加热。系统的反应速度也是十分精确的,会在很短的时间内作出相应动作。另外,由于在电路中加入了EPROM24C02,使得该系统具有掉电保护功能,来电后自动恢复正常工作。除此之外,该系统还有一个比较实用的小功能—电子钟,这样的话工作人员可以利用它准确掌握系统已经工作的时间,也就是说可以把它当做一个定时器来用。在安全保护方面,该系统也有相当不错的表现,由于使用了光电耦合器和就电磁继电器,将强电部分和弱电部分充分隔离,十分安全。综合以上分析,该系统的设计十分成功。
9
4 课程设计心得体会
一学期很快就过去了,大学四年的学习也差不多结束了,但对机械电子的学习没有结束,而是才刚刚开始。说到电加热炉,我们都比较熟悉,在日常生活中我们经常用到,特别是冬天用它来煮火锅。我们也会发现这样一个问题,一般的电加热炉是没有温度自动控制的,当温度上升到我们需要的程度时,它仍然继续加热,这不仅会影响到加热效果,还会造成电能的浪费。那么就有必要设计一种能自动调节炉温的系统,把它应用到日常生活中,将会给人们带来极大的方便。
在设计的过程中,我也遇到一些麻烦,比如说怎样来实现电动机回路的自动通断调节、怎样来实现时钟的调整等等,这些问题都令我十分棘手。通过去图书馆查阅相关资料和上网搜索各硬件的原理以及应用,我最终都一一解决了这些问题。由于我们是三个同学做同一个题目,在设计过程中,我们遇到困难的时候也经常相互讨论,相互请教,最终一起解决问题,在此也感谢我的“战友”们。
总的来说,此次课程设计的过程比较轻松,从拿到问题到彻底解决问题,这是一个令人振奋并享受的过程。经过去图书馆大量的查阅书籍,我也学到了很多在课本上没有的知识,收获颇丰。这段过程让我懂得了一个道理,那就是学生要学的绝对不该仅仅是课本上的东西,有些东西只有走进图书馆,你才可能学习到。也只有这样,我们才能成为一个见多识广、渊博的人。
参考文献
[1] 于海生.微型计算机控制技术.清华大学出版社,2004 [2] 谭浩强.C程序设计(第三版). 清华大学出版社,2006 [3] 戴焯. 传感与检测技术. 武汉理工大学出版社,2006 [4] 张毅刚. 单片机原理及应用. 高等教育出版社,2003 [5] 柯节成. 简明电子元件器件手册. 高等教育出版社,2005
附录
系统的完整程序如下:
10
/***********************************************************
电加热炉温度控制系统
问题描述:当温控开关打开时,若测得环境温度大于设定温度,则继电器吸合,电加热炉停止工作;若测得环境温度小于设定温度,则继电器释放,电加热炉继续工作。
***********************************************************/
#include
#define uchar unsigned char #define uint unsigned int
#define BUSY 0x80 //lcd忙检测标志 #define DATAPORT P0 //定义P0口为LCD通讯端口 #define PLAYE_ADDR XBYTE[0XBFFF] //语音报警地址 sbit RED_ALARM=P1^0; sbit WRITE_ALARM=P1^1; sbit GREEN_ALARM=P1^2; sbit BLUE_ALARM=P1^3;
sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit DQ = P1^7; sbit LCM_RS=P2^0; sbit LCM_RW=P2^1; sbit LCM_EN=P2^2;
sbit sda=P2^3; //IO口定义 sbit scl=P2^4;
//LCD使能信号 //adc中断方式接口
//ISD1420放音结束查询标志
sbit ad_busy=P3^2; sbit RECLED_EOC=P3^5; sbit OUT=P3^7;
uchar ad_data; uchar minite;
//ad采样值存储
uchar seconde; //定义并初始化时钟变量
//时钟调整 //时钟加 //时钟减
//定义ds18b20通信端口 //数据/命令端 //读/写选择端 //红色指示灯 //白色指示灯 //绿色指示灯
11
共分享92篇相关文档