温湿度传感器系统的原理和设计优秀毕业论文.docx

上传人:b****4 文档编号:12275475 上传时间:2023-04-17 格式:DOCX 页数:21 大小:317.98KB
下载 相关 举报
温湿度传感器系统的原理和设计优秀毕业论文.docx_第1页
第1页 / 共21页
温湿度传感器系统的原理和设计优秀毕业论文.docx_第2页
第2页 / 共21页
温湿度传感器系统的原理和设计优秀毕业论文.docx_第3页
第3页 / 共21页
温湿度传感器系统的原理和设计优秀毕业论文.docx_第4页
第4页 / 共21页
温湿度传感器系统的原理和设计优秀毕业论文.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

温湿度传感器系统的原理和设计优秀毕业论文.docx

《温湿度传感器系统的原理和设计优秀毕业论文.docx》由会员分享,可在线阅读,更多相关《温湿度传感器系统的原理和设计优秀毕业论文.docx(21页珍藏版)》请在冰豆网上搜索。

温湿度传感器系统的原理和设计优秀毕业论文.docx

温湿度传感器系统的原理和设计优秀毕业论文

届本科生毕业论文(设计)档案存档编号:

 

武汉大学

 

毕业论文(设计)档案

 

题目:

系别:

专业:

年级:

学号:

姓名:

指导教师:

 

武汉大学教务处印制

年月日

 

第1章绪论

1.1绪论

1.2温度系统的组成

1.3单片机的发展

1.4传感器的发展

第2章系统的组成

2.1传感器DHT11介绍

2.2单片机STC89C52介绍

2.3液晶1602介绍

2.4接口电路

第3章硬件电路设计

第4章程序设计

第5章附录

 

第一章绪论

1.1毕业论文(设计)题目的来源

传感器是现代电子信息技术的关键技术之一,其应用广泛,从家用电器到工业设备,道路交通,无处不体现着传感器的方便,快捷为人类提供了极大的便利。

不管是在生活之中还是在地球轨外围的卫星轨道上,我们时刻都在享受着天气预报给我们带来的乐趣。

在各行各业之中。

温度是一个重要的指标,他展现着某个环境是否在安全范围之类,一旦温度异常将会给人类的社会活动工农业生产带来巨大不利因素。

所以时时刻刻对温度进行监控是必要的安全措施。

作为一对双胞胎湿度也无时不刻的影响这我们的一切:

小到穿衣防寒因此了解我们所处环境的湿度对我们生活大有益处。

在21世纪,传感器技术和计算机技术、通信技术并成为当今现代信息技术。

三者分工合作:

传感器相当于人的感官器官,将所有搜集到的周围规定的被测量目标的变化;通信技术则相当于人的神经负责将传感器搜集到的数据信息传递给大脑——计算机:

计算机则负责一切数据的处理并作出判断。

所以利用传感器可以准确的测量我们所需要的信息。

作为和我们最为密切的一对参数温度和湿度的测量是不可或缺的。

 

1.2温湿度测量系统的组成

 

控制部分

显示部分

测量部分

 

温湿度测量系统由控制部分、测量部分和显示部分组成。

控制部分采用单片机STC89C52;测量部分采用集A/D转换功能、温度测量、湿度测量集于一体的DHT11传感器;显示部分采用液晶屏1602。

 

1.3单片机发展

1.4传感器的发展和介绍

 

第二章系统的组成

在第一章中我们已经介绍该系统由控制部分、测量部分和显示部分组成。

现在我们来分系统介绍。

2.1单片机89C52

此系统采用常用的STC89C52单片机

STC89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(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个LSTTL门电路。

可作为输入/输出口,实际应用中一般作为地址总线的高8位,与P0口一起组成16位地址总线,用于对外部存储器的接口电路进行寻址。

4.P3口(10~17脚)——准双向口(三态),可驱动4个LSTTL门电路。

双功能口,作为第一功能使用时,与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

#include"1602.h"

#include"dht.h"

#include"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

{

TL0=0x06;

TH0=0xf8;//定时器赋予初值

//每2秒钟启动一次温湿度转换

RHCounter++;

if(RHCounter>=1000)

{

FlagStartRH=1;

RHCounter=0;

}

}

//存入设定值、

voidSave_Setting()

{

pSave=(char*)&TH;//地址低位对应低8位,高位对应高8位

wrteeprom(0,*pSave);//存温度上限值TH低8位

DELAY(500);

pSave++;

wrteeprom(1,*pSave);//存温度上限值TH高8位

DELAY(500);

pSave=(char*)&HH;

wrteeprom(2,*pSave);//存湿度上限值RH低8位

DELAY(500);

pSave++;

wrteeprom(3,*pSave);//存湿度上限值RH高8位

DELAY(500);

}

//载入设定值、

voidLoad_Setting()

{

pSave=(char*)&TH;

*pSave++=rdeeprom(0);

*pSave=rdeeprom

(1);

pSave=(char*)&HH;

*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--;

L1602_char(1,15,TH/10+48);

L1602_char(1,16,TH%10+48);

break;

case3:

if(HH<99)HH++;

L1602_char(2,15,HH/10+48);

L1602_char(2,16,HH%10+48);

break;

case4:

if(HH>1)HH--;

L1602_char(2,15,HH/10+48);

L1602_char(2,16,HH%10+48);

break;

default:

break;

}

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<1000;j++)

{;}

//清屏

L1602_string(1,1,"");

L1602_string(2,1,"");

L1602_string(1,1,"Tem:

CTH:

");

L1602_string(2,1,"Hum:

%HH:

");

//载入温度上限和湿度上限设定值

Load_Setting();

L1602_char(1,15,TH/10+48);

L1602_char(1,16,TH%10+48);

L1602_char(2,15,HH/10+48);

L1602_char(2,16,HH%10+48);

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;

if(!

Key_TH2)keyTH2=0;

elsekeyTH2=1;

if(!

Key_HH1)keyHH1=0;

elsekeyHH1=1;

if(!

Key_HH2)keyHH2=0;

elsekeyHH2=1;

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1