![微機原理及應(yīng)用課程設(shè)計基于單片機數(shù)字溫度計設(shè)計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/a9a05837-e569-466e-9592-753ec392967d/a9a05837-e569-466e-9592-753ec392967d1.gif)
![微機原理及應(yīng)用課程設(shè)計基于單片機數(shù)字溫度計設(shè)計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/a9a05837-e569-466e-9592-753ec392967d/a9a05837-e569-466e-9592-753ec392967d2.gif)
![微機原理及應(yīng)用課程設(shè)計基于單片機數(shù)字溫度計設(shè)計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/a9a05837-e569-466e-9592-753ec392967d/a9a05837-e569-466e-9592-753ec392967d3.gif)
![微機原理及應(yīng)用課程設(shè)計基于單片機數(shù)字溫度計設(shè)計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/a9a05837-e569-466e-9592-753ec392967d/a9a05837-e569-466e-9592-753ec392967d4.gif)
![微機原理及應(yīng)用課程設(shè)計基于單片機數(shù)字溫度計設(shè)計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/10/a9a05837-e569-466e-9592-753ec392967d/a9a05837-e569-466e-9592-753ec392967d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、仿真仿真 c 語言程序語言程序 原理圖原理圖 等,聯(lián)系等,聯(lián)系 153893706 交通與汽車工程學(xué)院 課程設(shè)計說明書 課 程 名 稱: 微機原理及應(yīng)用課程設(shè)計 課 程 代 碼: 8234570 題 目: 基于單片機數(shù)字溫度計設(shè)計 年級/專業(yè)/班: 2009 級汽電四班 學(xué) 生 姓 名: 學(xué) 號: 開 始 時 間: 20122012 年 0707 月 0202 日 完 成 時 間: 20122012 年 0707 月 0606 日 課程設(shè)計成績: 學(xué)習態(tài)度及平 時成績(30) 技術(shù)水平與實際 能力(20) 創(chuàng)新 (5) 說明書(計算書、圖紙、分 析報告)撰寫質(zhì)量(45) 總 分 (100) 指
2、導(dǎo)教師簽名: 年 月 日 微機原理及應(yīng)用課程設(shè)計說明書 - 1 - 目 錄 摘摘 要要 .2 1 1 引引 言言 .3 1.1 問題的提出.3 1.2 任務(wù)與分析. 3 2 2 系統(tǒng)方案設(shè)計系統(tǒng)方案設(shè)計 .5 2.1 系統(tǒng)設(shè)計方案 . 5 2.2 系統(tǒng)總體框圖 .6 3 3 系統(tǒng)硬件電路設(shè)計系統(tǒng)硬件電路設(shè)計 .7 3.1 89c51 單片機.7 3.2 數(shù)字溫度傳感器 ds18b20.9 4 4 系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計 .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 參考文獻參考文獻 .29 附錄附錄 .30 微機原理及應(yīng)用課程設(shè)計說明書 - 2 - 摘 要 本文設(shè)計了一種基于單片機 at89c51 的溫度測量、顯示及報警的裝置,系統(tǒng)采用 at89c51 進行智能控制,利用 ds18b20 芯片實現(xiàn)了溫度的測量,并將測量的溫度使用 4 位 led 數(shù)碼管進行顯示。當測量的溫度超出 25100時,利用蜂鳴器進行報警,此外用 戶還可以通過獨立按鍵電路,根據(jù)需要自行設(shè)計水溫穩(wěn)定報警限值。 系統(tǒng)硬件主要由控制電路、溫度采集電路、顯示電路和報警電路等部分組成;系統(tǒng) 軟件采用 c 語言編程;該系統(tǒng)能實現(xiàn)水溫溫度的測量、顯示及限值報警功能,在現(xiàn)
4、代小 型轎車上具有一定的應(yīng)用價值。 關(guān)鍵詞關(guān)鍵詞:溫度測量,at89c51 單片機,ds18b20 溫度傳感器 微機原理及應(yīng)用課程設(shè)計說明書 - 3 - 1 引 言 1.1 問題的提出 隨著人們生活水平的提高,對生活環(huán)境的要求也越來越高,家用轎車的電器裝置越 來越趨于自動控制乃至于智能控制,現(xiàn)代轎車上對冷卻水溫度的顯示只是一個模糊的范 圍,沒有具體的水溫溫度值顯示,而冷卻水的溫度對發(fā)動機的正常工作溫度影響很大。 通常水冷式發(fā)動機正常的工作溫度在 8090,水溫過高,會引起金屬材料膨脹, 破壞正常的工作間隙,容易導(dǎo)致活塞咬死、拉缸等故障,并且還會使?jié)櫥妥兿?,從?加速油液氧化變質(zhì),進一步加速氣
5、缸磨損;水溫過低,同樣也會損壞發(fā)動機。而造成冷 卻水水溫異常的原因也有很多,比如說:水箱風扇不轉(zhuǎn),散熱器散熱不良,節(jié)溫器無法 正常打開,冷卻液不足,水泵工作不良,水溫傳感器、儀表及電路異常等,如果不及時 發(fā)現(xiàn)冷卻水溫度異常,不及時處理造成溫度異常的原因,那么給轎車發(fā)動機帶來的危害 有可能會進一步擴大,同時也會轎車用戶帶來很多不必要的損失。 針對目前的這種情況,發(fā)動機冷卻水水溫的數(shù)字顯示顯得尤為重要,為了能夠為轎 車用戶提供比較方便、直觀的冷卻水溫度,本文就通過 51 系列單片機 at89c51 來設(shè)計了 一個發(fā)動機冷卻水水溫的測量與數(shù)字顯示裝置。該設(shè)計可以實現(xiàn)發(fā)動機冷卻水水溫的實 時測量,溫度
6、信息通過數(shù)碼管直觀的顯示給轎車用戶,轎車用戶也可以根據(jù)需求,適當 的通過獨立按鍵自行設(shè)定溫度的報警值,當測量的水溫超過用戶設(shè)置的報警溫度限值時, 蜂鳴器發(fā)聲報警,以此提醒用戶注意發(fā)動機冷卻水水溫異常,以便轎車用戶可以及時的 檢查水溫異常的原因,避免轎車因水溫異常出現(xiàn)故障,甚至導(dǎo)致某些交通事故,提高了 轎車的使用性能,為轎車用戶增加了安全性。 1.2 任務(wù)與分析 本次設(shè)計的系統(tǒng)的控制中心是 89c51 單片機。首先,在 protel 軟件環(huán)境中進行硬件 電路圖的設(shè)計。然后在 8051 軟件環(huán)境中進行系統(tǒng)的軟件編程,并進行程序源文件的編譯 和調(diào)試,最后生成.hex 文件。此.hex 文件是硬件電路
7、運行實現(xiàn)的源代碼來源。把.hex 文 件加載到 at89c51 單片機芯片,然后在 proteus 軟件環(huán)境中運行硬件電路,溫度的大小就 可以正常顯示了。 微機原理及應(yīng)用課程設(shè)計說明書 - 4 - 本設(shè)計的系統(tǒng)主要由:at89c51 為中央處理芯片,用于數(shù)據(jù)處理,初值設(shè)定。時鐘芯 片 ds1302 是本例的核心模塊,由他提供時鐘信息并由 led 顯示,用 c 語言進行編程。 本系統(tǒng)可以分為以下 4 大模塊: 能用匯編語言或其它可編譯的語言(如 c51 語言)編寫 51 系列的單片計算機系統(tǒng) 程序。 能用一種工具軟件繪制電路原理圖,對硬件系統(tǒng)電路各個器件能正確地標出連接 編號。 對軟件的各個子程
8、序能順利的調(diào)試通過。 調(diào)試整個系統(tǒng),使其能按設(shè)計要求正確的工作。 完成畢業(yè)設(shè)計的說明書一份。 完成與畢業(yè)設(shè)計內(nèi)容相關(guān)的英文資料翻譯。 對溫度傳感器的測量精度要求達到誤差小于1 微機原理及應(yīng)用課程設(shè)計說明書 - 5 - 2 系統(tǒng)方案設(shè)計 2.1 系統(tǒng)設(shè)計方案 2.1.1 溫度測量電路的設(shè)計方案論證與選擇 方案一:方案一:采用傳統(tǒng)的溫度傳感器測量水溫。傳統(tǒng)的單片機溫度檢測系統(tǒng)采用熱電偶和熱電 阻測量溫度,而熱電偶和熱電阻測出的一般都是電壓,須包含模擬測量電路及 a/d 轉(zhuǎn)換 電路將其轉(zhuǎn)換成對應(yīng)的溫度,且占用單片機的引腳多,有時還需要 i/o 擴展接口芯片, 需要比較多的外部硬件電路支持,硬件電路復(fù)
9、雜,軟件調(diào)試復(fù)雜,降低了系統(tǒng)的可靠性, 且制作成本高。 方案二:方案二:采用 dallas 公司生產(chǎn)的數(shù)字溫度傳感器 ds18b20 測量水溫。使用 ds18b20 測量 溫度,能代替模擬溫度傳感器和信號處理電路,完成溫度的采集,并在其內(nèi)部就能進行 a/d 轉(zhuǎn)換處理測量到的數(shù)據(jù),輸出的數(shù)字量能直接與單片機 at89c51 進行通信,無需外 加 a/d 轉(zhuǎn)換器,轉(zhuǎn)換速度快,簡化了系統(tǒng)的外圍電路,降低了制作成本,提高了系統(tǒng)的 集成度,且其測量精度能達到設(shè)計要求的1。 綜上所述,選擇方案二采用數(shù)字溫度傳感器 ds18b20 完成溫度的采集和數(shù)據(jù)的處理,組 成溫度測量電路。 2.1.2 溫度顯示方式選
10、擇 方案一:方案一:采用字符型 lcd 顯示。lcd 具有輕薄短小、低耗電量、無輻射危險,平面直角顯 示以及影像穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強等 特點。但由于只顯示水溫這樣的數(shù)字,信息量比較小,且由于 lcd 液晶是以點陣的模式 顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器的資源占用較多, 其制作成本也偏高。在使用時,不能有靜電干擾,否則容易燒壞液晶的顯示芯片,不易 維護。 方案二:方案二:采用 led 數(shù)碼管顯示。led 數(shù)碼管具有:低能耗、低損耗、低壓、壽命長、耐老 化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護的優(yōu)點,同
11、時其 精度比較高,稱量快,精確可靠,操作簡單。數(shù)碼管采用 bcd 編碼顯示數(shù)字,程序編譯 容易,資源占用較少,制作成本也較低。 綜上所述,選擇方案二采用 led 數(shù)碼管顯示測量的水溫。 微機原理及應(yīng)用課程設(shè)計說明書 - 6 - 2.2 系統(tǒng)總體框圖 2.1 系統(tǒng)組成 經(jīng)過方案的比較與論證,最終確定的系統(tǒng)框圖如圖 1.2.1 所示。其中由溫度傳感器 ds18b20 完成溫度數(shù)據(jù)的采集和處理,直接與單片機通信,將測量的溫度送入 4 位 led 數(shù)碼管顯示電路中顯示,當測量的水溫超過設(shè)定的正常范圍時,利用蜂鳴器報警電路進 行報警提示。 圖 2-1 系統(tǒng)設(shè)計框圖 微機原理及應(yīng)用課程設(shè)計說明書 - 7
12、- 3 系統(tǒng)硬件電路設(shè)計 3.1 89c51 單片機 at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能 cmos 8 位微處理器, 俗稱單片機。at89c2051 是一種帶 2k 字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片 機的可擦除只讀存儲器可以反復(fù)擦除 100 次。該器件采用 atmel 高密度非易失存儲器制 造技術(shù)制造,與工業(yè)標準的 mcs-51 指令集和輸出管腳相兼容。由于將多功能 8 位 cpu 和 閃爍存儲器組合在單個芯片中,atmel 的
13、 at89c51 是一種高效微控制器,at89c2051 是它 的一種精簡版本。at89c51 單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的 方案。 圖 3-1 89c51 單片機引腳圖 89c51 單片機與早期 intel 的 8051/8751/8031 芯片的外部引腳和指令系統(tǒng)完全兼容, 只不過用 flash rom 替代了 rom/eprom 而已3。89c51 單片機內(nèi)部結(jié)構(gòu)如圖所示。 微機原理及應(yīng)用課程設(shè)計說明書 - 8 - 圖 3-2 89c51 單片機內(nèi)部結(jié)構(gòu)示意圖 各引腳的功能如下: vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個 8 位漏級開路雙向 i
14、/o 口,每腳可吸收 8ttl 門電流。當 p1 口的管 腳第一次寫 1 時,被定義為高阻輸入。p0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義 為數(shù)據(jù)/地址的第八位。在 fiash 編程時,p0 口作為原碼輸入口,當 fiash 進行校驗時, p0 輸出原碼,此時 p0 外部必須被拉高3。 p1 口:p1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器能接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為低電平 時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 flash 編程和校驗時,p1 口作為第八位 地址接收。 p2 口:p
15、2 口為一個內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可接收,輸出 4 個 ttl 門電流,當 p2 口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為 輸入時,p2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2 口當用于 外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進行存取時,p2 口輸出地址的高八位。在 給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2 微機原理及應(yīng)用課程設(shè)計說明書 - 9 - 口輸出其特殊功能寄存器的內(nèi)容。p2 口在 flash 編程和校驗時接收高八位地址信號和控 制信號。 p3 口:p3 口管腳是
16、 8 個帶內(nèi)部上拉電阻的雙向 i/o 口,可接收輸出 4 個 ttl 門電流。 當 p3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下 拉為低電平,p3 口將輸出電流(ill)這是由于上拉的緣故。 rst:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持 rst 腳兩個機器周期的高電平時間。 ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 在 flash 編程期間,此引腳用于輸入編程脈沖。在平時,ale 端以不變的頻率周期輸出 正脈沖信號,此頻率為振蕩器頻率的 1/6。因此它可用作對外部輸出的脈沖或用于定時 目的。然而要注意的是:每當用作外
17、部數(shù)據(jù)存儲器時,將跳過一個 ale 脈沖。如想禁止 ale 的輸出可在 sfr 8eh 地址上置 0。此時, ale 只有在執(zhí)行 movx,movc 指令是 ale 才 起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ale 禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次 /psen 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen 信號將不出現(xiàn)。 /ea:當/ea 保持低電平時,則在此期間 cpu 只訪問外部程序存儲器(0000h-ffffh) , 不管是否有內(nèi)部程序存儲器。注意加密方式 1 時,/ea 將內(nèi)部鎖定為 r
18、eset;當/ea 端保 持高電平時,則執(zhí)行內(nèi)部程序存儲器中的程序。在 flash 編程期間,此引腳也用于施加 12v 編程電源(vpp) 。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 3.2 數(shù)字溫度傳感器 ds18b20 3.2.1 ds18b20 的性能特點2 ds18b20 溫度傳感器是美國 dallas 半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器, 與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過 簡單的編程實現(xiàn) 912 位數(shù)字值讀數(shù)方式。ds18b20 有以下的功能特點: 獨特的單線接口僅需要一個端
19、口引腳進行通信; 多個 ds18b20 可以并聯(lián)在唯一的三線上,實現(xiàn)多點組網(wǎng)功能; 微機原理及應(yīng)用課程設(shè)計說明書 - 10 - 無需外部器件; 低壓供電,電源范圍為 35v;可本地供電,也可以通過數(shù)據(jù)線供電(寄生式供電) ; 零待機功耗; 溫度以 9 或 12 位數(shù)字量讀出; 用戶可定義的非易失性溫度報警設(shè)置; 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件; 負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,只是不能正常工作; ds18b20 可將檢測到的溫度值直接轉(zhuǎn)化成數(shù)字量,并通過串行通信的方式與主控制器進 行數(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、用于存儲用戶設(shè) 定溫度上下限值的 th 和 tl 觸發(fā)器、存儲與控制邏輯、8 位循環(huá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 個字節(jié)的高速暫存器和非易失性電擦寫 eeprom 組成。高速暫存 ram 包含 8 字節(jié)存儲器,其結(jié)構(gòu)如圖 2.2.2
21、 所示。其中第 1、2 字節(jié)存儲測得的溫度,第 3、4 字 微機原理及應(yīng)用課程設(shè)計說明書 - 11 - 節(jié)存儲上下限報警溫度 th 和 tl,是易失性的,每次上電復(fù)位時被刷新。第 5 字節(jié)為配 置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。第 6、7、8 字節(jié)保留未用,表 現(xiàn)為全邏輯 1。.第 9 字節(jié)是讀出前面 8 個字節(jié)的 crc 碼,用來檢驗數(shù)據(jù),從而保證通信 數(shù)據(jù)的正確性。ram 中 eeprom 用于存儲 th、tl 和配置寄存器的值。數(shù)據(jù)先寫入 ram,經(jīng) 校驗后再傳給 eeprom。通過 ds18b20 功能命令對 ram 進行操作。 圖 3-4 高速暫存 ram 結(jié)構(gòu)圖 d
22、s18b20 的溫度測量范圍是-55+125,分辨率的默認值 12 位。當 ds18b20 接收到 溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值以 16 為帶符號擴展的二進制補碼 形式存儲在高速暫存存儲器的第 1、2 字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù) 據(jù)時低位在前,高位在后,數(shù)據(jù)格式以 0.0625/lsb 形式表示。溫度數(shù)據(jù)值格式如圖 2.2.3 所示。 當符號位 s=0 時,表示測得的溫度值為正值,可以直接將二進制數(shù)轉(zhuǎn)換為十進制數(shù); 當符號位 s=1 時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算其對應(yīng)的十 進制數(shù)。 圖 3-5 溫度數(shù)據(jù)值格式 3.2.2.3 cr
23、c 發(fā)生器 在 64 位 rom 的最高有效字節(jié)中存有循環(huán)冗余校驗碼(crc) 。主機根據(jù) rom 的前 56 位來計算 crc 值,并和存入 ds18b20 中的 crc 值作比較,以判斷主機收到的 rom 數(shù)據(jù)是 否正確。 微機原理及應(yīng)用課程設(shè)計說明書 - 12 - crc 的函數(shù)表達式為:crc=x8+x5+x4+1 此外,ds18b20 尚需依上式為暫存器中的數(shù)據(jù)來產(chǎn)生一個 8 位 crc 送給主機, 作為數(shù)據(jù)校驗用。 2.2.3 ds18b20 電源供電方式3 ds18b20 可以采用兩種方式供電,一種是采用電源供電方式,如圖 2.2.4 所示,此 時 ds18b20 的 1 腳接地
24、,2 腳作為信號線,3 腳接電源。另一種是寄生電源供電方式,如 圖 2.2.5 所示,單片機端口接單線總線,為保證在有效的 ds18b20 時鐘周期內(nèi)提供足夠 的電流,可用一個 mosfet 管來完成對總線的上拉。 圖 3-6 外部電源供電 圖 3-7 寄生電源供電 當 ds18b20 出于寫存儲器操作和溫度 a/d 轉(zhuǎn)換操作時,總線上必須有強的上拉,上 拉開啟時間最大為 10us。采用寄生電源供電方式時 vdd 和 gnd 端均接地。由于單線制只 有一根線,因此發(fā)送接口必須是三態(tài)的。 3.2.4 ds18b20 的命令集3 3.2.4.1 rom 操作命令 rom 操作命令如表 3-1 所示
25、。 表 3-1 rom 操作命令 微機原理及應(yīng)用課程設(shè)計說明書 - 13 - 指令說明 讀 rom 命令(33h)讀 ds18b20 的序列號 搜索 rom 命令(f0h)識別總線上個器件的編碼 匹配 rom 命令(55h)用于多個 ds18b20 的定位 跳過 rom 命令(cch)此命令執(zhí)行后,存儲器操作將針對總線上的所有器件 報警搜索 rom 命令(ech)僅溫度超限的器件對此命令作出響應(yīng) 3.2.4.2 ram 操作命令 ram 操作命令如表 3-2 所示。 表 3-2 ram 操作命令 指令說明 溫度轉(zhuǎn)換(44h)啟動溫度轉(zhuǎn)換 讀暫存器(beh)讀全部暫存器內(nèi)容,包括 crc 字節(jié)
26、寫暫存器(4eh)寫暫存器第 2、3 和 4 個字節(jié)的數(shù)據(jù) 復(fù)制暫存器(48eh)將暫存器中的 th、tl 和配置寄存器內(nèi)容復(fù)制到 eeprom 中 讀 eeprom(b8h)將 th、tl 和配置寄存器內(nèi)容從 eeprom 中回讀至暫存器 3.2.5 ds18b20 的接口與單片機 at89c51 可以使用單片機 at89c51 的任意一個 i/o 口連接 ds18b20。如圖 2.2.6 所示,將 ds18b20 的數(shù)據(jù)引腳 dq 與單片機的 p2.7 相連,即可進行通信。ds18b20 使用外部電源供 電方式,r1 為上拉電阻。ds18b20 與單片機通信只需要占用單片機的一個 i/o
27、口,使用 非常方便。 微機原理及應(yīng)用課程設(shè)計說明書 - 14 - 圖 3-8 ds18b20 與 at89c51 連接的電路圖 4 系統(tǒng)軟件設(shè)計 4.1 proteus軟件環(huán)境介紹 本系統(tǒng)的硬件設(shè)計首先是在 proteus 軟件環(huán)境中仿真實現(xiàn)的。proteus 軟件是來自 英國 labcenter electronics 公司的 eda 工具軟件,proteus 軟件有十多年的歷史,在 全球廣泛使用,除了具有和其它 eda 工具一樣的原理布圖、pcb 自動或人工布線及電路 仿真的功能外,其革命性的功能是,它的電路仿真是互動的。針對微處理器的應(yīng)用,還 可以直接在基于原理圖的虛擬原型上編程,并實現(xiàn)
28、軟件源碼級的實時調(diào)試。如果有顯示 及輸出,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,還能看到運行后輸入輸出 的效果。proteus 建立了完備的電子設(shè)計開發(fā)環(huán)境,尤其重要的是 proteus lite 可以完 全免費,也可以花微不足道的費用注冊達到更好的效果2。 proteus 是目前最好的模擬單片機外圍器件的工具??梢苑抡?51 系列、avr、pic 等 常用的 mcu 及其外圍電路(如 lcd,ram,rom,鍵盤,馬達,led,ad/da,部分 spi 器 件,部分 iic 器件.) 。其實 proteus 與 multisim 比較類似,只不過它可以仿真 mcu,當然,軟件仿真精度
29、有限,而且不可能所有的器件都找得到相應(yīng)的仿真模型,用開 發(fā)板和仿真器當然是最好選擇,可是初學(xué)者擁有它們的可能性比較小。當然,硬件實踐 還是必不可少的。在沒有硬件的情況下,proteus 能像 pspice 仿真模擬/數(shù)字電路那樣 仿真 mcu 及外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也是很有必 要的。proteus 軟件主要具有以下幾個方面的特點: 1、設(shè)計和仿真軟件 proteus 是一個很有用的工具,它可以幫助學(xué)生和專業(yè)人士提高他 們的模擬和數(shù)字電路的設(shè)計能力。 2、它允許對電路設(shè)計采用圖形環(huán)境,在這種環(huán)境中,可以使用一個特定符號來代替元器 件,并完成不會對真實電路造成任
30、何損害的電路仿真操作。 3、它可以仿真儀表以及可描述在仿真過程中所獲得的信號的圖表。 4、它可以仿真目前流行的單片機,如 pics, atmel-avr, motorola, 8051 等。 5、在設(shè)計綜合性方案中,還可以利用 ares 開發(fā)印制電路板。 微機原理及應(yīng)用課程設(shè)計說明書 - 15 - 4.2 protel 軟件環(huán)境介紹 protel 印制板設(shè)計軟件包是澳大利亞 protel technology 公司與 1990 年推出的電 子 cad 產(chǎn)品,具有方便、易學(xué)、實用、快速以及高速度、高步通率的特點。它采用了分 層次下拉窗口菜單結(jié)構(gòu)形式,用戶基本上不需要記背太多的鍵盤命令,用鼠標點擊
31、菜單 命令就能操作,protel 有著很高的自動布線布通率。布通率是電子產(chǎn) cad 產(chǎn)品的一項重 要指標,它反映電子元件在電路圖中連接關(guān)系有多少能在印刷版圖中實現(xiàn)。在設(shè)計常用 的單、雙面印制板時只要選擇適當?shù)脑季趾筒季€策略方法,protel 就可以輕易的達 到 98%-100%的布通率。對于極少數(shù)不能布通的定方,protel 可以用飛線指示出來,引導(dǎo) 用戶用手工方法連通。另外,protel 有強大的宏命令設(shè)置功能,利用宏命令功能多定義 的熱鍵可以大大提高操作速度1。 protel 對微機的軟硬件配置要求很低:cpu 在 8088 以上,dos2.0 以上版本, 內(nèi)存 640kb 以上,雙軟
32、件(或一個軟件一個硬盤) ,單色顯示器(多層板設(shè)計時最好用彩 色) ,各種兼容打印機。也能在 windows9x 平臺的模擬 dos 下運行。 protel 已成為印制板設(shè)計加工方面的工業(yè)標準。據(jù)初步統(tǒng)計 protel 在 cad 的市 場占有率達 95%,成為電子產(chǎn)品制造業(yè)界的首選 cad 軟件。 4.3 程序流程圖 系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度超限報警子程序、溫度數(shù)據(jù)處理 子程序、顯示數(shù)據(jù)刷新子程序、按鍵查詢處理子程序等。 4.3.1 主程序流程圖 主程序的主要功能是負責溫度的實時顯示、讀出并處理 ds18b20 測量出的當前溫度 值,溫度測量每 1s 進行一次。這樣可以在
33、 1s 之內(nèi)測量一次水溫,其程序流程圖見圖 3.1.1 所示。 微機原理及應(yīng)用課程設(shè)計說明書 - 16 - 初始化 溫度顯示范圍? 開機顯示 “0000” 讀出溫度值 溫度計算處理 顯示數(shù)據(jù)刷新 設(shè)置報警器 溫度上下限值 發(fā)溫度轉(zhuǎn)換命令 y n 讀取溫度 溫度報警范圍? 蜂鳴器報警 顯示當前文風 set 鍵按下? y n n y 圖 4-1 主程序流程圖 微機原理及應(yīng)用課程設(shè)計說明書 - 17 - 4.3.2 讀出溫度子程序 讀出溫度子程序的主要功能是讀出 ram 中的 9 字節(jié),在讀出時需進行 crc 校驗,校 驗有錯時不進行溫度數(shù)據(jù)的改寫。因為單片機只連接一個 ds18b20,所以可以省掉
34、讀取 序列號及匹配等過程。直接使用命令 cch 跳過 rom。單片機啟動 ds18b20,并讀取溫 度值的主要過程是初始化 ds18b20、發(fā)跳過 rom 命令、發(fā)溫度轉(zhuǎn)換命令、等待溫度轉(zhuǎn)換 完成、復(fù)位、讀取溫度暫存器,將溫度值字節(jié)移入溫度暫存器等。當采用 12 位分辨率時 轉(zhuǎn)換時間約為 750ms,在本程序設(shè)計中采用延時法等待溫度轉(zhuǎn)換的完成。其程序流程圖 如圖 3.2.1 所示 微機原理及應(yīng)用課程設(shè)計說明書 - 18 - 初始化 ds18b20 9 字節(jié)完? 發(fā)跳過 rom 命令 讀取操作, crc 校驗 y n 發(fā)讀取溫度命令 crc 校驗正確? 移入溫度暫 存器 y n 結(jié)束 y 圖 4
35、-2 讀出溫度子程序流程圖 微機原理及應(yīng)用課程設(shè)計說明書 - 19 - 4.3.3 溫度超限報警子程序 溫度超限報警子程序主要是當溫度超過正常溫度范圍時,利用蜂鳴器發(fā)聲,對用戶 進行水溫超限報警提示。由于蜂鳴器的工作電流一般比較大,以至于單片機的 i/o 口是 無法直接驅(qū)動的,所以本程序利用三極管放大電流來構(gòu)成驅(qū)動蜂鳴器的驅(qū)動電路。溫度 超限報警子程序流程圖如圖 3.3.1 所示。 開始 控制端口 p1.7=0 結(jié)束 控制端口循環(huán)取反 延時蜂鳴器發(fā)生 圖 4-3 溫度超限報警子程序流程圖 4.3.4 溫度數(shù)據(jù)處理子程序 溫度數(shù)據(jù)處理子程序?qū)?ram 中讀取值進行 bcd 碼的轉(zhuǎn)換運算,并進行溫
36、度值正負的 判定,其程序流程圖如圖 3.4.1 所示。 微機原理及應(yīng)用課程設(shè)計說明書 - 20 - 開始 溫度是否零 下 溫度求補碼 標識置 1 結(jié)束 計算小數(shù)位溫 度 bcd 溫度求補碼 標識置 1 計算整數(shù)位溫 度 bcd y n 圖 4-4 溫度數(shù)據(jù)處理子程序流程圖 4.3.5 顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對分離后的溫度顯示數(shù)據(jù)進行刷新操作,當標志位為 1 時將符號位顯示位移入第一位。程序流程圖如圖 3.5.1 所示。 微機原理及應(yīng)用課程設(shè)計說明書 - 21 - 溫度標志位為 1? 結(jié)束 溫度數(shù)據(jù)移入 顯示寄存器 最高位顯示 分離出的數(shù)據(jù) 最高位顯示負溫 度標志“” y
37、n 分離顯示溫度 (百、十、個位) 圖 4-5 顯示數(shù)據(jù)刷新子程序流程圖 4.3.6 按鍵查詢處理子程序 按鍵采用掃描查詢方式,設(shè)置標志位 temp1,當標志位為 1 時,顯示設(shè)置報警溫度 上限;當標志位為 2 時,顯示設(shè)置報警溫度下限;否則顯示當前溫度。程序流程圖如圖 3.6.1 所示。 微機原理及應(yīng)用課程設(shè)計說明書 - 22 - add 鍵 按下? set 鍵按下 報警溫度值 加 1 y n 報警溫度 值減 1 溫度設(shè)置標志 位為 0? 調(diào)用顯示 子程序 y n y dec 鍵按下? n 圖 4-6 按鍵查詢子程序流程圖 微機原理及應(yīng)用課程設(shè)計說明書 - 23 - 5 系統(tǒng)調(diào)試過程 通過上
38、面的硬件設(shè)計和軟件設(shè)計過程,設(shè)計的工作已經(jīng)基本完成,接下來的工作就 是對所設(shè)計好的應(yīng)用系統(tǒng)進行調(diào)試。通過調(diào)試可以檢查出系統(tǒng)出現(xiàn)的一些錯誤,從而進 行下一步的修改。 (1)在 protel 99 se 中,對硬件電路圖進行 erc 電氣規(guī)則檢查。 圖 5-1 protel 原理圖 微機原理及應(yīng)用課程設(shè)計說明書 - 24 - 圖 5-2 erc 電氣規(guī)則檢查結(jié)果 微機原理及應(yīng)用課程設(shè)計說明書 - 25 - 圖 5-3 pcb 圖 (2)程序調(diào)試 程序經(jīng)過調(diào)試顯示“0 錯誤,0 警告” 。表示程序調(diào)試通過。 微機原理及應(yīng)用課程設(shè)計說明書 - 26 - 圖 5-4 程序調(diào)試通過示意圖 (3)protu
39、es 調(diào)試 圖 5-5 protues 仿真圖 微機原理及應(yīng)用課程設(shè)計說明書 - 27 - 結(jié) 論 在這次數(shù)字溫度計設(shè)計的過程中,我主要通過查閱網(wǎng)絡(luò)資料和圖書館相關(guān)書籍,再 加上跟指導(dǎo)老師的討論與溝通,基本完成了設(shè)計的要求。 由于之前主要學(xué)習了單片機的一些基本應(yīng)用,對測溫元件這部分不了解,通過查閱 資料,了解常用的測溫元件,比較它們之間的優(yōu)缺點,由于用 ds18b20 測量溫度,在其 內(nèi)部就能進行 a/d 轉(zhuǎn)換,輸出數(shù)字量與單片機 at89c51 進行通信,無需外加 a/d 轉(zhuǎn)換器, 轉(zhuǎn)換速度快,降低了成本,而且簡化了電路,提高了系統(tǒng)的集成度,因此將數(shù)字溫度傳 感器作為本設(shè)計的測溫元件。其他功
40、能部分也進行方案設(shè)計、對比,最終確定了總體的 設(shè)計方案。在進行軟件設(shè)計的時候也按照先整體后細節(jié)的順序進行編程,將各功能程序 作為子程序分開編寫,按設(shè)計的主程序流程調(diào)用子程序,完成設(shè)計的功能要求。該系統(tǒng) 具有很強的擴展性,還可以組建多點測溫檢測網(wǎng)絡(luò),可以應(yīng)用于多種場合,具有很強的 使用價值。 在程序的編寫當中遇到過很多大大小小的問題,其中在做數(shù)碼管動態(tài)掃描的時候, 端口的通斷控制由于仿真硬件的連接和程序設(shè)計不一致,使數(shù)碼管顯示不正常;還有蜂 鳴器報警電路,由于程序的設(shè)計不合理,剛開始做出來的時候,只要測量的水溫進入了 溫度的報警范圍,蜂鳴器就會一直報警,不會停,后來加了一個判斷條件,設(shè)置了一個
41、小循環(huán),循環(huán)結(jié)束就自動停止報警,確定了一個具體的報警時間,使設(shè)計更合理。通過 遇到問題,解決問題反反復(fù)復(fù),一步一步的完善了我的設(shè)計。 通過這次的設(shè)計,增加了我在單片機應(yīng)用方面的知識,也讓我學(xué)到了做一件事的堅 持,還有,當你無法單獨完成一件事的時候,不要一味地逞強,你要懂得如何向老師和 同學(xué)尋求幫助,在此再次感謝我的指導(dǎo)老師吳家碚老師,以及給予我?guī)椭耐瑢W(xué)們, 謝謝你們! 微機原理及應(yīng)用課程設(shè)計說明書 - 28 - 致 謝 在陳飛老師的指導(dǎo)下,我完成了本次設(shè)計。本設(shè)計從選題到完成,每一步都是在他 的指導(dǎo)下完成的,傾注了老師大量的心血。另外,本設(shè)計的完成也離不開其他老師和各 位同學(xué)給我的建議和幫助
42、,是他們讓我明白了團隊合作的精神。在此,我謹向陳飛老師 和幫助過我的老師和同學(xué)們,表示崇高的敬意和衷心的感謝! 微機原理及應(yīng)用課程設(shè)計說明書 - 29 - 參考文獻 1protel99se eda 技術(shù)及應(yīng)用徐崢穎編著,北京:機械工業(yè)出版社,2005 2單片機系統(tǒng)的 protues 設(shè)計與仿真張靖武編著,北京:電子工業(yè)出版社, 2007 3單片機原理及接口技術(shù)李朝青編著,北京:北京航空航天大學(xué)出版社,2005 4mcs-51 單片機應(yīng)用開發(fā)實用子程序邊春遠編著,北京:人民郵電出版社, 2005 5張毅剛,彭喜元. 單片機原理與應(yīng)用設(shè)計. 北京:電子工業(yè)出版社,2008.4 6徐錚穎,孫海維.p
43、rotel 99 se eda 技術(shù)及應(yīng)用.北京:機械工業(yè)出版社, 2012.2 7譚浩強.c 程序設(shè)計(第三版).北京:清華大學(xué)出版社,2005 8劉文濤.單片機應(yīng)用開發(fā)實例.北京:清華大學(xué)出版社,2005.9 9高衛(wèi)東,辛友順,韓彥征.51 單片機原理與實踐.北京:北京航空航天大學(xué)出版 社.2008.1 微機原理及應(yīng)用課程設(shè)計說明書 - 30 - 附錄 源程序代碼 /ds18b20 的讀寫程序,數(shù)據(jù)腳 p2.7 /溫度傳感器 18b20 匯編程序,采用器件默認的 12 位轉(zhuǎn)化 /最大轉(zhuǎn)化時間按 750us,顯示溫度-55 到+125 度,顯示精度為 0.1 度 /顯示采用 4 位 led
44、共陽顯示測溫值 /p0 口為段碼輸入,p2.0p2.4 為位選 /*/ #include #include /_nop_();延時函數(shù)用 #define dm p0 /段碼輸出口 #define uchar unsigned char #define uint unsigned int sbit yin=p17; /蜂鳴器報警發(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; /顯示當前溫度和設(shè)置溫度的標志位為 0 時,顯示當前溫度 uint h,temp; uchar r; /測得的溫度值 微機原理及應(yīng)用課程設(shè)計說明書 - 31 - uchar high=100,low=25; /預(yù)設(shè)的報警溫度的上下限值 /*溫度小數(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個位帶小數(shù)點的段碼表 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 個數(shù)據(jù)和一個運算暫存 /*11us 延時函數(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); /延時 550us x=dq; 微機原理及應(yīng)用課程設(shè)計說明書 - 32 - dq=1; /拉高電平 /*ds18b20 寫命令函
48、數(shù)*/ /向 1-wire 總線上寫個字節(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 個字節(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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人民版道德與法治九年級上冊3.2《將關(guān)愛傳遞》聽課評課記錄1
- 人教版八年級地理下冊三環(huán)一體式導(dǎo)學(xué)助聽課評課記錄《第六章 北方地區(qū)》
- 湘教版數(shù)學(xué)九年級下冊1.5《二次函數(shù)的應(yīng)用》聽評課記錄1
- 統(tǒng)編版七年級下冊道德與法治第四課 揭開情緒的面紗 聽課評課記錄
- 2022年新課標八年級上冊道德與法治《6.2 做負責人的人 》聽課評課記錄
- 小學(xué)二年級上冊口算練習題
- 八年級下學(xué)期工作總結(jié)
- 五年級上冊數(shù)學(xué)口算500題
- 滬科版數(shù)學(xué)八年級下冊《中位數(shù)和眾數(shù)》聽評課記錄1
- 合作社管理分紅協(xié)議書范本
- 培訓(xùn)機構(gòu)安全隱患排查記錄(帶附件)
- 2024小說推文行業(yè)白皮書
- 研究性成果及創(chuàng)新性成果怎么寫(通用6篇)
- 研發(fā)項目的風險識別與應(yīng)對策略分析方法
- 供應(yīng)鏈行業(yè)年終述職報告總結(jié)
- 肝硬化中醫(yī)護理查房
- QAV-1自我監(jiān)查確認表
- 防范非煤礦山典型多發(fā)事故60條措施培訓(xùn)
- 特殊感染手術(shù)管理考試試題及答案
- 旅館治安管理制度及突發(fā)事件應(yīng)急方案三篇
- 礦山機電知識培訓(xùn)課件
評論
0/150
提交評論