




已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
任務(wù)1 利用單片機(jī)AT89C51作為控制器 以及用改進(jìn)型智能溫度傳感器DS18B20作為溫度采集器 設(shè)計(jì)了一款數(shù)字溫度計(jì) 可以顯示環(huán)境的溫度以及測量人體的體溫 跟我學(xué)1 單總線的協(xié)議規(guī)范和應(yīng)用方法 DS18B20是采用一條數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)雙向傳輸?shù)? Wire單總線協(xié)議方式 該協(xié)議定義了三種通信時序 初始化時序 讀時序和寫時序 而AT89C51單片機(jī)在硬件上并不支持單總線協(xié)議 因此 必須采用軟件方法模擬單總線的協(xié)議時序 來完成與DS18B20間的通信 該協(xié)議所有時序都是將主機(jī)作為主設(shè)備 單總線器件作為從設(shè)備 每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時序開始 如果要求單總線器件回送數(shù)據(jù) 在進(jìn)行寫命令后 主機(jī)需啟動讀時序完成數(shù)據(jù)接收 數(shù)據(jù)和命令的傳輸都是以低位在先的串行方式進(jìn)行 根據(jù)DS18B20通信協(xié)議中初始化時序 寫時序和讀時序要求 分別編寫與之對應(yīng)的3個應(yīng)用子函數(shù) 分別是 voidinit ds18b20 void 初始化子函數(shù) voidwritebyte uchar 寫字節(jié)子函數(shù)以及ucharreadbyte void 讀字節(jié)子函數(shù) DS18B20寫字節(jié)時序如圖所示 單片機(jī)要先將DQ設(shè)置為低電平 延時15 s后 將待寫的數(shù)據(jù)以串行形式送一位至DQ端 DS18B20將在60 s T 120 s時間內(nèi)接收一位數(shù)據(jù) 發(fā)送完一位數(shù)據(jù)后 將DQ端的狀態(tài)再拉回到高電平 并保持至少1 s的恢復(fù)時間 即每寫完一位串行數(shù)據(jù)后中間至少要有1 s以上的恢復(fù)時間 然后再寫下一位數(shù)據(jù) DS18B20讀字節(jié)時序如圖所示 當(dāng)單片機(jī)準(zhǔn)備從DS18B20溫度傳感器讀取每一位數(shù)據(jù)時 應(yīng)先發(fā)出啟動讀時序脈沖 即將DQ總線設(shè)置為低電平 保持1 s以上時間后 再將其設(shè)置為高電平 啟動后等待15 s 以便DS18B20能可靠地將溫度數(shù)據(jù)送至DQ總線上 然后單片機(jī)再開始讀取DQ總線上的結(jié)果 單片機(jī)在完成取數(shù)操作后 要等待至少45 s 同樣 讀完每位數(shù)據(jù)后至少要保持1 s的恢復(fù)時間 動手做1 畫出硬件電路圖 動手做2 自動窗簾控制的程序 功能 數(shù)字溫度計(jì) include reg51 h include intrins h 包含內(nèi)部函數(shù)頭文件intrins h defineucharunsignedchar defineuintunsignedint defineoutP2sbitsmg1 P3 1 溫度個位位選端sbitsmg2 P3 0 溫度十位位選端sbitDQ P3 7 溫度采集voiddelay5us ucharn 精確延時n 5us子程序voiddelayms uintj voidinit ds18b20 void 總線初始化復(fù)位ucharreadbyte void 讀取一個字節(jié)voidwritebyte uchar 寫一個字節(jié)ucharreadtemp void 讀取溫度unsignedcharled 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 共陽數(shù)碼管顯示 0 9 字型碼 voidmain void uchari uchartemp temp readtemp 讀取轉(zhuǎn)換的溫度delayms 1000 while 1 temp readtemp 讀取轉(zhuǎn)換的溫度for i 0 i 10 i 連續(xù)掃描數(shù)碼管10次 out led temp 10 顯示溫度十位smg1 0 smg2 1 delay5us 200 延時1msout 0 xff out led temp 10 顯示溫度個位smg1 1 smg2 0 delay5us 200 延時1msout 0 xff 函數(shù)名 delay5us 函數(shù)功能 精確延時5us子程序 形式參數(shù) 延時時間參數(shù)n unsignedchar類型voiddelay5us unsignedcharn do nop nop nop n while n 函數(shù)名 init ds18b20 函數(shù)功能 總線初始化復(fù)位voidinit ds18b20 void ucharx 0 DQ 1 delay5us 10 DQ 0 delay5us 120 低電平480 960sDQ 1 delay5us 16 等待50 100sx DQ delay5us 80 DQ 1 函數(shù)名 readbyte 函數(shù)功能 讀取一個字節(jié) 形式參數(shù) 無 返回值 讀取字節(jié)數(shù)據(jù)date unsignedchar類型ucharreadbyte void uchari 0 uchardate 0 for i 8 i 0 i DQ 0 delay5us 1 DQ 1 15微秒內(nèi)拉釋放總線date 1 if DQ date 0 x80 delay5us 11 讀完需要45us的等待 return date 函數(shù)名 writebyte 函數(shù)功能 寫一個字節(jié) 形式參數(shù) 寫字節(jié)數(shù)據(jù)dat unsignedchar類型 返回值 無voidwritebyte uchardat uchari 0 for i 8 i 0 i DQ 0 DQ dat 延時25us 函數(shù)名 readtemp 函數(shù)功能 讀取溫度 形式參數(shù) 無 返回值 單字節(jié)的溫度值tt unsignedchar類型ucharreadtemp void uchartempl temph tt uintt init ds18b20 writebyte 0 xCC writebyte 0 x44 跳過ROM匹配 跳過讀序列號的操作 可節(jié)省操作時間init ds18b20 開始操作前需要復(fù)位writebyte 0 xCC writebyte 0 xBE 讀暫存器中的溫度值templ readbyte 分別讀取溫度的低 高字節(jié)temph readbyte t temph t 8 t t templ tt t 0 0625 溫度轉(zhuǎn)換return tt 函數(shù)名 delayms uintms 函數(shù)功能 延時ms毫秒子函數(shù) 形式參數(shù) ms 返回值 無voiddelayms uintms 延時ms毫秒子函數(shù) uinti j for i 0 i ms i for j 0 j 110 j 延時1毫秒 動手做3 proteus仿真 從PROTEUS中選取如下元器件 1 AT89C51 單片機(jī) 2 RES 電阻 3 CAP CAP ELEC 電容 電解電容 4 CRYSTAL 晶振 BUTTON 按鍵 5 7SEG MPX2 CA 兩個共陽極數(shù)碼管 6 2N5551 NPN三極管 7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供銷返合同范本
- 三七土回填合同范本
- 單位機(jī)房電腦采購合同范本
- 剛加入工廠合同范本
- 消毒防疫合同范本
- 傳統(tǒng)保險(xiǎn)合同范本
- 個人開戶合同范本
- 關(guān)于展會合同范本
- 出售掘進(jìn)臺車合同范本
- 中介入職合同范本
- 樂沛LOTSPLAY德國HABA邏輯思維課程介紹手冊
- 高中化學(xué)人教版一輪復(fù)習(xí)-晶體結(jié)構(gòu)與性質(zhì)(復(fù)習(xí)課件)
- GB/T 22919.3-2008水產(chǎn)配合飼料第3部分:鱸魚配合飼料
- 劉半農(nóng)《教我如何不想她》課件
- 前行第07節(jié)課(僅供參考)課件
- 船舶涂裝課件
- 界面砂漿檢測報(bào)告
- 浙江鞋業(yè)出口貿(mào)易研究
- (完整版)環(huán)境科學(xué)與工程-專業(yè)英語詞匯
- 中考形容詞副詞專題復(fù)習(xí)市公開課一等獎省名師優(yōu)質(zhì)課賽課一等獎?wù)n件
- 甲醛優(yōu)質(zhì)課件
評論
0/150
提交評論