- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多功能智能控制系统
第8组
金逸超
许扬扬
史文雯
摘要 2
1.系统方案选择和论证 2
1.1设计要求 2
1.2系统基本方案 2
1.2.1各模块方案选择和论证 3
2. 单元电路设计 4
2.1 温度传感器 4
2.2 湿度传感器模块 5
2.3 光照度传感器模块 5
2.4 数码显示 6
2.5 过限报警、智能控制模块 7
3.系统的软件设计 7
3.1数据处理 7
3.2光照度测量程序如下: 8
3.3 湿度读取程序 9
3.4温度读取程序 9
4.系统测试 9
4.1 测试仪器 9
4.2 指标测试 10
4.3 误差分析 10
5. 总结 10
参考文献 11
摘要
本系统采用温度传感器(DS18B20),湿度传感器(HS1101),光照度传感器(LX1970)分别对外界温度,湿度,光照度进行测量,由52单片机进行控制,把测得的数据进行显示,并且可以设置警限,超过限制就能发出警报。实现了同时对多种外部参数进行采集、处理的功能。
1.系统方案选择和论证
1.1设计要求
采集外部环境的温度,湿度,光照度,并进行显示,可以设置警限,超过限度可以发出警报。
1.2系统基本方案
各子系统的功能描述如下:
子系统 描述 温度传感器 检测环境温度,并转化为电信号 湿度传感器 检测环境湿度,并转化为电信号 光照度传感器 检测环境光照度,并转化为电信号 硬件控制器 控制计算转化各传感器传来的电信号 数码显示 将三种参数在数码管上循环显示出来 过限报警 某一参数不在用户设定范围内时报警 设定限值 用户可以设定三种参数的正常范围
1.2.1.2 湿度传感器模块湿敏电阻湿敏电阻的特点是在基片上覆盖一层用感湿材料制成的膜,当空气中的水蒸气吸附在感湿膜上时,元件的电阻率和电阻值都发生变化,利用这一特性即可测量湿度。湿敏电阻的优点是灵敏度高,主要缺点是线性度和产品的互换性差。湿敏电当环境湿度发生改变时,湿敏电容的介电常数发生变化,使其电容量也发生变化,其电容变化量与相对湿度成正比。湿敏电容的主要优点是灵敏度高、产品互换性好、响应速度快
1.2.1.3 光照度传感器模块light-emitting diode的缩写,具有高亮度,低能耗,低压,低损耗,防晒,防潮,防火,高刷新率,对外界环境要求低,易于维护,操作简单等优点,能提供宽达160°的视角,可以在较远的距离上看清楚,编译简单,资源占用少。但是它的显示存在信息量少,显示不直观,不易理解的缺点。本系统要显示的数字比较简单,因此采用led数码管进行动态显示。
方案二:采用LCD(液晶屏)显示
LCD(液晶屏)是Liquid Crystal Display的缩写,它具有汉字显示的功能,信息量丰富且直观易懂,轻薄短小,耗电量低,无辐射危险,画面效果好,分辨率高,抗干扰能力强,但编程工作量大,控制器资源占用较多,成本偏高,并且在使用时不能有静电干扰,容易烧坏显示芯片,不易维护。
2. 单元电路设计
2.1 温度传感器
DS18B20读取时序图
2.2 湿度传感器模块
图3、HS1101典型频率产生电路光照度传感器模块
2.4 数码显示
采用单片机上的一个定时中断来刷新数码管的显示,每隔大约2ms的时间,根据所要显示的数据,在预先定好的字码表中找到相应的字码,连续刷新四个数码管一次,以达到较好的视觉效果。 数码显示模块程序流程图如下:
2.5 过限报警、智能控制模块
此模块需要对各个传感器传来的数值与现有相应限值进行比较,若不在当前设定的限制范围之内,则告知处理器相关信息。并由处理器发出信号,通过继电器的动作(由于是原型模型,因此我们实验中使用相应发光二极管来代替相应继电器动作)来实现各类智能化控制。不同继电器上接入不同的功能模块,即可实现不同的自动控制。
3.系统的软件设计
3.1数据处理
对各个传感器传来的电信号、微机传来的数据以及数码显示进行处理,并对这些功能进行整合,进行合理分配。
在程序实现中,我们AT89C52的三个定时中断我们全都使用上了,定时器0一方面作为50ms定时器,用于精确测量外部输入频率值、另一方面提示处理器读取当前传感器新值:
void time0() interrupt 1//定时器0
{
TH0 = 0x4c;
TL0 = 0x00; //50ms定时器
if(timer == 19){
fre = TempFre;//读频率
flag = 1;//读取传感器新值
TempFre = 0;
timer = 0;
}
else
timer++;
}
void time1(
文档评论(0)