室内温度控制系统
室内温度自动控制系统
摘要
在现代人类的生活环境中, 温度扮演着极其重要的角色。在人们的生产生活中, 无论生活在哪里, 从事什么工作, 都要时时刻刻与温度打着交道。尤其是在18世纪工业革命以来, 工业发展与农业生产都与能否掌握温度, 有着密不可分的联系。因此, 温度的监测与控制与人类的生产生活有着十分重要的意义。我们通过STC12C5A60S2单片机和DALLAS 公司DS18B20温度传感器对室内温度进行实时监测与控制实现温度的相对稳定具有极其重要的现实意义。通过该系统的设计制作实践对电子系统设计运动控制理论应用,研究新技术学习知识增强动手能力具有重要的现实意义。
关键字:温度控制 DS18B20 单片机 控制系统设计
目录
论文共 45 页
1引言 ............................................................................................................................................... 4
1.1项目概述 . ............................................................................................................................ 4
1.2设计目的 . ............................................................................................................................ 4
1.3设计任务 . ............................................................................................................................ 4
1.4研究思路和方法 . ................................................................................................................ 5
2项目总体方案设计 . ....................................................................................................................... 6
2.1系统原理框图与工作原理 . ................................................................................................ 6
2.1.1国内外室温控制技术研究 . ..................................................................................... 6
2.1.2系统原理框图设计 . ................................................................................................. 6
3. 系统硬件设计 . ............................................................................................................................... 7
3.1电源模块 . ............................................................................................................................ 7
3.2控制系统模块 . .................................................................................................................... 7
3.3温度检测 . ............................................................................................................................ 8
3.3.1常用温度检测传感器 . ............................................................................................. 8
3.3.2 DS18B20温度传感器电路 ................................................................................... 10
3.4驱动模块 . .......................................................................................................................... 11
3.4.1半桥驱动原理 . ....................................................................................................... 11
3.5升温模块 . .......................................................................................................................... 11
3.6人机交互模块 . .................................................................................................................. 12
3.6.1 1602液晶显示 . ...................................................................................................... 12
3.6.2 红外遥控操作原理 . .............................................................................................. 13
3.6.3红外接收电路 . ....................................................................................................... 13
4. 系统软件设计 . ............................................................................................................................. 14
4.1程序流程图 . ...................................................................................................................... 14
4.2温度采集 . .......................................................................................................................... 15
4.2.1DS18B20软件定义 ................................................................................................ 15
4.2.2温度的计算 . ........................................................................................................... 15
4.3红外遥控 . .......................................................................................................................... 15
4.4电机的PWM 控制 ........................................................................................................... 21
4.5发热电阻丝的控制 . .......................................................................................................... 23
5. 调试运行...................................................................................................................................... 24
5.1温度传感器校准 . .............................................................................................................. 24
5.2温度调节时间 . .................................................................................................................. 25
5.3温度波动范围 . .................................................................................................................. 25
5.4系统参数 . .......................................................................................................................... 26
6. 系统优化...................................................................................................................................... 27
6.1优化控制方式 . .................................................................................................................. 27
6.2美化外形结构 . .................................................................................................................. 27
6.3. 扩展系统应用 . .................................................................................................................. 27
结 论 .............................................................................................................................................. 29
致 谢 .............................................................................................................................................. 30
参考文献......................................................................................................................................... 31
附件一:原理图 . .................................................................................................................... 32
附件二:源程序 . .................................................................................................................... 33
1引言
1.1项目概述
我们的项目开发针对的对象是收入水平不高,买不起空调,有希望能不受热受冷舒适的生活。并且本系统操作简单,成本低廉。
本系统包括:温度采集、无线人机交互、自动控制、异常报警等四部分。
1、温度采集
温度采集通过DS18B20将环境温度采集反馈回单片机并在显示界面上显示出来。
2、无线人机交互
使用者可以通过遥控器设置风速,温度等模式。
3、自动控制
通过使用者设置的风速、温度和采回来的环境温度通过单片机自动对加热和风速进行控制,起到自动控制环境温度的作用。
4、异常报警
对于在使用时产生异常,比如温度过高时,系统发起声光报警提示出现问题。
1.2设计目的
人们在日常的生活中,烈日炎炎的夏季会使人们感觉酷暑难耐,在白雪皑皑的冬季又会冷的瑟瑟发抖;于是人们就想买台空调,可是空调又太昂贵,对于大部分低收入阶层来说很难能承担起着部分费用。而夏日买的电风扇又在冬天又不能使用,冬日的电热炉有不能在热天使用;季节一交替就要将其封存起来,不利于设备的有效使用,在存储时候又要占据多余的空间,带来了不少麻烦。而在这种情况下我们发现为什么不将风扇和电热炉有效结合起来再加上一些传感器和控制器组成一个温度自动控制系统,这样价格便宜而且一年四季都能使用。还能自动调节不用过多的人为干预,为人们营造一个舒适的环境。同时我们还发现我们发现这样一个控制系统也可以推广到大棚种植等一些对温度有要求的环境。这样有很好的市场前景和研究意义。
1.3设计任务
从生物学角度室内温度一般冬天不应低于12℃,夏天以不高于26℃为宜。同时,还要尽量做到各点温度均匀并保持时间上的恒定。平均温差(外墙内壁的温度与室内任何一处的温度差)不天于2℃,垂直温差(高差每米相差的度数)不大于3℃。在这种情况下才是健康的温度。
为了能够人们身体健康,又能满足价格低廉、操作简单、适合任何人群使用的原则本设计将采用红外无线遥控,和单片机自动控制采用风扇和发热丝来实现温度的调节。
1.4研究思路和方法
通过温度传感器DS18B20对室内温度进行采集,并实时显示在1602的液晶界面上,通过红外遥控器来调节模式和调节温度。并通过电机和电热丝冰块来实现对于室内温度的调节。
在检测系统的执行性能,我们采用对其功耗进行测量,了解在各个模式下功耗进行测量。设置不同的温度记录系统调节到相应温度需要的时间,和系统在保持这个温度时候的振荡情况。
2项目总体方案设计
2.1系统原理框图与工作原理
2.1.1国内外室温控制技术研究
从国内外温室控制技术的主流方式来看, 室内温度控制技术大致有三种方式。
(1)手动控制。通过人对室内温度的观测, 凭借长期积累的经验和直觉推测及判
断, 手动调节温室内环境。但这种控制方式的劳动生产率较低, 并不能实现室内温度的自动控制。
(2)自动控制。这种控制系统需要计算机根据传感器的实际测量值与温控系统事
先设定的目标值进行比较, 有计算机完成室内温度的控制过程。计算机自动控制的温室控制技术实现了自动化控制。但由于计算机自动控制的实现方式有很多种形式, 所以要根据设计要求及经费预算选择适合的计算机自动控制。
(3)智能化控制。这是在温室自动控制技术和生产实践的基础上, 构建专家系统,的温室信息自动采集及智能控制。这种控制方式相对前两种控制方式成本较高。
2.1.2系统原理框图设计
根据室内温度控制系统设计要求, 温控自动控制系统, 本系统由温度采集模块、电源模块以及人机交互模块、控制系统模块、升温模块、电机驱动模块六个部分组成。
图1. 系统框图
二,
3.1电源模块 3. 系统硬件设计 稳压模块电路如图:
3.2控制系统模块
图2.LM7805稳压模块 源适配器产生,12V 直流电经LM7805稳压后得到5V 直流为控制系统供电。LM7805控制系统主要由STC 公司生产的12C5A60S2作为主控制芯片,10位A/D转换(250K/S),针对电机控制,强干扰场合。控制系统的最小系统如图单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051, 但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速本系统电源部份共分为三个模块5V 直流、12V 直流和220V 交流,12V 直流STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的为风扇模块供电,220V 交流为发热丝供电,5V 为其与控制系统供电。12V 由电
图3:单片机最小系统
3.3温度检测
3.3.1常用温度检测传感器
(1)热敏电阻式温度传感器
热敏电阻是开发早、种类多、发展较成熟的敏感元器件.热敏电阻由半导体陶瓷材料组成, 热敏电阻是用半导体材料,大多为负温度系数,即阻值随温度增加而降低。温度变化会造成大的阻值改变,因此它是最灵敏的温度传感器。但热敏电阻的线性度极差,并且与生产工艺有很大关系。制造商给不出标准化的热敏电阻曲线。热敏电阻体积非常小,对温度变化的响应也快。但热敏电阻需要使用电流源,小尺寸也使它对自热误差极为敏感。利用的原理是温度引起电阻变化.若电子和空穴的浓度分别为n 、p ,迁移率分别为μn 、μp ,则半导体的电导为:
σ=q(n μn+pμp )。因为n 、p 、μn 、μp 都是依赖温度T 的函数,所以电导是温度的函数,因此可由测量电导而推算出温度的高低,并能做出电阻-温度特性曲线.这就是半导体热敏电阻的工作原理.热敏电阻包括正温度系数(PTC )和负温度系数(NTC )热敏电阻,以及临界温度热敏电阻(CTR )。
图4. 热敏电阻
(2)热电阻式温度传感器
热电阻(thermal resistor )是中低温区最常用的一种温度检测器。热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的。
它的主要特点是测量精度高,性能稳定。其中铂热电阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。热电阻大都由纯金属材料制成,目前应用最多的是铂和铜,此外,现在已开始采用镍、锰和铑等材料制造热电阻。金属热电阻常用的感温材料种类较多,最常用的是铂丝。工业测量用金属热电阻材料除铂丝外,还有铜、镍、铁、铁—镍等。
图5.Pt100热电阻式温度传感器
(3)热电偶式温度传感器
热电偶(thermocouple )是温度测量仪表中常用的测温元件,它直接测量温度,并把温度信号转换成热电动势信号,通过电气仪表(二次仪表)转换成被测介质的温度。各种热电偶的外形常因需要而极不相同,但是它们的基本结构却大致相同,通常由热电极、绝缘套保护管和接线盒等主要部分组成,通常和显示仪表、记录仪表及电子调节器配套使用。
图6. 热电偶
(4)数字式温度传感器
数字式温度传感器具有体积小、价格便宜操作方便的优点。本系统采用了美国DALLAS 公司生产的单总线数字温度传感器,一线制器件——独特的接口,使分布式温度检测得以简化。每片DS18B20都有唯一的产品号能够实现温度的多点检测。测量范围为-55度——+125度,12位的数字值分辨率为0.0625度,完全能够满足我们日常所需温度值。
图7. 数字式温度传感器DS18B20
3.3.2 DS18B20温度传感器电路
我们温度检测部分采用了DS18B20进行温度采集,传感器采集电路如下图
图8.DS18B20温度采集电路
3.4驱动模块
3.4.1半桥驱动原理
制冷风扇为12V 直流电机我们采用MOS 管制作半桥进行驱动,
图9. 半桥驱动电路原理
图10. IRF 3205
3.5升温模块
升温模块我们采用了电吹风发热丝采用220V 交流供电,功率达到750W ,可以升高到300度左右,我们通过电吹风将温度吹到空气中到达升高周围温度的作用。
图11. 发热丝
3.6人机交互模块
3.6.1 1602液晶显示
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。通过1602液晶能够将我们采集的温度进行实时显示,并对其中的参数进行设置。
图12.1602液晶显示电路
图13.1602液晶
3.6.2 红外遥控操作原理
我们使用红外遥控器对系统进行设置。专用遥控器作为控制信号发出装置,当按下遥控器的设置键后,红外接收探头,接收红外信号频率为38kHz ,周期约26μs ,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是不是设置信号,当确认是设置信号后,启动设置子程序,那么以后接收到的红外信号就可以对系统进行设置了。
图14. 红外一体式接收头HS0038
3.6.3红外接收电路
红外接收电路连接到单片机中断口,当红外接收头接收到红外信号后引发中断对系统参数进行设置
图15. 红外接收电路
4. 系统软件设计
4.1程序流程图
图16. 程序设计流程图
4.2温度采集
4.2.1DS18B20软件定义
指令的宏定义定义
#define skip_ROM 0xcc //跳过,允许总线控制器不用提供64位ROM 编码就使用储存器操作命令
#define read_ROM 0x33 //只有在总线上存在单只DS18B20时候才能使用,允许读出8位系列编码、唯一的序列号和8位CRC 吗
#define match_ROM 0x55
#define search_ROM 0xf0
索从机的64位编码
#define alarm_searh 0xec //只有最近一次测温后遇到符合报警条件的情况,DS1820才响应这条命令,报警条件在高于TH 或低于TL
件为止
#define w_scrat 0x4e //写暂存存储器
#define r_scrat 0xbe //读暂存存储器
#define c_scrat 0x48 //复制暂存存储器
#define c_temper 0x44 //温度变换
#define r_EPROM 0xb8 //重新调出
#define r_Power 0xb4 //读电源
DS18B20的一次温度转换后,温度值储存在TH 和TL 中
4.2.2温度的计算
在软件中采用了12位存储温度值,最高位为符号位,负温度S=1,正温度S=0,00AAH为+85°C ,0032H 为+25°C ,FF92H 为-55°C 。
量中
temp = (temp * 625);将数据转换为实际温度值 TL = R_byte();//将低位温度值对出 TH = R_byte(); //将高位温度值对出 temp = (TL | (TH
4.3红外遥控
红外的遥控器的编码为引导码、低8位用户编码、高8位用户编码、8位数据码、8位键数据码的反码。
通过一个红外解码器连接在单片机的中断口,只要一有数据就会触发中断,单片机就会读取数据,判断数据是不是本系统遥控器发出的。通过检验读出操作按键的编码值,在程序中比较编码值判断进行的相应操作并执行。
void IR_IN() interrupt 0
{
uchar j,k,N=0; delay_m(15); if (IRIN==1) } EX0 =1; EX0 = 0; { return;
//确认IR 信号出现
while (!IRIN) //等IR 变为高电平,跳过9ms 的前导低电平信号。
{delay_m(1);}
for (j=0;j=30) { EX0=1; 的前导高电平信号。
} //0.14ms计数过长自动离开。 } //高电平计数完毕 IRCOM[j]=IRCOM[j] >> 1; //数据最高 if (N>=8) { IRCOM[j] = IRCOM[j] | 0x80; //数据最高位补“1” } 位补“0” N=0; }//end for k }//end for j
if (IRCOM[2]!=~IRCOM[3]) {
EX0=1;
} return; switch(IRCOM[2] == 0x47) //按mode 键进入模式调节,按一下调节风{ //按三下返回工作模式 速,按两下调节温度范围, case 1:N1++; if(N1 == 1) { } else if(N1 == 2) { L1602_string(1, 1, LCD_ID_5); L1602_string(2, 1, LCD_ID_6); Tplayer(4, TTi); L1602_string(1, 1, LCD_ID_3); L1602_string(2, 1, LCD_ID_4); Tplayer(11, FF);
} } else { } break; break; N1 = 0; IRCOM[2] = 0xaa; default : if(N1 != 0) { switch(IRCOM[2]) //如果进入调节模式,调节温度,与风速 { case 0x15 : Ch++;//光标所在位置的标志位控制的设置 if(Ch > 2) { } break; if(Ch
} if(TTi >= TTm) { } TTi = 0; if(N1 == 2 && Ch == 2) { } if(N1 == 1) { } Dianji(); if(N1 == 2) { } break; Fare(); Tplayer(4, TTi); Tplayer(12, TTm); if(TTm > 40) { } if(TTi > 40) { TTi = 0; } TTm = 0; FF++; if(TTm
if(N1 == 2 && Ch == 1) { } if(N1 == 2 && Ch == 2) { } if(N1 == 1) { } Dianji(); Fare(); if(TTm TTi) { } Tplayer(12, TTm); TTm--; { } TTi--; if(TTi
}
}
}
if(TTi
TTi = 40;
default :
break;
if(N1 == 0) { } EX0 = 1;
switch(IRCOM[2]) { }
case 0xaa : L1602_string(1, 1, LCD_ID_1);
L1602_string(2, 1, LCD_ID_2); M_D(7, TT); Tplayer(11, FF);
break; break;
default :
4.4电机的PWM 控制
STC12C5A60S2的内部集成模块有两路PWM 波发生器 通过下面寄存器写入相应的值来控制PWM 的占空比 CCAP0H = CCAP0L = 0X00;
这样不同风速寄存器中的数值是不一样的。 下面是电机控制的函数 void Dianji() {
数值
}
{ }
else if(FF == 2 && N1 == 1) { }
else if(FF == 3 && N1 == 1) { }
else if(FF == 4 && N1 == 1) { }
else if(N1 == 1 && FF > 4) { }
else if(N1 == 1 && FF
FF = 4;
CCAP0H = CCAP0L = 0X00; Tplayer(11, FF); FF = 1;
CCAP0H = CCAP0L = 0X44; Tplayer(11, FF);
CCAP0H = CCAP0L = 0X77; Tplayer(11, FF);
CCAP0H = CCAP0L = 0X88; Tplayer(11, FF);
CCAP0H = CCAP0L = 0Xaa; Tplayer(11, FF);
CCAP0H = CCAP0L = 0Xdd; Tplayer(11, FF);
}
4.5发热电阻丝的控制
通过控制继电器的通断来实现发热电阻丝的工作发热这样程序就通过给驱动继电器给高低电平来实现
注:采集温度,当温度发生异常声光报警,加热是红灯提示,不发热时黄灯提示, 并显示实时温度
下面是实现的共功能函数 void Fare() { }
在工作是的工作状态的LED 灯指示和声光报警程序通过下面的函数来实现如果温度
void Xianshi() {
delay_m(130);
TT = DS18b() / 10000; //采集温度
if(TT >= 80) //R如果温度大于100度发出声光警报 { } else {
BEEP = 1; BEEP = 0; if(TT
else if(TT >= TTi && TT
else if(TT >= TTm) { }
JRE = 1; JRE = 0; JRE = 0;
}
}
if((TT >= TTm)) { } { } if(!N1) { }
M_D(7, TT); LT = 0; HT = 1; HT = 0; LT = 1;
else
5. 调试运行
5.1温度传感器校准
我们通过DS18B20进行温度采集,并通过1602液晶进行显示,为了提高我们采集温度的精度与可信度我们用水银温度计对温度进行了校准,由于我们对室内温度进行测量人对温度在一度范围内感知不明显我们在测量温度时只对温度的整数部分进行了显示;在校准过程中我们认为水银温度计的温度为标准温度;同时我们对成都地区的温度为例进行调节温度变化范围是0——50,我们对0到56度范围内的温度进行了校准,每次温度递增7度由于温度不宜控制在用温度计测量时会有小数部分不是严格的递增7度结果如下表1:
表1. 实际温度与系统测得温度比较
通过数据表格我们可以发现系统测得温度与实际温度存在一度的误差,原因是因为人们对一度温度变化不太敏感我们只对温度整数部分进行了显示而未显
示小数部分造成的,。由于我们对室内温度进行调节温度要求不高不要求精确测量。理论上温度能够误差能够控制在-0.0625度——0.0625度范围内。
5.2温度调节时间
为了确定我们的系统能否对目标范围内的温度进行调节,我们设定目标温度然后进行了调节,我们规定如果系统能够在60S 时间内进行控制达到稳定状态就表示调节成功否则失败进行报警。下表为调节时间
表2. 上升到目标温度所需时间
通过表格我们发现在目标温度在可控范围内是能够在20S 内达到目标温度,远小于60S 我们认为我们设计的系统温度控制是成功的。
5.3温度波动范围
为了检测温度是否能够在我们的目标范围内我们进行调节我们选用九组实验数据进行实验温度递增5度,统计实验结果如下:
表3. 设定温度波动情况
通过表格我们发现实际温度会在设定温度左右一度进行波动,我们分析波动是原因首先我们只对温度整数部分进行了显示造成的即使只有零点几度也会使温度在目标左右一度波动。其次,由于传感器温度采集的滞后性实际温度已经达到目标温度但我采集温度还没有到达使温度会有一定量的超调。同时,我们采用的散热丝也会有余热不会在我们一停止加热就不加热这也会导致继续加热或制冷给系统带来一定的超调。
5.4系统参数
工作参数:额定电压 220V ,制冷范围:1m*1m*1m,发热丝额定功率750W 控制部分各个档位功耗如表四,
表四. 控制系统部分功耗
6. 系统优化
6.1优化控制方式
本系统出于设计简洁功能突出,使用方便,经济廉价,适用于收入不高的人群的需求。我们采用的继电器控制发热电阻丝的工作,只能通过继电器的通断来决定发热电阻丝的工作状态。发热量很难控制,这样对于温度的控制有滞后给系统调节带来振荡,并且继电器导通电流比较小限制了发热丝发热量,同时由于继电器采用机械触点寿命短影响系统稳定性。为了避免这些问题的发生可采用晶闸管来作为电阻丝的驱动,这样不仅可以有效提高发热丝发热量也,可以对发热电阻的发热量进行控制和调节,再加上PID 算法的控制就能提高系统的响应速度,降低调节时间,减少系统振荡增强系统稳定性。
6.2美化外形结构
本系统由于资金技术的限制在外形结构上不是很令人满意,发热丝并没有进行相应的隔离保护存在一定的安全隐患。在今后结构上可以对外形的结构进行优化,让其能有简洁流畅的外观和艺术气息,提升产品的产品形象;有利于消费者对其的认同感和使用欲望。同时要进行相应的隔离保护去除安全隐患。
6.3. 扩展系统应用
本系统为小范围温度控制设计,只对单点温度进行了测量与本地显示在实际的生产应用过程中存在很多不足,为提高本系统适用能力扩展系统应用以适应大棚、仓库、粮仓等不同需求我们可通过一下方面进行改进。
(1) 温度多点测量
在实际的生产生活中往往需要对很大一片空间进行温度控制,而对某一点的温度进行采集完全没有参考价值,对实际应用不够合理。为满足这样的需求我们可以用多个温度传感器利用RFID 组成传感器网络对这一片区域进行温度检测再控制多个加热装置分别进行加热或制冷。这样可以解决温度控制范围较小的问题。
(2) 温度控制系统的远程管理
本系统只对温度进行了本地显示这对我们生产生活带来不便我们要了解一片空间的温度就需要到现场查看不利于提议管理。在程序设计中可以采用一些小型的嵌入式操作系统(比如uCOS-II 、freertos 等),提高其的实时性能,并能加强多任务工作时良好的工作稳定性。同时在其基础上建立文件系统和增加以太网接口从而能将使用数据储存起来也能同步到云端,通过基于移动客户端或PC 应用端实现远程控制与其他的设备连接实现智能家具的功能。
(3) 完善制冷功能
本系统用于制冷现在通过吹风的方式并不能将温度降低到比室外温度低很多,这就限制了系统的应用范围。为了满足人们对制冷的需求提高系统适应性能我们可以为本系统加装制冷装置,这样就可以让温度随我们的要求变化了。
通过这三方面的改进将大大增加温度控制范围、优化用户体验、完善系统功能对粮仓、大棚、长途列车等的温度控制用较好的应用前景
温度控制是人们利用科技改造自然的典型,我们这次的工程实践只是做了一个小小的尝试,对温度控制方面还用很多不了解的地方还用很多需要学习的地方。我想通过我们的不断努力不断学习我们将更好的控制温度更好的让科技服务于大众。
结 论
本次工程实践的训练我们设计的是室内温度智能控制系统。通过实践我们完成了对温度的精确采集、实时显示、稳定控制,实现了对室内温度的有效控制对改善人们的生产生活具有重要意义。
这次实践我们从需求分析、方案确定、电路设计制作、程序设计、系统调试一步步走来完成了对测控系统的设计与制作,对一个完整的测控系统的各个环节有了新的认识。培养了工程实践能力与创新能力,增强了动手能力。我们通过此次实践验证了自动控制理论,提出了一种切实可行的室内温度自动控制系统解决方案。对我们的生活和工业生产具有积极作用。
致 谢
本课程设计的完成是在我们的指导老师严寒冰老师的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我们的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了严老师很多的宝贵时间和精力,在此向老师表示衷心地感谢!老师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生!同时我们的设计也得到了控制工程学院测控教研室各位老师的大力支持为我们提出了宝贵的改进意见使我们的设计能够日臻完善,在这里我们表示衷心的感谢。
还要感谢和我们一小组的同学,在我们平时设计中和我们一起探讨问题,大家分工合作才有了今天的设计成果没有你们的帮助我们不可能这样顺利地结稿,在此表示深深的谢意。
参考文献
[1].郑郁正,孟芳,文斌. 单片微型计算机原理及接口技术. 北京:高等教育出版社.2012.7
[2].胡向东,刘京诚,余成波. 传感器与检测技术. 北京:机械工业出版社,2009.1
[3] 孙余凯. 典型自动控制电路识图与应用快捷入门. 北京:电子工业出版社,2010.8
[4] 赵家贵. 新编传感器电路设计手册. 北京:中国计量出版社,2002.9。
附件
附件一:原理图
附件二:源程序
#include
#include
#include
#include
#include
#include
#include
uchar LCD_ID_1[16] = {"Temper:--C "};
uchar LCD_ID_2[16] = {"Wind speed:- "};
uchar LCD_ID_3[16] = {"Spe regul mode "};
uchar LCD_ID_4[16] = {"Wind speed:- "};
uchar LCD_ID_5[16] = {"Temper mode "};
uchar LCD_ID_6[16] = {"min:--C max:--C"};
sbit IRIN = P3^2; //红外接收器数据线
sbit BEEP = P3^3; //蜂鸣器驱动线
sbit HT = P1^2; //高温指示灯驱动
sbit LT = P1^1; //低温指示灯驱动
sbit JRE = P1^4;
sbit KEY = P1^5; //功能选择模式按键
sbit UP = P1^6; //设置温度++
sbit Dwon = P1^7; //设置温度--
sbit S1 = P3^0;
sbit S2 = P1^6;
sbit S3 = P1^5;
void Xianshi();
void Fare();
void Jianpan();
void Dianji();
void delay1(int ms)
{
unsigned char y;
while(ms--)
{
for(y = 0; y
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
unsigned long int DS18b();
uchar IRCOM[5];
uchar FF = 1, N1 = 0, Ch = 1, TTi = 20, TTm = 26;
uchar TT = 30;
void IR_INIT()
{
}
void delay_m(uchar x);
void PWM_Init(void);
void Tplayer(uchar add, unsigned long int TT)//第二行显示
{
shi = TT / 10; ge = TT % 10; uchar shi, ge; IE = 0x81; //允许总中断,使能INT0外部中断 TCON = 0x01; //触发方式为脉冲负边沿触发
write_date(0x30+shi); write_date(0x30+ge); }
void M_D(uchar add, unsigned long int time) //第一行显示
{
}
void main()
{
PWM_Init(); CCAP0H = CCAP0L = 0X00; BEEP = 0; HT = 0; LT = 1; IR_INIT(); IRIN=1; //hongI/O口初始化 shi = time / 10; ge = time % 10; write_com(0x80+add); write_date(0x30+shi); write_date(0x30+ge); uchar shi, ge;
delay1(10); //延时
L1602_Init(); //初始化LCD
L1602_string(1, 1, LCD_ID_1); L1602_string(2, 1, LCD_ID_2); M_D(7, TT); Tplayer(11, FF); Xianshi(); while(1) {
}
} Fare(); Jianpan(); if(Ch == 2 && N1 == 2) { } if(Ch == 1 && N1 == 2) { } if(N1 != 2) { } write_com(0x0c); write_com(0x80+0x40+5); write_com(0x0f); write_com(0x80+0x40+13); write_com(0x0f); //起初设想使用PWM 控制,但是由于使用的继电器只能对低频做出响应实际这个函数是没有实质的意义
void IR_IN() interrupt 0
{
uchar j,k,N=0; delay_m(15); if (IRIN==1) } EX0 =1; EX0 = 0; { return;
//确认IR 信号出现
while (!IRIN) //等IR 变为高电平,跳过9ms 的前导低电平信号。
{delay_m(1);}
if (IRCOM[2]!=~IRCOM[3]) for (j=0;j=30) { EX0=1; return; 的前导高电平信号。 } //0.14ms计数过长自动离开。 } //高电平计数完毕 IRCOM[j]=IRCOM[j] >> 1; //数据最高 if (N>=8) { IRCOM[j] = IRCOM[j] | 0x80; //数据最高位补“1” } 位补“0” N=0; }//end for k }//end for j
} { EX0=1; return; switch(IRCOM[2] == 0x47) //按mode 键进入模式调节,按一下调节风{ } if(N1 != 0) { switch(IRCOM[2]) //如果进入调节模式,调节温度,与风速 //按三下返回工作模式 速,按两下调节温度范围, case 1:N1++; if(N1 == 1) { } else if(N1 == 2) { } else { } break; break; N1 = 0; IRCOM[2] = 0xaa; L1602_string(1, 1, LCD_ID_5); L1602_string(2, 1, LCD_ID_6); Tplayer(4, TTi); Tplayer(12, TTm); L1602_string(1, 1, LCD_ID_3); L1602_string(2, 1, LCD_ID_4); Tplayer(11, FF); default :
case 0x15 : Ch++;//光标所在位置的标志位控制的设置 if(Ch > 2) { } break; if(Ch = TTm) { } TTi = 0; TTi++; Ch = 2; Ch = 1; case 0x07 : Ch--;//光标所在位置的标志位控制的设置 case 0x40 : 式调节最低温度事数值++
{ } Dianji(); if(N1 == 2) { } break; Fare(); Tplayer(4, TTi); Tplayer(12, TTm); if(TTm > 40) { } if(TTi > 40) { TTi = 0; } TTm = 0; FF++; case 0x44 : //按下CH —键 if(N1 == 2 && Ch == 1) { { } TTi--; if(TTi
} } Tplayer(4, TTi); if(N1 == 2 && Ch == 2) { } if(N1 == 1) { } Dianji(); if(N1 == 2) { Fare(); if(TTm TTi) { } Tplayer(12, TTm); TTm--; // //
} // default : break; if(N1 == 0)
}
/* } EX0 = 1; switch(IRCOM[2]) { } case 0xaa : L1602_string(1, 1, LCD_ID_1); L1602_string(2, 1, LCD_ID_2); M_D(7, TT); Tplayer(11, FF); break; break; default :
函数功能:延时x*0.14ms
输入:延时时间x
输出:无
*/
void delay_m(uchar x)
{
}
/*
函数功能:采集温度,当温度发生异常声光报警,加热是红灯提示,不发热时黄灯提示
, 并显示实时温度
输入:无 while(x--) { for(b=140;b>0;b--); } uchar b;
输出:无
*/
void Xianshi()
{
}
/*
函数功能:通过P1.4口调节发热电阻丝的状态 输入:无
输出:无 if((TT >= TTm)) { } { } if(!N1) { } M_D(7, TT); LT = 0; HT = 1; HT = 0; LT = 1; delay_m(130); TT = DS18b() / 10000; //采集温度 if(TT >= 80) //R如果温度大于100度发出声光警报 { } else { } BEEP = 1; BEEP = 0; else
*/
void Fare() { } if(TT = TTi && TT = TTm) { } JRE = 1; JRE = 0; JRE = 0;