stc12c4052AD读取DHT11数据并显示

stc12c4052AD读取DHT11数据并显示

硬件说明:
单片机:STC12C4052AD
晶振:12M
数码管:共阴4位数码管

关于DHT11这个传感器的时序,大家可以自行百度
为了读取这个传感器,费了我不少时间,网上搜来的计时程序都不靠谱,后来在STC-ISP上找到了标准计时函数,才总算解决了时序问题。
这个程序目前还不能实现温度的实时变化,琢磨着要进入定时中断。改天再试试;
这个程序参考了众多大神的内容,谢谢众神。

/********
programename: DHT11
hardware: STC12C2052AD

/*****/
#include <STC12C2052AD.h> //STC12C2052AD header file
#include <stdio.h>	//
#include <intrins.h> //用于引用_NOP_语句;
sbit BUS=P3^7;// 接P3^5不行,不知道为什么


//**************数码管段定义

#define D0{a=1;b=1;c=1;d=1;e=1;f=1;g=0;}
#define D1{a=0;b=1;c=1;d=0;e=0;f=0;g=0;}
#define D2{a=1;b=1;c=0;d=1;e=1;f=0;g=1;}
#define D3{a=1;b=1;c=1;d=1;e=0;f=0;g=1;}
#define D4{a=0;b=1;c=1;d=0;e=0;f=1;g=1;}
#define D5{a=1;b=0;c=1;d=1;e=0;f=1;g=1;}
#define D6{a=1;b=0;c=1;d=1;e=1;f=1;g=1;}
#define D7{a=1;b=1;c=1;d=0;e=0;f=0;g=0;}
#define D8{a=1;b=1;c=1;d=1;e=1;f=1;g=1;}
#define D9{a=1;b=1;c=1;d=1;e=0;f=1;g=1;}


//*数码管位定义
sbit w1=P3^3;
sbit w2=P3^2;
sbit w3=P3^1;
sbit w4=P3^0;

//*数码管段端口定义
sbit a=P1^0;
sbit b=P1^6;
sbit c=P1^4;
sbit d=P1^2;
sbit e=P1^1;
sbit f=P1^7;
sbit g=P1^5;
sbit h=P1^3;
//声明全局变量

unsigned char RH_L_temp,RH_H_temp,TP_L_temp,TP_H_temp,check_temp;
unsigned char RH_L,RH_H,TP_L,TP_H,check_num;

// 延时函数区

// 40us延时,本程序没有用到
void Delay40us()		//@12.000MHz
{
   
   
	unsigned char i;

	i = 117;
	while (--i);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值