首页 > 行业资讯 > 正文

目录

具体实现功能

设计介绍

51单片机简介

资料内容

仿真实现(protues8.7)

程序(Keil5)

全部资料(压缩文件)

具体实现功能

(1)实时检测温湿度值,LCD12864分别显示温度值、湿度值、温度上下限值、湿度上下限值;

(2)通过按键可以设定温湿度报警阈值;

(3)当温度值过高且湿度值过低时,相应的指示灯亮,蜂鸣器响,继电器控制风扇转动,表示降温;

(4)当温度值过低且湿度值过高时,相应的指示灯亮,蜂鸣器响,继电器控制加热膜工作,表示升温。

(5)温度测量范围0-99,湿度测量范围0-99,误差±1。

基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)-基于51单片机的温度计电路图

设计介绍

基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)-基于51单片机的温度计电路图1

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)-基于51单片机的温度计电路图2

资料内容

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

注:请使用protues8.7直接打开资料中的工程文件(资料中已说明打开方式)!

基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)-基于51单片机的温度计电路图3

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

注意:请使用KEIL5直接打开资料中的工程文件(资料中已说明打开方式)!

主程序如下:

/****************主函数***************/ void main()//主函数 { value humi_val,temp_val; uchar humi_max=50,humi_min=15,temp_max=40,temp_min=20,temp,humi;//定义变量 uchar error,checksum; uchar flag=0; DisplayOn(); s_connectionreset(); Led1=1; jiangwen=1; Led2=1; shengwen=1; beep=1; while(1) { error=0; error+=s_measure((unsigned char*) &humi_val.i,&checksum,HUMI); //measure humidity error+=s_measure((unsigned char*) &temp_val.i,&checksum,TEMP); //measure temperature if(error!=0) s_connectionreset(); //in case of an error: connection reset else { //温湿度值、阈值读取及显示 humi_val.f=(float)humi_val.i; //converts integer to float temp_val.f=(float)temp_val.i; //converts integer to float calc_sth11(&humi_val.f,&temp_val.f); //calculate humidity, temperature //dew_point=calc_dewpoint(humi_val.f,temp_val.f); //calculate dew point if(temp_val.f>99) temp_val.f=99; if(humi_val.f>99) humi_val.f=99; temp=(uchar)temp_val.f+1; humi=(uchar)humi_val.f-3; Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } while(P1!=0xff||flag!=0) { if(SetTempMax==0) { while(SetTempMax==0); flag=1; //显示文字 DispHZ(0,3,she); DispHZ(16,3,ding); DispHZ(32,3,wen); DispHZ(48,3,du); DispHZ(64,3,shang); DispHZ(80,3,xian); } else if(SetTempMin==0) { //显示文字 while(SetTempMin==0); flag=2; DispHZ(0,3,she); DispHZ(16,3,ding); DispHZ(32,3,wen); DispHZ(48,3,du); DispHZ(64,3,xia); DispHZ(80,3,xian); } if(SetHumiMax==0) { //显示文字 while(SetHumiMax==0); flag=3; DispHZ(0,3,she); DispHZ(16,3,ding); DispHZ(32,3,shi); DispHZ(48,3,du); DispHZ(64,3,shang); DispHZ(80,3,xian); } if(SetHumiMin==0) { //显示文字 while(SetHumiMin==0); flag=4; DispHZ(0,3,she); DispHZ(16,3,ding); DispHZ(32,3,shi); DispHZ(48,3,du); DispHZ(64,3,xia); DispHZ(80,3,xian); } else if(flag==1&&NumInc==0) { while(NumInc==0);//改变温度上限++ temp_max++; Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(flag==2&&NumInc==0) { while(NumInc==0);//改变温度下限++ temp_min++; Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(flag==3&&NumInc==0) { while(NumInc==0); humi_max++;//改变温湿度上限++ Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(flag==4&&NumInc==0) { while(NumInc==0); humi_min++;//改变温度下限++ Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(flag==1&&NumDec==0) { while(NumDec==0); temp_max–;//改变温度上限– Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(flag==2&&NumDec==0) { while(NumDec==0); temp_min–;//改变温度下限– Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(flag==3&&NumDec==0) { while(NumDec==0); humi_max–;//改变湿度上限– Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(flag==4&&NumDec==0) { while(NumDec==0); humi_min–;//改变湿度下限– Disp(temp,humi,temp_max,temp_min,humi_max,humi_min); } else if(isOK==0) { //清空文字显示 while(isOK==0); flag=0; DispHZ(0,3,blank); DispHZ(16,3,blank); DispHZ(32,3,blank); DispHZ(48,3,blank); DispHZ(64,3,blank); DispHZ(80,3,blank); } } if((temp>temp_max)&&(humihumi_max))//温度过低且湿度过高,报警及加热 { Led1=1; jiangwen=1; Led2=0; shengwen=0; beep=0; } else { Led1=1; jiangwen=1; Led2=1; shengwen=1; beep=1; } delayms(10); } }

程序运行结果如图:

基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)-基于51单片机的温度计电路图4

全部资料(压缩文件)

全部资料包括程序(Keil5)、protues仿真(protues8.7)、仿真视频、开发资料、资料使用介绍视频、仿真讲解视频、程序讲解视频、单片机最小系统介绍等,全网最全!

基于51单片机的SHT11温湿度检测调节系统(LCD12864显示)-基于51单片机的温度计电路图5

资料链接:https://docs.qq.com/doc/DT2JidWJ6WmRFZ2dm

猜你喜欢