freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

倉(cāng)庫(kù)溫度多點(diǎn)溫度監(jiān)控系統(tǒng)畢業(yè)論文-資料下載頁(yè)

2025-06-28 09:42本頁(yè)面
  

【正文】 return(dat)。}ds18b20寫一個(gè)字節(jié)void WriteOneChar(uchar dat){ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay_18B20(5)。 DQ = 1。 dat=1。 } }//*************************************//64位的ROM序列號(hào)匹配 //*************************************bit match_rom(uchar *rom){ uchar i。 ds18b20_init()。 write_byte(0x55)。 for(i=8。i0。i) { write_byte(*(rom+i1))。 } return 1。}//從ds18b20中讀出64位序列號(hào) //************************************/*uchar * read_rom(void){ uchar rom[8],i。 ds18b20_init()。 write_byte(0x33)。 for(i=8。i0。i) { rom[i1]=read_byte()。 } return amp。rom[0]。}*/ //將64位序列號(hào)顯示在數(shù)碼管上顯示出來(lái)//*************************************/*void print_char(uchar a){ if(a=0amp。amp。a=9) WriteOneChar(a+0x30)。 else if(a=0x0a amp。amp。a= 0x0f) WriteOneChar(a+0x37)。}*/讀取溫度值void ReadTemp1(uchar z){ ds18b20_rom=read_rom()。 Init_DS18B201()。 WriteOneChar1(0xCC)。 // 讀序號(hào)列號(hào)的操作 WriteOneChar1(0x44)。 // 啟動(dòng)溫度轉(zhuǎn)換 match_rom(ds18b20_rom)。匹配 delay_18B20(100)。 // this message is wery important Init_DS18B201()。 WriteOneChar1(0xCC)。 //跳過讀序號(hào)列號(hào)的操作 Init_DS18B201()。 WriteOneChar1(0xBE)。 //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度 delay_18B20(100)。 Temp_Value[1] =ReadOneChar1()。 //讀取溫度值低8位 Temp_Value[0] =ReadOneChar1()。 //讀取溫度值高8位 }//對(duì)溫度判斷處理viod Process_Temperature(){uchar ng。//負(fù)數(shù)標(biāo)識(shí)//高5位全為1(0)則為負(fù)數(shù),為負(fù)數(shù)時(shí)取反加1,并設(shè)置負(fù)數(shù)標(biāo)識(shí) if ( (Temp_Value[1] amp。 0xF8) == 0xF8) { Temp_Value[1] = ~Temp_Value[1]。 Temp_Value[0] = ~Temp_Value[0] + 1。 if (Temp_Value[0] == 0x00) Temp_Value[1]++。 //負(fù)數(shù)標(biāo)識(shí)置1 ng = 1。 } else ng=0。 //查表得到溫度小數(shù)部分 data disdata[0] = df_Table[ Temp_Value[0] amp。 0x0F ]。 //獲取溫度整數(shù)部分(高字節(jié)中的第三位與低字節(jié)中的高四位,無(wú)符號(hào)) CurrentT = ((Temp_Value[0] amp。 0xF0)4)|((Temp_Value[1] amp。 0x07)4)。 //將整數(shù)部分分解為3位待顯示數(shù)字 data disdata[3] = CurrentT / 100。 data disdata[2] = CurrentT % 100 / 10。 data disdata[1] = CurrentT % 10。 }溫度顯示電路 void ds1820disp()//溫度值顯示static num=0。 switch(num) //通過一個(gè)Switch語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)數(shù)碼管的掃描 { case 0: //在數(shù)碼管上顯示當(dāng)前溫度值 { P0=table[data disdata[0]]。 //小數(shù)后面的一位 P2=0x200。 } break。 case 1: { P0=table[data disdata[1]]amp。0x7f。 //有小數(shù)點(diǎn)的位要amp。0x7f P2=0x201。 //小數(shù)位,個(gè)為 } break。 case 2: //十位 { if(data disdata[2]==0) { if(data disdata[3]==0) //若十位為零且百位也為零,則都顯示十位為空P0=0xff。 P0=0xff。 } else P0=table[data disdata[2]]。 //否則,正常顯示當(dāng)前十位的值 P2=0x202。 } break。 case 3: { if(data disdata[3]==0) //若百位為零,則不顯示, P0=0xff。 else //否則正常顯示 P0=table[data disdata[3]]。 P2=0x203。 }case 4: // 對(duì)負(fù)數(shù)的處理 { if(ng==1) //若ng=1,表示當(dāng)前表示當(dāng)前獲得的溫度值為負(fù)數(shù), { if(data disdata[3]==0) //,只可能在十位,和百位這兩個(gè)位置可能出現(xiàn)負(fù)號(hào) { if(data disdata[2]==0) //百位和十位都為零,則,在十位的位置添加一個(gè)負(fù)號(hào),P0=0xbf, { P0=0xbf。 P2=0x08。 } else //否則直接在百位的位置添加一個(gè)負(fù)號(hào)、 { P0=0xbf。 P2=0x04。 } } } } break。Case 5:for(i=0。i8。i++) //顯示序列號(hào) { print_char(ds18b20_romA[i]/16)。 print_char(ds18b20_romA[i]%16)。 num=(num+1)%5。 //num值不斷在06直接循環(huán)}}繼電器控制子程序Void control(void){ ReadTemp1(void)。 Process_Temperature()。 unit tvalue=Temp_Value[] 。 while((((tvalue/10)%100)templ)amp。(((tvalue/10)%100)temph)){ P10=1。//高電平啟動(dòng)警報(bào)器 if(((tvalue/10)%100)templ){JDQL=1。//開啟繼電器delay_18B20(3000000)。延時(shí)函數(shù)調(diào)用JDQL=0。//關(guān)閉繼電器delay_18B20(3000000)。return tvalue。}else if(((tvalue/10)%100)temph){JDQR=1。//開啟繼電器delay_18B20(3000000)。延時(shí)函數(shù)調(diào)用JDQR=0。//關(guān)閉繼電器delay_18B20(3000000)。return tvalue。} ds1820disp()。 }}void main(void){ Init_DS18B20()。 While(1) { ReadTemp1(void)。 Process_Temperature() ds1820disp()。 control(void)。 }}第 36 頁(yè) 共 36 頁(yè)
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1