标题:
基于AT89C51的温湿度检测系统设计与实现
[打印本页]
作者:
wuxiaowen
时间:
2020-7-27 03:16
标题:
基于AT89C51的温湿度检测系统设计与实现
https://www.bilibili.com/video/BV1Wz411v7Ks
b站视频演示
单片机源程序如下:
#include "reg51.h"
#include "lcd1602.h"
#include "dht11.h"
#include "delay.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "keyscanner.h"
sbit led1=P0^1;
sbit led2=P0^2;
unsigned char DHT[5];
int RH,T,key_num;
int set_T=25,set_RH=80;
extern char str_key[10];
char str_RH[10],str_T[10],str_key_num[10];
char str_RH_set[10],str_T_set[10];
void GET_VAR(int num);
void SET_VAR(int num);//num:0为湿度,num:1为温度
void display_all();
void main()
{
LCD_init();
DHT_Start();
delay_ms(1);
while(1)
{
display_all();
key_num=key_scan();
if(key_num==12)
{
LCD_write_command(0x01);
set_T=set_T+1;
//SET_VAR(2);
}
else if(key_num==16)
{
LCD_write_command(0x01);
set_T=set_T-1;
}
if(key_num==4)
{
LCD_write_command(0x01);
set_RH=set_RH+1;
//SET_VAR(2);
}
else if(key_num==8)
{
LCD_write_command(0x01);
set_RH=set_RH-1;
}
if(set_T<T)
{
led1=0;
}
else
{
led1=1;
}
if(set_RH<RH)
{
led2=0;
}
else
{
led2=1;
}
}
}
void GET_VAR(int num)//num:0为湿度,num:2为温度
{
DHT_Start();
DHT_ByteRead(DHT);
if(num==0)
{
RH=DHT[0];//rh:湿度
sprintf(str_RH,"RH:%d%%",RH);
LCD_dsp_string(1,1,str_RH);//湿度
}
else if(num==2)
{
DHT_Start();
DHT_ByteRead(DHT);
T=DHT[2];//T
sprintf(str_T," T:%dC",T);
LCD_dsp_string(7,1,str_T);//温度
}
}
void SET_VAR(int num)//num:0为湿度,num:1为温度
{
if(num==0)
{
sprintf(str_RH_set,"RH:%d%%",set_RH);
LCD_dsp_string(1,2,str_RH_set);//湿度
}
else if(num==2)
{
sprintf(str_T_set," T:%dC",set_T);
LCD_dsp_string(7,2,str_T_set);//温度
}
}
void display_all()
{
GET_VAR(0);
GET_VAR(2);
SET_VAR(0);
SET_VAR(2);
}
复制代码
所有资料51hei提供下载:
基于AT89C51的温湿度检测系统设计与实现.zip
(118.54 KB, 下载次数: 53)
2020-7-27 03:15 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
asdasdaadasd
时间:
2022-5-29 15:51
为什么下载的hex文件可以正常仿真,但编译keil工程后的hex文件不能呢,是keil版本的问题吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1