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

正文內容

簡易數字式溫度計的設計(編輯修改稿)

2025-07-31 21:27 本頁面
 

【文章內容簡介】 ************************函數功能:從DS18B20讀取一個字節(jié)數據出口參數:dat***************************************************/ uchar ReadOneChar(void) { uchar i=0。 uchar dat。 //儲存讀出的一個字節(jié)數據 for (i=0。i8。i++) { DQ =1。 // 先將數據線拉高 _nop_()。 //等待一個機器周期 DQ = 0。 //單片機從DS18B20讀書據時,將數據線從高拉低即啟動讀時序 _nop_()。 //等待一個機器周期 DQ = 1。 //將數據線人為拉高,為單片機檢測DS18B20的輸出電平作準備 for(time=0。time2。time++) 。 //延時約6us,使主機在15us內采樣 dat=1。 if(DQ==1) dat|=0x80。 //如果讀到的數據是1,則將1存入dat else dat|=0x00。//如果讀到的數據是0,則將0存入dat //將單片機檢測到的電平信號DQ存入r[i] for(time=0。time8。time++) 。 //延時3us,兩個讀時序之間必須有大于1us的恢復期 } return(dat)。 //返回讀出的十六進制數據}/*****************************************************函數功能:向DS18B20寫入一個字節(jié)數據入口參數:dat***************************************************/ WriteOneChar(uchar dat){ uchar i=0。 for (i=0。 i8。 i++) { DQ =1。 // 先將數據線拉高 _nop_()。 //等待一個機器周期 DQ=0。 //將數據線從高拉低時即啟動寫時序 DQ=datamp。0x01。 //利用與運算取出要寫的某位二進制數據, //并將其送到數據線上等待DS18B20采樣 for(time=0。time10。time++) 。//延時約30us,DS18B20在拉低后的約15~60us期間從數據線上采樣 DQ=1。 //釋放數據線 for(time=0。time1。time++) 。//延時3us,兩個寫時序間至少需要1us的恢復期 dat=1。 //將dat中的各二進制位數據右移1位 } for(time=0。time4。time++) 。 //稍作延時,給硬件一點反應時間}/*****************************************************函數功能:做好讀溫度的準備***************************************************/ void ReadyReadTemp(void){ Init_DS18B20()。 //將DS18B20初始化 WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 // 啟動溫度轉換 delaynms(200)。 //轉換一次需要延時一段時間 Init_DS18B20()。 //將DS18B20初始化 WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器,前兩個分別是溫度的低位和高位 }/******************************************************************************以下是與溫度有關的顯示設置 ******************************************************************************/ /*****************************************************函數功能:顯示沒有檢測到DS18B20***************************************************/ void display_error(void) { uchar i。 WriteAddress(0x00)。 //寫顯示地址,將在第1行第1列開始顯示 i = 0。 //從第一個字符開始顯示 while(Error[i] != 39。\039。) //只要沒有寫到結束標志,就繼續(xù)寫 { WriteData(Error[i])。 //將字符常量寫入LCD i++。 //指向下一個字符 delaynms(100)。 //延時100ms較長時間,以看清關于顯示的說明 } WriteAddress(0x40)。 //寫顯示地址,將在第1行第1列開始顯示 i = 0。 //從第一個字符開始顯示 while(Error1[i] != 39。\039。) //只要沒有寫到結束標志,就繼續(xù)寫 { WriteData(Error1[i])。 //將字符常量寫入LCD i++。 //指向下一個字符 delaynms(100)。 //延時100ms較長時間,以看清關于顯示的說明 } while(1) //進入死循環(huán),等待查明原因 。}/*****************************************************函數功能:顯示溫度符號***************************************************/ void display_symbol(void) { uchar i。 WriteAddress(0x40)。 //寫顯示地址,將在第2行第1列開始顯示 i = 0。 //從第一個字符開始顯示 while(Temp[i] != 39。\039。) //只要沒有寫到結束標志,就繼續(xù)寫 { WriteData(Temp[i])。 //將字符常量寫入LCD i++。 //指向下一個字符 delaynms(50)。 //延時1ms給硬件一點反應時間 } }/*****************************************************函數功能:顯示溫度的小數點***************************************************/ void display_dot(void){ WriteAddress(0x49)。 //寫顯示地址,將在第2行第10列開始顯示 WriteData(39。.39。)。 //將小數點的字符常量寫入LCD delaynms(50)。 //延時1ms給硬件一點反應時間 }/*****************
點擊復制文檔內容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1