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

正文內(nèi)容

基于單片機(jī)的電子溫度計(jì)設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2025-06-27 20:00本頁(yè)面
  

【正文】 指令 Write_One_Byte(0x44)。 //溫度轉(zhuǎn)換指令 Init_Ds18b20()。 //初始化 Write_One_Byte(0xcc)。 //忽略ROM指令 Write_One_Byte(0xbe)。 //讀暫存器指令 a = Read_One_Byte()。 //讀取到的第一個(gè)字節(jié)為溫度LSB b = Read_One_Byte()。 //讀取到的第一個(gè)字節(jié)為溫度MSB temp = b。 //先把高八位有效數(shù)據(jù)賦于temp temp = 8。 //把以上8位數(shù)據(jù)從temp低八位移到高八位 temp = temp|a。 //兩字節(jié)合成一個(gè)整型變量 tt = temp**10+。 //得到真實(shí)十進(jìn)制溫度值 // // temp = tt。 //放大十倍 //這樣做的目的將小數(shù)點(diǎn)后第一位也轉(zhuǎn)換為可顯示數(shù)字 //同時(shí)進(jìn)行一個(gè)四舍五入操作。 return temp。 } /****************數(shù)碼碼動(dòng)態(tài)顯示函數(shù)**************/ void Display(uint temp) //顯示程序 { uchar A1,A2,A3,A4。 A1 = temp/1000。 //百位 A2 = (temp/100)%10。 //十位 A3 = (temp%100)/10。 //個(gè)位 A4 = temp%10。 //個(gè)位 P3=0xf0。 P2 = table[A1]。 //顯示百位 xiao=0。 delay1(10)。 P3=0xf0。 P2=table[A2]。 //顯示十位 ge=0。 delay1(10)。 P3=0xf0。 P2= table1[A3]。 //顯示個(gè)位 shi=0。 delay1(10)。 P3=0xf0。 P2 = table[A4]。 //顯示小位 bai=0。 delay1(10)。 } void main() { while(1) { Display(Get_Tmp())。 }}附錄2/*****************DS18B20******************/ void Init_Ds18b20(void) //DS18B20初始化send resetand initialization mand { DQ = 1。 //DQ復(fù)位,不要也可行。 delay(1)。 //稍做延時(shí) DQ = 0。 //單片機(jī)拉低總線 delay(250)。 //精確延時(shí),維持至少480us DQ = 1。 //釋放總線,即拉高了總線 delay(100)。 //此處延時(shí)有足夠,確保能讓DS18B20發(fā)出存在脈沖. } uchar Read_One_Byte() //讀取一個(gè)字節(jié)的數(shù)據(jù)read a byte date //讀數(shù)據(jù)時(shí),數(shù)據(jù)以字節(jié)的最低有效位先從總線移出 { uchar i = 0。 uchar dat = 0。 for(i=8。i0。i) { DQ = 0。 //將總線拉低,要在1us之后釋放總線 //單片機(jī)要在此下降沿后的15us內(nèi)讀數(shù)據(jù)才會(huì)有效。 _nop_()。 //至少維持了1us,表示讀時(shí)序開(kāi)始 dat = 1。 //讓從總線上讀到的位數(shù)據(jù),依次從高位移動(dòng)到低位。 DQ = 1。 //釋放總線,此后DS18B20會(huì)控制總線,把數(shù)據(jù)傳輸?shù)娇偩€上 delay(1)。 //延時(shí)7us,此處參照推薦的讀時(shí)序圖,盡量把控制器采樣時(shí)間放到讀時(shí)序后的15us內(nèi)的最后部分 if(DQ) //控制器進(jìn)行采樣 { dat |= 0x80。 //若總線為1,即DQ為1,那就把dat的最高位置1。若為0,則不進(jìn)行處理,保持為0 } delay(10)。 //此延時(shí)不能少,確保讀時(shí)序的長(zhǎng)度60us。 } return (dat)。 } void Write_One_Byte(uchar dat) { uchar i = 0。 for(i=8。i0。i) { DQ = 0。 //拉低總線 _nop_()。 //至少維持了1us,表示寫時(shí)序(包括寫0時(shí)序或?qū)?時(shí)序)開(kāi)始 DQ = datamp。0x01。 //從字節(jié)的最低位開(kāi)始傳輸 //指令dat的最低位賦予給總線,必須在拉低總線后的15us內(nèi), //因?yàn)?5us后DS18B20會(huì)對(duì)總線采樣。 delay(10)。 //必須讓寫時(shí)序持續(xù)至少60us DQ = 1。 //寫完后,必須釋放總線, dat = 1。 delay(1)。 } } uint Get_Tmp() //獲取溫度get the temperature { float tt。 uchar a,b。 Init_Ds18b20()。 //初始化 Write_One_Byte(0xcc)。 //忽略ROM指令 Write_One_Byte(0x44)。 //溫度轉(zhuǎn)換指令 Init_Ds18b20()。 //初始化 Write_One_Byte(0xcc)。 //忽略ROM指令 Write_One_Byte(0xbe)。 //讀暫存器指令 a = Read_One_Byte()。 //讀取到的第一個(gè)字節(jié)為溫度LSB b = Read_One_Byte()。 //讀取到的第一個(gè)字節(jié)為溫度MSB temp = b。 //先把高八位有效數(shù)據(jù)賦于temp temp = 8。 //把以上8位數(shù)據(jù)從temp低八位移到高八位 temp = temp|a。 //兩字節(jié)合成一個(gè)整型變量 tt = temp**10+。 //得到真實(shí)十進(jìn)制溫度值 // // temp = tt。 //放大十倍 //這樣做的目的將小數(shù)點(diǎn)后第一位也轉(zhuǎn)換為可顯示數(shù)字 //同時(shí)進(jìn)行一個(gè)四舍五入操作。 return temp。 }/****************主程序**************/ void main() { while(1) { Display(Get_Tmp())。 } }/****************數(shù)碼碼動(dòng)態(tài)顯示函數(shù)**************/ void Display(uint temp) //顯示程序 { uchar A1,A2,A3,A4。 A1 = temp/1000。 //百位 A2 = (temp/100)%10。 //十位 A3 = (temp%100)/10。 //個(gè)位 A4 = temp%10。 //個(gè)位 P3=0xf0。 P2 = table[A1]。 //顯示百位 xiao=0。 delay1(10)。 P3=0xf0。 P2=table[A2]。 //顯示十位 ge=0。 delay1(10)。 P3=0xf0。 P2= table1[A3]。 //顯示個(gè)位 shi=0。 delay1(10)。 P3=0xf0。 P2 = table[A4]。 //顯示小位 bai=0。 delay1(10)。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1