簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)與制作
摘 要:單片機(jī)在日用電子產(chǎn)品中的應(yīng)用越來(lái)越廣泛,溫度則是人們?nèi)粘I钪谐3P枰獪y(cè)量和控制的一個(gè)量。本文作者采用AT89C51單片機(jī)和溫度傳感器AD590從硬件和軟件兩方面介紹了一款簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)過(guò)程,并對(duì)硬件原理圖和程序流程圖作了簡(jiǎn)潔的描述。
關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89C51;溫度傳感器AD590;數(shù)字溫度計(jì);模數(shù)轉(zhuǎn)換;數(shù)碼顯示
1.前言
隨著單片機(jī)技術(shù)的不斷發(fā)展,單片機(jī)在日用電子產(chǎn)品中的應(yīng)用越來(lái)越廣泛,溫度傳感器AD590具有線性優(yōu)良、性能穩(wěn)定、靈敏度高、抗干擾能力強(qiáng)、使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于冰箱、空調(diào)器、糧倉(cāng)等日常生活中溫度的測(cè)量和控制。傳統(tǒng)的溫度計(jì)有反應(yīng)速度慢、讀數(shù)麻煩、測(cè)量精度不高、誤差大等缺點(diǎn),本文作者利用集成溫度傳感器AD590設(shè)計(jì)并制作了一款基于AT89C51的4位數(shù)碼管顯示的數(shù)字溫度計(jì),其電路簡(jiǎn)單,軟硬件結(jié)構(gòu)模塊化,易于實(shí)現(xiàn)。
2.系統(tǒng)功能原理及硬件組成
該數(shù)字溫度計(jì)利用AD590集成溫度傳感器及其接口電路完成溫度的測(cè)量并轉(zhuǎn)換成模擬電壓信號(hào),經(jīng)由模數(shù)轉(zhuǎn)換器ADC0804轉(zhuǎn)換成單片機(jī)能夠處理的數(shù)字信號(hào),然后送到單片機(jī)AT89C51中進(jìn)行處理變換,最后將溫度值顯示在D4、D3、D2、D1共4位七段碼LED顯示器上。
系統(tǒng)以AT89C51單片機(jī)為控制核心,加上AD590測(cè)溫電路、ADC模數(shù)轉(zhuǎn)換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時(shí)鐘電路等組成。系統(tǒng)組成框圖如圖1所示。
圖1 系統(tǒng)組成框圖
2.1 AT89C51單片機(jī)
Atmel公司的生產(chǎn)的AT89C51單片機(jī)是一種低功耗/低電壓、高性能的8位單片機(jī),內(nèi)部除CPU外,還包括128字節(jié)RAM,4個(gè)8位并行I/O口,5個(gè)中斷優(yōu)先級(jí),2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,片內(nèi)集成4K字節(jié)可改變程序Flash存儲(chǔ)器,具有低功耗,速度快,程序擦寫(xiě)方便等優(yōu)點(diǎn),完全滿足本系統(tǒng)設(shè)計(jì)需要。
單片機(jī)P0口作為ADC0804轉(zhuǎn)換數(shù)據(jù)的輸入端,P2.0接ADC0804的INTR端檢測(cè)數(shù)據(jù)轉(zhuǎn)換是否結(jié)束。P1.0~P1.3的輸出信號(hào)接到譯碼器7447上作為數(shù)碼管的顯示,P1.4~P1.7則作為4個(gè)數(shù)碼管的位選信號(hào)控制。P3口有特殊的功能,P3.6用于控制ADC0804的啟動(dòng),P3.7用于控制讀取ADC0804的轉(zhuǎn)換結(jié)果。
2.2 AD590溫度傳感器
AD590是美國(guó)模擬器件公司生產(chǎn)的單片集成兩端感溫電流源。AD590測(cè)溫范圍為-55℃~+150℃,滿足人們?nèi)粘Ia(chǎn)和生活中的溫度范圍。AD590電源電壓可在4V~6V范圍變化,可以承受44V正向電壓和20V反向電壓,因而器件反接也不會(huì)被損壞。AD590產(chǎn)生的電流與絕對(duì)溫度成正比,它有非常好的線性輸出性能,溫度每增加1℃,其電流增加1μA。
AD590溫度與電流的關(guān)系如下表所示:
攝氏溫度 | AD590電流 | 經(jīng)10KΩ電壓 |
0℃ | 273.2 μA | 2.732 V |
10℃ | 283.2 μA | 2.832 V |
20℃ | 293.2 μA | 2.932 V |
30℃ | 303.2 μA | 3.032 V |
40℃ | 313.2 μA | 3.132 V |
50℃ | 323.2 μA | 3.232 V |
60℃ | 333.2 μA | 3.332 V |
100℃ | 373.2 μA | 3.732 V |
為了提高精度,擴(kuò)大測(cè)量范圍,在A/D轉(zhuǎn)換前還要將信號(hào)加以放大并進(jìn)行零點(diǎn)遷移,因而一個(gè)高穩(wěn)定性的、高精度的放大電路是必須的。當(dāng)溫度變化時(shí),AD590會(huì)產(chǎn)生電流變化,當(dāng)AD590的電流通過(guò)一個(gè)10kΩ的電阻時(shí),這個(gè)電阻上的壓降為10mV,即轉(zhuǎn)換成10mV/K,為了使此10kΩ電阻精確,可用一個(gè)9kΩ的電阻與一個(gè)2kΩ的電位器串聯(lián),然后通過(guò)調(diào)節(jié)電位器來(lái)獲得精確的10kΩ。運(yùn)算放大器A1被接成電壓跟隨器形式,以增加信號(hào)的輸入阻抗,由運(yùn)放A2減去2.732做零位調(diào)整(即把絕對(duì)溫度轉(zhuǎn)成攝氏溫度),最后由運(yùn)放A3反相并放大5倍輸送給A/D轉(zhuǎn)換器。具體硬件連接圖如圖2所示。
圖2 AD590溫度采集及模數(shù)轉(zhuǎn)換電路
2.3 ADC0804模數(shù)轉(zhuǎn)換器
AD590測(cè)溫電路輸出的電壓信號(hào)為模擬信號(hào),要進(jìn)行數(shù)碼顯示,還需將此信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。為此我們通過(guò)A/D轉(zhuǎn)換器ADC0804將輸入的模擬值轉(zhuǎn)換成數(shù)字值,經(jīng)AT89C51單片機(jī)處理后輸出到P1以控制溫度顯示電路。
ADC0804是用CMOS集成工藝制成的逐次比較型摸數(shù)轉(zhuǎn)換芯片,分辨率8位,轉(zhuǎn)換時(shí)間100μs,輸入電壓范圍為0~5V,增加某些外部電路后,輸入模擬電壓可為5V。該芯片內(nèi)有輸出數(shù)據(jù)鎖存器,當(dāng)與計(jì)算機(jī)連接時(shí),轉(zhuǎn)換電路的輸出可以直接連接在CPU數(shù)據(jù)總線上,無(wú)須附加邏輯接口電路。具體硬件連接圖如圖2所示。
2.4 七段碼LED溫度顯示電路
由發(fā)光二極管組成的七段碼LED顯示器是單片機(jī)應(yīng)用產(chǎn)品中最常用的廉價(jià)輸出設(shè)備,用于顯示各種數(shù)字和字符。該數(shù)字溫度計(jì)的溫度顯示由4位七段碼LED顯示器組成,單片機(jī)以并行通信方式從P1.0~P1.7口輸出段碼和控制信號(hào),通過(guò)7447 TTL BCD譯碼器譯碼,用4個(gè)共陽(yáng)極LED動(dòng)態(tài)顯示溫度的各個(gè)數(shù)位。具體硬件連接圖如圖3所示。
圖3 溫度顯示及單片機(jī)時(shí)鐘、復(fù)位電路
3.系統(tǒng)軟件設(shè)計(jì)與編程
該數(shù)字溫度計(jì)軟件部分用MCS-51匯編語(yǔ)言編程實(shí)現(xiàn),采用模塊化程序設(shè)計(jì)思想,將軟件劃分成若干單元,主要包括主程序、十進(jìn)制數(shù)據(jù)轉(zhuǎn)換及調(diào)整子程序、LED數(shù)碼顯示子程序和延時(shí)子程序等。本系統(tǒng)具體匯編源程序見(jiàn)后附。
3.1 系統(tǒng)主程序
在主程序中,系統(tǒng)上電自動(dòng)復(fù)位以后首先設(shè)置堆棧,然后啟動(dòng)ADC0804,開(kāi)始轉(zhuǎn)換AD590測(cè)溫電路輸入的電信號(hào),待數(shù)據(jù)轉(zhuǎn)換結(jié)束后讀入到累加器A,然后進(jìn)行十進(jìn)制數(shù)據(jù)轉(zhuǎn)換調(diào)整,輸出給顯示電路。主程序流程圖如圖4所示。
圖4 主程序流程圖
3.2 十進(jìn)制數(shù)據(jù)轉(zhuǎn)換調(diào)整子程序
由于ADC0804轉(zhuǎn)換后的數(shù)據(jù)是二進(jìn)制數(shù)據(jù),而七段碼LED顯示器所要顯示的數(shù)據(jù)是十進(jìn)制數(shù)據(jù),因此需要進(jìn)行二、十進(jìn)制數(shù)據(jù)轉(zhuǎn)換。ADC0804輸出的最大轉(zhuǎn)換值為FFH(255),由于運(yùn)放A3放大5倍,因此本數(shù)字溫度計(jì)的最大測(cè)量溫度為5.1V/5=1.02V,即102℃。由255*X=102,得知X=0.4,即先乘4再除10。255*4=1020,其中高位10送高位顯示緩沖區(qū)R4,低位20送低位顯示緩沖區(qū)R5,將小數(shù)點(diǎn)設(shè)在D2位上,并將其分別顯示為1(D4) 0(D3) 2(D2) . 0(D1) ℃。所以,十進(jìn)制轉(zhuǎn)換調(diào)整流程為A/D(二進(jìn)制)→十進(jìn)制→乘4→顯示。程序流程圖如圖5所示。
圖5 十進(jìn)制數(shù)據(jù)轉(zhuǎn)換調(diào)整子程序流程圖
3.3 LED數(shù)碼顯示子程序
十進(jìn)制轉(zhuǎn)換調(diào)整后的數(shù)據(jù)送到寄存器R5、R4中,然后通過(guò)P1口把數(shù)據(jù)輸出給D4、D3、D2、D1四個(gè)數(shù)碼顯示器中,從而最終把測(cè)得的溫度顯示出來(lái)。顯示子程序流程圖如圖6所示。
圖6 顯示子程序流程圖
4.結(jié)束語(yǔ)
本文采用AT89C51單片機(jī)做主控芯片,利用溫度傳感器AD590測(cè)量溫度,并配上相應(yīng)的外部接口電路,介紹了一款簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)與制作過(guò)程。該溫度計(jì)系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單、功能穩(wěn)定、使用方便,適用于人們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的各種溫度測(cè)量。
參考文獻(xiàn):
[1]白澤生. 用MCS-51單片機(jī)實(shí)現(xiàn)溫度的檢測(cè)[J].現(xiàn)代電子技術(shù),2005,(10):1-3.
[2]張開(kāi)生,郭國(guó)法.MCS-51單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,21(7):68-69.
[3]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,2004.
[4]楊剛,周群.電子系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2004.
附作者簡(jiǎn)介:
郇玉龍(1982-),男,山東師范大學(xué)傳播學(xué)院研究生,主要研究方向:電子信息科學(xué)技術(shù)及數(shù)字衛(wèi)星電視;趙寧(1983-),女,山東師范大學(xué)傳播學(xué)院研究生,主要研究方向:電子信息科學(xué)技術(shù)及數(shù)字衛(wèi)星電視。
評(píng)論