欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC89C52RC單片機和DHT11通過數碼管顯示溫度/濕度 源程序
[打印本頁]
作者:
小石頭吶
時間:
2020-10-16 15:56
標題:
STC89C52RC單片機和DHT11通過數碼管顯示溫度/濕度 源程序
也可通過4位共陰數碼管來顯示
已驗證,可以成功通過proteus實現
51hei.png
(19.01 KB, 下載次數: 85)
下載附件
2020-10-16 18:38 上傳
單片機源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit Data=P2^6; //定義數據線
uchar rec_dat[9]; //用于顯示的接收數據數組
uchar Temp;
uchar Humi;
uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0xff};
sbit digt1=P3^0;
sbit digt2=P3^1;
uchar Display_Digit[]={0,0};
void delay(uint n)
{ uint x,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
void delayus(uint us)
{
while(--us);
}
void DHT11_delay_us(uchar n)
{
while(--n);
}
void DHT11_delay_ms(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void DHT11_start()
{
Data=1;
DHT11_delay_us(2);
Data=0;
DHT11_delay_ms(30); //延時18ms以上
Data=1;
DHT11_delay_us(30);
}
uchar DHT11_rec_byte() //接收一個字節
{
uchar i,dat=0;
for(i=0;i<8;i++) //從高到低依次接收8位數據
{
while(!Data); ////等待50us低電平過去
DHT11_delay_us(8); //延時60us,如果還為高則數據為1,否則為0
dat<<=1; //移位使正確接收8位數據,數據為0時直接移位
if(Data==1) //數據為1時,使dat加1來接收數據1
dat+=1;
while(Data); //等待數據線拉低
}
return dat;
}
void DHT11_receive() //接收40位的數據
{
DHT11_start();
if(Data==0)
{
while(Data==0); //等待拉高
DHT11_delay_us(40); //拉高后延時80us
R_H=DHT11_rec_byte(); //接收濕度高八位
R_L=DHT11_rec_byte(); //接收濕度低八位
T_H=DHT11_rec_byte(); //接收溫度高八位
T_L=DHT11_rec_byte(); //接收溫度低八位
revise=DHT11_rec_byte(); //接收校正位
DHT11_delay_us(25); //結束
if((R_H+R_L+T_H+T_L)==revise) //校正
{
RH=R_H;
RL=R_L;
TH=T_H;
TL=T_L;
}
// /*數據處理,方便顯示*/
// rec_dat[0]='0'+(RH/10);
// rec_dat[1]='0'+(RH%10);
// rec_dat[2]='R';
// rec_dat[3]='H';
// rec_dat[4]=' ';
// rec_dat[5]=' ';
// rec_dat[6]='0'+(TH/10);
// rec_dat[7]='0'+(TH%10);
// rec_dat[8]='C';
Temp = TH;
Humi = RH;
Display_Digit[0] = RH/10; //十位 CurrentT%100/10;
Display_Digit[1] = RH%10; //個位 CurrentT%10;
}
}
void display(uchar ge,uchar shi) //數碼管掃描 個位 十位
{
P3=0X00;
digt1=1; //不加NPN三級管位驅動需要取反
delayus(30);
P0=table[shi]+0X00; //0X80為小數點
delay(3);
digt1=0; //不加NPN三級管位驅動需要取反
digt2=1; //不加NPN三級管位驅動需要取反
P0=table[ge];
delay(3);
digt2=0; //不加NPN三級管位驅動需要取反
}
/*這里使用lcd1602來顯示采集到的數據,lcd1602驅動程序在博主的51單片機系列博文中有詳細講解*/
void main()
{
uchar h;
while(1)
{
// DHT11_delay_ms(100); //DHT11上電后要等待1S以越過不穩定狀態在此期間不能發送任何指令
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
DHT11+SEG -CA.zip
(50.62 KB, 下載次數: 63)
2020-10-16 15:55 上傳
點擊文件名下載附件
代碼+DHT11
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1