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

正文內容

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

2025-06-27 20:00本頁面
  

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