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

正文內(nèi)容

單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告:基于89c51單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)-資料下載頁

2024-10-24 18:56本頁面

【導(dǎo)讀】測(cè)量的溫度的范圍不宜過大,保證同時(shí)能夠測(cè)量零上溫度和零下溫度。誤差應(yīng)當(dāng)小于物理溫度計(jì)由于觀察造成的誤差。該溫度計(jì)的數(shù)字界面要友好直觀在溫度計(jì)出現(xiàn)錯(cuò)誤時(shí)要能夠報(bào)錯(cuò)。本次可程設(shè)計(jì)的課題是數(shù)字溫度計(jì),我們的重點(diǎn)是溫度的采集即測(cè)溫電路。集過來,進(jìn)行A/D轉(zhuǎn)換后,用單片機(jī)對(duì)其進(jìn)行溫度處理,在顯示元件上顯示。精度較差,容易受到外界環(huán)境的影響。方案二:使用DS18B20傳感器。應(yīng)溫度值,并且通過顯示元件上顯示。優(yōu)點(diǎn);精度較高,電路設(shè)計(jì)較為簡(jiǎn)單,用。綜上,選擇方案二更為合理。其組成原理是這樣的,單片機(jī)寫入讀取和控制傳感器的命令,使DS18B20. 進(jìn)制轉(zhuǎn)換和相應(yīng)的計(jì)算,并且將其送入到顯示屏顯示。本次課程設(shè)計(jì)用到了89C51單片機(jī)、DS18B20溫度傳感器和1602LCD屏。因?yàn)镈S18B20溫度傳感器與單片機(jī)之間單總線串行傳輸,DS18B20溫度傳感器,發(fā)現(xiàn)其溫度有所變化,上升至℃,如下圖6所示。當(dāng)拔掉DS18B20溫度傳感器,重新啟動(dòng)傳感器時(shí),屏幕會(huì)顯示報(bào)錯(cuò)信息,

  

【正文】 13 列 i = 0。 //從第一個(gè)字符開始顯示 while(Cent[i] != 39。\039。) //只要沒有寫到結(jié)束標(biāo)志,就繼續(xù)寫 { WriteData(Cent[i])。 //將字符常量寫入 LCD i++。 //指向下一個(gè)字符 delaynms(50)。 //延時(shí) 50ms 給硬件一點(diǎn)反應(yīng)時(shí)間 } } void display_temp1(unsigned char x) //整數(shù)輸出部分 { unsigned char j,k,l。 //j,k,l 分別儲(chǔ)存溫度的百位、十位和個(gè)位 j=x/100。 //取百位 k=(x%100)/10。 //取十位 l=x%10。 //取個(gè)位 WriteAddress(0x46)。 //寫顯示地址 ,將在第 2 行第 7 列開始顯示 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告 15 WriteData(digit[j])。 //將百位數(shù)字的字符常量寫入 LCD WriteData(digit[k])。 //將十位數(shù)字的字符常量寫入 LCD WriteData(digit[l])。 //將個(gè)位數(shù)字的字符常量寫入 LCD delaynms(50)。 //延時(shí) 50ms 給硬件 一點(diǎn)反應(yīng)時(shí)間 } void display_temp2(unsigned char x) //顯示小數(shù)部分函數(shù) { unsigned char m,n。 m=x/10。 n=x%10。 WriteAddress(0x4a)。 //寫顯示地址 ,將在第 2 行第 11 列開始顯示 WriteData(digit[m])。 //將小數(shù)部分的第一位數(shù)字字符常量寫入 LCD WriteData(digit[n])。 delaynms(50)。 //延時(shí) 50ms 給硬件一點(diǎn)反應(yīng)時(shí)間 } void ReadyReadTemp(void) //讀溫度準(zhǔn)備 函數(shù) { Init_DS18B20()。 //將 DS18B20 初始化 WriteOneChar(0xCC)。 // 跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0x44)。 // 啟動(dòng)溫度轉(zhuǎn)換 for(time=0。time100。time++)。 //溫度轉(zhuǎn)換需要一點(diǎn)時(shí)間 Init_DS18B20()。 //將 DS18B20 初始化 WriteOneChar(0xCC)。 //跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器 ,前兩個(gè)分別是溫度低位和高位 } void main(void) { unsigned char TL。 //儲(chǔ)存暫存器的溫度低位 unsigned char TH。 //儲(chǔ)存暫存器的溫度高位 unsigned char TN。 //儲(chǔ)存溫度的整數(shù)部分 unsigned char TD。 //儲(chǔ)存溫度的小數(shù)部分 LcdInitiate()。 //將液晶初始化 程序包含顯示模式的設(shè)置 delaynms(5)。 //延時(shí) 5ms 給硬件一點(diǎn)反應(yīng)時(shí)間 if(Init_DS18B20()==1) display_error()。 display_explain()。 display_symbol()。 //顯示溫度說明 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告 16 display_dot()。 //顯示溫度的小數(shù)點(diǎn) display_cent()。 //顯 示溫度的單位 while(1) //不斷檢測(cè)并顯示溫度 { ReadyReadTemp()。 //讀溫度準(zhǔn)備 包括傳感器初始化和 寫入讀溫和溫度轉(zhuǎn)換命令 TL=ReadOneChar()。 //先讀的是溫度值低位 TH=ReadOneChar()。 //接著讀的是溫度值高位 if(THamp。0xf8==0x00) //如果讀的溫度是 零上溫度 { TN=TH*16+TL/16。 //實(shí)際溫度值 為 (TH*256+TL)/16 //這樣得出的是溫度的整數(shù)部分 ,小數(shù)部分被 舍去 TD=(TL%16)*100/16。 //計(jì)算溫度的小數(shù)部分取整, //這樣得到的是溫度小數(shù)部分的兩位數(shù)字 display_temp1(TN)。 //顯示溫度的整數(shù)部分 display_temp2(TD)。 //顯示溫度的小數(shù)部分 delaynms(10)。 } else //如果讀的溫度是零下溫度 { TH=~TH。 //溫度值 高 位 取反 TL=~TL。 //溫度值低位 取反 TN=(TH*256+TL+1)/16。 //得出零下溫度的整數(shù)值 TD=((TL+1)%16)*100/16。 //得出零下溫度的小數(shù)值 display_temp1(TN)。 //顯示溫度的整數(shù)部分 display_temp2(TD)。 //顯示溫度的小數(shù)部分 display_minus()。 //顯 示 負(fù)號(hào) delaynms(10)。} } }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1