基于單片機的溫度控制系統(tǒng)課程設計報告書_第1頁
基于單片機的溫度控制系統(tǒng)課程設計報告書_第2頁
基于單片機的溫度控制系統(tǒng)課程設計報告書_第3頁
基于單片機的溫度控制系統(tǒng)課程設計報告書_第4頁
基于單片機的溫度控制系統(tǒng)課程設計報告書_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、單片機課程設計報告書(基于單片機的溫度控制系統(tǒng))學院(系): 電子與信息工程學院 年級專業(yè): 電子信息工程 學 號: 201215256101 學生姓名: 張 三 指導教師: 羅 剛 教師職稱: 教 授 成 績: 制作日期 2014 年 12月 20 日目錄摘要.1引言.2第一章系統(tǒng)設計.21.1 設計任務.21.2 設計目的.2 1.3 設計思路.2第二章 硬件系統(tǒng)設計.42.1系統(tǒng)方框圖.4 2.2各部分及其實現(xiàn)的功能.4第三章軟件設計.163.1程序流程圖.163.2 溫度傳感器流程圖程圖.17第四章仿真與調(diào)試.18 4.1 軟件電路故障與解決辦法.18 4.2 軟件調(diào)試方法.18 4.

2、3 仿真后,部分顯示成果.19第五章設計總結.22第六章 參考文獻.23附錄一.24附錄二.25附錄三.36基于單片機stc89c51的溫度顯示系統(tǒng)的設計重慶三峽學院電子與信息工程學院 12電子信息工程(職教師資)摘要:以at89c51單片機為核心,的數(shù)字溫度測量及自動控制系統(tǒng)的設計,該溫度控制器可以實時顯示和設定溫度,實現(xiàn)對溫度的自動控制。其組成部分為:at89s51單片機、ds18b20智能數(shù)字溫度傳感器、鍵盤與顯示電路、溫度控制電路。高精度的ds18b20溫度傳感器作為溫度檢測元件,led數(shù)碼管并行動態(tài)顯示作為顯示電路,單片機通過對信號進行相應處理,從而實現(xiàn)對所測溫度進行控制。當溫度比設

3、定溫度小時,當溫度大于等于設定溫度時,控制器斷開電加熱設備。此外,文中還介紹了該溫度控制器的軟件設計部分,主要模塊包括:數(shù)碼管顯示程序、按鍵處理程序、溫度信號處理程序。主程序通過調(diào)用各個上述子程序來完成所有的溫度控制器功能。在此基礎上本文還提出了系統(tǒng)軟硬件抗干擾措施和系統(tǒng)軟硬件及整機調(diào)試方案。 該溫度控制器具有控制方便、簡單的特點,可以實現(xiàn)對溫度的高精度控制,并且可以提高被控系統(tǒng)的技術指標。 關鍵詞:單片機 ;溫度傳感器 ;寄存器; 引言隨著電子技術,特別是隨大規(guī)模集成電路的產(chǎn)生而出現(xiàn)的微型計算機技術的飛速發(fā)展,人類生活發(fā)生了根本性的改變。如果說微型計算機的出現(xiàn)使現(xiàn)代科學研究得到了質(zhì)的飛躍,那

4、么可以毫不夸張地說,單片機技術的出現(xiàn)則是給現(xiàn)代工業(yè)測控領域帶來了一次新的技術革命。目前,單片機以其體積小、重量輕、抗干擾能力強、對環(huán)境要求不高、高可靠性、高性能價格比、開發(fā)較為容易,在工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、辦公自動化等諸多領域得到極為廣泛的應用,并已走人家庭,從洗衣機、微波爐到音響、汽車,到處都可見到單片機的蹤影。因此,單片機技術開發(fā)和應用水平已逐步成為一個國家工業(yè)發(fā)展水平的標志之一。本課題研究的內(nèi)容就是以單片機at89c51為主要控制元件,通過溫度傳感器ds18b20實現(xiàn)對溫度的測量,并通過數(shù)碼管直接顯示所測溫度。第1章 系統(tǒng)設計1.1 設計任務(1)、采用ds18b2

5、0作為溫度傳感器進行溫度檢測。(2)、對采集溫度進行顯示(顯示溫度分辨率0.1);采集溫度數(shù)值應采用數(shù)字濾波措施,保證顯示數(shù)據(jù)穩(wěn)定。(3)、設計相應的溫度控制電路,根據(jù)測得的溫度情況對加熱器進行控制,將溫度保持在設定溫度。(4)、通過按鍵設置溫度上下限,超限通過led、蜂鳴器報警。1.2 設計目的(1)、通過課程設計,使我們能夠深入理解單片機系統(tǒng)的工作原理,接口電路的設計及調(diào)試方法,培養(yǎng)綜合運用所學理論知識分析和解決實際問題的能力。(2)、使用單片機at89c51為主要控制元件,通過溫度傳感器ds18b20實現(xiàn)對溫度的測量,并通過lcd1602直接顯示所測溫度。(3)、用keil軟件進行編程與

6、調(diào)試,利用proteus 7 professional軟件進行繪制硬件電路圖且進行仿真。1.3 設計思路(1) 方案論證本溫度控制系統(tǒng)的設計是使用單片機來控制,溫度傳感器ds18b20實現(xiàn)對溫度的測量,數(shù)碼管直接顯示實現(xiàn)。而選擇這一方法后還要進行各個芯片的選擇。以下是我在這次設計中所用的方案。(2) 芯片的選擇采用at89c51芯片,其為高性能cmos 8位單片機,該芯片內(nèi)含有4k bytes的可反復擦寫的只讀程序存儲器(perom)、128 bytes的隨機存取數(shù)據(jù)存儲器(ram)、 32位可編程i/o口線、2個16位定時/計數(shù)器、6個中斷源、可編程串行uart通道及低功耗空閑和掉電模式。因

7、此,我們選用at89c51。(3) 溫度傳感器模塊的選擇方案和論證 采用溫度傳感器ds18b20實現(xiàn)對溫度的測量。(4) 升溫模塊和降溫模塊的選擇和論證(5) 最終方案 綜上方案所述,對此次溫度控制系統(tǒng)的方案選定為: 以基于51單片機控制,將ds18b20溫度傳感器實時溫度轉化,并通過數(shù)碼管對溫度實行實時顯示,將設定溫度,通過按鍵調(diào)節(jié)溫度報警區(qū)域,實現(xiàn)對溫度在0-128控制的自動化。實驗結果表明此結構完全可行,溫度偏差可達0.1以內(nèi)。 第2章 硬件系統(tǒng)的設計2.1 系統(tǒng)方框圖,見圖2.1。根據(jù)需求,我們將系統(tǒng)分為六個模塊,信息處理模塊,溫度采集模塊、功能按鍵模塊、報警電路模塊,led溫度顯示模

8、,存儲模塊。圖2.1 系統(tǒng)方框圖2.2各部分及其實現(xiàn)的功能(1)中央控制芯片stc89c51stc89c51是一種低功耗、高性能的片內(nèi)含有4kb快閃可編程/擦除只讀存儲器(fperom-flash programmable and eraseable read only memory)的8位cmos微控制器,使用高密度、非易失存儲技術制造,并且與80c51引腳和指令系統(tǒng)完全兼容。主要性能: 與mcs-51 微控制器產(chǎn)品系列兼容。 片內(nèi)有4kb可在線重復編程的快閃擦寫存儲器 ;存儲數(shù)據(jù)保存時間為10年 ;寬工作電壓范圍:vcc可為2.7v到6v ;全靜態(tài)工作:可從0hz至16mhz ;程序存儲器

9、具有3級加密保護 ;128*8位內(nèi)部ram ;32條可編程i/o線 ,兩個16位定時器/計數(shù)器 ;中斷結構具有5個中斷源和2個優(yōu)先級 ,可編程全雙工串行通道 ,空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。mcs51的主要特點為:cpu為8位; 片內(nèi)帶振蕩器,頻率范圍為1.212mhz;片內(nèi)帶128字節(jié)的數(shù)據(jù)存儲器;(ram) 片內(nèi)帶4kb的flash程序存儲器;(rom)程序存儲器的尋址空間為64kb;(需要擴展rom) 片外數(shù)據(jù)存儲器的尋址空間為64kb;(需要擴展ram)128位(16字節(jié))用戶位尋址空間;(在128個字節(jié)中)18個字節(jié)特殊功能寄存器sfr(mcs52子系列為21個); 4個

10、8位的并行i/o接口:p0、p1、p2、p3;2個優(yōu)先級別的個優(yōu)先級別的5個中斷源;(高、低2個) 有較強的位處理能力(2)溫度傳感器ds18b20:1.ds18b20的性能特點:、采用單總線專用技術,既可通過串行口線,也可通過其它i/o口線與微機接口,無須經(jīng)過其它變換,直接輸出被測溫度值(9位二進制數(shù),含符號位)。、測溫范圍為-55-+125,測量分辨率為0.0625、內(nèi)含64位經(jīng)過激光修正的只讀存儲器rom、適配各種單片機或系統(tǒng)機、用戶可分別設定各路溫度的上、下限內(nèi)含寄生電源??谳^少,可節(jié)省大量的引線和邏輯電路。2.ds18b20的內(nèi)部結構 ds18b20內(nèi)部結構如圖2.2.1所示,主要由

11、4部分組成:64位rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th和tl、配置寄存器。ds18b20的管腳排列如圖2.2.2所示,dq為數(shù)字信號輸入輸出端;gnd為電源地;vdd為外接供電電源輸入端(在寄生電源接線方式時接地)。 rom中的64位序列號是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼,每個ds18b20的64位序列號均不相同。64位rom的排的循環(huán)冗余校驗碼(crc=x8x5x41)。rom的作用是使每一個ds18b20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個ds18b20的目的。圖2.2.圖2.3 ds18b20的管腳排列3、溫度值高字節(jié) 高低溫報警觸發(fā)器th和

12、tl、配置寄存器均由一個字節(jié)的eeprom組成,使用一個存儲器功能命令可對th、tl或配置寄存器寫入。其中配置寄存器的格式如下: r1、r0決定溫度轉換的精度位數(shù):r1r0=“00”,9位精度,最大轉換時間為93.75ms;r1r0=“01”,10位精度,最大轉換時間為187.5ms;r1r0=“10”,11位精度,最大轉換時間為375ms;r1r0=“11”,12位精度,最大轉換時間為750ms;未編程時默認為12位精度。 高速暫存器是一個9字節(jié)的存儲器。開始兩個字節(jié)包含被測溫度的數(shù)字量信息;第3、4、5字節(jié)分別是th、tl、配置寄存器的臨時拷貝,每一次上電復位時被刷新;第6、7、8字節(jié)未用

13、,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的crc碼,可用來保證通信正確。 4.ds18b20的工作時序 ds18b20的一線工作協(xié)議流程是:初始化rom操作指令存儲器操作指令數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序,如圖2.2.3(a)(b)(c)所示。 (a)初始化時序(b)寫時序(c)讀時序 圖2.4 ds18b20的工作時序圖 5.ds18b20高速暫存器共9個存儲單元,如表所示:序號 寄存器名稱 作 用 序號 寄存器名稱 0 溫度低字節(jié) 以16位補碼形式存放 4 配置寄存器 1 溫度高字節(jié) 5、6、7 保留 2 th/用戶字節(jié)1 存放溫度上限 8 crc 3 hl/

14、用戶字節(jié)2 存放溫度下限 4.1 以12位轉化為例說明溫度高低字節(jié)存放形式及計算:12位轉化后得到的12位數(shù)據(jù),存儲在18b20的兩個高低兩個8位的ram中,二進制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625才能得到實際溫度。 高8位 s s s s s 26 25 24 低8位 23 22 21 20 2-1 2-2 2-3 2-4 4.2 ds18b20有六條控制命令,如表所示:指 令 約定代碼 操 作 說 明 溫度轉換 44h 啟動ds18b20進行溫度轉換

15、讀暫存器 beh 讀暫存器9個字節(jié)內(nèi)容 寫暫存器 4eh 將數(shù)據(jù)寫入暫存器的th、tl字節(jié) 復制暫存器 48h 把暫存器的th、tl字節(jié)寫到e2ram中 重新調(diào)e2ram b8h 把e2ram中的th、tl字節(jié)寫到暫存器th、tl字節(jié) 讀電源供電方式 b4h 啟動ds18b20發(fā)送電源供電方式的信號給主cpu 2.3 主要電路及功能1.單片機的復位電路及時鐘電路單片機的時鐘電路有1個12m 的晶振和兩個20pf 的小電容組成,它們決定了單片機的工作時間精度為1 微秒。at89c51單片機作為整個硬件系統(tǒng)的核心,它既是協(xié)調(diào)整機工作的控制器,又是數(shù)據(jù)處理器。該單片機為51系列增強型8位單片機,它有

16、32個i/o口,片內(nèi)含4k flash工藝的程序存儲器,便于用電的方式瞬間擦除和改寫,而且價格便宜,其外部晶振為12mhz,一個指令周期為1s。使用該單片機完全可以完成設計任務,其最小系統(tǒng)主要包括:復位電路、震蕩電路。 圖2.5單片機模塊2.顯示電路四位數(shù)碼管有8位控碼和4個段控碼。數(shù)碼管分共陰極和共陽極。而我們采用的是共陽極的數(shù)碼管作為溫度控制器的顯示電路。則需要將陽極接在電源上。 圖2.6 顯示電路3.溫度傳感器電路溫度檢測控制模擬電路圖ds18b20原件及其連線如圖溫度此傳感器上顯示的溫度同步顯示到液晶顯示器上,并有加溫,減溫按鈕。圖2.7溫度檢測控制模擬電路4. 存儲器at24c02(

17、1)at24c02是一個2k位串行cmos e2prom, 內(nèi)部含有256個8位字節(jié),catalyst公司的先進cmos技術實質(zhì)上減少了器件的功耗。at24c02有一個8字節(jié)頁寫緩沖器。該器件通過iic總線接口進行操作,有一個專門的寫保護功能。(2) 功能描述at24c02支持i2c,總線數(shù)據(jù)傳送協(xié)議i2c,總線協(xié)議規(guī)定任何將數(shù)據(jù)傳送到總線的器件作為發(fā)送器。任何從總線接收數(shù)據(jù)的器件為接收器。數(shù)據(jù)傳送是由產(chǎn)生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,由于a0、a1和a2可以組成000111八種情況,即通過器件地址

18、輸入端a0、a1和a2可以實現(xiàn)將最多8個at24c02器件連接到總線上,通過進行不同的配置進行選擇器件。 圖2.8 at24c025. 溫度上下限調(diào)節(jié)系統(tǒng) 通過按鍵控制鍵選著調(diào)節(jié)對象,通過上升下降調(diào)節(jié)值大小,控制開關,升溫開關,降溫開關,設置開關分別為,k1,k2,k3,開始顯示的是當前溫度,k1開關,用來控制進入溫度上限,下限的調(diào)節(jié)界面。按k1,一次進入三個界面。按k2為加1開關,按一下,加1,k3減1開關,按一下,減1。圖2.9 上下限調(diào)節(jié)電路7. 報警電路系統(tǒng)通過led指示燈的閃爍以及蜂鳴器的鳴叫實現(xiàn)報警,如果溫度超過上限高溫指示燈亮,蜂鳴器鳴叫,低于下限低溫指示燈亮,蜂鳴器鳴叫。 圖2

19、.10報警電路 第三章 軟件系統(tǒng)的設計3.1程序流程圖 溫度低于低溫下限,低溫報警3.2、at24c02存取數(shù)據(jù)流程圖3.3 溫度傳感器流程圖第四章 仿真與調(diào)試4.1 軟件電路故障與解決辦法1.以斷點或連續(xù)方式運行時,目標測試系統(tǒng)沒有按照規(guī)定的功能進行操作或什么結果也沒有,可能是由于程序轉移到意外之處或在某處死循環(huán)所造成的。2.不響應中斷cpu不響應中斷或者是不響應某一個中斷這種錯誤的現(xiàn)象是連續(xù)運行時不執(zhí)行中斷程序的操作。當斷點在中斷入口或者中斷服務程序中時碰不到斷點。錯誤可能由中斷寄存器(ie、ip)的初值設置不當,使cpu沒有開放中斷或者不許某個中斷源請求,或者對片內(nèi)的定時器、串行口等特殊

20、功能的寄存器和i/o接口程序有錯誤,造成中斷沒有被激活。又或者某一中斷程序不是ret指令作為返回主程序的指令,cpu雖然已經(jīng)返回到主程序但內(nèi)部中斷狀態(tài)寄存器沒有被消除,從而不影響中斷,或者外部中斷源的硬件故障使得外部中斷請求無效。4.2 軟件調(diào)試方法軟件調(diào)試所使用的方法有:計算程序的調(diào)試方法、i/o處理程序的調(diào)試法、綜合調(diào)試法等。1、計算程序的調(diào)試方法: 計算程序的錯誤是一種靜態(tài)的固定的錯誤,因此主要用單拍或者斷點運行方法來調(diào)試。根據(jù)計算程序的功能,事先準備好一組測試數(shù)據(jù)。調(diào)試時,用仿真器寫命令。將命令數(shù)據(jù)寫入計算程序的緩沖單元,然后從計算程序開始運行到結束,運行結果與計算的正確數(shù)據(jù)做比較,如

21、果對有的測試數(shù)據(jù)進行測試沒有發(fā)現(xiàn)錯誤,則該計算程序調(diào)試成功。如果發(fā)現(xiàn)結果不正確,改用單步運行的方法找出錯誤所在。如果是計算錯誤,則需要修改重新設計程序,如果是局部的指令錯誤,修改局部程序就可以了。如果是用于測試的數(shù)據(jù)沒有全部覆蓋實際計算的原始數(shù)據(jù)的類型,調(diào)試沒有發(fā)現(xiàn)錯誤可能在系統(tǒng)運行中暴露出來。2、i/o接口處理程序的調(diào)試: 對于a/d轉換器一類的i/o接口處理程序是實時處理程序,因此一般用全速斷點運行方式或連續(xù)運行方法進行調(diào)試。3.綜合調(diào)試:在完成了各個程序模塊的調(diào)試工作之后,就可以進行系統(tǒng)的綜合調(diào)試。綜合調(diào)試采用全速運行或斷點運行方式,這個階段的主要工作是檢測系統(tǒng)里面遺留的錯誤以及提高系統(tǒng)

22、的動態(tài)性能和精度。在綜合調(diào)試階段,應該注意系統(tǒng)的晶振頻率工作,使系統(tǒng)全速運行目標程序,實現(xiàn)預定功能技術指標之后,就可以將軟件固化,然后在運行固化的目標程序,成功后目標系統(tǒng)就可以脫機運行。4.3 仿真后,部分顯示成果: 圖4.3調(diào)節(jié)溫度上下限 4.1 調(diào)節(jié)溫度上線 4.2 調(diào)節(jié)溫度下線 圖4.3. 顯示當前溫度 圖4.4 溫度高于溫度上限,高溫報警燈亮,蜂鳴器鳴叫 圖4.5 溫度低于低溫下限,低溫報警燈亮,蜂鳴器鳴叫第5章 設計總結這種溫度報警器結構簡單。工作時,溫度測量范圍為0250。當溫度達到預定值時,立刻發(fā)出報警信號,從而防止因溫度升高或過低而帶來的不必要的損失。 通過本次工程設計,又使我

23、學到了許多書本上無法學到的知識,也使也深該體會到單片機技術應用領域的廣泛,不僅使我對學過的單片機知識有了很多的鞏固,同時也對單片機這一門課程產(chǎn)生了更大的興趣。在做本次工程設計的過程中,我感觸最深的當屬查閱大量的設計資料了。為了讓自己的設計更加完善,查閱這方面的設計資料是十分必要的,同時也是必不可少的。我們是在做單片機工程設計,但我們不是藝術家,他們可以拋開實際盡情在幻想的世界里翱翔,而我們一切都要有據(jù)可依,有理可尋,不切實際的構想永遠只能是構想,永遠無法升級為設計。 其次,我學會了在網(wǎng)絡上查找有關本設計的各硬件的資源,其中包括:at89c51單片機及其引腳說明、adc0808引腳圖及其引腳功能

24、等,為本次工程設計提供了一定的資料。經(jīng)過這次的設計,為我們以后畢業(yè)設計的制作也奠定了一定的基礎第6章 參考文獻1謝輝主編.單片機原理及應用.化學工業(yè)出版社.2010年8月,第一版2曹巧媛主編.單片機原理及應用(第二版).北京電子工業(yè)出版社,20023何力民編.單片機高級教程.北京航空大學出版社,20004陳強等.傳感器技術與應用.高等教育出版社,20105王錦標,方崇智.過程計算機控制.清華大學出版社,1997:36406胡壽松.自動控制原理,北京:國防工業(yè)出版社,2000:1031247劉伯春.智能pid調(diào)節(jié)器的設計及應用、電子自動化,1995:(3):20258周景潤,張麗娜.基于prot

25、eus的電路及單片機系統(tǒng)設計與仿真m.北京:航空航天大學出版社,20069王忠飛,胥芳.mcs51單片機原理及嵌入式系統(tǒng)應用m.西安:西安電子科技大學出版社,200710趙娜,趙剛,于珍珠等.基于51單片機的溫度測量系統(tǒng)j.微計算機信息,2007,12附錄:附錄一系統(tǒng)整體流程圖:附錄二程序代碼: ;-#include #define ui unsigned int#define uc unsigned char /宏定義sbit set=p31; /定義調(diào)整鍵sbit dec=p32; /定義減少鍵sbit add=p33; /定義增加鍵sbit beep=p36; /定義蜂鳴器sbit al

26、am=p12;/定義燈光報警sbit dq =p37; /定義ds18b20總線i/osbit scl=p16;sbit sda=p17;sbit dian=p05; /小數(shù)點bit bdata shanshuo_st; /閃爍間隔標志bit bdata beep_st; /蜂鳴器間隔標志 uc x=0; /計數(shù)器ui bai,shi,ge;uc set_st=0; /狀態(tài)標志char shangxian,xiaxian;/uc code leddata=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;uc code leddata

27、=0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x47,0xdf,0xd7,0xcf,0xda,0x9b,0xdc,0x9b,0x8b;/=/=ds18b20=/=/*延時子程序*/void delay_ds18b20(int num) while(num-) ;void delay()/5微秒延時函數(shù) ; void start() /開始信號sda=1;delay();scl=1;delay();sda=0;delay();void stop() /終止信號sda=0;delay();scl=1;delay();sda=1;delay();void respons(

28、) /應答uc i;scl=1;delay();while(sda=1)&(i250)i+;/如果sda為低應答有效,或者超過一定時間默認應答有效scl=0;delay();void init24c04()/i2c總線初始化sda=1;delay();scl=1;delay();void write_byte(uc date)/寫操作uc i,temp;temp=date;for(i=0;i8;i+)temp=temp1;scl=0; delay();sda=cy;delay();scl=1;delay();scl=0;delay();sda=1;delay();uc read_byte()/

29、讀操作uc i,k;scl=0;delay();sda=1;delay();for(i=0;i8;i+)scl=1;delay();k=(k0;i-) dq = 0; / 給脈沖信號 dat=1; dq = 1; / 給脈沖信號 if(dq) dat|=0x80; delay_ds18b20(4); return(dat);/*寫一個字節(jié)*/void writeonechar(uc dat) uc i=0; for (i=8; i0; i-) dq = 0; dq = dat&0x01; delay_ds18b20(5); dq = 1; dat=1; /*讀取溫度*/ui readtempe

30、rature(void) ui b=0; ui t=0; ui a=0; float tt=0; init_ds18b20(); writeonechar(0xcc); /跳過讀序號列號的操作 writeonechar(0x44); /啟動溫度轉換 init_ds18b20(); writeonechar(0xcc); /跳過讀序號列號的操作 writeonechar(0xbe); /讀取溫度寄存器 a=readonechar(); /讀低8位 b=readonechar(); /讀高8位 t=b; t=8; t=t|a; tt=t*0.0625; t=tt*10+0.5; /放大10倍輸出并

31、四舍五入 return(t);/=/=/=/*延時子程序*/void delay(ui num) while( -num );/*初始化定時器0*/void inittimer(void)tmod=0x01;th0=0x3c;tl0=0xb0; /50ms(晶振12m)/*讀取溫度*/void check_wendu(void)ui f;f=readtemperature()-5; /獲取溫度值并減去ds18b20的溫漂誤差if(f999)f=999;bai=f/100; /計算得到百位數(shù)字shi=(f%100)/10; /計算得到十位數(shù)字ge=(f%100)%10; /計算得到個位數(shù)位/*顯

32、示開機初始化等待畫面*/void disp_init(void) p0 = 0x80; /顯示-p2 = 0x7f;delay(200);p2 = 0xdf;delay(200); p2 = 0xf7;delay(200);p2 = 0xfd;delay(200);p2 = 0xff; /關閉顯示/*顯示溫度子程序*/void disp_temperature(void) /顯示溫度p0 = 0x98; /顯示cp2 = 0x7f;delay(400);p2 = 0xff; /關閉顯示p0=leddatage; /顯示個位p2 = 0xdf;delay(400);p2 = 0xff; /關閉顯

33、示p0 =leddatashi; /顯示十位dian = 0; /顯示小數(shù)點p2 = 0xf7;delay(400);p2 = 0xff; /關閉顯示p0 =leddatabai; /顯示百位p2 = 0xfd;delay(400);p2 = 0xff; /關閉顯示/*顯示報警溫度子程序*/void disp_alarm(uc baojing)p0 =0x98; /顯示cp2 = 0x7f; /01111111delay(200);p2 = 0xff; /關閉顯示p0 =leddatabaojing%10; /顯示十位p2 = 0xdf; /1101delay(200);p2 = 0xff; /關閉顯示p0 =leddatabaojing/10; /顯示百位p2 = 0xf7;/11110111delay(200);p2 = 0xff; /關閉顯示if(set_st=1)p0 =0xce;else if(set_st=2)p0 =0x1a; /上限h、下限l標示p2 = 0xfd;delay(200);p2 = 0xff; /關閉顯示/*報警子程序*/void alarm()if(x=10)beep_st=beep_st;x=0;if(bai*10+shi)=shangxian)|(bai*10+shi)=shangxi

溫馨提示

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

評論

0/150

提交評論