久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
DHT11溫濕度測量12864顯示
[打印本頁]
作者:
唯戀一人心
時間:
2017-12-9 19:51
標(biāo)題:
DHT11溫濕度測量12864顯示
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
/*端口定義*/
sbit rw=P2^5;
sbit rs=P2^6;
sbit en=P2^7;
sbit psb=P3^2;
sbit dht_dat=P0^2; //用哪個I/O口自選,注意不要用P3口
uchar dht_num=0; //用于while循環(huán)中計數(shù),超時則跳出循環(huán)
uchar code table[]={"溫度:"};
uchar code table1[]={"濕度:"};
uchar code table2[]={"℃"};
uchar dht_d1=0,dht_d2=0 ; //依次為濕度整數(shù)部分和濕度小數(shù)部
uchar dht_t1=0,dht_t2=0 ; //依次為溫度整數(shù)部分和溫度小數(shù)部分
uchar dht_j=0; //和校驗,可選擇是否使用,具體參照數(shù)據(jù)手
uchar i,t11,t12,d11,d12;
uchar t21,t22,d21,d22;
/*****************ms延時函數(shù)*********************************/
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
/*****************us延時函數(shù)*****************************/
void delay_10us()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/*寫指令函數(shù)*/
/*rs=l,rw=l,en=高脈沖,D0-D7=指令碼。*/
void write_cmd(uchar cmd)
{
rs=0;
rw=0;
en=0;
P0=cmd;
delay(5);
en=1;
delay(5);
en=0;
}
/***************************寫顯示數(shù)據(jù)************************/
/*rs=h,rw=l,*/
void write_dat(uchar date)
{
rs=1;
rw=0;
en=0;
P0=date;
delay(5);
en=1;
delay(5);
en=0;
}
/*****************初始化************************/
void init()
{
en=0;
rw=0;
psb=1; //并口方式
write_cmd(0x30); //基本指令操作
delay(5);
write_cmd(0x0c); //顯示開,關(guān)光標(biāo)
delay(5);
write_cmd(0x06);
delay(2);
write_cmd(0x01); //清除顯示內(nèi)容
delay(5);
}
void dht_init()
{
delay(1000); //DHT11上電前準(zhǔn)備時間,大概1s
dht_dat=1; // //總線準(zhǔn)備
}
uchar read_date() //接收一個8位數(shù)據(jù),先高位后低位
{
uchar i,dat;
for(i=0;i<8;i++) //也就是說程序是循環(huán)八次,把判斷有“1”輸出到dat中,然后輸出一個八位的數(shù)據(jù)。
{
dht_num=2;
while((dht_dat==0)&&(dht_num++)); //dht_dat 數(shù)據(jù)線由DH11拉低準(zhǔn)備發(fā)送數(shù)據(jù)
delay_10us();
delay_10us();
delay_10us();
delay_10us();
dat=dat<<1;
if(dht_dat==1)
{
dht_num=2;
dat=dat|0x01; //如果來自DQ的數(shù)據(jù)是高電平1,則把1放到dat的最低位
while((dht_dat==1)&&(dht_num++));
}
}
return dat;
}
void get_temp() //給DHT11一個開始信號,然后讀取一次數(shù)據(jù),共五個8位字節(jié)
{
dht_dat=0;
delay(25);
dht_dat=1; //單片機(jī)給起始脈沖信號
delay_10us();
delay_10us();
delay_10us();
delay_10us();
dht_dat=1; //稍作延時,等待DHT11返回響應(yīng)(響應(yīng)為低電 平)
if(dht_dat==0) //有響應(yīng)才接收數(shù)據(jù),否則不作處理
{
dht_num=2;
while((dht_dat==0)&&(dht_num++));
dht_num=2;
while((dht_dat==1)&&(dht_num++));
dht_d1=read_date();
dht_d2=read_date();
dht_t1=read_date();
dht_t2=read_date();
dht_j=read_date(); //一次讀出五個數(shù)據(jù)
}
dht_dat=1; //釋放總線
delay(10);
d11=dht_d1/10;
d12=dht_d1%10;
t11=dht_t1/10;
t12=dht_t1%10;
d21=dht_d2/10;
d22=dht_d2%10;
t21=dht_t2/10;
t22=dht_t2%10;
}
void main()
{
dht_init();
init();
while(1)
{
get_temp();
write_cmd(0x80);
for(i=0;i<6;i++)
{
write_dat(table[i]);
}
write_cmd(0x83);
write_dat(0x30+t11);
write_dat(0x30+t12);
write_cmd(0x80+4);
write_dat('.');
write_dat(0x30+t21);
write_cmd(0x85);
write_dat(0x30+t22);
write_cmd(0x86);
for(i=0;i<4;i++)
{
write_dat(table2[i]);
}
write_cmd(0x90);
for(i=0;i<6;i++)
{
write_dat(table1[i]);
}
write_cmd(0x93);
write_dat(0x30+d11);
write_dat(0x30+d12);
write_cmd(0x94);
write_dat('.');
write_dat(0x30+d21);
write_cmd(0x95);
write_dat(0x30+d22);
write_cmd(0x96);
write_dat('%');
}
}
作者:
hui8873
時間:
2018-7-14 16:07
正在找DHT11溫濕度與12864顯示,謝謝分享。
作者:
964264
時間:
2018-11-20 00:58
感謝分享,樓主好人
作者:
abc18277233196
時間:
2018-11-24 22:53
謝謝樓主 真的好用
作者:
zxldpj
時間:
2019-4-18 14:04
一下解決一個麻煩
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精品久久久久久久久久久久
|
久www
|
免费黄色a级毛片
|
亚洲精品二区
|
亚洲综合在线视频
|
成人免费在线观看
|
国产精品片aa在线观看
|
亚洲精品欧美
|
国产精品久久久久久久久大全
|
www国产精品
|
www.狠狠操
|
91精品国产综合久久久动漫日韩
|
亚洲第一色站
|
97国产一区二区
|
中文字幕亚洲精品
|
二区在线观看
|
四虎影院新地址
|
国产精品一区免费
|
成人久草
|
久久www免费视频
|
一区视频
|
在线免费观看黄色
|
亚洲天堂成人在线视频
|
久久久久久成人
|
超碰成人免费
|
亚洲成人自拍
|
中日韩av
|
亚洲一区二区精品
|
欧美一区二区三区在线看
|
国产色在线
|
国产精品视频一区二区三区不卡
|
国产原创视频
|
天天综合久久
|
一区二区三区四区不卡视频
|
亚洲欧美视频
|
久久久精品黄色
|
国产综合精品一区二区三区
|
亚洲精品乱码久久久久久9色
|
黄色成人av
|
福利一区二区在线
|
极品的亚洲
|