<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于51單片機的天氣溫度報警系統

基于51單片機的天氣溫度報警系統

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏

基于A(yíng)T89C51的天氣溫度報警系統,采用Protues仿真。

本文引用地址:http://dyxdggzs.com/article/201611/323835.htm

元件:

DS1302時(shí)鐘芯片

DS18B20溫度傳感器

LM016L(1602)液晶

AT89C51單片機

LED燈若干

蜂鳴器一只 用于報警本人不寫(xiě)這個(gè)報警程序了 其實(shí)挺簡(jiǎn)單的

我只貼出部分主要的代碼

完整源代碼請到:http://blog.sina.com.cn/u/2311964960(內附圖片)

或直接下載: LSD.c (7.4 KB, 下載次數: 72)

/*初始化DS18B20*/

void Init_DS18B20()
{ //初始化DS18B20必須先給DS18B20一個(gè)復位脈沖,接收到復位脈沖后DS18B20會(huì )返回一個(gè)存在脈沖
DQ=1; //DQ先置高電平
_nop_(); //延時(shí)
_nop_();
DQ=0; //DQ置低電平(拉低總線(xiàn)),開(kāi)始初始化
delayus(60); //DQ置低電平后必須延時(shí)至少480us,此處延時(shí)600us
DQ=1; //然后DQ置高電平(釋放總線(xiàn))
delayus(3); //釋放總線(xiàn)后要求延時(shí)15-60us,此處延時(shí)30us
flag=DQ; //讀取DQ并付值flag,如果flag為0,表示返回了一個(gè)存在脈沖,初始化完成。相反失敗
delayus(20);
}

/*讀取DS18B20中的scrathpad一個(gè)字節*/
uchar read_scratchpad()
{
uchar i=0;
for (i=8;i>0;i--)
{
DQ=1; //DQ位拉高
_nop_(); //延時(shí)1us秒
DQ = 0; // DQ置0拉低總線(xiàn)
dat>>=1; //左移一位
delayus(1); //延時(shí)1us-15us,此處延時(shí)10us
DQ = 1; // DQ置1釋放總線(xiàn)
delayus(1); //延時(shí)10us
if(DQ==1){dat|=0x80;} //采樣
else{dat|=0x00;}
delayus(5); //延時(shí)50us
}
return dat;
}

/*向DS18B20中寫(xiě)入一個(gè)字節,寫(xiě)ROM指令用*/
void write_command(uchar com)
{
uchar i=0;
uchar num;
for (i=8; i>0; i--)
{
DQ=1; //先將DQ置1;
_nop_(); //延時(shí)
DQ = 0; //DQ置0,拉低總線(xiàn)
num = com&0x01; //讀取指令最低位
if(num==1) //如果為1
{
delayus(1); //要求先延時(shí)1-15us,此處延時(shí)10us
DQ=1; //然后釋放總線(xiàn)
delayus(4); //延時(shí)大概45us,此處延時(shí)40us
}else //如果為0
{
delayus(6); //要求延時(shí)60-120us,此處延時(shí)60us
DQ=1; //然后DQ置1釋放總線(xiàn)
delayus(1); //延時(shí)10us
}
com>>=1;
}
delayus(1);
}

/*溫度轉換*/
void Temperature_conversion()
{
Init_DS18B20(); //初始化DS18B20
write_command(0xCC); // 讀取ROM中64-bit code
write_command(0x4E); // 寫(xiě)暫存器,向暫存器中的TH、TL和configuration Register中寫(xiě)數據
write_command(0x50);// 向TH Register位寫(xiě)入數據
write_command(0x00);//向TL Register位寫(xiě)入數據
write_command(0x7F);//向configuration Register寫(xiě)入數據
delay(10);
Init_DS18B20();
write_command(0xCC); // 跳過(guò)讀序號列號的操作
write_command(0x44); // 啟動(dòng)溫度轉換
delay(10);
Init_DS18B20();//
write_command(0xCC); //跳過(guò)讀序號列號的操作
write_command(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度
}


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>