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

正文內(nèi)容

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

2025-03-04 07:15本頁(yè)面

【導(dǎo)讀】年級(jí)、專業(yè):應(yīng)用電子技術(shù)121

  

【正文】 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ū)?1時(shí)序 )開始 DQ = datamp。0x01。 //從字節(jié)的最低位開始傳輸 //指令 dat的最低位賦予給總線 ,必須在拉低總線后的 15us內(nèi) , //因?yàn)?15us后 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)制溫度值 //因?yàn)?DS18B20可以精確到 //所以讀回?cái)?shù)據(jù)的最低位代表的是 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í)序開始 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ū)?1時(shí)序 )開始 DQ = datamp。0x01。 //從字節(jié)的最低位開始傳輸 //指令 dat的最低位賦予給總線 ,必須在拉低總線后的 15us內(nèi) , //因?yàn)?15us后 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)制溫度值 //因?yàn)?DS18B20可以精確到 //所以讀回?cái)?shù)據(jù)的最低位代表的是 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