資源簡(jiǎn)介
用MSP430F149單片機(jī)成功控制DHT11溫濕度傳感器產(chǎn)生溫濕度信息,調(diào)試成功,可用

代碼片段和文件信息
#include?
#include?“dht11.h“
#include?“uart0.h“
#include?
char?s[40];
void?delayus(unsigned?int?n);
typedef?unsigned?int????U16;
typedef?unsigned?char???U8;
unsigned?char??U8FLAGk;
unsigned?char??U8countU8temp;
unsigned?char??U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
unsigned?char??U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
unsigned?char??U8comdata;
unsigned?char??outdata[5];??//定義發(fā)送的字節(jié)數(shù) ???
unsigned?char??indata[5];
unsigned?char??count?count_r=0;
unsigned?int???U16temp1U16temp2;
/*******************************************
函數(shù)名稱:delay
功????能:延時(shí)約15us的時(shí)間
參????數(shù):無
返回值??:無
********************************************/
void?delayus(unsigned?int?i)???//delay?2.5us?at?8M
{??
???unsigned?int?ii;
???for(ii?=i;ii?>?0;ii--)
???{?
??????_NOP();_NOP();_NOP();_NOP();???
??????_NOP();_NOP();_NOP();_NOP();
??????_NOP();_NOP();_NOP();_NOP();
??????_NOP();_NOP();_NOP();_NOP();???
???}????
}
/****************************************************************************
*?名????稱:ClkInit
*?功????能:時(shí)鐘系統(tǒng)初始化??MCLK為8MHz,SMCLK為1MHz
*?入口參數(shù):無
*?出口參數(shù):無
****************************************************************************/
void?ClkInit()
{
????char?i;
???/*------選擇系統(tǒng)主時(shí)鐘為8MHz-------*/
????BCSCTL1?&=?~XT2OFF;?????????????????//打開XT2高頻晶體振蕩器
????do
????{
????????IFG1?&=?~OFIFG;?????????????????//清除晶振失敗標(biāo)志
????????for?(i?=?0xFF;?i?>?0;?i--);?????//等待8MHz晶體起振
????}
????while?((IFG1?&?OFIFG));?????????????//晶振失效標(biāo)志仍然存在?
????BCSCTL2?|=?SELM_2?+?SELS;???????????//MCLK和SMCLK選擇高頻晶振
????
????TACTL?|=?TASSEL_2?+?ID_3;???????????//計(jì)數(shù)時(shí)鐘選擇SMLK=8MHz,1/8分頻后為1MHz????
}
?//////////////////////DHT11///////////////////////////////////////////////////////
void?COM(void)
{
????U8?i;
????DHT11_INPUT;
????
for(i=0;i<8;i++) ???
{
U8FLAG=2;
while(?(!DHT11_IN)?&&?U8FLAG++?);
????????????????delayus(15);?//40us
U8temp=0;
if(DHT11_IN)? ????????//26-28us高電平表示‘0‘30us后若還為高電平則表示為‘1‘
???U8temp=1;
???U8FLAG=2;
while(?(DHT11_IN)?&&?U8FLAG++?);????????//超時(shí)則U8FLAG到255后變?yōu)?又自加一次變?yōu)?退出while
????????????????????????????????????????//超時(shí)則跳出for循環(huán) ??
if(U8FLAG==1)
break;//判斷數(shù)據(jù)位是0還是1 ??
//?如果高電平高過預(yù)定0高電平值則數(shù)據(jù)位為?1?
?????????U8comdata<<=1;
??????????U8comdata|=U8temp;????????//0
}//rof
}
//--------------------------------
//-----濕度讀取子程序?------------
//--------------------------------
//----以下變量均為全局變量--------
//----溫度高8位==?U8T_data_H------
//----溫度低8位==?U8T_data_L------
//----濕度高8位==?U8RH_data_H-----
//----濕度低8位==?U8RH_data_L-----
//----校驗(yàn)?8位?==?U8checkdata-----
//----調(diào)用相關(guān)子程序如下----------
//----?Delay();?Delay_10us();COM();?
//--------------------------------
void?RH(void)
{
????????DHT11_OUTPUT;
DHT11_L;
delayus(8000);???????????????????//主機(jī)拉低18ms?
????????DHT11_H;????????????????????????//總線由上拉電阻拉高?主機(jī)延時(shí)20-40us
????????delayus(15);????????????????????//40us;
DHT11_H;???????????????????????//主機(jī)設(shè)為輸入?判斷從機(jī)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-03-13?22:15??DHT11完成程序\
?????文件???????17879??2011-08-27?23:39??DHT11完成程序\Backup?(2)?of?MMA7455.ewd
?????文件???????47373??2011-08-27?23:41??DHT11完成程序\Backup?(2)?of?MMA7455.ewp
?????文件???????17879??2011-08-27?23:39??DHT11完成程序\Backup?(3)?of?MMA7455.ewd
?????文件???????47373??2011-08-27?23:41??DHT11完成程序\Backup?(3)?of?MMA7455.ewp
?????文件???????17879??2011-08-27?23:39??DHT11完成程序\Backup?of?MMA7455.ewd
?????文件???????47373??2011-08-27?23:41??DHT11完成程序\Backup?of?MMA7455.ewp
?????目錄???????????0??2012-05-15?22:10??DHT11完成程序\Debug\
?????目錄???????????0??2012-05-16?10:45??DHT11完成程序\Debug\Exe\
?????文件???????38880??2013-03-13?21:26??DHT11完成程序\Debug\Exe\MMA7455.d43
?????目錄???????????0??2012-05-15?22:10??DHT11完成程序\Debug\List\
?????目錄???????????0??2013-03-13?22:02??DHT11完成程序\Debug\Obj\
?????文件???????29440??2013-03-13?21:26??DHT11完成程序\Debug\Obj\main.r43
?????文件?????????183??2013-03-13?22:01??DHT11完成程序\Debug\Obj\MMA7455.pbd
?????文件?????????798??2012-05-16?09:56??DHT11完成程序\Debug\Obj\MMA7455.r43
?????文件????????5662??2011-08-27?23:39??DHT11完成程序\Debug\Obj\mylib.r43
?????文件????????6768??2012-05-15?16:48??DHT11完成程序\Debug\Obj\UART0.r43
?????文件?????????747??2012-05-15?16:58??DHT11完成程序\dht11.h
?????文件????????5206??2013-03-13?22:15??DHT11完成程序\main.c
?????文件????????1515??2012-05-16?09:56??DHT11完成程序\MMA7455.c
?????文件????????4912??2013-03-13?22:02??DHT11完成程序\MMA7455.dep
?????文件???????15441??2012-03-10?20:57??DHT11完成程序\MMA7455.ewd
?????文件???????46648??2012-05-16?10:10??DHT11完成程序\MMA7455.ewp
?????文件?????????161??2011-08-27?23:35??DHT11完成程序\MMA7455.eww
?????目錄???????????0??2012-05-15?22:10??DHT11完成程序\settings\
?????文件????????1563??2012-03-13?20:14??DHT11完成程序\settings\dht11.wsdt
?????文件????????2722??2013-03-13?22:01??DHT11完成程序\settings\MMA7455.cspy.bat
?????文件????????7276??2013-03-13?22:02??DHT11完成程序\settings\MMA7455.dbgdt
?????文件????????1156??2013-03-13?22:02??DHT11完成程序\settings\MMA7455.dni
?????文件????????5530??2013-03-13?22:02??DHT11完成程序\settings\MMA7455.wsdt
?????文件????????2902??2012-05-15?16:48??DHT11完成程序\UART0.c
............此處省略1個(gè)文件信息
評(píng)論
共有 條評(píng)論