




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告單片機(jī)課程設(shè)計(jì)報(bào)告數(shù)字溫度計(jì)2009 年6月 15日摘要隨著電子技術(shù)的進(jìn)步和發(fā)展,單片機(jī)的應(yīng)用已經(jīng)普及到我們生活、工作、科研等各個(gè)領(lǐng)域,其技術(shù)日趨成熟和完善。本設(shè)計(jì)是一個(gè)基于at89s52單片機(jī),采用“一線總線”數(shù)字化溫度傳感器ds18b20的測(cè)溫系統(tǒng)。采用wave6000集成調(diào)試軟件編寫(xiě)匯編程序?qū)崿F(xiàn)溫度的轉(zhuǎn)化、數(shù)值計(jì)算以及數(shù)碼管顯示當(dāng)前溫度功能,并且可以通過(guò)按鍵設(shè)置高低溫報(bào)警溫度,對(duì)應(yīng)配置報(bào)警器和報(bào)警指示燈。數(shù)碼管顯示采取動(dòng)態(tài)掃描的方法,簡(jiǎn)化了硬件電路;溫度調(diào)整運(yùn)用中斷處理,保證了報(bào)警溫度調(diào)整的實(shí)時(shí)性。本設(shè)計(jì)可以方便快捷的實(shí)現(xiàn)溫度的采集和顯示,具有精度高、測(cè)溫范圍寬、體積小、功耗
2、低等優(yōu)點(diǎn),適用于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以作為溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的擴(kuò)展電路。ds18b20與at89s52結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。關(guān)鍵詞:一線總線 動(dòng)態(tài)掃描 中斷處理 報(bào)警溫度目錄1 概述31.1 設(shè)計(jì)目的與意義31.2 設(shè)計(jì)任務(wù)及要求32 系統(tǒng)總體方案及硬件設(shè)計(jì)42.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證:42.1.1 方案一42.1.2 方案二42.1.3 方案三42.2 選用方案的設(shè)計(jì)思路42.2.1 主控芯片52.2.2 顯示電路52.2.3 報(bào)警溫度調(diào)整電路52.2.4 報(bào)警電
3、路52.2.5 溫度傳感器52.3 ds18b20溫度傳感器與單片機(jī)的接口電路62.4 系統(tǒng)整體硬件電路73 軟件設(shè)計(jì)93.1主程序93.2讀溫度子程序103.3報(bào)警溫度調(diào)整子程序113.4 顯示子程序124 實(shí)驗(yàn)仿真134.1 溫度顯示134.2 報(bào)警溫度調(diào)節(jié)155 課程設(shè)計(jì)體會(huì)17參考文獻(xiàn)17附件1: 源程序代碼18附件2: 系統(tǒng)原理圖271 概述隨著電子技術(shù)水平的不斷提高,單片機(jī)在日常生活中的應(yīng)用也越來(lái)越廣泛,它所給人類(lèi)帶來(lái)的方便也是有目共睹的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子。隨著人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人的生活、工作以及科研提供更為方便的設(shè)施還需要從單片機(jī)技術(shù)和更優(yōu)越的溫度傳
4、感器入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。 我們?cè)O(shè)計(jì)的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)直觀、方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確等優(yōu)點(diǎn),其輸出溫度采用數(shù)碼管顯示。主要應(yīng)用于對(duì)測(cè)溫精度和測(cè)溫范圍要求比較高的場(chǎng)所,也可在科研實(shí)驗(yàn)室使用。該設(shè)計(jì)主控芯片使用at89s52單片機(jī),測(cè)溫傳感器使用“一線總線”數(shù)字化溫度傳感器ds18b20,使用4位共陰極led數(shù)碼管以動(dòng)態(tài)掃描方式,實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。1.1 設(shè)計(jì)目的與意義綜合利用所學(xué)單片機(jī)知識(shí)完成一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)并仿真實(shí)現(xiàn)所要求的功能,從而加深對(duì)單片機(jī)軟硬件知識(shí)的理解和對(duì)相關(guān)傳感器的原理和使用方法的掌握,獲得進(jìn)一步的應(yīng)用實(shí)踐經(jīng)驗(yàn),
5、為走出校門(mén)從事單片機(jī)應(yīng)用的相關(guān)工作打下基礎(chǔ)。該設(shè)計(jì)同時(shí)也是我們對(duì)所學(xué)理論知識(shí)進(jìn)行的檢測(cè)和驗(yàn)證,理論與實(shí)踐相結(jié)合,探索知識(shí)的真理殿堂,不拘泥于課本,培養(yǎng)自己發(fā)現(xiàn)問(wèn)題并獨(dú)立解決問(wèn)題的能力。1.2 設(shè)計(jì)任務(wù)及要求 1)基本范圍-50-110 2)精度誤差小于0.5 3)led數(shù)碼直讀顯示 4)擴(kuò)展功能 5)可以任意設(shè)定上下限報(bào)警溫度2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證:2.1.1 方案一 由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻等器件利用其感溫效應(yīng),在把隨溫度變化的電壓或電流采集過(guò)來(lái)進(jìn)行a/d轉(zhuǎn)換之后,再利用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用
6、到a/d轉(zhuǎn)換電路,感溫電路比較麻煩,而且熱敏電阻的線性度不高,測(cè)量精度。2.1.2 方案二 直接使用數(shù)字溫度傳感器來(lái)測(cè)溫,可以使用“一線總線”數(shù)字化溫度傳感器ds18b20。此傳感器可以直接讀取被測(cè)溫度值,只需進(jìn)行簡(jiǎn)單轉(zhuǎn)換,就可以得到所測(cè)環(huán)境的溫度值。顯示電路采用串口移位靜態(tài)顯示方式,采用串入并出移位芯片74ls164和數(shù)碼管來(lái)實(shí)現(xiàn)溫度的顯示。2.1.3 方案三 也是直接使用數(shù)字溫度傳感器ds18b20來(lái)測(cè)溫,但顯示電路采用動(dòng)態(tài)掃描的方式來(lái)實(shí)現(xiàn),電路簡(jiǎn)單,容易實(shí)現(xiàn),節(jié)約成本。 比較以上三種方案,很容易看出,采用方案三,硬件電路比較簡(jiǎn)單,軟件設(shè)計(jì)也不難,是為最佳選擇,故采用方案三。2.2 選用方
7、案的設(shè)計(jì)思路 數(shù)字溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2-1所示,主控芯片采at89s52,溫度傳感器采用ds18b20,用4位led數(shù)碼管以動(dòng)態(tài)掃描方式實(shí)現(xiàn)溫度顯示,報(bào)警溫度調(diào)整采用獨(dú)立按鍵,報(bào)警電路由蜂鳴器和報(bào)警指示燈組成。 圖2-1 系統(tǒng)總體框圖2.2.1 主控芯片 at89s52價(jià)格便宜、體積小,很適合便攜手持式產(chǎn)品的設(shè)計(jì),4個(gè)io端口和2個(gè)外部中斷完全能滿(mǎn)足本設(shè)計(jì)的需要。2.2.2 顯示電路顯示電路采用4位共陰led數(shù)碼管,從p0口輸出段碼,接470上拉電阻,用p2口的p2.4-p2.7腳來(lái)輸出數(shù)碼管動(dòng)態(tài)掃描位選信號(hào)。2.2.3 報(bào)警溫度調(diào)整電路采用獨(dú)立鍵盤(pán),分別用外部中斷0和1來(lái)調(diào)整高
8、溫報(bào)警溫度和低溫報(bào)警溫度,在中斷中查詢(xún)加減按鍵的動(dòng)作來(lái)調(diào)整溫度,進(jìn)入中斷后,清e(cuò)a,然后將與中斷1即p3.3腳相連的按鍵作為確定鍵使用。2.2.4 報(bào)警電路采用蜂鳴器來(lái)發(fā)出報(bào)警聲音,超高亮發(fā)光二極管作為報(bào)警指示燈,由于at89s52的驅(qū)動(dòng)能力較弱,所以蜂鳴器要加三極管驅(qū)動(dòng),報(bào)警燈外接上拉電阻,單片機(jī)用灌電流方式點(diǎn)亮它,可獲得較高的亮度!2.2.5 溫度傳感器 ds18b20溫度傳感器是美國(guó)dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的分辨率的設(shè)定。ds18b20的性能特點(diǎn)如下: 零待機(jī)功耗;溫度以9或12位
9、數(shù)字;用戶(hù)可定義報(bào)警設(shè)置;可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5v;獨(dú)特的單線接口,僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)ds18b20可以并聯(lián)在一條線上,輕松實(shí)現(xiàn)傳感器網(wǎng)絡(luò)組建;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件。 ds18b20內(nèi)部高速暫存ram為8字節(jié)的存儲(chǔ)器,前2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)th和tl的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20溫度轉(zhuǎn)換得時(shí)間比較長(zhǎng),而且分辨率越高,所需要得溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。具體得分辨率轉(zhuǎn)換為相應(yīng)精度得溫度數(shù)值所需時(shí)間如表2-1所示。我們的設(shè)
10、計(jì)采用12位精度,因此對(duì)18b20操作時(shí)要對(duì)時(shí)序根據(jù)表2-1來(lái)調(diào)整。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)中。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低8位在先,高8位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號(hào)位s0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位s1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2-1 ds18b20溫度轉(zhuǎn)換時(shí)間表r1r0分辨率/位溫度最大轉(zhuǎn)換時(shí)間00993.750110187.510113751112750
11、另外,由于ds18b20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)ds18b20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。1、初始化:?jiǎn)慰偩€的所有處理均從初始化開(kāi)始。初始化過(guò)程是主機(jī)通過(guò)向作為從機(jī)的ds18b20芯片發(fā)一個(gè)具有一定時(shí)間寬度的初始化脈沖實(shí)現(xiàn)的。初始化后,才可進(jìn)行讀寫(xiě)操作。2 、rom操作命令:總線主機(jī)檢測(cè)到ds18b20的存在 便可以發(fā)出rom操作命令。rom操作命令如表2-2所示:表2-2 rom操作命令指令代碼read rom(讀rom)33hmatch rom(匹配rom)55
12、hskip rom(跳過(guò)rom)cchsearch rom(搜索rom)f0halarm search(告警搜索)ech3、存儲(chǔ)器操作:存儲(chǔ)器操作命令如表2-3所示:4、時(shí)序:主機(jī)使用時(shí)間隙(time slots)來(lái)讀寫(xiě)ds18b20的數(shù)據(jù)位和寫(xiě)命令字的位。2.3 ds18b20溫度傳感器與單片機(jī)的接口電路ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)ds18b20的1腳接地,2腳作為信號(hào)線,3腳接電源;另一種是寄生電源供電方式。本設(shè)計(jì)采用第一種供電方式,為保證在有效的ds18b20時(shí)鐘周期內(nèi)提供足夠的電流,可在信號(hào)線與電源線之間接上拉電阻,接口電路如圖2-2所示。表2-3
13、存儲(chǔ)區(qū)操作命令指令代碼write scratchpad(寫(xiě)暫存存儲(chǔ)器)4ehread scratchpad(讀暫存存儲(chǔ)器)behcopy scratchpad(復(fù)制暫存存儲(chǔ)器)48hconvert temperature(溫度變換)44hrecall eprom(重新調(diào)用)b8hread power supply(讀電源)b4h圖2-2 ds18b20與單片機(jī)的接口電路2.4 系統(tǒng)整體硬件電路系統(tǒng)整體硬件電路包括:傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警溫度調(diào)整電路和報(bào)警電路,如圖2-3所示。圖中有4個(gè)獨(dú)立式按鍵可以分別調(diào)整溫度計(jì)的上下限報(bào)警溫度,蜂鳴器可以在被測(cè)溫度超出上下限范圍內(nèi)時(shí),發(fā)
14、出報(bào)警鳴叫聲音,同時(shí)報(bào)警指示燈超高亮發(fā)光二極管將被點(diǎn)亮。圖中畫(huà)出來(lái)的是上電復(fù)位電路,實(shí)際電路將采用按健加上電復(fù)位電路,使用比較方便,在程序跑飛時(shí),可以手動(dòng)復(fù)位,這樣就不用重啟單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位。顯示電路采用動(dòng)態(tài)掃描方式,這樣不僅使用單片機(jī)端口較少,而且外圍電路也比較簡(jiǎn)單。圖2-3 系統(tǒng)整體硬件電路3 軟件設(shè)計(jì)系統(tǒng)程序主要包括主程序,讀溫度子程序,報(bào)警溫度調(diào)整子程序和顯示子程序。3.1主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理ds18b20測(cè)量的當(dāng)前溫度值,其程序流程如圖3-1所示。圖3-1 主程序流程圖3.2讀溫度子程序讀出溫度子程序的主要功能是讀出溫度轉(zhuǎn)換之后ram中的前
15、2個(gè)字節(jié)中暫存的溫度值,其程序流程圖如圖3-2所示。 圖3-2 讀溫度流程圖3.3報(bào)警溫度調(diào)整子程序報(bào)警溫度調(diào)整子程序主要是對(duì)按鍵的處理,具體流程如圖3-3所示。 圖3-3 報(bào)警溫度調(diào)整流程圖3.4 顯示子程序顯示子程序要先判斷要顯示的是18b20采集到的溫度值還是報(bào)警溫度值,再計(jì)算出溫度值的百位(若溫度值大于99c)、十位和個(gè)位并掃描顯示,如圖3-4。 圖3-4 顯示流程圖4 實(shí)驗(yàn)仿真4.1 溫度顯示 由于18b20的測(cè)溫范圍是-55125c,所以當(dāng)溫度為負(fù)值時(shí),第一位數(shù)碼管用來(lái)顯示溫度的負(fù)號(hào),如圖4-1所示。圖4-1 當(dāng)溫度值的十位數(shù)字為0時(shí),不顯示,如圖4-2所示。圖4-2 溫度值為正且
16、小于100c時(shí),第一位數(shù)碼管也是用來(lái)顯示符號(hào),為正時(shí)不顯示,如圖4-3。圖4-3當(dāng)溫度值大于等于100c時(shí),第一位數(shù)碼管用來(lái)顯示溫度的百位數(shù)字,如圖4-4。圖4-44.2 報(bào)警溫度調(diào)節(jié)調(diào)節(jié)高溫報(bào)警溫度時(shí),先按下高溫調(diào)節(jié)按鍵,進(jìn)入高溫調(diào)節(jié)模式,此時(shí)4位數(shù)碼管的第一位當(dāng)報(bào)警溫度小于100c時(shí)不顯示,大于等于100c時(shí)顯示百位數(shù)字,第二位顯示報(bào)警溫度的十位數(shù)字,第三位顯示報(bào)警溫度的個(gè)位,第四位顯示“h” ,表示處于高溫報(bào)警溫度調(diào)節(jié)狀態(tài)。按下加一鍵后報(bào)警溫度值會(huì)加一并且數(shù)碼管閃亮一次顯示更新的高溫報(bào)警溫度值,按下減一鍵時(shí)執(zhí)行同樣操作。直到按下確定鍵,才退出設(shè)定狀態(tài)。高溫報(bào)警溫度調(diào)節(jié)狀態(tài)如圖4-5所示。
17、調(diào)節(jié)低溫報(bào)警溫度時(shí),先按下低溫調(diào)節(jié)按鍵,進(jìn)入低溫調(diào)節(jié)模式,數(shù)碼管顯示和高溫調(diào)節(jié)時(shí)相似,只是第四位顯示“l(fā)” ,表示處于低溫報(bào)警溫度調(diào)節(jié)狀態(tài)。按鍵操作也和高溫調(diào)節(jié)時(shí)相同。低溫報(bào)警溫度調(diào)節(jié)狀態(tài)如圖4-6所示。在此值得一提的是低溫調(diào)節(jié)按鍵和確認(rèn)鍵是復(fù)用的,也就是說(shuō)如果按下低溫調(diào)節(jié)按鍵后再按一次,就會(huì)直接退出低溫設(shè)定狀態(tài)。另外低溫調(diào)節(jié)按鍵還具有關(guān)報(bào)警電路的功能,當(dāng)所測(cè)溫度值超出上下限報(bào)警溫度時(shí),蜂鳴器響同時(shí)報(bào)警指示燈亮,此時(shí)連續(xù)按下2次確認(rèn)鍵即可關(guān)掉報(bào)警,再連續(xù)按下2次確認(rèn)鍵就又進(jìn)入了報(bào)警狀態(tài)。圖4-5 高溫報(bào)警溫度調(diào)節(jié)圖4-6 低溫報(bào)警溫度調(diào)節(jié)5 課程設(shè)計(jì)體會(huì)經(jīng)過(guò)將近三周的學(xué)習(xí)與實(shí)踐,終于成功的完成
18、了我的數(shù)字溫度計(jì)的設(shè)計(jì),它的各方面的性能基本上都已達(dá)到課程設(shè)計(jì)要求。 在本次設(shè)計(jì)過(guò)程中,我發(fā)現(xiàn)了很多的問(wèn)題,而這些問(wèn)題是在只學(xué)習(xí)課本知識(shí)時(shí)所不能遇到的,比如說(shuō)由于at89s52的端口驅(qū)動(dòng)能力較弱,用p0口送段碼時(shí)要接上拉電阻,數(shù)碼管的位選端理論上采用三極管驅(qū)動(dòng)才能使數(shù)碼管的亮度比較可觀,可是在實(shí)際操作中,接上三極管驅(qū)動(dòng)后出現(xiàn)了亮度不均勻的現(xiàn)象,而且很容受到干擾,去掉三極管驅(qū)動(dòng)電路之后,顯示正常,而且亮度也能滿(mǎn)足要求,這就是理論與實(shí)踐的差別。我在大量搜集資料的基礎(chǔ)上,結(jié)合向同學(xué)和老師請(qǐng)教的策略,把遇到的問(wèn)題都一一解決了,這使我增長(zhǎng)了不少知識(shí)。尤其在用匯編語(yǔ)言編寫(xiě)單片機(jī)程序方面,我終于邁出了堅(jiān)實(shí)的
19、一步。從這次的課程設(shè)計(jì)中,我真真切切的體會(huì)到了理論與實(shí)踐的差距,所以在以后的學(xué)習(xí)中,我會(huì)更加注意理論聯(lián)系實(shí)際,多親自動(dòng)手操作。把我所學(xué)的理論知識(shí)運(yùn)用到實(shí)踐當(dāng)中去,在實(shí)踐中檢驗(yàn)理論知識(shí),以此來(lái)加深對(duì)其的理解和掌握。這是我在這次課程設(shè)計(jì)中的最大收獲。參考文獻(xiàn)1 余發(fā)山,王福忠,單片機(jī)原理及應(yīng)用技術(shù),徐州:中國(guó)礦業(yè)大學(xué)出版社,2008,2 王為青,邱文勛,51單片機(jī)應(yīng)用開(kāi)發(fā)案例精選,北京:人民郵電出版社,2007.8,145-1583 ds18b20 pdf:附件1: 源程序代碼;溫度檢測(cè)temper_l equ 29h ;溫度低8位temper_h equ 28h ;溫度高8位flag0 equ
20、35h ;溫度調(diào)整狀態(tài)標(biāo)志flag1 equ 36h ;是否檢測(cè)到18b20標(biāo)志位flag2 equ 37h ;報(bào)警標(biāo)志位flag3 equ 38h ;高低溫調(diào)整標(biāo)志位flag4 equ 39h ;閃爍標(biāo)志位f_bit equ 20h ;符號(hào)位a_bit equ 21h ;數(shù)碼管個(gè)位b_bit equ 22h ;數(shù)碼管十位x_bit equ 23h ;小數(shù)位h_tem equ 24h ;高溫報(bào)警l_tem equ 25h ;低溫報(bào)警dq bit p2.2 ;18b20數(shù)據(jù)線 org 0000h ljmp main org 0003h ljmp key_h org 0013h ljmp key_
21、l org 0050hmain: mov sp,#57h mov tcon,#00h ;定義中斷方式 setb ex0 setb ex1 setb ea mov 24h,#35 ;送高溫報(bào)警初值 mov 25h,#15 ;送低溫報(bào)警初值 clr flag2main0: lcall get_temper ;讀轉(zhuǎn)換溫度 mov a,28h anl a,#0f0h jz zheng ;判斷符號(hào)位 clr c mov a,29h cpl a inc a mov 29h,a mov a,28h cpl a jnc aaa inc aaaa: mov 28h,a mov f_bit,#10 ajmp bb
22、bzheng: mov f_bit,#11bbb: mov a,29h anl a,#0fh mov dptr,#numtab2 ;查表求得小數(shù)位值 movc a,a+dptr mov x_bit,a mov a,29h mov c,40h rrc a mov c,41h rrc a mov c,42h rrc a mov c,43h rrc a jb flag2,above ;若報(bào)警標(biāo)志位為1,關(guān)報(bào)警 cjne a,24h,bud ;若報(bào)警標(biāo)志位為0,則判斷是否bud: jc below ;報(bào)警 setb p2.0 clr p2.1 ajmp dddbelow: cjne a,25h,bud
23、0bud0: jnc above setb p2.0 clr p2.1 ajmp dddabove: clr p2.0 setb p2.1ddd: mov 29h,a clr flag0 lcall display ;調(diào)用顯示子程序 ajmp main0 ;循環(huán)處理;ds18b20復(fù)位初始化init_18b20: setb dq nop clr dq mov r1,#3tsr1: mov r0,#107 djnz r0,$ djnz r1,tsr1 setb dq nop nop nop mov r0,#25tsr2: jnb dq,tsr3 djnz r0,tsr2 ljmp tsr4tsr
24、3: setb flag1 ljmp tsr5tsr4: clr flag1 ljmp tsr7tsr5: mov r0,#117tsr6: djnz r0,tsr6tsr7: setb dq ret;讀出轉(zhuǎn)換后的溫度get_temper: setb dq lcall init_18b20 jb flag1,tss2 clr dq rettss2: mov a,#0cch lcall write_18b20 mov a,#44h lcall write_18b20 lcall display lcall init_18b20 mov a,#0cch lcall write_18b20 mov
25、a,#0beh lcall write_18b20 lcall read_18b20 ret;寫(xiě)ds18b20write_18b20: mov r2,#8 clr cwr1: clr dq mov r3,#5 djnz r3,$ rrc a mov dq,c mov r3,#21 djnz r3,$ setb dq nop djnz r2,wr1 setb dq ret;讀18b20的子程序read_18b20: mov r4,#2 mov r1,#29hre00: mov r2,#8re01: clr c setb dq nop nop clr dq nop nop nop setb dq
26、mov r3,#8re10: djnz r3,re10 mov c,dq mov r3,#21re20: djnz r3,re20 rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 ret;報(bào)警溫度調(diào)整子程序key_h: acall d5ms jb p3.2,over push acc push psw setb rs0 clr ea setb flag0 ;置位溫度調(diào)整標(biāo)志位 setb flag3 ;置位高溫報(bào)警調(diào)整標(biāo)志位 mov a,24h mov 30h,akey_ch: jb p3.4,jj_h acall d20ms jb p3.4,jj
27、_h inc 24h mov a,24h mov 30h,a acall displayjj_h: jb p3.5,qd_h acall d20ms jb p3.5,qd_h dec 24h mov a,24h mov 30h,a acall displayqd_h: jb p3.3,key_ch acall d5ms jb p3.3,key_ch clr flag0 ;即將退出調(diào)整,清零調(diào)整狀態(tài)位 clr rs0 pop psw pop acc setb eaover: retikey_l: acall d20ms jb p3.3,over0 push acc push psw setb r
28、s0 setb flag0 ;置位溫度調(diào)整標(biāo)志位 cpl flag2 ;對(duì)報(bào)警標(biāo)志位取反 clr flag3 ;清零高溫報(bào)警調(diào)整標(biāo)志位 clr ea mov a,25h mov 30h,akey_cl: jb p3.4,jj_l acall d20ms jb p3.4,jj_l inc 25h mov a,25h mov 30h,a acall displayjj_l: jb p3.5,qd_l acall d20ms jb p3.5,qd_l dec 25h mov a,25h mov 30h,a acall displayqd_l: jb p3.3,key_cl acall d20ms j
29、b p3.3,key_cl clr flag0 ;即將退出調(diào)整,清零調(diào)整狀態(tài)位 clr rs0 pop psw pop acc setb eaover0: reti;顯示子程序display: jb flag0,jian ;調(diào)整狀態(tài)位為1,報(bào)警溫度送顯示處理 mov a,29h ;否則處理溫度傳感器讀取的溫度值 ajmp temjian: mov a,30htem: cjne a,#100,nx ;若溫度=100,符號(hào)位用來(lái)顯示百位nx: jc nnn mov b,#100 div ab mov f_bit,a mov 29h,b mov a,29h ajmp mmnnn: jnb flag0,mm mov f_bit,#11 ;若符號(hào)位值為0,不顯示mm: m
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 聘請(qǐng)顧問(wèn)協(xié)議書(shū)
- 彩鋼瓦修復(fù)安全協(xié)議書(shū)
- 液化氣購(gòu)銷(xiāo)合同協(xié)議書(shū)
- 現(xiàn)場(chǎng)建筑體變更協(xié)議書(shū)
- 學(xué)生碰牙齒調(diào)節(jié)協(xié)議書(shū)
- 理發(fā)店門(mén)店合同協(xié)議書(shū)
- 移動(dòng)代理協(xié)議書(shū)
- 維修補(bǔ)漏協(xié)議書(shū)
- 電瓶購(gòu)置協(xié)議書(shū)
- 資助建房協(xié)議書(shū)
- 期末易錯(cuò)題型創(chuàng)新改編練習(xí)(專(zhuān)項(xiàng)練習(xí))六年級(jí)下冊(cè)數(shù)學(xué)人教版
- 《橋梁工程概況介紹》課件
- 2025年四川成都道德與法制中考試卷(無(wú))
- 2024年不動(dòng)產(chǎn)登記代理人《地籍調(diào)查》考試題庫(kù)大全(含真題、典型題)
- 中醫(yī)基礎(chǔ)學(xué)題庫(kù)(附答案)
- 大學(xué)美育知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋長(zhǎng)春工業(yè)大學(xué)
- 2024年秋《MySQL數(shù)據(jù)庫(kù)應(yīng)用》形考 實(shí)驗(yàn)訓(xùn)練1 在MySQL中創(chuàng)建數(shù)據(jù)庫(kù)和表答案
- 《數(shù)據(jù)資產(chǎn)會(huì)計(jì)》 課件 第五章 數(shù)據(jù)資產(chǎn)的價(jià)值評(píng)估
- 合同到期不續(xù)簽的模板
- 北京市2018年中考?xì)v史真題試卷(含答案)
- (完整版)新概念英語(yǔ)第一冊(cè)單詞表(打印版)
評(píng)論
0/150
提交評(píng)論