温湿度传感器系统的原理和设计优秀毕业论文Word下载.docx
- 文档编号:21762623
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:418.15KB
温湿度传感器系统的原理和设计优秀毕业论文Word下载.docx
《温湿度传感器系统的原理和设计优秀毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《温湿度传感器系统的原理和设计优秀毕业论文Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
代信息技术。
三者分工合作:
传感器相当于人的感官器官,将所有
搜集到的周围规定的被测量目标的变化;
通信技术则相当于人的神
经负责将传感器搜集到的数据信息传递给大脑——计算机:
计算机则负责一切数据的处理并作出判断。
所以利用传感器可以准确的测量我们所需要的信息。
作为和
我们最为密切的一对参数温度和湿度的测量是不可或缺的。
1.2温湿度测量系统的组成
温湿度测量系统由控制部分、测量部分和显示部分组成。
控制部
分采用单片机STC89C52;
测量部分采用集A/D转换功能、温度测量、
湿度测量集于一体的DHT11传感器;
显示部分采用液晶屏1602。
1.3单片机发展
1.4传感器的发展和介绍
第二章系统的组成
在第一章中我们已经介绍该系统由控制部分、测量部分和显示部分组成。
现在我们来分系统介绍。
2.1
单片机89C52
此系统采用常用的STC89C52单片机
STC89C52是一个低电压,高性能CMOS8位单片机,片内
含8kbytes的可反复擦写的Flash只读程序存储器和256
bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的
高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,
片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。
STC89C52有40个引脚,32个外部双向输入/输出
(I/O)端口,同时内含2个外中断口,3个16位可编程定时
计数器,2个全双工串行通信口,2个读写口线,AT89C52可以
按照常规方法进行编程,但不可以在线编程(S系列的才支持在
线编程)。
其将通用的微处理器和Flash存储器结合在一起,
特别是可反复擦写的Flash存储器可有效地降低开发成本。
STC89C52是51系列单片机的一个型号,它是ATMEL公司
生产的。
可以直接替换,只是内部多了一个EEPROM空间,可以串口下载程序,指令执行速度快一倍。
51系列单片机介绍主要功能特性
◆兼容MCS51指令系统
◆
8k可反复擦写(>
1000次)FlashROM
◆32个双向I/O口?
256x8bit内部RAM
◆3个16位可编程定时/计数器中断?
时钟频率0-24MHz◆2个串行中断
可编程UART串行通道
◆2个外部中断源
◆共8个中断源
◆2个读写中断口线
◆3级加密位
◆低功耗空闲和掉电模式
◆软件设置睡眠和唤醒功能
8051单片机的引脚功能
MCS-51系列单片机一般采用40个引脚,双列直插式封装,
用HMOS工艺制造,其外部引脚排列如图所示。
其中,各引脚的功能为:
(a)DIP引脚图(b)逻辑符号
8051单片机的引脚介绍
⑴主电源引脚:
Vcc(40脚):
接+5V电源正端
Vss(20脚):
接+5V电源地端
一般Vcc和Vss间应接高频去耦电容和低频滤波电容。
⑵外接晶体或外部振荡器引脚
XTAL1(19脚):
接外部晶振的一个引脚。
在单片机内部,它
是一个反相放大器的输入端,这个放大器构成了片内振荡器OSC。
当采用外部振荡器时,此引脚应接地。
XTAL2(18脚):
接外部晶振的另一个引脚。
在片内接至反相
放大器的输出端和内部时钟电路的输入端。
当采用外部振荡器时,此脚接外部振荡器的输出端。
⑶控制信号线
RST/VPD(9脚):
复位信号输入端,复位/掉电时内部RAM的备用电源输入端
ALE/(30脚):
地址锁存允许/编程脉冲输入。
用ALE锁存
从P0口输出的低8位地址;
在对片内EPROM编程时,编程脉冲由此输入。
(29脚):
外部程序存储器读选通信号,低电平有效。
/VPP(31脚):
访问外部存储器允许/编程电压输入。
EA为
高电平时,访问内部存储器;
低电平时,访问外部存储器。
对
第二功能
片内EPROM编程时,此脚接21V编程电压。
⑷多功能I/O口引脚
8051单片机设有4个双向I/O口(P0、P1、P2、P3),每一组I/O口线都可以独立地用作输入或输出口,其中:
1.P0口为(32~39脚)——双向口(三态),可作为输入
/输出口,可驱动8个LSTTL门电路。
实际应用中常作为分时
使用的地址/数据总线口,对外部程序或数据存储器寻址时低
8位地址与数据总线分时使用P0口:
先送低8位地址信号到
P0口,由地址锁存信号ALE的下降沿将地址信号锁存到地址
锁存器后,再作为数据总线的口线对数据进行输入或输出。
2.P1口(1~8脚)——准双向口(三态),可驱动4个
LSTTL门电路。
用作输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。
3.P2口(21~28)——准双向口(三态),可驱动4个
可作为输入/输出口,实际应用中一般作为地
址总线的高8位,与P0口一起组成16位地址总线,用于对外部存储器的接口电路进行寻址。
4.P3口(10~17脚)——准双向口(三态),可驱动4个
双功能口,作为第一功能使用时,与P1口一
样;
作为第二功能使用时,每一位都有特定用途,其特殊用途如表所示:
端口引脚
注
释
P3.0
RXD
串行口数据接收端
P3.1
TXD
串行口数据发送端
P3.2
/INT0
外中断请求0
P3.3
/INT1
外中断请求1
P3.4
T0
定时/计数器0外部计数信号输入
P3.5
T1
定时/计数器1外部计数信号输入
P3.6
/WR
外部RAM写选通信号输出
P3.7
/RD
外部RAM读选通信号输出
2.2DHT11介绍
DHT11特点
◆相对湿度和温度测量
◆全部校准,数字输出
◆卓越的长期稳定性
◆无需额外部件
◆超长的信号传输距离◆超低能耗
◆4引脚安装
◆完全互换
DHT11产品概述
DHT11数字温湿度传感器是一款含有已校准数字信号输出的
温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感
技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包
括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位
单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力
强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校
验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感
器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行
接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号
传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场
合的最佳选则。
产品为4针单排引脚封装。
其中电源引脚的供
电电压为3.5--5.5V。
传感器上电后,要等待1s以越过不稳定状
态在此期间不要发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
DHT11典型应用电路如图所示,其连接电路简单,只需要占用控制
器一个I/O口即可完成上下位的连接。
建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,
图DHT11典型应用电路
DHT11
2.3液晶1602介绍
1602液晶简介
1602LCD分为带背光和不带背光两种,基控制器大部分为
HD44780,带背光
的
比不
带背光的厚,是否带背光在应用
中并无差别,此设计采用的是带背光16脚,两者尺寸差别如下图所示:
1602LCD主要技术参数:
显示容量:
16×
2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×
4.35(W×
H)mm
2.4接口电路
本设计采用USB接口供电,电源电压5V。
同时,USB接口通过内
含PL2303芯片的转换电路对单片机进行程序编写。
其电路原理如图所示:
第三章硬件电路设计3.1单片机电路
通过K2、K3、K4、K5为4个调节按键分别用来调节温度和湿度
的上限和下线。
其中K2为温度上限增加,K3为温度上限减小,K4为湿度上限增加,K5为湿度上限减小。
3.2传感器接线
DHT11的连线
DHT11数字湿温度传感器采用单总线数据格式,即单个数据引脚端
口完成输入输出双向传输。
其数据包由5Byte(40Bit)组成。
一次通
讯时间最大3ms,数据分小数部分和整数部分。
一次完整的数据传输为40bit,高位先出。
数据格式如表:
表DHT11数据格式
配用EEPROM芯
片AT24C04,使存储的温度上下限和湿度上下限可以掉电永久保
存。
温湿度阈值存储在EEPROM芯片AT24C04中,并可以通过K2—K5按键调节并保存。
3.3显示部分
1602接线图
引脚功能
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表所示:
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
第四章程序设计
4.1main.c主程序编写
#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;
//开始温湿度转换标志
U8FLAG,k;
U8count,U8temp;
extern
U8
U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_
L_temp;
U8checkdata_temp;
U8comdata;
volatilebitFlagKeyPress=0;
//有键按下
//定义温湿度传感器用外部变量
externU8
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
TL0=0x06;
//定时器赋予初值
//每2秒钟启动一次温湿度转换
RHCounter++;
if(RHCounter>
=1000)
FlagStartRH=1;
//存入设定值、
voidSave_Setting()
DELAY(500);
pSave=(char*)&
TH;
//地址低位对应低8位,高位对应高8位
wrteeprom(0,*pSave);
//存温度上限值TH低8位
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);
break;
*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);
case2:
if(TH>
1)TH--;
case3:
if(HH<
99)HH++;
default:
Save_Setting();
Timer0_Init();
Data_Init();
L1602_char(2,15,HH/10+48);
L1602_char(2,16,HH%10+48);
case4:
if(HH>
1)HH--;
(5)main()函数
voidmain()
U16i,j,testnum;
EA=0;
{;
L1602_init();
"
);
L1602_string(1,1,"
L1602_string(2,1,"
Tem:
C
TH:
Hum:
%
HH:
Load_Setting();
EA=1;
WelcometoT&
H
ControlSystem!
//延时
for(i=0;
i<
1000;
i++)
for(j=0;
j<
j++)
//清屏
//载入温度上限和湿度上限设定值
L1602_int(1,5,temperature);
L1602_int(2,5,humidity);
while
(1)
//温湿度转换标志检查
if(FlagStartRH==1)
TR0=0;
testnum=RH();
FlagStartRH=0;
TR0=1;
//读出温湿度,只取整数部分
humidity=U8RH_data_H;
temperature=U8T_data_H;
//显示温湿度
//温湿度控制
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;
KeyProcess(keyvalue);
//键盘查询,在弹起时响应
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)
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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温湿度 传感器 系统 原理 设计 优秀 毕业论文