采用單片機(jī)溫度控制器電路設(shè)計(jì) 2_第1頁
采用單片機(jī)溫度控制器電路設(shè)計(jì) 2_第2頁
采用單片機(jī)溫度控制器電路設(shè)計(jì) 2_第3頁
采用單片機(jī)溫度控制器電路設(shè)計(jì) 2_第4頁
采用單片機(jī)溫度控制器電路設(shè)計(jì) 2_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 題目:采用單片機(jī)的溫度控制器電路設(shè)計(jì)采用單片機(jī)的溫度控制器電路設(shè)計(jì)摘要溫度是工業(yè)生產(chǎn)和社會(huì)生活中常見的被控參數(shù),溫度的測量與控制在自動(dòng)化生產(chǎn)過程中占有很大比重。本文介紹的是一種基于單片機(jī)AT89C51和溫度傳感器AD590的溫度控制器。為了實(shí)現(xiàn)對溫度的檢測及控制的功能,本系統(tǒng)電路由以下幾個(gè)部分構(gòu)成:溫度檢測、信號處理、模數(shù)轉(zhuǎn)換、數(shù)據(jù)顯示、設(shè)定值輸入和溫度控制。本文具體研究內(nèi)容包括:通過4*3鍵盤設(shè)定控制溫度并由數(shù)碼管顯示;利用溫度傳感器AD590對溫度進(jìn)行檢測;采集的信號經(jīng)過調(diào)零、放大處理后送給A/D轉(zhuǎn)換器ADC0809;將轉(zhuǎn)換后得到的數(shù)字信號送給單片機(jī)并由數(shù)碼管顯示,單片機(jī)AT89C51將

2、檢測值與設(shè)定值進(jìn)行比較,根據(jù)比較結(jié)果發(fā)出不同的控制信號。本溫度控制器的設(shè)計(jì)達(dá)到了設(shè)計(jì)要求,能夠?qū)崿F(xiàn)對00C1000C范圍內(nèi)溫度的檢測和控制功能。關(guān)鍵詞:溫度測量;傳感器;模數(shù)轉(zhuǎn)換器;鍵盤輸入Temperature Controller Using Microcontroller ABSTRACTIn industrial production and social life,the temperature parameter is a common control parameter,the measurement and control of the temperature is one o

3、f the most important missions of the automated production.This paper introduces a temperature-controller based on AT89C51 single chip microcomputer and AD590 temperature sensor.In order to achieve the function of temperature measurement and control,the system is consist of these parts: temperature m

4、easurement,signal process,A/D conversion,data display,the input of the given value and temperature control.The specific contents of the paper include: The given value is input by 4*3 keyboards and displayed by digital lights;By using AD590 temperature sensor,we can measure the temperature; Gathered

5、signal is delayed to A/D converter after rectified and amplified , then the signal is delayed to AT89C51 single chip microcomputer and displayed by digital lights. AT89C51 single chip microcomputer can compare the measurement value with the given value and then create the different control signals a

6、ccording to the comparison result. In the end this intelligent temperature-controller can meet the design requirements and realize the function of temperature measurement and control from 00C to 1000C. Key words: Temperature measurement;Sensors; Adc; Keyboard input目錄 前言1 1.1課題設(shè)計(jì)背景和意義1 1.2國內(nèi)外研究狀況和發(fā)展趨

7、勢1 1.3課題設(shè)計(jì)的主要內(nèi)容1 系統(tǒng)硬件設(shè)計(jì)2 2.1總體設(shè)計(jì)思路2 2.2溫度檢測及調(diào)零放大電路2 2.2.1AD590簡介2 2.2.2溫度檢測電路3 2.2.3調(diào)零放大電路4 2.3A/D轉(zhuǎn)換電路4 2.3.1ADC0809簡介4 2.3.2ADC0809與單片機(jī)的接口電路6 2.4LED顯示電路7 2.5鍵盤接口和控制電路8 2.6單片機(jī)外圍電路及控制9 3系統(tǒng)軟件設(shè)計(jì)12 3.1程序設(shè)計(jì)總體思路12 3.2模數(shù)轉(zhuǎn)換模塊12 3.3溫度顯示模塊14 3.4溫度設(shè)定模塊16 3.5控制模塊17 4結(jié)論21 參考文獻(xiàn)23 致謝22 附錄24 前言1.1課題設(shè)計(jì)背景和意義隨著科學(xué)技術(shù)的發(fā)展

8、、社會(huì)的進(jìn)步,在控制系統(tǒng)以及儀器、儀表的發(fā)展中,以單片機(jī)取代傳統(tǒng)的模擬電路已經(jīng)成為儀器、儀表智能化、先進(jìn)化的標(biāo)志。基于單片機(jī)的智能溫度控制系統(tǒng)以其體積小、自動(dòng)化程度高,使用方便等特點(diǎn)在工業(yè)領(lǐng)域得到廣泛的應(yīng)用。單片機(jī)具有體積小,重量輕,價(jià)格便宜,可靠性高等特點(diǎn),所以深受廣大設(shè)計(jì)人員的喜愛。這使得單片機(jī)控制技術(shù)取代傳統(tǒng)的模擬控制技術(shù),從而提高產(chǎn)品的控制精度,使高產(chǎn)低耗變成為現(xiàn)實(shí)。因此,溫度檢測與控制成為一個(gè)重要的課題,設(shè)計(jì)采用單片機(jī)的溫度控制器具有較強(qiáng)的現(xiàn)實(shí)意義。1.2國內(nèi)外研究狀況和發(fā)展趨勢采用單片機(jī)的溫度控制器是含有微型計(jì)算機(jī)或者微型處理器的測量儀器,擁有對數(shù)據(jù)的存儲運(yùn)算邏輯判斷及自動(dòng)化操作等

9、功能。它的出現(xiàn),極大的擴(kuò)充了傳統(tǒng)儀器的應(yīng)用范圍。智能溫度控制器憑借其體積小、功能強(qiáng)、功耗低等優(yōu)勢,迅速在家用電器、科研單位和工業(yè)中得到了廣泛的應(yīng)用。伴隨著網(wǎng)絡(luò)技術(shù)的飛速的發(fā)展,Internet技術(shù)正在逐漸向工業(yè)控制和智能儀器儀表設(shè)計(jì)領(lǐng)域滲透,實(shí)現(xiàn)智能儀器儀表系統(tǒng)基于Internet的通訊能力以及對設(shè)計(jì)好的儀表進(jìn)行遠(yuǎn)程升級、功能重置和系統(tǒng)維護(hù),因此溫度控制器有著無限的發(fā)展前景。1.3課題設(shè)計(jì)的主要內(nèi)容本課題研究的目標(biāo)是完成基于單片機(jī)的智能溫度控制器的設(shè)計(jì)。根據(jù)設(shè)計(jì)要求本溫度控制器可以實(shí)現(xiàn)對溫度信號的檢測處理、數(shù)據(jù)顯示、設(shè)定溫度輸入以及對溫度的控制。本溫度控制器的具體功能主要由下面幾個(gè)部分實(shí)現(xiàn):溫

10、度檢測以及調(diào)零放大部分、模數(shù)轉(zhuǎn)換部分、數(shù)據(jù)顯示部分、設(shè)定值輸入部分和溫度控制部分。本文將重點(diǎn)解決以下問題:利用集成溫度傳感器AD590對被控溫度進(jìn)行檢測,將采集到與熱力學(xué)溫度成線性關(guān)系的電流信號經(jīng)過調(diào)零、放大處理電路轉(zhuǎn)換成與攝氏溫度成線性關(guān)系的電壓信號;將該電壓信號后送給模數(shù)轉(zhuǎn)換器ADC0809,再將模數(shù)轉(zhuǎn)換后得到的數(shù)字信號送給單片機(jī);單片機(jī)AT89C51將檢測值與設(shè)定值進(jìn)行比較,根據(jù)控制要求發(fā)出不同的控制信號;溫度顯示部分采用數(shù)碼管動(dòng)態(tài)顯示方式顯示溫度值;設(shè)定溫度輸入部分是通過4*3鍵盤與74C922配合實(shí)現(xiàn)。本文將具體闡述上述問題的解決方案和實(shí)現(xiàn)過程,最終完成滿足設(shè)計(jì)要求的溫度控制器。系統(tǒng)

11、硬件設(shè)計(jì)2.1總體設(shè)計(jì)思路根據(jù)設(shè)計(jì)目標(biāo)和要求,本系統(tǒng)硬件電路總體設(shè)計(jì)思路如下:首先用AD590 作為溫度傳感器,將其采集到的溫度量轉(zhuǎn)換為模擬電流量,然后經(jīng)過模擬放大電路,使其變?yōu)锳DC0809可以接受的電壓量,然后再輸入到模數(shù)轉(zhuǎn)換器ADC0809中,經(jīng)過模數(shù)轉(zhuǎn)換后的數(shù)字量再輸入到AT89C51單片機(jī)進(jìn)行處理并顯示溫度值,單片機(jī)根據(jù)檢測值與設(shè)定值的比較結(jié)果發(fā)出控制信號驅(qū)動(dòng)外部設(shè)備(控制裝置)工作,進(jìn)而進(jìn)一步調(diào)節(jié)控制溫度,最后本系統(tǒng)可通過鍵盤輸入溫度上限和下限兩個(gè)設(shè)定值,將控制溫度控制在一個(gè)范圍內(nèi)。當(dāng)檢測溫度高于設(shè)定的上限溫度值時(shí),單片機(jī)發(fā)出驅(qū)動(dòng)信號使紅色二極管點(diǎn)亮;當(dāng)檢測溫度低于設(shè)定的下限溫度值

12、時(shí),單片機(jī)發(fā)出驅(qū)動(dòng)信號使綠色二極管點(diǎn)亮。系統(tǒng)硬件組成框圖如圖2-1所示。溫度檢測信號調(diào)零放大模數(shù)轉(zhuǎn)換控制溫度設(shè)定控制提示溫度顯示單片機(jī)圖2-1系統(tǒng)硬件組成框圖2.2溫度檢測及調(diào)零放大電路本系統(tǒng)溫度采集選用電流輸出型集成溫度傳感器AD590。本單元電路所解決的問題是將溫度傳感器AD590輸出的電流信號轉(zhuǎn)換成與溫度呈線性關(guān)系的電壓信號。2.2.1AD590簡介集成溫度傳感器AD590是一種電流型溫度傳感器,它是由美國模擬器件公司生產(chǎn)的,所需的溫度值通過測量電流值即可得到,然后在輸出端串聯(lián)一個(gè)電阻便可轉(zhuǎn)換為電壓信號。它只需直流電源就能工作,而且無需進(jìn)行線性校正1。作為直流輸出型傳感器的一個(gè)特點(diǎn)是,和

13、電壓輸出型相比,它具有很強(qiáng)的抗外界干擾能力。它的主要特性有: 測量溫度范圍:-550C+1500C。 工作電壓范圍:+4V+30V。 線性電流輸出:流過器件的電流等于器件所處環(huán)境的熱力學(xué)溫度度數(shù),即電流變化1A,相當(dāng)于溫度變化1K。 穩(wěn)定性好:在5V15V之間變化,其電流波動(dòng)在1A以下。 輸出阻抗高:710M。 精度高: AD590分為五個(gè)等級,以后綴I、J、K、L、M(由精度低到精度高)加以區(qū)分。低檔的AD590誤差較大,對精密要求較高的測溫電路中一般選用靈敏度高的L或M型。其中M檔精度最高,在-550C+1500C范圍內(nèi),非線性誤差為0.30C2。AD590的外形如圖2-2(a)所示,它采

14、用金屬殼3腳封裝,其中1腳接電源端V+;2腳為電流輸出端IO;3腳為管殼,一般將其接地,起到屏蔽作用。AD590在電路設(shè)計(jì)時(shí)所用的電路符號為圖2-2(b)所示。 (a)外形 (b)符號圖2-2AD590電路符號2.2.2溫度檢測電路以攝氏零度(對應(yīng)絕對溫度273.2K)為基準(zhǔn),溫度每升高1K,AD590的輸出電流就增加1A。因?yàn)锳D590輸出電流比較小,且模數(shù)轉(zhuǎn)換器要求輸入是電壓信號,所以將AD590的輸出接一個(gè)精密的10k電阻,當(dāng)AD590輸出1A電流時(shí),電阻上的壓降要增加10mV,即溫度每變化1K電壓就會(huì)隨著變化10mV。但是由于電阻本身存在誤差,在實(shí)際應(yīng)用電路中用一個(gè)阻值可調(diào)的5k和一個(gè)

15、阻值為6.8k的電阻串聯(lián)替代10k電阻進(jìn)行補(bǔ)償,以消除電阻誤差。電路如圖2-3所示。圖2-3實(shí)際應(yīng)用電路2.2.3調(diào)零放大電路由于溫度傳感器采集到的溫度信號轉(zhuǎn)變成的電信號一般非常微弱,不能直接傳輸給A/D轉(zhuǎn)換器,因此需要進(jìn)行調(diào)零放大處理。本電路實(shí)現(xiàn)的功能即為將輸出的電壓信號處理成適合于ADC0809的輸入信號。電路如圖2-4所示。圖2-4調(diào)零放大電路AD590輸出電流經(jīng)10K電阻轉(zhuǎn)換成電壓,該電壓經(jīng)過電壓跟隨器得到測量電壓U2,U2=(273.2+T)A*10k(T為攝氏溫度值),此處電壓跟隨器的作用為利用其高輸入阻抗使電流不分流。本設(shè)計(jì)想要實(shí)現(xiàn)當(dāng)被測溫度為00C時(shí),輸出的測量電壓為0V即U2

16、=0V,所以電路需要加調(diào)零環(huán)節(jié)。電路中使用齊納二極管作為穩(wěn)壓元件, 作用是消除電源雜訊。通過調(diào)節(jié)可變電阻R1來得到調(diào)零電壓。調(diào)試時(shí)調(diào)節(jié)的阻值并測量調(diào)零電壓使U1=2.732V。U1和U2經(jīng)差分比例運(yùn)算電路運(yùn)算放大后得到輸出電壓U0=Rf(U2-U1)/R=T/20(V)。經(jīng)運(yùn)算可知,當(dāng)檢測溫度T=1000C時(shí),U0=5V;T=00C時(shí),U0=0V。這樣就實(shí)現(xiàn)了AD590檢測輸出的電流信號轉(zhuǎn)換為05V電壓信號的設(shè)計(jì)目標(biāo)。2.3A/D轉(zhuǎn)換電路由于單片機(jī)只能處理數(shù)字信號,因此要將調(diào)零放大后的模擬信號轉(zhuǎn)換為數(shù)字信號再送單片機(jī)進(jìn)行處理。本電路采用ADC0809作為A/D轉(zhuǎn)換器。2.3.1ADC0809簡

17、介ADC0809含8位A/D轉(zhuǎn)換器,8路多路開關(guān),以及與微型計(jì)算機(jī)兼容的控制邏輯的CMOS組件,其轉(zhuǎn)換方法為逐次逼近型。在A/D轉(zhuǎn)換器內(nèi)部有一個(gè)高阻抗斬波穩(wěn)定比較器,一個(gè)帶模擬開關(guān)數(shù)組的256電阻分壓器,以及一個(gè)逐次逼近型寄存器。8路的模擬開關(guān)的通/斷由地址鎖存器和譯碼器控制,可以在8個(gè)通道中任意訪問一個(gè)單邊的模擬信號。本系統(tǒng)只用到一個(gè)0通道。輸出具有TTL三態(tài)鎖存緩沖器,可直接連到單片機(jī)數(shù)據(jù)總線上3。(1)ADC0809芯片技術(shù)指標(biāo) 單一電源,+5V供電,模擬量輸入范圍是05V。 可鎖存三態(tài)輸出,輸出與TTL兼容。 分辨率為8位。 不需經(jīng)行零位及滿量程調(diào)整。 溫度范圍為:-400C+850C

18、。 功耗為15mW。(2)ADC0809芯片引腳功能介紹ADC0809為28引腳雙列直插式器件,其引腳圖如圖2-5所示。圖2-5ADC0809引腳圖 START:啟動(dòng)信號輸入端。正脈沖信號有效,脈沖上升沿復(fù)位A/D轉(zhuǎn)換器,將所有內(nèi)部寄存器清零,下降沿啟動(dòng)A/D轉(zhuǎn)換。START可與ALE共用一個(gè)脈沖信號。 ALE:地址鎖存允許,高電平有效。當(dāng)ALE為高電平時(shí),允許C、B、A所示的通道被選中,并把該通道的模擬量接入A/D轉(zhuǎn)換器。 EOC:轉(zhuǎn)換結(jié)束信號。高電平有效,轉(zhuǎn)換期間為低電平,轉(zhuǎn)換結(jié)束為高電平,可用作查詢或中斷信號。 OE:數(shù)據(jù)輸出允許端。當(dāng)此信號有效時(shí),允許從A/D轉(zhuǎn)換器的鎖存器中讀出數(shù)字量

19、。此信號可作為ADC0809的片選信號,高電平有效。 IN0-IN7:8路模擬量輸入端。輸入電壓05V(5V供電)8通道多路開關(guān)能直接存取8個(gè)單端模擬信號中的一個(gè),是用地址譯碼器來選擇某一個(gè)特定的通道。 CLK:時(shí)鐘信號,允許頻率范圍為101280KHz,超出此范圍ADC0809將不能正常工作。 ADDA,ADDB,ADDC:8路模擬開關(guān)的地址選通信號輸入端。 D7-D0:數(shù)字量輸出端。 Vref(+),Vref(-):參考電壓端子。一般情況下,Vref(+)=+5V,Vref(-)=0V。 Vcc:電源端子,接+5V。 GND:接地端。2.3.2ADC0809與單片機(jī)的接口電路ADC0809

20、與單片機(jī)AT89C51的接口電路圖如圖2-6所示。電壓信號輸入端圖2-6ADC0809與單片機(jī)接口電路 A/D轉(zhuǎn)換電路的功能是將調(diào)零放大電路得到的模擬量轉(zhuǎn)換成數(shù)字量供單片機(jī)處理,需要解決ADC0809與單片機(jī)的接口問題。(1)根據(jù)設(shè)計(jì)要求,本系統(tǒng)只擴(kuò)展了一塊ADC0809,使單片機(jī)的 經(jīng)反相器連接到ADC0809的START和ALE端口, 經(jīng)反相器連接到ENABLE端口,不用連接P2的端口4。(2)本系統(tǒng)中只有一路檢測信號,所以ADC0809只需一個(gè)輸入端口,這里采用IN0作為輸入端口(IN1-IN7置零),所以通道號選擇端子CBA=000(即將C,B,A三個(gè)端子置零)。(3)單片機(jī)P0.0-

21、P0.7口接到ADC0809的數(shù)字量輸出端D0-D7,此處需注意的是:由于AT89C51的P0口沒有上拉電阻,故其在此應(yīng)加外部上拉電阻。(4)ADC0809沒有內(nèi)部時(shí)鐘電路,CLOCK需由AT89C51來提供。本系統(tǒng)中,單片機(jī)AT89C51用12MHz晶振,ALE端為fosc的六分頻2MHz,這個(gè)頻率對于ADC0809來說頻率太高,于是ALE信號經(jīng)過兩個(gè)D觸發(fā)器四分頻得到500KHz時(shí)鐘信號,接入ADC0809的CLOCK端。本電路D觸發(fā)器采用74LS74。在74LS74中集成了兩個(gè)觸發(fā)器單元,它們都是CP上升沿觸發(fā)的邊沿D觸發(fā)器。本電路中異步輸入端 D, D 置為高電平。74LS74特性表如

22、表2-1所示。表2-174LS74特性表(部分)輸 入輸 出備注CPDDDQn+1上升沿0110同步置0上升沿1111同步置1下升沿11Qn保持工作過程:本電路單片機(jī)檢查判斷A/D轉(zhuǎn)換結(jié)束采用查詢方式。AT89C51向ADC0809發(fā)送任意數(shù)據(jù),即 有效,其經(jīng)過反向器產(chǎn)生的信號使START和ALE有效,這樣就啟動(dòng)了ADC0809進(jìn)行A/D轉(zhuǎn)換。然后通過AT89C51單片機(jī)的P2.0端口查詢轉(zhuǎn)換結(jié)束信號EOC(高電平有效)。轉(zhuǎn)換結(jié)束后,向相應(yīng)的口地址發(fā)出讀命令,則 有效,經(jīng)過一非門使OE有效,從而打開ADC0809內(nèi)部的三態(tài)門,AT89C51便可以接收到數(shù)據(jù)。2.4LED顯示電路由于發(fā)光二極管價(jià)

23、廉,配置靈活,與單片機(jī)接口方便,所以系統(tǒng)的顯示采用發(fā)光二極管作為顯示器件。LED顯示的方法有兩種:一種為靜態(tài)顯示;一種為動(dòng)態(tài)顯示。其中動(dòng)態(tài)顯示,是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的7個(gè)顯示筆劃a,b,c,d,e,f,g的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮5。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端

24、,就使各個(gè)數(shù)碼管輪流受控顯示。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示能夠節(jié)省大量的I/O端口,而且功耗更低6。本系統(tǒng)采用動(dòng)態(tài)顯示,使用3個(gè)7端共陽極的數(shù)碼管顯示溫度的檢測值和設(shè)定值,精確到10C。由單片機(jī)P1口輸出顯示碼,P3.3、P3.4、P3.5口輸出位選碼。數(shù)碼管正常顯示時(shí),為防止管子燒壞,需要接限流電阻。本設(shè)計(jì)使用紅色顯示的數(shù)碼管,它工作時(shí)的壓降約為1.9V,電流視所選的掃描方法而定,動(dòng)態(tài)掃描顯示時(shí)段電流約為4mA,由

25、此可以計(jì)算出數(shù)碼管與單片機(jī)P1口串接的電阻值為:(5-1.9)/4=0.775K,為了保護(hù)數(shù)碼管這里選擇阻值為1K的限流電阻。因?yàn)閱纹瑱C(jī)I/O口的驅(qū)動(dòng)能力很低,一般只有10mA,而驅(qū)動(dòng)7端共陽極的數(shù)碼管需要30mA左右的電流,因此要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼。本電路中采用高壓輸出反相驅(qū)動(dòng)器7406,其輸出電路為40mA,故滿足上述要求。7406是集電極開路門,為了使其可靠飽和導(dǎo)通所以需接1K上拉電阻。7406為反向驅(qū)動(dòng)器,而此處為共陽極的數(shù)碼管,所以P1口輸出共陽極的七段顯示碼。AT89C51與LED的接口電路圖如圖2-7所示,圖中三個(gè)數(shù)碼管從左至右分別為溫度值百位、溫度值的十位和溫度值

26、的個(gè)位。 圖2-7AT89C51與LED接口電路2.5鍵盤接口和控制電路在單片機(jī)應(yīng)用系統(tǒng)中,用鍵盤來實(shí)現(xiàn)輸入數(shù)據(jù)、傳送命令的功能。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。編碼鍵盤采用硬件線路來實(shí)現(xiàn)鍵盤編碼,每按下一個(gè)鍵,鍵盤能自動(dòng)生成按鍵代碼,鍵數(shù)較多,而且還具有去抖動(dòng)功能,這種鍵盤使用方便,但硬件較復(fù)雜,PC機(jī)所用的鍵盤就屬于這種;非編碼鍵盤僅提供按鍵開關(guān)工作狀態(tài),其他工作由軟件完成,這種鍵盤數(shù)較少,硬件簡單,一般在單片機(jī)應(yīng)用系統(tǒng)中廣泛用,本設(shè)計(jì)雖然是單片機(jī)系統(tǒng)但設(shè)計(jì)由SET鍵、“09”數(shù)字鍵、“KP”“KI”“KP”、確定鍵,按鍵數(shù)目較多,所以仍對鍵盤進(jìn)行了編碼,屬于編碼鍵盤7。按鍵盤與CPU

27、的連接方式可以分為獨(dú)立式按鍵和矩陣式鍵盤。本設(shè)計(jì)中選用的是矩陣式鍵盤,又稱行列式鍵盤。它的I/O端線分為行線和列線,按鍵跨接在行線和列線上。按鍵按下時(shí),行線與列線連通8。本部分電路采用鍵盤專用芯片74C922與4*3鍵盤實(shí)現(xiàn)設(shè)定值輸入功能。74C922芯片采用CMOS工藝技術(shù)制造。內(nèi)部帶有鍵盤編碼器,還有去抖動(dòng)的功能,工作電壓+3+15V,“二鍵鎖定”功能,編碼輸出為三態(tài)輸出,可直接與微處理器數(shù)據(jù)總線相連,內(nèi)部振蕩器能完成4*4矩陣鍵盤掃描,亦可用外部振蕩器使鍵盤操作與其他處理同步,通過外接電容避免開關(guān)發(fā)生前、后沿跳變所用的延時(shí)。有按鍵按下時(shí)數(shù)據(jù)有效線變高,同時(shí)封鎖其他鍵,片內(nèi)鎖存器將保持鍵盤

28、矩陣的4位鍵盤編碼,可由微處理器讀出7。74C922引腳如圖2-8所示。圖2-874C922引腳圖 OSC:接振蕩電容0.01F,以便掃描矩陣鍵盤。 KBM:用來消除鍵盤抖動(dòng),接一個(gè)電容是OSC電容的10倍。 DA:數(shù)據(jù)有效端。檢測到DA腳由0-1(按)到1-0(放)信號變換時(shí),將ABCD值讀入單片機(jī)。 OE:數(shù)據(jù)輸出使能端。 X1-X4:列輸入端。本電路中只用到3列輸入,故將X4置零。 Y1-Y4:行輸入端。 A、B、C、D:74C922數(shù)據(jù)輸出端。本電路鍵盤輸入采用中斷方式。利用單片機(jī)外部中斷0,將74C922的DA端經(jīng)反向器與單片機(jī)P3.2口相連,當(dāng)DA=1即 =0立即向單片機(jī)申請中斷,

29、轉(zhuǎn)向鍵盤輸入程序,將74C922的D、C、B、A口數(shù)據(jù)送給單片機(jī)AT89C51。這樣節(jié)省了CPU的時(shí)間,提高了效率。鍵盤與單片機(jī)接口電路如圖2-9所示。圖2-9鍵盤與單片機(jī)接口電路2.6單片機(jī)外圍電路及控制本系統(tǒng)采用AT89C51單片機(jī)作為控制核心。它是一種低能耗、低電壓、高性能的8位單片機(jī), 片內(nèi)帶有一個(gè)4k字節(jié)的Flash 可編程、可擦除只讀存儲器(EPROM), 它采用了CMOS工藝和AIMEL公司的高密度非易失性存儲器(NURAM)技術(shù), 而且其輸出引腳和指令系統(tǒng)都與MCS-51相兼容, 片內(nèi)的Flash 存儲器允許在系統(tǒng)內(nèi)編程序或用常規(guī)的非易失性存儲器編程器來編程。單片機(jī)時(shí)鐘產(chǎn)生方式

30、有兩種:一是內(nèi)部時(shí)鐘方式;二是外部時(shí)鐘方式。本系統(tǒng)采用的是內(nèi)部時(shí)鐘方式,在51單片機(jī)內(nèi)部有一振蕩電路,XTAL1為振蕩反相放大器的輸入端,XTAL2為振蕩反相放大器的輸出端,本系統(tǒng)中12MHz的石英諧振器與電容值均為33pF的C1、C2構(gòu)成了并聯(lián)諧振電路,這樣就能在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號,連接如圖2-10所示。單片機(jī)復(fù)位有兩種基本形式:一是上電復(fù)位:二是按鍵復(fù)位。這里采用按鍵復(fù)位方式,當(dāng)振蕩器復(fù)位單片機(jī)時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間,復(fù)位按鍵被按下,電容C1通過電阻R1迅速放電,使RST端迅速變?yōu)楦唠娖剑瑥?fù)位按鍵松開后,電容通過R2和內(nèi)部下拉電阻充電,逐漸使RST端恢復(fù)低電平9

31、。在本系統(tǒng)中為了實(shí)現(xiàn)對智能溫度控制系統(tǒng)的簡單模擬,將實(shí)際工作中制冷或加熱設(shè)備換成發(fā)光二極管作為控制設(shè)備的信號指示,P2.1口和P2.2口分別接紅色發(fā)光和綠色發(fā)光二極管。當(dāng)檢測溫度高于設(shè)定的上限溫度值時(shí),單片機(jī)發(fā)出驅(qū)動(dòng)信號使紅色二極管點(diǎn)亮;當(dāng)檢測溫度低于設(shè)定的下限溫度值時(shí),單片機(jī)發(fā)出驅(qū)動(dòng)信號使綠色二極管點(diǎn)亮。電路如圖2-10所示。圖2-10單片機(jī)外圍電路3系統(tǒng)軟件設(shè)計(jì)3.1程序設(shè)計(jì)總體思路本次單片機(jī)溫控系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,軟件的設(shè)計(jì)采用模塊化設(shè)計(jì),主要包括A/D轉(zhuǎn)換模塊、顯示模塊、控制溫度模塊和模塊等,其程序設(shè)計(jì)思路如下:溫度傳感器AD590采集的數(shù)據(jù)進(jìn)行調(diào)零、放大處理后送給

32、A/D轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換,然后將處理好的數(shù)字信號送入單片機(jī)并由數(shù)碼管顯示,單片機(jī)AT89C51將檢測值與設(shè)定值進(jìn)行比較,若檢測值高于設(shè)定上限值或低于設(shè)定下限值10C以上時(shí),單片機(jī)發(fā)出控制信號。3.2模數(shù)轉(zhuǎn)換模塊本模塊工作主要由ADC0809完成,該芯片的輸入量為0-5V的電壓量。具體過程:當(dāng)ADC0809的啟動(dòng)引腳接收到一個(gè)來自單片機(jī)AT89C51的啟動(dòng)脈沖,ADC0809就開始工作,將經(jīng)調(diào)零放大處理后的溫度檢測的模擬信號轉(zhuǎn)化為數(shù)字信號,送入單片機(jī)內(nèi)部。經(jīng)過一段時(shí)間后,轉(zhuǎn)換結(jié)束。單片機(jī)檢查判斷結(jié)束信號的方法有三種10:(1)中斷方式將轉(zhuǎn)換結(jié)束標(biāo)志信號接到微型計(jì)算機(jī)的中斷申請引腳或允許中斷的I/O

33、接口的相應(yīng)引腳上。當(dāng)轉(zhuǎn)換結(jié)束后,即提出中斷申請,微型計(jì)算機(jī)響應(yīng)后,在中斷服務(wù)程序中讀出數(shù)據(jù)。(2)查詢方式將轉(zhuǎn)換結(jié)束標(biāo)志信號經(jīng)三態(tài)門送到CPU數(shù)據(jù)總線或I/O接口某一位上,微型計(jì)算機(jī)向A/D轉(zhuǎn)換器發(fā)出啟動(dòng)信號后,便開始查詢A/D轉(zhuǎn)換是否結(jié)束。一旦查詢到A/D轉(zhuǎn)換結(jié)束,就讀出結(jié)果數(shù)據(jù)。(3)軟件延時(shí)方法微型計(jì)算機(jī)啟動(dòng)A/D轉(zhuǎn)換后,就根據(jù)轉(zhuǎn)換芯片完成轉(zhuǎn)換所需要的時(shí)間,調(diào)用一段軟件延時(shí)程序,延時(shí)程序執(zhí)行完成以后,A/D轉(zhuǎn)換也已完成,既可讀出結(jié)果數(shù)據(jù)。本模塊采用查詢方式,因?yàn)檫@種方法的程序設(shè)計(jì)比較簡單,實(shí)時(shí)性較強(qiáng),具有很強(qiáng)的位處理功能。在主函數(shù)中設(shè)置一個(gè)死循環(huán),不斷查詢A/D轉(zhuǎn)換是否結(jié)束。當(dāng)轉(zhuǎn)換結(jié)束后

34、將ADC0809的輸出值進(jìn)行十進(jìn)制調(diào)整以方便按位存儲和顯示。模塊流程圖如圖3-1所示。開始轉(zhuǎn)換A/D轉(zhuǎn)換結(jié)束?是否十進(jìn)制調(diào)整存儲轉(zhuǎn)換值返回圖3-1模數(shù)轉(zhuǎn)換流程圖程序如下:START0 : MOVX R0,A ;令A(yù)DC0809開始轉(zhuǎn)換 WAIT : JB P2.0,ADC0809 ;P2.0=1(EOC=1) 轉(zhuǎn)換結(jié)束 JMP WAITADC0809: MOVX A,R0 ;轉(zhuǎn)換結(jié)束,把數(shù)據(jù)讀入A CALL L1 ;十進(jìn)制轉(zhuǎn)換L1 : CLR C MOV R5,#00H ;十進(jìn)制轉(zhuǎn)換低位暫存器 MOV R4,#00H ;十進(jìn)制轉(zhuǎn)換高位暫存器 MOV R3,#08H ;調(diào)整次數(shù)NEXT : RL

35、C A MOV R2,A MOV A,R5 ADDC A,R5 DA A ;十進(jìn)制調(diào)整 MOV R5,A ;結(jié)果存回R5 MOV A,R4 ADDC A,R4 MOV R4,A MOV A,R2 DJNZ R3,NEXT ;調(diào)整結(jié)束 MOV R7,#02L2 : MOV A,R5 ADD A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R7,L2 MOV A,R5 ;取檢測溫度個(gè)位 ANL A,#F0H SWAP A MOV 20H,A ;存檢測值個(gè)位 MOV A,R4 ;取檢測溫度十位 ANL A,#0FH MOV 21H,A

36、 ;存檢測溫度十位 MOV A,R4 ;取檢測溫度百位 ANL A,#F0H SWAP A MOV 22,A ;存檢測溫度百位 CLR A RET3.3溫度顯示模塊此系統(tǒng)選用動(dòng)態(tài)顯示,這種顯示方法硬件連線簡單,所需硬件少與靜態(tài)顯示相比可以節(jié)省單片機(jī)I/O口線。因?yàn)槭莿?dòng)態(tài)顯示,讓三位循環(huán)點(diǎn)亮,并且每一個(gè)數(shù)碼管點(diǎn)亮延時(shí)1ms。本系統(tǒng)所用的LED是共陽極數(shù)碼管,接有7406反向驅(qū)動(dòng)器,所以P1口輸出共陽極的七段顯示碼。程序思路:通過遠(yuǎn)程查表法分別使三個(gè)LED顯示從儲存檢測值和設(shè)定值的單元中得到數(shù)值的百位、十位、個(gè)位,在顯示每一位時(shí)都使其延時(shí)1ms。溫度顯示程序流程圖3-2所示。送百位數(shù),查表并顯示送

37、十位數(shù),查表并顯示返回初始化送個(gè)位數(shù),查表并顯示延時(shí)1ms延時(shí)1ms延時(shí)1ms圖3-2溫度顯示程序流程圖程序如下:DISP : MOV DPTR,#TAB ;置TAB表首地址 CLR P3.3 ;數(shù)碼管清零 CLR P3.4 CLR P3.5 MOV A,R1 ;把百位數(shù)給A MOVC A,A+DPTR ;查表得到7段顯示代碼 MOV P1,A ;輸出代碼 SETB P3.3 ;輸出位選碼 ACALL D1MS ;延時(shí)1ms CLR P3.3 DEC R1 ;把十位數(shù)給A MOVC A,A+DPTR ;查表得到7段顯示代碼 MOV P1,A ;輸出代碼 SETB P3.4 ;輸出位選碼 ACA

38、LL D1MS ;延時(shí)1ms CLR P3.4 DEC R1 ;把個(gè)位數(shù)給A MOVC A,A+DPTR ;查表得到7段顯示代碼 MOV P1,A ;輸出代碼 SETB P3.5 ;輸出位選碼 ACALL D1MS ;延時(shí)1ms CLR P3.5 RETTAB: DB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82H,0F8H 3.4溫度設(shè)定模塊本系統(tǒng)鍵盤輸入采用中斷方式。使74C922的DA端通過反向器與單片機(jī)P3.2口相連。當(dāng)沒有鍵按下時(shí),CPU不對鍵盤進(jìn)行掃描,以節(jié)省大量時(shí)間對系統(tǒng)進(jìn)行監(jiān)控和數(shù)據(jù)處理。一旦有鍵盤輸入,DA=1, =0則外部中斷0立即上CPU申請中斷。CP

39、U響應(yīng)中斷后,立即轉(zhuǎn)到響應(yīng)的中斷服務(wù)程序,讀取輸入值。中斷程序流程圖3-3所示。保護(hù)現(xiàn)場恢復(fù)現(xiàn)場中斷返回設(shè)定值輸入程序圖3-3鍵盤中斷程序流程圖程序如下:ORG 0003H ;外部中斷0入口地址 LJMP INT0 ;轉(zhuǎn)向中斷服務(wù)程序 SETB IT0 ;設(shè)INT0為邊沿觸發(fā)方式 SETB EA ;CPU開放中斷 SETB EX0 ;允許INT0中斷INT0: PUSH PSW ;現(xiàn)場保護(hù) PUSH ACC JB P3.2,KEYIN ;DA=1則跳轉(zhuǎn)到設(shè)定值輸入程序 POP ACC ;恢復(fù)現(xiàn)場 POP PSW RETI ;中斷返回本電路采用具有鍵盤編碼功能的74C922配合4*3鍵盤完成數(shù)據(jù)

40、輸入。當(dāng)“*”號鍵被按下時(shí)開始設(shè)定控制溫度的上限值,將輸入的數(shù)值按百位、十位、個(gè)位的順序分別存在28H、27H、26H內(nèi)存單元中,當(dāng)“*”再次被按下時(shí)則溫度上限設(shè)定值輸入完成;當(dāng)“#”號鍵被按下時(shí)開始設(shè)定控制溫度的下限值,將輸入的數(shù)值按百位、十位、個(gè)位的順序分別存在25H、24H、23H內(nèi)存單元中,當(dāng)“#”再次被按下時(shí)則溫度下限設(shè)定值輸入完成。被按下的鍵號由74C922直接給出,同時(shí)其還具有防抖動(dòng)等功能,這些優(yōu)點(diǎn)都有助于簡化程序設(shè)計(jì)。通過建立一個(gè)TABLE表,就可以利用749c22設(shè)計(jì)各種鍵盤。74C922的鍵盤設(shè)計(jì)與編碼設(shè)計(jì)如表3-1所示。(“*”表示設(shè)定控制溫度的上限值,“#”表示設(shè)定控制

41、溫度的下限值。)設(shè)定值輸入程序流程圖3-4所示。表3-1鍵盤與編碼設(shè)計(jì)表 鍵盤設(shè)計(jì)編碼設(shè)計(jì)123010203456040506789070809*0#0A000B有鍵按下中斷數(shù)碼管顯示000是否為*鍵*鍵再次按下是否為#鍵#鍵再次按下存鍵值并顯示存鍵值并顯示設(shè)定完成設(shè)定完成是否否是是是否否是是圖3-4設(shè)定值輸入程序流程圖 3.5控制模塊本系統(tǒng)控制模塊采用定時(shí)中斷方式。利用定時(shí)/計(jì)數(shù)器T0產(chǎn)生定時(shí)時(shí)鐘,每50ms由單片機(jī)將檢測溫度值與設(shè)定值進(jìn)行比較,根據(jù)比較結(jié)果發(fā)出不同的控制信號。將T0工作方式1即16位定時(shí)/計(jì)數(shù)器。AT89C51單片機(jī)定時(shí)/計(jì)數(shù)器工作方式由寄存器TMOD來設(shè)置,其低四位用于T

42、0,高四位用于T1,其格式如表3-2所示。表3-2工作方式寄存器TMOD 76543210GATEC/M1M0GATEC/M1M0GATE:門控位。GATE=0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATE=1時(shí),要用軟件使TCON中的TR0或TR1為1,同時(shí)外部中斷引腳也為高電平,才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。C/ :定時(shí)/計(jì)數(shù)模式選擇位。C/ =0時(shí)為定時(shí)模式;C/ =1時(shí)為計(jì)數(shù)模式。M1M0:工作方式設(shè)置位。M1M0=00時(shí),工作在方式0,為13位定時(shí)/計(jì)數(shù)器;M1M0=01時(shí),工作在方式1,為16位定時(shí)/計(jì)數(shù)器;M1M0=10時(shí),工作在方式2,為8位自

43、動(dòng)重裝定時(shí)/計(jì)數(shù)器;M1M0=11時(shí),工作在方式3,T0分成兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器。設(shè)置T0的工作方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取工作方式控制字為01H。計(jì)算計(jì)數(shù)初值X:由于晶振為12MHz,所以機(jī)器周期Tcy為110-6s。所以,N=t/Tcy=5010-3/110-6=50000,X=216-N=65536-50000=15536=3CAFH即應(yīng)將3CH送入TH0中,AFH送入TL0中。定時(shí)中斷控制程序流程圖3-5所示。綠燈亮紅燈亮圖3-5控制程序流程圖程序清單如下:ORG 000BH ;定時(shí)/計(jì)數(shù)器0溢出中斷服務(wù)程序入口地址 JMP TIMER0 ;轉(zhuǎn)向中斷服務(wù)程序 MOV TMOD,#01H ;工作在模式1 MOV TH0,#3CH ;設(shè)置計(jì)數(shù)初值 MOV TL0,#AFH SET TR0 MOV IE #83HTIMER0 : PUSH PSW PUSH ACC MOV TH0,#3CH ;重設(shè)時(shí)間 MOV TL0,#AFHCLR C ;清標(biāo)志位 MOV A,25H ;下限比較 CJNE A,22H,T1 ;百位不等則跳到T1 MOV A,24H ;百位相等則比較十位 CINE A,21H,TI ;十位不等則跳到T1 MOV A,23H ;十位相等則比較個(gè)位 MOV R5,20H SUBB A,R5 SU

溫馨提示

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

評論

0/150

提交評論