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

正文內容

單片機課程設計報告-基于單片機的數(shù)字溫度計設計-資料下載頁

2024-10-27 12:12本頁面

【導讀】在三大信息信息采集、信息傳輸和信息處。具有重要的意義。關的溫度控制量,適配各種微控制器。安全性、開發(fā)虛擬傳感器和網(wǎng)絡傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展,本文將介紹智能集成溫度傳感器DS18B20的結構特征及控制方法,并對以此傳感器,與傳統(tǒng)的溫度計相比,其具有讀數(shù)方便,測溫范圍廣,測溫準確,輸出溫度采用。數(shù)字顯示,主要用于對測溫要求比較準確的場所,或科研實驗室使用。超有效的解決方案。AT89S52具有以下標準功能:。另外,AT89S52可降至0Hz靜態(tài)邏輯操。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。用戶可定義的非易失性溫度報警設置。報警搜索命令識別并標志超過程序限定溫度的器件。溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖。隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數(shù)器2的脈沖輸入,度寄存器中,減法計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值。

  

【正文】 r i。 bit b。 DQ = 0。 //讀開始 1us i++。 DQ = 1。 //產生讀時間隙 15us i++。 i++。 b = DQ。 //讀位 i = 8。 while(i0) i。 //等待 60us DQ = 1。 //釋放總線 return b。 } /* 讀取字節(jié)數(shù)據(jù) */ uchar RdByte() { uchar i,j,d。 d=0。 for(i=0。i8。i++) //各位由低向高讀出 DS18B20 { j=RdBit()。 d=(j7)|(d1)。 } return d。 } /* 寫入字節(jié)數(shù)據(jù) */ void WrByte(uchar d) { uint i。 uchar j。 bit btmp。 for(j=0。j8。j++) //各位由低向高寫入 DS18B20 { btmp=damp。0x01。 d=d1。 if(btmp) //寫 1 { DQ=0。 //延時 15us i++。 i++。 DQ=1。 //寫 1 時隙不低于 60u i=8。 while(i0) i。 } else //寫 0 { DQ=0。 i=8。 while(i0) i。 //保持低電平 60us 到 120us DQ=1。 //釋放總線 i++。 i++。 } } } /* 啟動溫度轉換 */ void Convert() { uint i。 Delay(125)。 //延時 1ms TxReset()。 //初始化 DS18B20 RxWait()。 //等待 DS18B20 應答 Delay(125)。 //延時 WrByte(0xcc)。 //跳過 ROM 命令 WrByte(0x44)。 //溫度轉換命令 for(i=0。ii++) //延時 1s Display()。 } /* 讀取溫度值 */ void RdTemp(void) { short int temp。 uint x。 bit flag = 1。 TxReset()。 //初始化 DS18B20 RxWait()。 //等待 DS18B20 應答 Delay(125)。 //延時 WrByte(0xcc)。 //跳過 ROM 命令 WrByte(0xbe)。 //讀暫存存儲器命令 templow = RdByte()。 //溫度值低字節(jié),低 4 位為小數(shù) temphigh = RdByte()。 //溫度值高字節(jié) temp = (temphigh 8) | templow。 //溫度為 16 位補碼 if(temp0) //負溫度 { flag = 0。 temp = ~temp + 1。 } tempzheng = temp 4。 //溫度值整數(shù) x = temp amp。 0x000f。 tempxiao = (x*10)/16。 //溫度值小數(shù) if(flag) //正溫度 disp[0] = tempzheng/100。 //百位 else //負溫度 disp[0] = 16。 //負號 disp[1] = (tempzheng%100)/10。 //十位 disp[2] = tempzheng%10。 //個位 disp[3] = tempxiao。 //小數(shù) } /* 延時 */ void Delay(uint x) { uint i。 for(i=x。i0。i)。 } /* 數(shù)碼管顯示 */ void Display() { uchar i,j。 j=0x08。 for(i=0。i4。i++) { P1=j。 //數(shù)碼管位碼輸出 LOCK=1。 //打開鎖存 if(i==2) P0=led[disp[i]]|0x01。 //顯示小數(shù)點 else P0=led[disp[i]]。 //數(shù)碼管段碼輸出 LOCK=0。 //關閉鎖存 j=j1。 //調整位碼 Delay(125)。 P0=0x00。 } }
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1