单片机报告温湿度控制器Word文档下载推荐.docx
- 文档编号:22178244
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:43
- 大小:1.29MB
单片机报告温湿度控制器Word文档下载推荐.docx
《单片机报告温湿度控制器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机报告温湿度控制器Word文档下载推荐.docx(43页珍藏版)》请在冰豆网上搜索。
该报警信号可以通过三极管驱动继电器,以控制外部风机或加热器。
继电器电路套件中不标配,如果需要请另外说明。
2、温湿度传感器器及检测电路
图2DHT11温湿度传感器外型及管脚
DHT11温湿度传感器外型及管脚如图2所示。
其中电源引脚的供电电压为3.5--5.5V。
传感器上电后,要等待1s以越过不稳定状态在此期间不要发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
DHT11典型应用电路如图3所示,其连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接。
建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,
图3DHT11典型应用电路
DHT11数字湿温度传感器采用单总线数据格式,即单个数据引脚端口完成输入输出双向传输。
其数据包由5Byte(40Bit)组成。
一次通讯时间最大3ms,数据分小数部分和整数部分。
一次完整的数据传输为40bit,高位先出。
数据格式如表一:
表1DHT11数据格式
3、单片机电路
本设计选用宏晶公司高性能单片机STC89C52,其管脚如图4所示。
图4STC89C52单片机管脚图
该芯片为52内核8位单片机,兼容Intel等52内核单片机,支持ISP下载,适用于常用检测控制电路。
由STC89C52组成的单片机系统原理图如图5所示。
图中DATA引脚为温湿度传感器单总线引脚,K1、K2、K3、K4为四只调节按键,用以调整温湿度上限值。
L3、L4、L5为三只报警灯,其中L3为超温报警,L4为超湿报警,L5保留给用户定义。
图5单片机系统原理图
4、显示电路
显示部分采用SMC1602液晶屏进行数据显示,其主要技术参数为:
表2液晶屏技术指标
接口信号说明如表3所示。
表3液晶屏接口信号说明
与单片机接口电路如图6所示。
图6LCD与单片机接口电路
5、温湿度上限存储
温湿度阈值存储在EEPROM芯片AT24C04中,并可以通过K1—K4按键调节并保存,其中K1为温度上限增加,K2为温度上限减小,K3为湿度上限增加,K4为湿度上限减小。
AT24C04是IIC芯片,其电路如图7所示。
图7EEPROM存储电路
6、供电及程序下载电路
本设计采用USB接口供电,电源电压5V。
同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。
其电路原理如图8所示。
图8供电及程序下载电路
三、软件编程
1、软件流程图
本设计软件主程序流程图如图9所示。
图9主程序流程图
2、主程序
下面介绍main.c主程序编写,其他程序略。
(1)头文件和一些宏定义
#include<
reg52.h>
#include"
1602.h"
dht.h"
2402.h"
(2)管脚定义
sbitLed_qushi=P1^6;
//去湿灯
sbitLed_jiangwen=P1^5;
//降温灯
sbitLed_shengwen=P1^4;
//升温灯
sbitKey_TH1=P3^2;
sbitKey_TH2=P3^3;
sbitKey_HH1=P3^4;
sbitKey_HH2=P3^5;
(3)常量、变量定义
//定义标识
volatilebitFlagStartRH=0;
//开始温湿度转换标志
volatilebitFlagKeyPress=0;
//有键按下
//定义温湿度传感器用外部变量
externU8U8FLAG,k;
externU8U8count,U8temp;
externU8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
externU8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp;
externU8U8checkdata_temp;
externU8U8comdata;
externU8count,count_r;
U16temp;
S16temperature,humidity;
S16idataTH,HH;
//温度上限和湿度上限
char*pSave;
U8keyvalue,keyTH1,keyTH2,keyHH1,keyHH2;
U16RHCounter;
(4)各子程序
//数据初始化
voidData_Init()
{
RHCounter=0;
Led_qushi=1;
Led_jiangwen=1;
Led_shengwen=1;
TH=40;
HH=85;
keyvalue=0;
keyTH1=1;
keyTH2=1;
keyHH1=1;
keyHH2=1;
}
//定时器0初始化
voidTimer0_Init()
ET0=1;
//允许定时器0中断
TMOD=1;
//定时器工作方式选择
TL0=0x06;
TH0=0xf8;
//定时器赋予初值
TR0=1;
//启动定时器
//定时器0中断
voidTimer0_ISR(void)interrupt1using0
//每2秒钟启动一次温湿度转换
RHCounter++;
if(RHCounter>
=1000)
{
FlagStartRH=1;
}
//存入设定值、
voidSave_Setting()
pSave=(char*)&
TH;
//地址低位对应低8位,高位对应高8位
wrteeprom(0,*pSave);
//存温度上限值TH低8位
DELAY(500);
pSave++;
wrteeprom(1,*pSave);
//存温度上限值TH高8位
HH;
wrteeprom(2,*pSave);
//存湿度上限值RH低8位
wrteeprom(3,*pSave);
//存湿度上限值RH高8位
//载入设定值、
voidLoad_Setting()
*pSave++=rdeeprom(0);
*pSave=rdeeprom
(1);
*pSave++=rdeeprom
(2);
*pSave=rdeeprom(3);
if((TH>
99)||(TH<
0))TH=40;
if((HH>
99)||(HH<
0))HH=85;
voidKeyProcess(uintnum)
switch(num)
case1:
if(TH<
99)TH++;
L1602_char(1,15,TH/10+48);
L1602_char(1,16,TH%10+48);
break;
case2:
if(TH>
1)TH--;
case3:
if(HH<
99)HH++;
L1602_char(2,15,HH/10+48);
L1602_char(2,16,HH%10+48);
case4:
if(HH>
1)HH--;
default:
Save_Setting();
(5)main()函数
voidmain()
U16i,j,testnum;
EA=0;
Timer0_Init();
//定时器0初始化
Data_Init();
EA=1;
L1602_init();
L1602_string(1,1,"
WelcometoT&
H"
);
L1602_string(2,1,"
ControlSystem!
"
//延时
for(i=0;
i<
1000;
i++)
for(j=0;
j<
j++)
{;
//清屏
Tem:
CTH:
"
Hum:
%HH:
//载入温度上限和湿度上限设定值
Load_Setting();
while
(1)
//温湿度转换标志检查
if(FlagStartRH==1)
{
TR0=0;
testnum=RH();
FlagStartRH=0;
TR0=1;
//读出温湿度,只取整数部分
humidity=U8RH_data_H;
temperature=U8T_data_H;
//显示温湿度
L1602_int(1,5,temperature);
L1602_int(2,5,humidity);
}
//温湿度控制
if(temperature>
TH)Led_jiangwen=0;
elseLed_jiangwen=1;
//降温
if(humidity>
HH)Led_qushi=0;
elseLed_qushi=1;
//去湿
//键盘查询,在弹起时响应
if((Key_TH1)&
&
(keyTH1==0)){FlagKeyPress=1;
keyvalue=1;
elseif((Key_TH2)&
(keyTH2==0)){FlagKeyPress=1;
keyvalue=2;
elseif((Key_HH1)&
(keyHH1==0)){FlagKeyPress=1;
keyvalue=3;
elseif((Key_HH2)&
(keyHH2==0)){FlagKeyPress=1;
keyvalue=4;
if(FlagKeyPress==1)
KeyProcess(keyvalue);
FlagKeyPress=0;
if(!
Key_TH1)keyTH1=0;
elsekeyTH1=1;
Key_TH2)keyTH2=0;
elsekeyTH2=1;
Key_HH1)keyHH1=0;
elsekeyHH1=1;
Key_HH2)keyHH2=0;
elsekeyHH2=1;
}
四、下载与调试
提供例程在uVision4环境下编译,如果是其他版本uVision,只需将所有.c和.h
文件拷贝至新建项目,重新编译即可。
当编译生成.hex文件后,就可以下载并进行调试了。
1、USB转串口驱动安装
打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.exe安装文件,按提示安装USB转串口驱动程序。
安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(ProlificUSB-to-SerialCommPort(COMX)。
X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装。
记住括号里的COM口号。
图10成功安装USB转串口驱动示意图
2、下载程序
打开STC单片机下载软件文件夹,点击运行STC_ISP_V481.exe程序,出现如下界面。
图11下载软件
正确选择MCU类型,COM口(与刚才安装的COM号一致),最高波特率和最低波特率都选2400bps或者1200bps(下载线内PL2303芯片所限,没办法!
),并打开正确的.hex数据文件。
点击“Download/下载”按纽,窗口出现提示:
Chinese:
正在尝试与MCU/单片机握手连接...
Connectionisfailure.Youcantry:
1.GiveyourMCUPowerOnReset.
2.Stopoperation,thenre-selectCOMPort.
3.BecausePLCC-DIP/PQFP-DIPSockettracetoolong.
4.UpdatetheSTCISP.exeversion.
5.Ifstillerror,yourMCUFirmwareiserror
ornull.
连接失败,请尝试以下操作:
1.在单片机停电状态下,点下载按钮,再给单片机上电
2.停止下载,重新选择RS-232串口,接好电缆
3.可能需要先将P1.0/P1.1短接到地
4.可能外部时钟未接
5.因PLCC、PQFP转换座引线过长而引起时钟不振荡,请
调整参数
6.可能要升级电脑端的STCISP.exe软件
7.若仍然不成功,可能MCU/单片机内无ISP系统引导码,
或需退回升级,或MCU已损坏
8.若使用USB转RS-232串口线下载,可能会遇到不兼容
的问题,可以让我们帮助购买兼容的USB转RS-232
串口线
仍在连接中,请给MCU上电...
按下电路板上的电源按纽,保证其有个失电至上电的过程,则窗口显示开始烧录芯片。
3、运行
下载完成后程序自动运行,或重上电后程序正常运行,如图12所示。
本章小结
本章介绍了硬件电路主要部件的检测和功能强大的编译仿真软件KEIL的一些基本使用方法,用其可以生成下载文件HEX,也可以编译仿真程序,如果没有硬件进行验证程序,还可以与Proteus这款软件配合使用,可以仿真硬件实现的功能。
结论
本次我的毕业设计的题目是基于单片机的温湿度计,要求是能够时时检测当前温度和湿度,当湿度到某一数值时启动加湿功能。
在老师的帮助和自己的不断努力下,本次毕业设计成功实现了所要达到的技术指标。
在本此设计中,由于采用的是高效单片机作为核心,集温度传感器和湿度传感器于一体的SHT11作为主要的采集与测量系统,由于将传感器与电路部分结合在一起,因此,该传感器具有比其它类型的湿度传感器优越得多的性能。
首先是传感器信号强度的增加增强了传感器的抗干扰性能,保证了传感器的长期稳定性,而A/D转换的同时完成,则降低了传感器对干扰噪声的敏感程度。
其次在传感器芯片内装载的校准数据保证了每一只湿度传感器都具有相同的功能,即具有100%的互换性。
其中它自带的A/D转换器,使得此温湿度计具有精度高、成本低、接口简单等特点,还具有良好抗干扰能力。
加上优化程序,使得本系统具有很高的实用性。
通过本次设计使我对温湿度计有了比较全面的了解,熟悉了温湿度计设计的理念,掌握了温湿度计设计的一些技能,让我了解了设计方法对我们学习的重要性,同时也发现了自己的很多不足之处。
我深刻认识到仅仅了解书本上的知识是远远不够的,只有结合自己的实际情况运用于实践,这样才能更深地了解和学习好知识,同时我们要在工作中不断的积累经验,学会用自己的知识解决实际问题。
由于时间和本人能力的限制,设计中存在一些需要改进和优化的地方。
测量精度有待进一步提高,软件设计也存在不合理之处。
但在设计的过程中,使我对四年以来所学的专业知识有了更深一步的理解,不仅提高了动手能力,而且使我对产品开发的过程有了更深刻的了解。
通过本次设计我积攒了很多经验并收获了很多知识,真是受益匪浅。
致谢
大学生活一晃而过,人生能有几个四年,我在我的大学里度过了我人生最有意义的四年。
回首走过的岁月,心中倍感充实,当我写完这篇毕业论文的时候有一种如释重负的感觉,感慨良多。
首先诚挚的感谢我的指导老师胡金龙老师。
从开题报告开始,他在忙碌的教学工作中挤出时间审查、修改我的论文。
他渊博的专业知识,严谨的治学态度,精益求精的工作作风,教人不倦的高尚品德,严于律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。
不仅是我树立了远大的工作目标,掌握了基本的学习方法,还是我明白了许多带人接物与为人处世的道理,还有教过我的老师,你们的严谨细致、一丝不苟的作风一直是我工作学习中的榜样;
他们的循循善诱的教导和不拘一格的思路给与我无尽的启迪。
感谢四年中陪伴在我身边的同学、朋友、感谢他们为我提出有意的意见和建议,有了他们的支持、鼓励和帮助,我才充实的度过了死难的学习生活。
最后真诚期望每一个已经出现在或是已经出现在我不同人生阶段却是同一条生活轨迹的师长、亲友、同学们,能够拥有美好幸福的生活状态、以及一直热忱于拥有满意工作的心,同时也是对自己未来生活的期冀。
参考文献
[1]侯国锐.赵亮.单片机C语言编程与实践.人民邮电出版社.
[2]戴佳.于永.单片机C语言常用模块与综合系统设计.电子工业出版社.
[3]孙宝元.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 报告 温湿度 控制器
![提示](https://static.bdocx.com/images/bang_tan.gif)