資源簡介
經驗證通過可用 89C52單片機讀取 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??=?P1^6?;
sbit??P2_1??=?P2^1?;
sbit?rs=P1^0;
sbit?rw=P1^1;
sbit?en=P1^2;
//----------------定義區--------------------//
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:“};
U8??outdata[5];??//定義發送的字節數 ???
U8??indata[5];
U8??count?count_r=0;
U8??str[5]={“RS232“};
//延時函數
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-----
?//----調用相關子程序
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????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
?????文件??????13880??2012-04-21?17:15??DHT11+1602顯示+串口\程序\dht
?????文件???????6809??2012-04-21?17:15??DHT11+1602顯示+串口\程序\dht.c
?????文件???????3067??2012-04-21?17:15??DHT11+1602顯示+串口\程序\dht.hex
?????文件?????????54??2012-04-21?17:15??DHT11+1602顯示+串口\程序\dht.lnp
?????文件??????14718??2012-04-21?17:15??DHT11+1602顯示+串口\程序\dht.LST
?????文件??????18544??2012-04-21?17:15??DHT11+1602顯示+串口\程序\dht.M51
?????文件??????15850??2012-04-21?17:15??DHT11+1602顯示+串口\程序\dht.OBJ
?????文件???????1208??2012-04-21?17:17??DHT11+1602顯示+串口\程序\dht.Opt
?????文件????????366??2012-04-21?17:17??DHT11+1602顯示+串口\程序\dht.plg
?????文件???????2041??2012-04-12?19:14??DHT11+1602顯示+串口\程序\dht.Uv2
????.......??????1200??2012-04-16?16:21??DHT11+1602顯示+串口\程序\dht_Opt.Bak
?????文件???????2041??2012-04-07?16:54??DHT11+1602顯示+串口\程序\dht_Uv2.Bak
?????文件???????6376??2005-03-22?15:22??DHT11+1602顯示+串口\程序\STARTUP.A51
?????文件??????14048??2012-04-21?17:15??DHT11+1602顯示+串口\程序\STARTUP.LST
?????文件????????749??2012-04-21?17:15??DHT11+1602顯示+串口\程序\STARTUP.OBJ
?????目錄??????????0??2012-04-21?17:12??DHT11+1602顯示+串口\DHT11資料
?????目錄??????????0??2012-04-21?17:17??DHT11+1602顯示+串口\程序
?????目錄??????????0??2012-04-21?17:12??DHT11+1602顯示+串口
-----------?---------??----------?-----??----
??????????????1373225????????????????????21
評論
共有 條評論