資源簡介
基于51單片機的DHT11溫度傳感器的1602顯示,和相關的芯片資料,希望對你有用。

代碼片段和文件信息
//硬件連接:?P2.0口為通訊口連接DHT1 ??(結果:反應有點慢,小數部分為0,可能是原件問題)
#include?
//#include??
#define?uchar?unsigned?char
#define?uint?unsigned?int
typedef?unsigned?char??U8;???????/*?defined?for?unsigned?8-bits?integer?variable????無符號8位整型變量??*/
typedef?signed???char??S8;???????/*?defined?for?signed?8-bits?integer?variable????有符號8位整型變量??*/
typedef?unsigned?int???U16;??????/*?defined?for?unsigned?16-bits?integer?variable????無符號16位整型變量?*/
sbit??P2_0??=?P2^0?;
sbit??P2_1??=?P2^1?;
sbit?rs=P2^7;
sbit?rw=P2^6;
sbit?en=P2^5;
//----------------定義區--------------------//
U8??U8FLAG;
U8??U8countU8temp;
U8??U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
U8??U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
U8??U8comdata;????
uchar?display[5]?=???{0x000x000x000x000x00};
uchar?display0[5]?=???{0x000x000x000x000x00};
uchar?display1[5]?=???{0x000x000x000x000x00};
uchar?display2[5]?=???{0x000x000x000x000x00};
uchar?table0[]={“Tem:“};
uchar?table1[]={“Hty:“};
//延時函數
void?Delay(U16?j)
{???
?U8?i;
?for(;j>0;j--)
?{??
??for(i=0;i<27;i++);?
?}
} ?
void??Delay_10us(void)
{
?U8?i;
?i--;
?i--;
?i--;
?i--;
?i--;
?i--;
}
void?delayms(uint?ms){ ???
uint?ij;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void?wcom(uchar?com){ ?//寫指令
???rw=0;
???rs=0;
???P0=com;
???delayms(5);
???en=1;
???delayms(5);
???en=0;
???}
void?wdat(uchar?dat){ //寫數據
rw=0;
rs=1;
P0=dat;
delayms(5);
en=1;
delayms(5);
en=0;
}
void?init(){ ??//初始化
uchar?num;
wcom(0x38); ????//初始化1206
wcom(0x0c);
wcom(0x06);
wcom(0x01);
wcom(0x80); //設置顯示位置
for(num=0;num<4;num++)
{
wdat(table0[num]);
delayms(5);
}
wcom(0x80+0x40); //設置顯示位置
for(num=0;num<4;num++)
{
wdat(table1[num]);
delayms(5);
}
????
}
void?COM(void) ??//串行總線??,接收每字節數據
{
?U8?i;
?for(i=0;i<8;i++)????
?{
?
??U8FLAG=2;
??//----------------------
??P2_1=0?;??//T
??P2_1=1?;??//T
??//----------------------?
??
??while((!P2_0)&&U8FLAG++);
??Delay_10us();
??Delay_10us();
??U8temp=0;
??if(P2_0)U8temp=1;
??U8FLAG=2;
??while((P2_0)&&U8FLAG++);
??
??//----------------------
??P2_1=0?;??//T
??P2_1=1?;??//T
??//----------------------
??//超時則跳出for循環????
??if(U8FLAG==1)break;
??//判斷數據位是0還是1??
??
??//?如果高電平高過預定0高電平值則數據位為?1?
??
??U8comdata<<=1;
??U8comdata|=U8temp;????????//0
?}//rof
}
?//--------------------------------
?//-----濕度讀取子程序?------------
?//--------------------------------
?//----以下變量均為全局變量--------
?//----溫度高8位==?U8T_data_H------
?//----溫度低8位==?U8T_data_L------
?//----濕度高8位==?U8RH_data_H-----
?//----濕度低8位==?U8RH_data_L-----
?//----校驗?8位?==?U8checkdata-----
?//----調用相關子程序如下----------
?//----?Delay();?Delay_10us();COM();?
?//--------------------------------
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2010-10-06?23:14??五DHT11溫濕度1602\
?????文件???????10688??2010-08-29?17:42??五DHT11溫濕度1602\dht
?????文件????????5597??2010-08-29?17:45??五DHT11溫濕度1602\dht.c
?????文件????????2318??2010-08-29?17:42??五DHT11溫濕度1602\dht.hex
?????文件??????????54??2010-08-29?17:42??五DHT11溫濕度1602\dht.lnp
?????文件???????11882??2010-08-29?17:42??五DHT11溫濕度1602\dht.LST
?????文件???????14776??2010-08-29?17:42??五DHT11溫濕度1602\dht.M51
?????文件???????12143??2010-08-29?17:42??五DHT11溫濕度1602\dht.OBJ
?????文件????????1020??2010-09-01?17:21??五DHT11溫濕度1602\dht.Opt
?????文件?????????181??2010-09-01?17:21??五DHT11溫濕度1602\dht.plg
?????文件????????2147??2010-08-29?17:43??五DHT11溫濕度1602\dht.Uv2
?????目錄???????????0??2010-10-06?23:14??五DHT11溫濕度1602\DHT11資料\
?????文件??????397310??2008-08-12?17:21??五DHT11溫濕度1602\DHT11資料\DHT11濕溫度傳感器使用范例.pdf
?????文件??????406016??2010-08-29?17:45??五DHT11溫濕度1602\DHT11資料\DHT11說明書0313.doc
?????文件??????468948??2008-08-12?17:21??五DHT11溫濕度1602\DHT11資料\DHT11說明書200808修訂版.pdf
?????文件????????1022??2010-08-29?17:45??五DHT11溫濕度1602\dht_Opt.Bak
?????文件???????????0??2010-08-29?16:30??五DHT11溫濕度1602\dht_Uv2.Bak
?????文件????????6376??2005-03-22?15:22??五DHT11溫濕度1602\STARTUP.A51
?????文件???????14062??2010-08-29?17:42??五DHT11溫濕度1602\STARTUP.LST
?????文件?????????758??2010-08-29?17:42??五DHT11溫濕度1602\STARTUP.OBJ
- 上一篇:octave入門手冊(中文/英文)
- 下一篇:基于VHDL的FIR16階濾波器
評論
共有 條評論