微機(jī)原理及應(yīng)用課程設(shè)計(jì)基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第1頁(yè)
微機(jī)原理及應(yīng)用課程設(shè)計(jì)基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第2頁(yè)
微機(jī)原理及應(yīng)用課程設(shè)計(jì)基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第3頁(yè)
微機(jī)原理及應(yīng)用課程設(shè)計(jì)基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第4頁(yè)
微機(jī)原理及應(yīng)用課程設(shè)計(jì)基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、仿真仿真 c 語(yǔ)言程序語(yǔ)言程序 原理圖原理圖 等,聯(lián)系等,聯(lián)系 153893706 交通與汽車工程學(xué)院 課程設(shè)計(jì)說明書 課 程 名 稱: 微機(jī)原理及應(yīng)用課程設(shè)計(jì) 課 程 代 碼: 8234570 題 目: 基于單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì) 年級(jí)/專業(yè)/班: 2009 級(jí)汽電四班 學(xué) 生 姓 名: 學(xué) 號(hào): 開 始 時(shí) 間: 20122012 年 0707 月 0202 日 完 成 時(shí) 間: 20122012 年 0707 月 0606 日 課程設(shè)計(jì)成績(jī): 學(xué)習(xí)態(tài)度及平 時(shí)成績(jī)(30) 技術(shù)水平與實(shí)際 能力(20) 創(chuàng)新 (5) 說明書(計(jì)算書、圖紙、分 析報(bào)告)撰寫質(zhì)量(45) 總 分 (100) 指

2、導(dǎo)教師簽名: 年 月 日 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 1 - 目 錄 摘摘 要要 .2 1 1 引引 言言 .3 1.1 問題的提出.3 1.2 任務(wù)與分析. 3 2 2 系統(tǒng)方案設(shè)計(jì)系統(tǒng)方案設(shè)計(jì) .5 2.1 系統(tǒng)設(shè)計(jì)方案 . 5 2.2 系統(tǒng)總體框圖 .6 3 3 系統(tǒng)硬件電路設(shè)計(jì)系統(tǒng)硬件電路設(shè)計(jì) .7 3.1 89c51 單片機(jī).7 3.2 數(shù)字溫度傳感器 ds18b20.9 4 4 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì) .14 4.1 proteus軟件環(huán)境介紹 .14 4.2 protel軟件環(huán)境介紹.15 4.3 程序流程圖.15 5 5 系統(tǒng)調(diào)試過程系統(tǒng)調(diào)試過程 .23 結(jié)結(jié) 論論 .

3、27 致致 謝謝 .28 參考文獻(xiàn)參考文獻(xiàn) .29 附錄附錄 .30 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 2 - 摘 要 本文設(shè)計(jì)了一種基于單片機(jī) at89c51 的溫度測(cè)量、顯示及報(bào)警的裝置,系統(tǒng)采用 at89c51 進(jìn)行智能控制,利用 ds18b20 芯片實(shí)現(xiàn)了溫度的測(cè)量,并將測(cè)量的溫度使用 4 位 led 數(shù)碼管進(jìn)行顯示。當(dāng)測(cè)量的溫度超出 25100時(shí),利用蜂鳴器進(jìn)行報(bào)警,此外用 戶還可以通過獨(dú)立按鍵電路,根據(jù)需要自行設(shè)計(jì)水溫穩(wěn)定報(bào)警限值。 系統(tǒng)硬件主要由控制電路、溫度采集電路、顯示電路和報(bào)警電路等部分組成;系統(tǒng) 軟件采用 c 語(yǔ)言編程;該系統(tǒng)能實(shí)現(xiàn)水溫溫度的測(cè)量、顯示及限值報(bào)警功能,在現(xiàn)

4、代小 型轎車上具有一定的應(yīng)用價(jià)值。 關(guān)鍵詞關(guān)鍵詞:溫度測(cè)量,at89c51 單片機(jī),ds18b20 溫度傳感器 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 3 - 1 引 言 1.1 問題的提出 隨著人們生活水平的提高,對(duì)生活環(huán)境的要求也越來越高,家用轎車的電器裝置越 來越趨于自動(dòng)控制乃至于智能控制,現(xiàn)代轎車上對(duì)冷卻水溫度的顯示只是一個(gè)模糊的范 圍,沒有具體的水溫溫度值顯示,而冷卻水的溫度對(duì)發(fā)動(dòng)機(jī)的正常工作溫度影響很大。 通常水冷式發(fā)動(dòng)機(jī)正常的工作溫度在 8090,水溫過高,會(huì)引起金屬材料膨脹, 破壞正常的工作間隙,容易導(dǎo)致活塞咬死、拉缸等故障,并且還會(huì)使?jié)櫥妥兿?,從?加速油液氧化變質(zhì),進(jìn)一步加速氣

5、缸磨損;水溫過低,同樣也會(huì)損壞發(fā)動(dòng)機(jī)。而造成冷 卻水水溫異常的原因也有很多,比如說:水箱風(fēng)扇不轉(zhuǎn),散熱器散熱不良,節(jié)溫器無法 正常打開,冷卻液不足,水泵工作不良,水溫傳感器、儀表及電路異常等,如果不及時(shí) 發(fā)現(xiàn)冷卻水溫度異常,不及時(shí)處理造成溫度異常的原因,那么給轎車發(fā)動(dòng)機(jī)帶來的危害 有可能會(huì)進(jìn)一步擴(kuò)大,同時(shí)也會(huì)轎車用戶帶來很多不必要的損失。 針對(duì)目前的這種情況,發(fā)動(dòng)機(jī)冷卻水水溫的數(shù)字顯示顯得尤為重要,為了能夠?yàn)檗I 車用戶提供比較方便、直觀的冷卻水溫度,本文就通過 51 系列單片機(jī) at89c51 來設(shè)計(jì)了 一個(gè)發(fā)動(dòng)機(jī)冷卻水水溫的測(cè)量與數(shù)字顯示裝置。該設(shè)計(jì)可以實(shí)現(xiàn)發(fā)動(dòng)機(jī)冷卻水水溫的實(shí) 時(shí)測(cè)量,溫度

6、信息通過數(shù)碼管直觀的顯示給轎車用戶,轎車用戶也可以根據(jù)需求,適當(dāng) 的通過獨(dú)立按鍵自行設(shè)定溫度的報(bào)警值,當(dāng)測(cè)量的水溫超過用戶設(shè)置的報(bào)警溫度限值時(shí), 蜂鳴器發(fā)聲報(bào)警,以此提醒用戶注意發(fā)動(dòng)機(jī)冷卻水水溫異常,以便轎車用戶可以及時(shí)的 檢查水溫異常的原因,避免轎車因水溫異常出現(xiàn)故障,甚至導(dǎo)致某些交通事故,提高了 轎車的使用性能,為轎車用戶增加了安全性。 1.2 任務(wù)與分析 本次設(shè)計(jì)的系統(tǒng)的控制中心是 89c51 單片機(jī)。首先,在 protel 軟件環(huán)境中進(jìn)行硬件 電路圖的設(shè)計(jì)。然后在 8051 軟件環(huán)境中進(jìn)行系統(tǒng)的軟件編程,并進(jìn)行程序源文件的編譯 和調(diào)試,最后生成.hex 文件。此.hex 文件是硬件電路

7、運(yùn)行實(shí)現(xiàn)的源代碼來源。把.hex 文 件加載到 at89c51 單片機(jī)芯片,然后在 proteus 軟件環(huán)境中運(yùn)行硬件電路,溫度的大小就 可以正常顯示了。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 4 - 本設(shè)計(jì)的系統(tǒng)主要由:at89c51 為中央處理芯片,用于數(shù)據(jù)處理,初值設(shè)定。時(shí)鐘芯 片 ds1302 是本例的核心模塊,由他提供時(shí)鐘信息并由 led 顯示,用 c 語(yǔ)言進(jìn)行編程。 本系統(tǒng)可以分為以下 4 大模塊: 能用匯編語(yǔ)言或其它可編譯的語(yǔ)言(如 c51 語(yǔ)言)編寫 51 系列的單片計(jì)算機(jī)系統(tǒng) 程序。 能用一種工具軟件繪制電路原理圖,對(duì)硬件系統(tǒng)電路各個(gè)器件能正確地標(biāo)出連接 編號(hào)。 對(duì)軟件的各個(gè)子程

8、序能順利的調(diào)試通過。 調(diào)試整個(gè)系統(tǒng),使其能按設(shè)計(jì)要求正確的工作。 完成畢業(yè)設(shè)計(jì)的說明書一份。 完成與畢業(yè)設(shè)計(jì)內(nèi)容相關(guān)的英文資料翻譯。 對(duì)溫度傳感器的測(cè)量精度要求達(dá)到誤差小于1 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 5 - 2 系統(tǒng)方案設(shè)計(jì) 2.1 系統(tǒng)設(shè)計(jì)方案 2.1.1 溫度測(cè)量電路的設(shè)計(jì)方案論證與選擇 方案一:方案一:采用傳統(tǒng)的溫度傳感器測(cè)量水溫。傳統(tǒng)的單片機(jī)溫度檢測(cè)系統(tǒng)采用熱電偶和熱電 阻測(cè)量溫度,而熱電偶和熱電阻測(cè)出的一般都是電壓,須包含模擬測(cè)量電路及 a/d 轉(zhuǎn)換 電路將其轉(zhuǎn)換成對(duì)應(yīng)的溫度,且占用單片機(jī)的引腳多,有時(shí)還需要 i/o 擴(kuò)展接口芯片, 需要比較多的外部硬件電路支持,硬件電路復(fù)

9、雜,軟件調(diào)試復(fù)雜,降低了系統(tǒng)的可靠性, 且制作成本高。 方案二:方案二:采用 dallas 公司生產(chǎn)的數(shù)字溫度傳感器 ds18b20 測(cè)量水溫。使用 ds18b20 測(cè)量 溫度,能代替模擬溫度傳感器和信號(hào)處理電路,完成溫度的采集,并在其內(nèi)部就能進(jìn)行 a/d 轉(zhuǎn)換處理測(cè)量到的數(shù)據(jù),輸出的數(shù)字量能直接與單片機(jī) at89c51 進(jìn)行通信,無需外 加 a/d 轉(zhuǎn)換器,轉(zhuǎn)換速度快,簡(jiǎn)化了系統(tǒng)的外圍電路,降低了制作成本,提高了系統(tǒng)的 集成度,且其測(cè)量精度能達(dá)到設(shè)計(jì)要求的1。 綜上所述,選擇方案二采用數(shù)字溫度傳感器 ds18b20 完成溫度的采集和數(shù)據(jù)的處理,組 成溫度測(cè)量電路。 2.1.2 溫度顯示方式選

10、擇 方案一:方案一:采用字符型 lcd 顯示。lcd 具有輕薄短小、低耗電量、無輻射危險(xiǎn),平面直角顯 示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),可視面積大,畫面效果好,分辨率高,抗干擾能力強(qiáng)等 特點(diǎn)。但由于只顯示水溫這樣的數(shù)字,信息量比較小,且由于 lcd 液晶是以點(diǎn)陣的模式 顯示各種符號(hào),需要利用控制芯片創(chuàng)建字符庫(kù),編程工作量大,控制器的資源占用較多, 其制作成本也偏高。在使用時(shí),不能有靜電干擾,否則容易燒壞液晶的顯示芯片,不易 維護(hù)。 方案二:方案二:采用 led 數(shù)碼管顯示。led 數(shù)碼管具有:低能耗、低損耗、低壓、壽命長(zhǎng)、耐老 化、防曬、防潮、防火、防高(低)溫,對(duì)外界環(huán)境要求低,易于維護(hù)的優(yōu)點(diǎn),同

11、時(shí)其 精度比較高,稱量快,精確可靠,操作簡(jiǎn)單。數(shù)碼管采用 bcd 編碼顯示數(shù)字,程序編譯 容易,資源占用較少,制作成本也較低。 綜上所述,選擇方案二采用 led 數(shù)碼管顯示測(cè)量的水溫。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 6 - 2.2 系統(tǒng)總體框圖 2.1 系統(tǒng)組成 經(jīng)過方案的比較與論證,最終確定的系統(tǒng)框圖如圖 1.2.1 所示。其中由溫度傳感器 ds18b20 完成溫度數(shù)據(jù)的采集和處理,直接與單片機(jī)通信,將測(cè)量的溫度送入 4 位 led 數(shù)碼管顯示電路中顯示,當(dāng)測(cè)量的水溫超過設(shè)定的正常范圍時(shí),利用蜂鳴器報(bào)警電路進(jìn) 行報(bào)警提示。 圖 2-1 系統(tǒng)設(shè)計(jì)框圖 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 7

12、- 3 系統(tǒng)硬件電路設(shè)計(jì) 3.1 89c51 單片機(jī) at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能 cmos 8 位微處理器, 俗稱單片機(jī)。at89c2051 是一種帶 2k 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片 機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除 100 次。該器件采用 atmel 高密度非易失存儲(chǔ)器制 造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 mcs-51 指令集和輸出管腳相兼容。由于將多功能 8 位 cpu 和 閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel 的

13、 at89c51 是一種高效微控制器,at89c2051 是它 的一種精簡(jiǎn)版本。at89c51 單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的 方案。 圖 3-1 89c51 單片機(jī)引腳圖 89c51 單片機(jī)與早期 intel 的 8051/8751/8031 芯片的外部引腳和指令系統(tǒng)完全兼容, 只不過用 flash rom 替代了 rom/eprom 而已3。89c51 單片機(jī)內(nèi)部結(jié)構(gòu)如圖所示。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 8 - 圖 3-2 89c51 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖 各引腳的功能如下: vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個(gè) 8 位漏級(jí)開路雙向 i

14、/o 口,每腳可吸收 8ttl 門電流。當(dāng) p1 口的管 腳第一次寫 1 時(shí),被定義為高阻輸入。p0 能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義 為數(shù)據(jù)/地址的第八位。在 fiash 編程時(shí),p0 口作為原碼輸入口,當(dāng) fiash 進(jìn)行校驗(yàn)時(shí), p0 輸出原碼,此時(shí) p0 外部必須被拉高3。 p1 口:p1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為低電平 時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 flash 編程和校驗(yàn)時(shí),p1 口作為第八位 地址接收。 p2 口:p

15、2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可接收,輸出 4 個(gè) ttl 門電流,當(dāng) p2 口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為 輸入時(shí),p2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2 口當(dāng)用于 外部程序存儲(chǔ)器或 16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2 口輸出地址的高八位。在 給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 9 - 口輸出其特殊功能寄存器的內(nèi)容。p2 口在 flash 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控 制信號(hào)。 p3 口:p3 口管腳是

16、 8 個(gè)帶內(nèi)部上拉電阻的雙向 i/o 口,可接收輸出 4 個(gè) ttl 門電流。 當(dāng) p3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下 拉為低電平,p3 口將輸出電流(ill)這是由于上拉的緣故。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 rst 腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 在 flash 編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale 端以不變的頻率周期輸出 正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí) 目的。然而要注意的是:每當(dāng)用作外

17、部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè) ale 脈沖。如想禁止 ale 的輸出可在 sfr 8eh 地址上置 0。此時(shí), ale 只有在執(zhí)行 movx,movc 指令是 ale 才 起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ale 禁止,置位無效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次 /psen 有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen 信號(hào)將不出現(xiàn)。 /ea:當(dāng)/ea 保持低電平時(shí),則在此期間 cpu 只訪問外部程序存儲(chǔ)器(0000h-ffffh) , 不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1 時(shí),/ea 將內(nèi)部鎖定為 r

18、eset;當(dāng)/ea 端保 持高電平時(shí),則執(zhí)行內(nèi)部程序存儲(chǔ)器中的程序。在 flash 編程期間,此引腳也用于施加 12v 編程電源(vpp) 。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 3.2 數(shù)字溫度傳感器 ds18b20 3.2.1 ds18b20 的性能特點(diǎn)2 ds18b20 溫度傳感器是美國(guó) dallas 半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器, 與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過 簡(jiǎn)單的編程實(shí)現(xiàn) 912 位數(shù)字值讀數(shù)方式。ds18b20 有以下的功能特點(diǎn): 獨(dú)特的單線接口僅需要一個(gè)端

19、口引腳進(jìn)行通信; 多個(gè) ds18b20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能; 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 10 - 無需外部器件; 低壓供電,電源范圍為 35v;可本地供電,也可以通過數(shù)據(jù)線供電(寄生式供電) ; 零待機(jī)功耗; 溫度以 9 或 12 位數(shù)字量讀出; 用戶可定義的非易失性溫度報(bào)警設(shè)置; 報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件; 負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,只是不能正常工作; ds18b20 可將檢測(cè)到的溫度值直接轉(zhuǎn)化成數(shù)字量,并通過串行通信的方式與主控制器進(jìn) 行數(shù)據(jù)通信。 3.2.2 ds18b20 的內(nèi)部結(jié)構(gòu)及功能3 3

20、.2.2.1 ds18b20 的內(nèi)部結(jié)構(gòu) ds18b20 采用 3 腳 pr-35 封裝或 8 腳 soic 封裝,其內(nèi)部結(jié)構(gòu)主要包括寄生電源、溫度傳 感器、64 位激光 rom 和單總線接口、存放中間數(shù)據(jù)的高速暫存器 ram、用于存儲(chǔ)用戶設(shè) 定溫度上下限值的 th 和 tl 觸發(fā)器、存儲(chǔ)與控制邏輯、8 位循環(huán)冗余校驗(yàn)碼(crc)發(fā)生 器等 7 部分。內(nèi)部結(jié)構(gòu)如圖 2.2.1 所示。 圖 3-3 ds18b20 內(nèi)部結(jié)構(gòu)圖 3.2.2.2 高速暫存器 ram ram 是由 9 個(gè)字節(jié)的高速暫存器和非易失性電擦寫 eeprom 組成。高速暫存 ram 包含 8 字節(jié)存儲(chǔ)器,其結(jié)構(gòu)如圖 2.2.2

21、 所示。其中第 1、2 字節(jié)存儲(chǔ)測(cè)得的溫度,第 3、4 字 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 11 - 節(jié)存儲(chǔ)上下限報(bào)警溫度 th 和 tl,是易失性的,每次上電復(fù)位時(shí)被刷新。第 5 字節(jié)為配 置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。第 6、7、8 字節(jié)保留未用,表 現(xiàn)為全邏輯 1。.第 9 字節(jié)是讀出前面 8 個(gè)字節(jié)的 crc 碼,用來檢驗(yàn)數(shù)據(jù),從而保證通信 數(shù)據(jù)的正確性。ram 中 eeprom 用于存儲(chǔ) th、tl 和配置寄存器的值。數(shù)據(jù)先寫入 ram,經(jīng) 校驗(yàn)后再傳給 eeprom。通過 ds18b20 功能命令對(duì) ram 進(jìn)行操作。 圖 3-4 高速暫存 ram 結(jié)構(gòu)圖 d

22、s18b20 的溫度測(cè)量范圍是-55+125,分辨率的默認(rèn)值 12 位。當(dāng) ds18b20 接收到 溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值以 16 為帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼 形式存儲(chǔ)在高速暫存存儲(chǔ)器的第 1、2 字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù) 據(jù)時(shí)低位在前,高位在后,數(shù)據(jù)格式以 0.0625/lsb 形式表示。溫度數(shù)據(jù)值格式如圖 2.2.3 所示。 當(dāng)符號(hào)位 s=0 時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù); 當(dāng)符號(hào)位 s=1 時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算其對(duì)應(yīng)的十 進(jìn)制數(shù)。 圖 3-5 溫度數(shù)據(jù)值格式 3.2.2.3 cr

23、c 發(fā)生器 在 64 位 rom 的最高有效字節(jié)中存有循環(huán)冗余校驗(yàn)碼(crc) 。主機(jī)根據(jù) rom 的前 56 位來計(jì)算 crc 值,并和存入 ds18b20 中的 crc 值作比較,以判斷主機(jī)收到的 rom 數(shù)據(jù)是 否正確。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 12 - crc 的函數(shù)表達(dá)式為:crc=x8+x5+x4+1 此外,ds18b20 尚需依上式為暫存器中的數(shù)據(jù)來產(chǎn)生一個(gè) 8 位 crc 送給主機(jī), 作為數(shù)據(jù)校驗(yàn)用。 2.2.3 ds18b20 電源供電方式3 ds18b20 可以采用兩種方式供電,一種是采用電源供電方式,如圖 2.2.4 所示,此 時(shí) ds18b20 的 1 腳接地

24、,2 腳作為信號(hào)線,3 腳接電源。另一種是寄生電源供電方式,如 圖 2.2.5 所示,單片機(jī)端口接單線總線,為保證在有效的 ds18b20 時(shí)鐘周期內(nèi)提供足夠 的電流,可用一個(gè) mosfet 管來完成對(duì)總線的上拉。 圖 3-6 外部電源供電 圖 3-7 寄生電源供電 當(dāng) ds18b20 出于寫存儲(chǔ)器操作和溫度 a/d 轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上 拉開啟時(shí)間最大為 10us。采用寄生電源供電方式時(shí) vdd 和 gnd 端均接地。由于單線制只 有一根線,因此發(fā)送接口必須是三態(tài)的。 3.2.4 ds18b20 的命令集3 3.2.4.1 rom 操作命令 rom 操作命令如表 3-1 所示

25、。 表 3-1 rom 操作命令 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 13 - 指令說明 讀 rom 命令(33h)讀 ds18b20 的序列號(hào) 搜索 rom 命令(f0h)識(shí)別總線上個(gè)器件的編碼 匹配 rom 命令(55h)用于多個(gè) ds18b20 的定位 跳過 rom 命令(cch)此命令執(zhí)行后,存儲(chǔ)器操作將針對(duì)總線上的所有器件 報(bào)警搜索 rom 命令(ech)僅溫度超限的器件對(duì)此命令作出響應(yīng) 3.2.4.2 ram 操作命令 ram 操作命令如表 3-2 所示。 表 3-2 ram 操作命令 指令說明 溫度轉(zhuǎn)換(44h)啟動(dòng)溫度轉(zhuǎn)換 讀暫存器(beh)讀全部暫存器內(nèi)容,包括 crc 字節(jié)

26、寫暫存器(4eh)寫暫存器第 2、3 和 4 個(gè)字節(jié)的數(shù)據(jù) 復(fù)制暫存器(48eh)將暫存器中的 th、tl 和配置寄存器內(nèi)容復(fù)制到 eeprom 中 讀 eeprom(b8h)將 th、tl 和配置寄存器內(nèi)容從 eeprom 中回讀至?xí)捍嫫?3.2.5 ds18b20 的接口與單片機(jī) at89c51 可以使用單片機(jī) at89c51 的任意一個(gè) i/o 口連接 ds18b20。如圖 2.2.6 所示,將 ds18b20 的數(shù)據(jù)引腳 dq 與單片機(jī)的 p2.7 相連,即可進(jìn)行通信。ds18b20 使用外部電源供 電方式,r1 為上拉電阻。ds18b20 與單片機(jī)通信只需要占用單片機(jī)的一個(gè) i/o

27、口,使用 非常方便。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 14 - 圖 3-8 ds18b20 與 at89c51 連接的電路圖 4 系統(tǒng)軟件設(shè)計(jì) 4.1 proteus軟件環(huán)境介紹 本系統(tǒng)的硬件設(shè)計(jì)首先是在 proteus 軟件環(huán)境中仿真實(shí)現(xiàn)的。proteus 軟件是來自 英國(guó) labcenter electronics 公司的 eda 工具軟件,proteus 軟件有十多年的歷史,在 全球廣泛使用,除了具有和其它 eda 工具一樣的原理布圖、pcb 自動(dòng)或人工布線及電路 仿真的功能外,其革命性的功能是,它的電路仿真是互動(dòng)的。針對(duì)微處理器的應(yīng)用,還 可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)

28、軟件源碼級(jí)的實(shí)時(shí)調(diào)試。如果有顯示 及輸出,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,還能看到運(yùn)行后輸入輸出 的效果。proteus 建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境,尤其重要的是 proteus lite 可以完 全免費(fèi),也可以花微不足道的費(fèi)用注冊(cè)達(dá)到更好的效果2。 proteus 是目前最好的模擬單片機(jī)外圍器件的工具??梢苑抡?51 系列、avr、pic 等 常用的 mcu 及其外圍電路(如 lcd,ram,rom,鍵盤,馬達(dá),led,ad/da,部分 spi 器 件,部分 iic 器件.) 。其實(shí) proteus 與 multisim 比較類似,只不過它可以仿真 mcu,當(dāng)然,軟件仿真精度

29、有限,而且不可能所有的器件都找得到相應(yīng)的仿真模型,用開 發(fā)板和仿真器當(dāng)然是最好選擇,可是初學(xué)者擁有它們的可能性比較小。當(dāng)然,硬件實(shí)踐 還是必不可少的。在沒有硬件的情況下,proteus 能像 pspice 仿真模擬/數(shù)字電路那樣 仿真 mcu 及外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也是很有必 要的。proteus 軟件主要具有以下幾個(gè)方面的特點(diǎn): 1、設(shè)計(jì)和仿真軟件 proteus 是一個(gè)很有用的工具,它可以幫助學(xué)生和專業(yè)人士提高他 們的模擬和數(shù)字電路的設(shè)計(jì)能力。 2、它允許對(duì)電路設(shè)計(jì)采用圖形環(huán)境,在這種環(huán)境中,可以使用一個(gè)特定符號(hào)來代替元器 件,并完成不會(huì)對(duì)真實(shí)電路造成任

30、何損害的電路仿真操作。 3、它可以仿真儀表以及可描述在仿真過程中所獲得的信號(hào)的圖表。 4、它可以仿真目前流行的單片機(jī),如 pics, atmel-avr, motorola, 8051 等。 5、在設(shè)計(jì)綜合性方案中,還可以利用 ares 開發(fā)印制電路板。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 15 - 4.2 protel 軟件環(huán)境介紹 protel 印制板設(shè)計(jì)軟件包是澳大利亞 protel technology 公司與 1990 年推出的電 子 cad 產(chǎn)品,具有方便、易學(xué)、實(shí)用、快速以及高速度、高步通率的特點(diǎn)。它采用了分 層次下拉窗口菜單結(jié)構(gòu)形式,用戶基本上不需要記背太多的鍵盤命令,用鼠標(biāo)點(diǎn)擊

31、菜單 命令就能操作,protel 有著很高的自動(dòng)布線布通率。布通率是電子產(chǎn) cad 產(chǎn)品的一項(xiàng)重 要指標(biāo),它反映電子元件在電路圖中連接關(guān)系有多少能在印刷版圖中實(shí)現(xiàn)。在設(shè)計(jì)常用 的單、雙面印制板時(shí)只要選擇適當(dāng)?shù)脑季趾筒季€策略方法,protel 就可以輕易的達(dá) 到 98%-100%的布通率。對(duì)于極少數(shù)不能布通的定方,protel 可以用飛線指示出來,引導(dǎo) 用戶用手工方法連通。另外,protel 有強(qiáng)大的宏命令設(shè)置功能,利用宏命令功能多定義 的熱鍵可以大大提高操作速度1。 protel 對(duì)微機(jī)的軟硬件配置要求很低:cpu 在 8088 以上,dos2.0 以上版本, 內(nèi)存 640kb 以上,雙軟

32、件(或一個(gè)軟件一個(gè)硬盤) ,單色顯示器(多層板設(shè)計(jì)時(shí)最好用彩 色) ,各種兼容打印機(jī)。也能在 windows9x 平臺(tái)的模擬 dos 下運(yùn)行。 protel 已成為印制板設(shè)計(jì)加工方面的工業(yè)標(biāo)準(zhǔn)。據(jù)初步統(tǒng)計(jì) protel 在 cad 的市 場(chǎng)占有率達(dá) 95%,成為電子產(chǎn)品制造業(yè)界的首選 cad 軟件。 4.3 程序流程圖 系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度超限報(bào)警子程序、溫度數(shù)據(jù)處理 子程序、顯示數(shù)據(jù)刷新子程序、按鍵查詢處理子程序等。 4.3.1 主程序流程圖 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理 ds18b20 測(cè)量出的當(dāng)前溫度 值,溫度測(cè)量每 1s 進(jìn)行一次。這樣可以在

33、 1s 之內(nèi)測(cè)量一次水溫,其程序流程圖見圖 3.1.1 所示。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 16 - 初始化 溫度顯示范圍? 開機(jī)顯示 “0000” 讀出溫度值 溫度計(jì)算處理 顯示數(shù)據(jù)刷新 設(shè)置報(bào)警器 溫度上下限值 發(fā)溫度轉(zhuǎn)換命令 y n 讀取溫度 溫度報(bào)警范圍? 蜂鳴器報(bào)警 顯示當(dāng)前文風(fēng) set 鍵按下? y n n y 圖 4-1 主程序流程圖 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 17 - 4.3.2 讀出溫度子程序 讀出溫度子程序的主要功能是讀出 ram 中的 9 字節(jié),在讀出時(shí)需進(jìn)行 crc 校驗(yàn),校 驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。因?yàn)閱纹瑱C(jī)只連接一個(gè) ds18b20,所以可以省掉

34、讀取 序列號(hào)及匹配等過程。直接使用命令 cch 跳過 rom。單片機(jī)啟動(dòng) ds18b20,并讀取溫 度值的主要過程是初始化 ds18b20、發(fā)跳過 rom 命令、發(fā)溫度轉(zhuǎn)換命令、等待溫度轉(zhuǎn)換 完成、復(fù)位、讀取溫度暫存器,將溫度值字節(jié)移入溫度暫存器等。當(dāng)采用 12 位分辨率時(shí) 轉(zhuǎn)換時(shí)間約為 750ms,在本程序設(shè)計(jì)中采用延時(shí)法等待溫度轉(zhuǎn)換的完成。其程序流程圖 如圖 3.2.1 所示 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 18 - 初始化 ds18b20 9 字節(jié)完? 發(fā)跳過 rom 命令 讀取操作, crc 校驗(yàn) y n 發(fā)讀取溫度命令 crc 校驗(yàn)正確? 移入溫度暫 存器 y n 結(jié)束 y 圖 4

35、-2 讀出溫度子程序流程圖 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 19 - 4.3.3 溫度超限報(bào)警子程序 溫度超限報(bào)警子程序主要是當(dāng)溫度超過正常溫度范圍時(shí),利用蜂鳴器發(fā)聲,對(duì)用戶 進(jìn)行水溫超限報(bào)警提示。由于蜂鳴器的工作電流一般比較大,以至于單片機(jī)的 i/o 口是 無法直接驅(qū)動(dòng)的,所以本程序利用三極管放大電流來構(gòu)成驅(qū)動(dòng)蜂鳴器的驅(qū)動(dòng)電路。溫度 超限報(bào)警子程序流程圖如圖 3.3.1 所示。 開始 控制端口 p1.7=0 結(jié)束 控制端口循環(huán)取反 延時(shí)蜂鳴器發(fā)生 圖 4-3 溫度超限報(bào)警子程序流程圖 4.3.4 溫度數(shù)據(jù)處理子程序 溫度數(shù)據(jù)處理子程序?qū)?ram 中讀取值進(jìn)行 bcd 碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫

36、度值正負(fù)的 判定,其程序流程圖如圖 3.4.1 所示。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 20 - 開始 溫度是否零 下 溫度求補(bǔ)碼 標(biāo)識(shí)置 1 結(jié)束 計(jì)算小數(shù)位溫 度 bcd 溫度求補(bǔ)碼 標(biāo)識(shí)置 1 計(jì)算整數(shù)位溫 度 bcd y n 圖 4-4 溫度數(shù)據(jù)處理子程序流程圖 4.3.5 顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對(duì)分離后的溫度顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)標(biāo)志位為 1 時(shí)將符號(hào)位顯示位移入第一位。程序流程圖如圖 3.5.1 所示。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 21 - 溫度標(biāo)志位為 1? 結(jié)束 溫度數(shù)據(jù)移入 顯示寄存器 最高位顯示 分離出的數(shù)據(jù) 最高位顯示負(fù)溫 度標(biāo)志“” y

37、n 分離顯示溫度 (百、十、個(gè)位) 圖 4-5 顯示數(shù)據(jù)刷新子程序流程圖 4.3.6 按鍵查詢處理子程序 按鍵采用掃描查詢方式,設(shè)置標(biāo)志位 temp1,當(dāng)標(biāo)志位為 1 時(shí),顯示設(shè)置報(bào)警溫度 上限;當(dāng)標(biāo)志位為 2 時(shí),顯示設(shè)置報(bào)警溫度下限;否則顯示當(dāng)前溫度。程序流程圖如圖 3.6.1 所示。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 22 - add 鍵 按下? set 鍵按下 報(bào)警溫度值 加 1 y n 報(bào)警溫度 值減 1 溫度設(shè)置標(biāo)志 位為 0? 調(diào)用顯示 子程序 y n y dec 鍵按下? n 圖 4-6 按鍵查詢子程序流程圖 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 23 - 5 系統(tǒng)調(diào)試過程 通過上

38、面的硬件設(shè)計(jì)和軟件設(shè)計(jì)過程,設(shè)計(jì)的工作已經(jīng)基本完成,接下來的工作就 是對(duì)所設(shè)計(jì)好的應(yīng)用系統(tǒng)進(jìn)行調(diào)試。通過調(diào)試可以檢查出系統(tǒng)出現(xiàn)的一些錯(cuò)誤,從而進(jìn) 行下一步的修改。 (1)在 protel 99 se 中,對(duì)硬件電路圖進(jìn)行 erc 電氣規(guī)則檢查。 圖 5-1 protel 原理圖 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 24 - 圖 5-2 erc 電氣規(guī)則檢查結(jié)果 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 25 - 圖 5-3 pcb 圖 (2)程序調(diào)試 程序經(jīng)過調(diào)試顯示“0 錯(cuò)誤,0 警告” 。表示程序調(diào)試通過。 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 26 - 圖 5-4 程序調(diào)試通過示意圖 (3)protu

39、es 調(diào)試 圖 5-5 protues 仿真圖 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 27 - 結(jié) 論 在這次數(shù)字溫度計(jì)設(shè)計(jì)的過程中,我主要通過查閱網(wǎng)絡(luò)資料和圖書館相關(guān)書籍,再 加上跟指導(dǎo)老師的討論與溝通,基本完成了設(shè)計(jì)的要求。 由于之前主要學(xué)習(xí)了單片機(jī)的一些基本應(yīng)用,對(duì)測(cè)溫元件這部分不了解,通過查閱 資料,了解常用的測(cè)溫元件,比較它們之間的優(yōu)缺點(diǎn),由于用 ds18b20 測(cè)量溫度,在其 內(nèi)部就能進(jìn)行 a/d 轉(zhuǎn)換,輸出數(shù)字量與單片機(jī) at89c51 進(jìn)行通信,無需外加 a/d 轉(zhuǎn)換器, 轉(zhuǎn)換速度快,降低了成本,而且簡(jiǎn)化了電路,提高了系統(tǒng)的集成度,因此將數(shù)字溫度傳 感器作為本設(shè)計(jì)的測(cè)溫元件。其他功

40、能部分也進(jìn)行方案設(shè)計(jì)、對(duì)比,最終確定了總體的 設(shè)計(jì)方案。在進(jìn)行軟件設(shè)計(jì)的時(shí)候也按照先整體后細(xì)節(jié)的順序進(jìn)行編程,將各功能程序 作為子程序分開編寫,按設(shè)計(jì)的主程序流程調(diào)用子程序,完成設(shè)計(jì)的功能要求。該系統(tǒng) 具有很強(qiáng)的擴(kuò)展性,還可以組建多點(diǎn)測(cè)溫檢測(cè)網(wǎng)絡(luò),可以應(yīng)用于多種場(chǎng)合,具有很強(qiáng)的 使用價(jià)值。 在程序的編寫當(dāng)中遇到過很多大大小小的問題,其中在做數(shù)碼管動(dòng)態(tài)掃描的時(shí)候, 端口的通斷控制由于仿真硬件的連接和程序設(shè)計(jì)不一致,使數(shù)碼管顯示不正常;還有蜂 鳴器報(bào)警電路,由于程序的設(shè)計(jì)不合理,剛開始做出來的時(shí)候,只要測(cè)量的水溫進(jìn)入了 溫度的報(bào)警范圍,蜂鳴器就會(huì)一直報(bào)警,不會(huì)停,后來加了一個(gè)判斷條件,設(shè)置了一個(gè)

41、小循環(huán),循環(huán)結(jié)束就自動(dòng)停止報(bào)警,確定了一個(gè)具體的報(bào)警時(shí)間,使設(shè)計(jì)更合理。通過 遇到問題,解決問題反反復(fù)復(fù),一步一步的完善了我的設(shè)計(jì)。 通過這次的設(shè)計(jì),增加了我在單片機(jī)應(yīng)用方面的知識(shí),也讓我學(xué)到了做一件事的堅(jiān) 持,還有,當(dāng)你無法單獨(dú)完成一件事的時(shí)候,不要一味地逞強(qiáng),你要懂得如何向老師和 同學(xué)尋求幫助,在此再次感謝我的指導(dǎo)老師吳家碚老師,以及給予我?guī)椭耐瑢W(xué)們, 謝謝你們! 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 28 - 致 謝 在陳飛老師的指導(dǎo)下,我完成了本次設(shè)計(jì)。本設(shè)計(jì)從選題到完成,每一步都是在他 的指導(dǎo)下完成的,傾注了老師大量的心血。另外,本設(shè)計(jì)的完成也離不開其他老師和各 位同學(xué)給我的建議和幫助

42、,是他們讓我明白了團(tuán)隊(duì)合作的精神。在此,我謹(jǐn)向陳飛老師 和幫助過我的老師和同學(xué)們,表示崇高的敬意和衷心的感謝! 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 29 - 參考文獻(xiàn) 1protel99se eda 技術(shù)及應(yīng)用徐崢穎編著,北京:機(jī)械工業(yè)出版社,2005 2單片機(jī)系統(tǒng)的 protues 設(shè)計(jì)與仿真張靖武編著,北京:電子工業(yè)出版社, 2007 3單片機(jī)原理及接口技術(shù)李朝青編著,北京:北京航空航天大學(xué)出版社,2005 4mcs-51 單片機(jī)應(yīng)用開發(fā)實(shí)用子程序邊春遠(yuǎn)編著,北京:人民郵電出版社, 2005 5張毅剛,彭喜元. 單片機(jī)原理與應(yīng)用設(shè)計(jì). 北京:電子工業(yè)出版社,2008.4 6徐錚穎,孫海維.p

43、rotel 99 se eda 技術(shù)及應(yīng)用.北京:機(jī)械工業(yè)出版社, 2012.2 7譚浩強(qiáng).c 程序設(shè)計(jì)(第三版).北京:清華大學(xué)出版社,2005 8劉文濤.單片機(jī)應(yīng)用開發(fā)實(shí)例.北京:清華大學(xué)出版社,2005.9 9高衛(wèi)東,辛友順,韓彥征.51 單片機(jī)原理與實(shí)踐.北京:北京航空航天大學(xué)出版 社.2008.1 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 30 - 附錄 源程序代碼 /ds18b20 的讀寫程序,數(shù)據(jù)腳 p2.7 /溫度傳感器 18b20 匯編程序,采用器件默認(rèn)的 12 位轉(zhuǎn)化 /最大轉(zhuǎn)化時(shí)間按 750us,顯示溫度-55 到+125 度,顯示精度為 0.1 度 /顯示采用 4 位 led

44、共陽(yáng)顯示測(cè)溫值 /p0 口為段碼輸入,p2.0p2.4 為位選 /*/ #include #include /_nop_();延時(shí)函數(shù)用 #define dm p0 /段碼輸出口 #define uchar unsigned char #define uint unsigned int sbit yin=p17; /蜂鳴器報(bào)警發(fā)音 sbit w0=p20; /數(shù)碼管 4 sbit w1=p21; /數(shù)碼管 3 sbit w2=p22; /數(shù)碼管 2 sbit w3=p23; /數(shù)碼管 1 sbit add=p24; /溫度加 sbit dec=p25; /溫度減 sbit set=p26; /

45、溫度設(shè)置切換鍵 sbit dq=p27; /溫度輸入口 int temp1=0; /顯示當(dāng)前溫度和設(shè)置溫度的標(biāo)志位為 0 時(shí),顯示當(dāng)前溫度 uint h,temp; uchar r; /測(cè)得的溫度值 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 31 - uchar high=100,low=25; /預(yù)設(shè)的報(bào)警溫度的上下限值 /*溫度小數(shù)部分用查表法*/ uchar code distab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x03,0 x04,0 x04, 0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09; /小數(shù)段碼表 u

46、char code table_dm12=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00,0 x40; /共陰 led 段碼表 09 不亮 - uchar table_dm1=0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef; /09個(gè)位帶小數(shù)點(diǎn)的段碼表 uchar data temp_data2=0 x00,0 x00; /讀出溫度暫放 uchar data display5=0 x00,0 x00,0 x00,0 x0,0 x00; /顯

47、示單元數(shù)據(jù),共 4 個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫存 /*11us 延時(shí)函數(shù)*/ void delay(uint t) for(;t0;t-); /*ds18b20 復(fù)位函數(shù)*/ ow_reset(void) uchar x=1; while(x) while(x) dq=1;_nop_();_nop_(); /從高拉到低 dq=0; delay(50); /550us dq=1; delay(6); /66us x=dq; /x=0 復(fù)位成功,繼續(xù)下一步 delay(45); /延時(shí) 550us x=dq; 微機(jī)原理及應(yīng)用課程設(shè)計(jì)說明書 - 32 - dq=1; /拉高電平 /*ds18b20 寫命令函

48、數(shù)*/ /向 1-wire 總線上寫個(gè)字節(jié) void write_byte(uchar val) uchar i; for(i=8;i0;i-) dq=1;_nop_();_nop_(); /從高拉到低 dq=0;_nop_();_nop_();_nop_();_nop_();_nop_(); /5us dq=val /最低位移出 delay(6); /66us val=val/2; /右移 1 位 dq=1; delay(1); /*ds18b20 讀 1 字節(jié)函數(shù)*/ /從總線上讀取 1 個(gè)字節(jié) uchar read_byte(void) uchar i; uchar value=0; for(i=8;i0;i-) dq=1;_nop_();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論