版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 揚州市職業(yè)大學課程設(shè)計論文題 目 溫度顯示器 院 (系) 汽車與電氣工程系 專 業(yè) 電氣自動化 班 級 09電氣(2)班 學生姓名 史學和 學 號 0902030226 指導(dǎo)教師 劉卉 2011 年 11 月 目錄摘要3第一章 引言41.1設(shè)計背景41.2設(shè)計任務(wù)41.3電路的工作原理4第二章 方案論證及硬件設(shè)計52.1方案選擇5溫度顯示器硬件設(shè)計62.2最小系統(tǒng)的設(shè)計62.2.1電源部分62.2.2時鐘電路的設(shè)計62.2.3復(fù)位電路的設(shè)計72.3溫度傳感器92.3.1 ds18b2092.3.2 ds18b20的主要特性92.3.3 ds18b20工作原理102.3.4 溫度格式102.3
2、.4 ds18b20的外部電源供電方式112.4 at89s51112.4.2管腳說明122.5 數(shù)碼管132.5.1 led數(shù)碼顯示器連接方法:132.5.2 方案132.5.3數(shù)碼管顯示方式14第三章 溫度顯示器系統(tǒng)的軟件設(shè)計154.1程序流程圖154.1.1主程序流程圖154.1.2讀溫流程圖154.1.3讀出子程序流程圖154.2 程序16結(jié)束語24參考文獻24附錄1 元器件清單25附錄2 原理圖26摘要溫度是一個十分重要的物理量,對他的測量與控制有十分重要的意義,隨著現(xiàn)代工農(nóng)業(yè)技術(shù)的發(fā)展及人們對生活環(huán)境要求的提高,人們也迫切需要檢測與控制溫度。本溫度顯示器的設(shè)計與制作,闡明了該裝置進
3、行設(shè)計與制作的具體過程及方法。這種溫度顯示器結(jié)構(gòu)簡單,可操作性強,應(yīng)用廣泛。工作時,由傳感器檢測溫度,防止因溫度升高而帶來的不必要的損失。本文介紹的是采用溫度傳感器ds18b20的溫度顯示器,自動測量當前環(huán)境溫度,由單片機at89s51控制,并通過四位7段數(shù)碼管顯示。關(guān)鍵詞:溫度顯示 單片機(at89c51) 數(shù)字溫度傳感器(ds18b20)第一章 引言1.1設(shè)計背景 溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),隨著人們生活水平的不斷提高,對生活質(zhì)量的要求不斷提升,自然會更加關(guān)注跟人身體健康緊密聯(lián)系的溫度;同時在工業(yè)生產(chǎn)過程中經(jīng)常需要實時測量溫度,尤其是在高危生產(chǎn)行業(yè),如花炮生
4、產(chǎn)、煤礦行業(yè)等。但依靠人工檢測既浪費時間、物力、人力, 又有一定的危險性,且測量的數(shù)據(jù)也不準確;在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,各種農(nóng)作物的生長都跟溫度有直接的關(guān)系,掌握了溫度的變化就可以更好的控制農(nóng)作物的生長。因此研究溫度的測量方法和裝置具有重要的意義。1.2設(shè)計任務(wù) 本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機at89s51,測溫傳感器使用ds18b20,用4位共陰極led數(shù)碼管實現(xiàn)溫度顯示,能準確達到以上要求。1.3電路的工作原理 這次的溫度顯示器由溫度傳感器
5、ds18b20,at89s51單片機,led數(shù)碼管和電源系統(tǒng)組成。其工作的原理是在電源系統(tǒng)供電的情況下由溫度傳感器ds18b20測量周圍溫度的變化,并將測的溫度傳給單片機at89s51經(jīng)過單片機at89s51分析做出判斷,同時經(jīng)過單片機at89s51將所測得的溫度顯示在led顯示出來,如果溫度在溫度傳感器的規(guī)定的溫度范圍內(nèi),那么蜂鳴器將不會發(fā)出報警信號。第2章 方案論證及硬件設(shè)計2.1方案選擇方案一 采用熱敏電阻作為溫度傳感器用熱敏電阻作為溫度傳感器,ntc熱敏電阻阻值隨溫度的變化符合指數(shù)規(guī)律,其最大的缺點也在于它的非線性阻值分散性大復(fù)現(xiàn)行差,一般需要經(jīng)過線性化處理,使輸出電壓與溫度之間基本上
6、成線性關(guān)系。ntc熱敏電阻溫度傳感器的一致性和互換性較差.其次是他的老化速度較快。方案二 用模擬溫度傳感器比如普通的熱敏電阻。熱敏電阻的溫度特性曲線是一條指數(shù)曲線,非線性度較大,因此在使用時要進行線性化處理,線性化處理雖然能改善熱敏電阻的特性曲線,但比較復(fù)雜。為此常在要求不高的一般應(yīng)用中,作出在一定的溫度范圍內(nèi)溫度與阻值成線性關(guān)系的假定,才能簡化計算。另外,溫度與輸出電壓量是非線性的,讀出的是模擬量,需要a/d轉(zhuǎn)換器進行轉(zhuǎn)換才能送給數(shù)碼管顯示,從而增加了硬件的負擔。方案三 采用數(shù)字單片智能溫度傳感器 智能溫度傳感器(亦稱數(shù)字溫度傳感器)是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)(ate)的結(jié)晶。目
7、前,已開發(fā)出多種智能溫度傳感器系列產(chǎn)品。智能溫度傳感器內(nèi)部都包含溫度傳感器、a/d轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。由于ds18b20將溫度傳感器、信號放大調(diào)理、a/d轉(zhuǎn)換、接口全部集成于一芯片,與單片機連接簡單、方便,測量范圍廣,精度高。穩(wěn)定性好等優(yōu)點。廣泛的運用于溫度檢測領(lǐng)域從以上三種方案,非常很容易看出,采用方案三,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案三。溫度顯示器硬件設(shè)計2.2最小系統(tǒng)的設(shè)計2.2.1電源部分 8051的工作電壓為+5v,0.5v, 工作電流200ma其它部分工作電流:總電流:500ma 功耗:2.5w 圖2-1電源:橋式整流、濾波(兩個濾波電
8、容)、穩(wěn)壓三端穩(wěn)壓器件:7805系列三端穩(wěn)壓器件是最常用的線性降壓型dc/dc轉(zhuǎn)換器,目前也有大量先進的dc/dc轉(zhuǎn)換器層出不窮,例如低壓差線性穩(wěn)壓器ldo等。7805簡單易用,價格低廉,直到今天還在大多電路中采用。2.2.2時鐘電路的設(shè)計單片機工作的時間基準是由時鐘電路提供的。在單片機的xtal1和xtal2兩個引腳間,接一只晶振及兩只電容就構(gòu)成了單片機的時鐘電路,如圖2-2所示。電路中的器件選擇可以通過計算和實驗確定,也可以參考一些典型電路的參數(shù)。電路中,電容器c1和c2對振蕩器頻率有微調(diào)作用,通常的取值范圍3010pf;石英晶體選擇6mhz或12mhz都可以。其結(jié)果只是機器周期時間不同,
9、影響計數(shù)器的計數(shù)初值。 圖2-28051單片機的時鐘產(chǎn)生有以下兩種方法:(1)內(nèi)部時鐘方式:利用單片機內(nèi)部的振蕩器,然后在引腳xtal1(18腳)和xtal2(19腳)兩端接晶振,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘電路,外接晶振時,晶振兩端的電容一般選擇為30pf左右;這兩個電容對頻率有微調(diào)的作用,晶振的頻率范圍可在1.2mhz-12mhz之間選擇。(2)外部時鐘方式:此方式是利用外部振蕩脈沖接入xtal1或xtal2。hmos和chmos單片機外時鐘信號接入方式不同,hmos型單片機(例如8051)外時鐘信號由xtal2端腳注入后直接送至內(nèi)部時鐘電路,輸入端xtal1應(yīng)接
10、地。由于xtal2端的邏輯電平不是ttl的,故建議外接一個上接電阻。 外接時鐘信號通過一個二分頻的觸發(fā)器而成為內(nèi)部時鐘信號,要求高、低電平的持續(xù)時間都大于20ns,一般為頻率低于12mhz的方波。片內(nèi)時鐘發(fā)生器就是上述的二分頻觸發(fā)器,它向芯片提供了一個2節(jié)拍的時鐘信號。 前面已提到,計算機工作時,是在統(tǒng)一的時鐘脈沖控制下一拍一拍地進行的。由于指令的字節(jié)數(shù)不同,取這些指令所需要的時間也就不同,即使是字節(jié)數(shù)相同的指令,由于執(zhí)行操作有較大的差別,不同的指令執(zhí)行時間也不一定相同,即所需的拍節(jié)數(shù)不同。為了便于對cpu時序進行分析,一般按指令的執(zhí)行過程規(guī)定了幾中周期,即時鐘周期、機器周期和指令周期,也稱為
11、時序定時單位,下面分別予以講解。時鐘周期 時鐘周期也稱為振蕩周期,定義為時鐘脈沖的倒數(shù)(可以這樣來理解,時鐘周期就是單片機外接晶振的倒數(shù),例如12m的晶振,它的時間周期就是1/12 us),是計算機中最基本的、最小的時間單位。在一個時鐘周期內(nèi),cpu僅完成一個最基本的動作。對于某種單片機,若采用了1mhz的時鐘頻率,則時鐘周期為1us;若采用4mhz的時鐘頻率,則時鐘周期為250us。由于時鐘脈沖是計算機的基本工作脈沖,它控制著計算機的工作節(jié)奏(使計算機的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機型的計算機,時鐘頻率越高,計算機的工作速度就越快。但是,由于不同的計算機硬件電路和器件的不完全
12、相同,所以其所需要的時鐘周頻率范圍也不一定相同。2.2.3復(fù)位電路的設(shè)計復(fù)位是單片機的初始化操作,單片機系統(tǒng)在上電啟動運行時,都需要先復(fù)位。其作用是使cpu和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。因而,復(fù)位是一個很重要的操作方式。但單片機本身是不能自動進行復(fù)位的,必須配合相應(yīng)的外部復(fù)位電路才能實現(xiàn)。單片機的外部復(fù)位電路有上電復(fù)位和手動復(fù)位兩種。我們在設(shè)計單片機時,選用手動復(fù)位。上電復(fù)位利用電容器的充電實現(xiàn)。上電要求接通電源后,單片機實現(xiàn)自動復(fù)位操作。上電瞬間rst引腳獲得高電平,隨著電容的充電,rst引腳的高電平將逐漸下降,rst引腳的高電平只要能保持足夠的時間(2個機
13、器周期),單片機就可以進行復(fù)位操作。手動復(fù)位:按鍵后:電容器被短路放電,rst直接和vcc相連,就是高電平,此時進入“復(fù)位狀態(tài)”。松手后,電源開始對電容充電,此時,充電電源在電阻上,形成高電平送到rst,仍然是“復(fù)位狀態(tài)”;稍后,充電結(jié)束,電降將為0,電阻上的電壓也將為0,rst降為低電平,開始正常工作。 上電復(fù)位 手動復(fù)位圖2-3手動復(fù)位電路中電阻r14的阻值為8.2k另外一電阻阻值為1k,電容大小為10f對于懷疑是復(fù)位電路故障而不能正常工作的單片機也可以采用模擬復(fù)位的方法來判斷,單片機正常工作時第9 腳對地電壓為零,可以用導(dǎo)線短時間和5v 連接一下,模擬一下上電復(fù)位,如果單片機能正常工作了
14、,說明這個復(fù)位電路有問題。2.3溫度傳感器2.3.1 ds18b20 dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器ds18b20是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。 現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量。 ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器th和tl,高速暫存器。ds18b20的管腳排列如圖2-4所示。 圖2-4 ds18b20引腳定義: (1)dq為數(shù)字信號輸入/輸出端; (2
15、)gnd為電源地; (3)vdd為外接供電電源輸入端(在寄生電源接線方式時接地)。 2.3.2 ds18b20的主要特性 (1)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線供電;(2)獨特的單線接口方式,ds18b20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20的雙向通訊;(3)ds18b20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi); (4)溫范圍55+125,在-10+85時精度為0.5; (5)可編程 的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測
16、溫; (6)在9位分辨率時最多在 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快; (7)測量結(jié)果直接輸出數(shù)字溫度信號,以一 線總線串行傳送給cpu,同時可傳送crc校驗碼,具有極強的抗干擾糾錯能力; (8)負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。 2.3.3 ds18b20工作原理 ds18b20的讀寫時序和測溫原理與ds1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s 減為750ms。低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度
17、變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。 2.3.4 溫度格式 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18b20的兩個8比特的ram中,二進制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;
18、如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。 例如+125的數(shù)字輸出為07d0h,+25.0625的數(shù)字輸出為0191h,-25.0625的數(shù)字輸出為fe6fh,-55的數(shù)字輸出為fc90h 。 表1: ds18b20溫度值格式表 2.3.4 ds18b20的外部電源供電方式 在外部電源供電方式下,ds18b20工作電源由vdd引腳接入,此時i/o線不需要強上拉,不存在電源電流不足的問題,可以保證 轉(zhuǎn)換精度,同時在總線上理論可以掛接任意多個ds18b20傳感器,組成多點測溫系統(tǒng)。注意:在外部供電的方式下,ds18b20的gnd引腳不能懸空 ,否則不能轉(zhuǎn)
19、換溫度,讀取的溫度總是85。 圖2-5:外部供電方式單點測溫電路 圖2-52.4 at89s51at89s51是一個低功耗,高性能cmos8位單片機,片內(nèi)含4k bytes isp(in-system programmable)的可反復(fù)擦寫1000次的flash只讀程序存儲器,器件采用atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標準mcs-51指令系統(tǒng)及80c51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和isp flash存儲單元,功能強大的微型計算機的at89s51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。2.4.1主要特性:8031 cpu與mcs-51 兼容 4k字節(jié)可編程
20、flash存儲器(壽命:1000寫/擦循環(huán)) 全靜態(tài)工作:0hz-24khz 三級程序存儲器保密鎖定 128*8位內(nèi)部ram 32條可編程i/o線 兩個16位定時器/計數(shù)器6個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路2.4.2管腳說明 vcc:供電電壓gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是
21、一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(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)
22、勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口 rst:復(fù)位輸入端,高電平有效。當振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:地址鎖存允許/編程脈沖信號端。當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的
23、低位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 psen:外部程序存儲器的選通信號,低電平有效。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。 e
24、a/vpp:外部程序存儲器訪問允許。當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:片內(nèi)振蕩器反相放大器和時鐘發(fā)生器的輸入端。 xtal2:片內(nèi)振蕩器反相放大器的輸出端。2.5 數(shù)碼管2.5.1 led數(shù)碼顯示器連接方法: 共陽極接法:把二極管的陽極連接在一起構(gòu)成公共陽極,使用時公共陽極接+5v,每個發(fā)光二極管的陰極通過電阻與輸入端相連。當陰極端輸入低電平時,八段發(fā)光二極管就
25、導(dǎo)通點亮,而輸入高電平時則不點亮。 共陰極接法:把二極管的陰極連接在一起構(gòu)成公共陰極,使用時公共陰極接+5v,每個發(fā)光二極管的陽極通過電阻與輸入端相連。當陽極端輸入高電平時,八段發(fā)光二極管就導(dǎo)通點亮,而輸入低電平時則不點亮。(如圖示) a) 符號及引腳配置 b)共陰極led c)共陽極led2.5.2 方案 這里為了方便導(dǎo)線的連接,電流由外部電源提供,為灌電流,不增加單片機負擔,所以本次設(shè)計采用四位一體共陽數(shù)碼管。(如下圖)重點:引腳的測量,去實驗室找臺設(shè)備,把電壓調(diào)在1.5v2.0v之間。電源的正負極分別放在任意一腳上,根據(jù)數(shù)碼管的段亮就可以判斷引腳(如下圖) 2.5.3數(shù)碼管顯示方式 數(shù)碼
26、管顯示器有兩種工作方式,即靜態(tài)顯示方式和動態(tài)顯示方式。 在靜態(tài)顯示方式下,每位數(shù)碼管的ag和h端與一個8為的io相連。特點是:數(shù)碼管中的發(fā)光二極管恒定地導(dǎo)通或截至,直到顯示字符改變?yōu)橹埂?靜態(tài)顯示方式程序非常簡單,占用cpu時間資源很少,只是在顯示字符改變時調(diào)用一下顯示程序。但是硬件電路繁多,每個數(shù)碼管需要一個8位io口、一個8位驅(qū)動、8個限流電阻。一般應(yīng)用于數(shù)碼管位數(shù)少的場合。 相對于靜態(tài)顯示方式而言,動態(tài)顯示方式線路相對簡單,成本低,在單片機系統(tǒng)中常常采用動態(tài)掃描顯示方式。其工作原理是:逐個地循環(huán)點亮各位顯示器,也就是說在任一時刻只有一位顯示器在顯示。 2.5.電阻計算 電阻r9r16:r
27、=(5-0.3-2)0.01=270電阻r4r7:i=80.01100=8ma r=(5-0.7)8=5.3k 圖2-6 第三章 溫度顯示器系統(tǒng)的軟件設(shè)計4.1程序流程圖4.1.1主程序流程圖主程序的主要功能是負責溫度的實時顯示、讀出并處理ds18b20的測量的當前溫度值。(如圖4-1)4.1.2讀溫流程圖 讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進行crc校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。(如圖4-2)4.1.3讀出子程序流程圖y發(fā)ds18b20復(fù)位命令發(fā)跳過rom命令發(fā)讀取溫度命令讀取操作,crc校驗9字節(jié)完?c圖8rc校驗正?確?移入溫度暫存器結(jié)束nny計算溫度子程
28、序?qū)am中讀取值進行bcd碼的轉(zhuǎn)換運算,并進行溫度值正負的判定。(如圖4-4)初始化調(diào)用顯示子程序1s到?初次上電讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令nyny 圖4-1 圖4-2 圖4-3 圖4-4 4.2 程序 org 0000h ajmp mainq org 000bh ajmp tt0 mainq:org 002fh ;* ;讀18b20的溫度 ;* temph equ 50h templ equ 51h temphc equ 52h templc equ 53h zj9 equ 60h wdcgq bit p0.0 ;* ;系統(tǒng)初始化 ;* mov sp,#2fh m
29、ov tmod,#21h mov th0,#3ch;12mhz晶振時定時100ms mov tl0,#0b0h mov r7,#0ah setb ea setb et0 setb tr0 clr f0 clr 00h ;setb p2.3 mov temph,#00h mov templ,#00h mov temphc,#00h mov templc,#00h ;* ;主程序 ;* start:lcall dip jnb 00h,start clr 00h jnb f0,sta1 lcall read lcall dip lcall bcdlc lcall dip sta1:lcall ml
30、setb f0 ljmp start ;* ;t0中斷子程序 ;* tt0:push psw mov psw,#10h mov th0,#3ch mov tl0,#0b0h djnz r7,tt0out mov r7,#0ah setb 00h tt0out:pop psw reti; ;* ;讀1820的轉(zhuǎn)換溫度 ;* read:lcall rst1820 mov a,#0cch ;發(fā)跳過1820的rom命令 lcall writ1820 mov r6,#1ah ;延時104us djnz r6,$ mov a,#0beh ;讀1820內(nèi)部ram中9個字節(jié)的內(nèi)容 lcall writ1820
31、 mov r6,#1ah djnz r6,$ mov r5,#09h mov r0,#zj9 mov b,#00h read1:lcall read1820 mov r0,a inc r0 read2:lcall crc8 ;校驗讀到的八位數(shù) djnz r5,read1 mov a,b jnz readout mov a,zj9+0 mov templ,a mov a,zj9+1 mov temph,areadout:ret ; ;* ;給1820復(fù)位命令(只有收到有效的復(fù)位信號才能返回) ;*rst1820:setb wdcgq nop nop clr wdcgq mov r6,#50h ;
32、延時480us(640us) djnz r6,$ mov r6,#50h djnz r6,$ setb wdcgq mov r6,#12h ;延時70us(75us) djnz r6,$ mov r6,#1eh ;在250us內(nèi)讀復(fù)位信號 loop:mov c,wdcgq jc rstout djnz r6,loop mov r6,#032h djnz r6,$ sjmp rst1820 ret rstout:setb wdcgq ret ; ;* ;cpu向1820寫一個字節(jié)的數(shù)據(jù) ;*writ1820:mov r4,#08h setb wdcgq nop ;nop loop1:clr wd
33、cgq mov r6,#03h ;延時15us djnz r6,$ ;nop rrc a mov wdcgq,c mov r6,#1ah ;延時104us djnz r6,$ setb wdcgq djnz r4,loop1 ret ; ;* ;cpu從1820中讀出一個字節(jié)的數(shù)據(jù) ;*read1820:mov r4,#08h setb wdcgq nop ;nop loop2:clr wdcgq ;nop ;nop nop setb wdcgq mov r6,#03h ;延時15us djnz r6,$ ;nop mov c,wdcgq mov r6,#1eh ;延時120us djnz r
34、6,$ rrc a setb wdcgq djnz r4,loop2 mov r6,#1eh ;延時120us djnz r6,$ ret ; ;* ;接收的數(shù)據(jù)校驗子程序 ;* crc8:push acc mov r4,#08h lop1:xrl a,b rrc a mov a,b jnc lop2 xrl a,#18h lop2:rrc a mov b,a pop acc rr a push acc djnz r4,lop1 pop acc ret; ;* ;給1820發(fā)溫度轉(zhuǎn)換命令(1820轉(zhuǎn)換一次必須先復(fù)位-發(fā)r0m命令-發(fā)ram命令) ;* ml:lcall rst1820 ;給18
35、20復(fù)位 mov a,#0cch ;給1820發(fā)跳過1820的rom命令 lcall writ1820 mov r6,#1ah ;延時104us djnz r6,$ mov a,#44h ;給1820的ram發(fā)轉(zhuǎn)換指令 lcall writ1820 mov r6,#1ah ;延時104us djnz r6,$ ret ;*; ;* ;溫度數(shù)據(jù)處理子程序 ;* bcdlc:mov a,temph anl a,#80h jz lp1 ;為正數(shù)轉(zhuǎn)lp1 clr c ;為負數(shù)時,將補碼轉(zhuǎn)換成原碼 mov a,templ cpl a add a,#01h mov templ,a mov a,temph
36、cpl a addc a,#00h mov temph,a mov temphc,#0bh ;符號位為負的標志為0bh sjmp lp2 lp1:mov temphc,#0ah ;符號位為正的標志為0ah lp2:mov a,temphc swap a mov temphc,a ; mov a,templ anl a,#0fh ;乘0.0625 mov dptr,#tab1 movc a,a+dptr mov templc,a ;小數(shù)部分的bcd碼 ; mov a,templ anl a,#0f0h swap a mov templ,a mov a,temph anl a,#0fh swap
37、a orl a,templ lcall hexbcd mov templ,a anl a,#0f0h swap a orl a,temphc mov temphc,a mov a,templ anl a,#0fh swap a orl a,templc mov templc,a mov a,r4 jz tempout anl a,#0fh swap a mov r4,a mov a,temphc anl a,#0fh orl a,r4 mov temphc,atempout:ret tab1:db 00h,01h,01h,02h,03h,03h,04h,04h,05h,06h db 06h,07h,08h,08h,09h,09h ;* ;單字節(jié)十六進制轉(zhuǎn)換成bcd碼 ;* hexbcd:mov b,#64h div ab mov r4,a mov a,#0ah xch a,b div ab swap a orl a,b ret; ;* ;顯示子程序 ;*; dip:mov a,temphc anl a,#0f0h swap a mov dptr,#tab movc a,a+dptr
溫馨提示
- 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篇
- 二零二五版發(fā)型師與美發(fā)機構(gòu)聘用合同3篇
- 二零二五版環(huán)保節(jié)能技術(shù)合作合同模板2篇
- 二零二五年音樂節(jié)餐飲租賃合同2篇
- 二零二五版環(huán)保型建筑砂漿采購合同模板-綠色建筑專用3篇
- 二零二五版海綿城市建設(shè)土石方運輸與雨水收集合同3篇
- 二零二五版環(huán)保打印機銷售與環(huán)保認證合同范本3篇
- 二零二五年鋼板樁租賃及拆除作業(yè)合同3篇
- 二零二五年度文化藝術(shù)展覽贊助合同3篇
- 2025年度智能機器人制造領(lǐng)域技術(shù)轉(zhuǎn)移合同規(guī)范3篇
- 申根簽證申請表模板
- 企業(yè)會計準則、應(yīng)用指南及附錄2023年8月
- 諒解書(標準樣本)
- 2022年浙江省事業(yè)編制招聘考試《計算機專業(yè)基礎(chǔ)知識》真題試卷【1000題】
- 認養(yǎng)一頭牛IPO上市招股書
- GB/T 3767-2016聲學聲壓法測定噪聲源聲功率級和聲能量級反射面上方近似自由場的工程法
- GB/T 23574-2009金屬切削機床油霧濃度的測量方法
- 西班牙語構(gòu)詞.前后綴
- 動物生理學-全套課件(上)
- 河北省衡水市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- DB32-T 2665-2014機動車維修費用結(jié)算規(guī)范-(高清現(xiàn)行)
評論
0/150
提交評論