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

正文內(nèi)容

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

2025-07-31 21:27 本頁面
 

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