簡易溫度控制系統(tǒng)(課設(shè)報(bào)告)_第1頁
簡易溫度控制系統(tǒng)(課設(shè)報(bào)告)_第2頁
簡易溫度控制系統(tǒng)(課設(shè)報(bào)告)_第3頁
簡易溫度控制系統(tǒng)(課設(shè)報(bào)告)_第4頁
簡易溫度控制系統(tǒng)(課設(shè)報(bào)告)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

長安大學(xué)單片機(jī)課程設(shè)計(jì)-簡易溫度控制系統(tǒng)-專業(yè):電氣工程及其自動化學(xué)號:3204090103姓名:高超指導(dǎo)老師:段晨東時(shí)間:2011.12.30摘要隨著科技的不斷進(jìn)步,在工業(yè)生產(chǎn)中溫度是常用的被控參數(shù),而采用單片機(jī)來對這些被控參數(shù)進(jìn)行控制已成為當(dāng)今的主流。本文介紹了數(shù)字溫度測量及自動控制系統(tǒng)的設(shè)計(jì)。本系統(tǒng)以STC89C52RC單片機(jī)芯片為核心,組成溫度測量和控制系統(tǒng),采用DS18B20數(shù)字溫度傳感器對溫度進(jìn)行實(shí)時(shí)采樣,并將測量結(jié)果用數(shù)碼管顯示,可以運(yùn)用鍵盤按鈕對溫度進(jìn)行定,并且驅(qū)動加熱器或制冷器將溫度調(diào)整到設(shè)定溫度,其功能完善,人機(jī)界面良好,可靠性高。通過測試表明,本設(shè)計(jì)對溫度的控制有方便、簡單的特點(diǎn),從而大幅提高了被控溫度的技術(shù)指標(biāo)。[關(guān)鍵詞]:單片機(jī)數(shù)字溫度傳感器鍵盤和顯示AbstractAsthetechnologyadvancesinindustrialproductioninthetemperatureischargedwithcommonparameters,andtheuseofthosechargedwithSCMtotheparametersofcontrolhasbecomethemainstream.Thesystemtosingle-chipSTC89C52RCchipasthecore,thecompositionofthecontroloftemperaturecontrolsystemoftheadoptionofdigitaltemperaturesensorDS18B20temperaturesampling,real-timedisplaywithdigitaltemperaturecontrol,youcanusethekeyboardfortemperatureregulation,theuseofheaterandcoolertemperatureadjustmentstoimproveitsfunctions,agoodman-machineinterface,highreliability。Passedthetestsshowthatthedesignofthetemperaturecontrolisconvenientandsimplecharacteristics’,thusgreatlyraisingthetemperaturewaschargedwiththetechnicalindicators.Keywords:MCUDigitaltemperaturesensorKeyboardandDemonstration目錄摘要。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2目錄。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3題目。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。4前言。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5一、系統(tǒng)的方案論證。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。61.1題目分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。61.2方案論證。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。61.2.1測溫電路方案選擇。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。61.2.2控制電路和溫度設(shè)定電路方案與選擇。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。61.2.3加熱制冷電路方案。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。71.3方案選擇。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。71.3.1測溫電路。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。71.3.2控制、鍵盤和顯示電路。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。81.3.3總體電路設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8二、系統(tǒng)的硬件設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。82.1單片機(jī)設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。82.2溫度傳感電路設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。102.3溫控電路與報(bào)警電路的設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。112.4鍵盤及顯示部分。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12三、系統(tǒng)的軟件設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。123.1系統(tǒng)的主程序設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。123.2系統(tǒng)子程序設(shè)計(jì)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14四、調(diào)試過程及運(yùn)行結(jié)果。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。164.1調(diào)試過程。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。174.2運(yùn)行結(jié)果。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。17五、全文總結(jié)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。16附錄1電路原理圖。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。17附錄2元件明細(xì)表。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。18附錄3程序。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。19附調(diào)試過程。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。28題目:簡易溫度控制系統(tǒng)一、任務(wù)設(shè)計(jì)并制作一個(gè)簡易的單片機(jī)溫度自動控制系統(tǒng)(如下圖),控制對象為自定。顯示器恒溫箱執(zhí)行器可編程控制器變送器設(shè)置鍵盤220VAC顯示器恒溫箱執(zhí)行器可編程控制器變送器設(shè)置鍵盤220VAC電源溫度傳感器電源溫度傳感器二、要求設(shè)計(jì)要求如下:(1)溫度設(shè)定范圍為40℃~90℃,最小區(qū)分度為1℃(2)用十進(jìn)制數(shù)碼顯示實(shí)際溫度。(3)被控對象溫度采用發(fā)光二極管以光柱形式和數(shù)碼形式顯示。(4)溫度控制的靜態(tài)誤差≤2℃。擴(kuò)充功能:控制溫度可以在一定范圍內(nèi)設(shè)定,并能實(shí)現(xiàn)自動調(diào)整,以保持設(shè)定的溫度基本保持不變(測量溫度時(shí)只要求在現(xiàn)場任意設(shè)置一個(gè)檢測點(diǎn))。

前言溫度控制廣泛應(yīng)用于人們的生產(chǎn)和生活中,人們使用溫度計(jì)來采集溫度,通過人工操作加熱、通風(fēng)和降溫設(shè)備來控制溫度,這樣不但控制精度低、實(shí)時(shí)性差,而且操作人員的勞動強(qiáng)度大。即使有些用戶采用半導(dǎo)體二極管作溫度傳感器,但由于其互換性差,效果也不理想。在某些行業(yè)中對溫度的要求較高,由于工作環(huán)境溫度不合理而引發(fā)的事故時(shí)有發(fā)生。對工業(yè)生產(chǎn)可靠進(jìn)行造成影響,甚至操作人員的安全。為了避免這些缺點(diǎn),需要在某些特定的環(huán)境里安裝數(shù)字溫度測量及控制設(shè)備。本設(shè)計(jì)由于采用了新型單片機(jī)對溫度進(jìn)行控制,以其測量精度高,操作簡單。可運(yùn)行性強(qiáng),價(jià)格低廉等優(yōu)點(diǎn),特別適用于生活,醫(yī)療,工業(yè)生產(chǎn)等方面的溫度測量及控制。本設(shè)計(jì)是一個(gè)數(shù)字溫度測量及控制系統(tǒng),能測柜內(nèi)的溫度,并能在超限的情況下進(jìn)行控制、調(diào)整,并報(bào)警。保證環(huán)境保持在限定的溫度中。

第1章系統(tǒng)的方案論證本章主要對課程設(shè)計(jì)的題目進(jìn)行了分析,根據(jù)要實(shí)現(xiàn)的功能,綜合比較幾種設(shè)計(jì)方法,提出了實(shí)現(xiàn)系統(tǒng)功能的最佳方案。1.1題目分析本設(shè)計(jì)是一個(gè)數(shù)字溫度控制系統(tǒng),能測量溫度,并能在超限的情況下進(jìn)行控制、調(diào)整,并報(bào)警。具體控制要求:根據(jù)設(shè)計(jì)的要求,要利用溫度傳感器顯示當(dāng)前溫度。當(dāng)溫度高于設(shè)定的溫度時(shí)(90℃),打開降溫裝置進(jìn)行調(diào)整使溫度在設(shè)定的范圍內(nèi);當(dāng)溫度低于設(shè)定的溫度時(shí)(40℃),打開升溫裝置進(jìn)行調(diào)整使溫度在設(shè)定的范圍內(nèi),同時(shí)要求能設(shè)定溫度,設(shè)計(jì)的主要任務(wù)是能對溫度進(jìn)行自動的檢測和控制。設(shè)計(jì)中采用單片機(jī)來控制溫度,因此要有溫度的采集電路,鍵盤顯示電路,溫控電路,報(bào)警電路等幾個(gè)部分。要實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)要用到的知識點(diǎn)有單片機(jī)的原理及其應(yīng)用,溫度傳感器的原理和應(yīng)用,及鍵盤和顯示電路的設(shè)計(jì)等。1.2方案論證1.2.1測溫電路方案方案一、可以使用熱敏電阻作為測溫元件,熱敏電阻精度高,需要配合電橋電路,電路設(shè)計(jì)比較麻煩。方案二、可以使用熱點(diǎn)偶作為測溫元件,熱電偶在工業(yè)上應(yīng)用比較廣泛,測溫精度比較高,性能可靠,并有專用的熱電偶測溫電路。方案三、采用半導(dǎo)體集成溫度傳感器作為測溫元件,半導(dǎo)體溫度傳感器應(yīng)用也比較廣泛,精度、可靠性都不錯,價(jià)格適中,使用比價(jià)簡單,是一種較好的方案。1.2.2控制電路和溫度設(shè)定電路方案控制電路可以用硬件的方式實(shí)現(xiàn),也可以用軟件的方式實(shí)現(xiàn),具體方案有三:方案一、可以用運(yùn)放等模擬電路搭接一個(gè)控制器,用模擬方式實(shí)現(xiàn)PID控制,對溫度控制是足夠的。但是附加的顯示,溫度的設(shè)定等功能,還要附加許多電路,稍顯麻煩。同樣也可以用邏輯電路實(shí)現(xiàn),但總體的電路設(shè)計(jì)和制作繁瑣。方案二、可以使用FPGA實(shí)現(xiàn)控制功能,使用FPGA時(shí),電路設(shè)計(jì)比較簡單,通過相應(yīng)的編程設(shè)計(jì),可以很容易實(shí)現(xiàn)控制、顯示、鍵盤等功能。是一種可選的方案。但與單片機(jī)相比較,價(jià)格較高,顯得大材小用。方案三、可以使用單片機(jī)作為核心,同時(shí)可以實(shí)現(xiàn)控制、顯示、鍵盤等功能。電路設(shè)計(jì)和制作比較簡單,是一種非常好的方案。1.2.3加熱制冷電路方案根據(jù)題目,可以使用電爐加熱,當(dāng)周圍空氣溫度過高時(shí),一般只能關(guān)掉加熱器,讓其自動冷卻,但為了達(dá)到更好的控制效果,可以用風(fēng)扇進(jìn)行制冷,當(dāng)溫度過高時(shí),關(guān)掉電爐開啟風(fēng)扇進(jìn)行制冷。加熱制冷電源選用220V交流電。方案一、采用電力電子技術(shù)的PWM技術(shù),控制其功率實(shí)現(xiàn)較好的精度,但電路設(shè)計(jì)比較麻煩,制作難度比較大。方案二、可以使用固體繼電器控制加熱制冷器工作。固態(tài)繼電器使用比較簡單,而且沒有觸電,可以頻繁工作。是一個(gè)比較好的方案。1.3方案選擇1.3.1測溫電路選用最簡單的一種測溫方式——使用DS18B20數(shù)字式溫度傳感器。它無需其他的外加電路,直接輸出數(shù)字信號,可直接與單片機(jī)通信,讀取測溫?cái)?shù)據(jù),電路非常簡單。他能達(dá)到0.5℃的固有分辨率,使用這種芯片電路主要的工作量就集中在單片機(jī)軟件的編程上。而模擬集成溫度傳感器也可以用,它是采用硅半導(dǎo)體集成工藝而制成的,因此亦稱硅傳感器或單片集成溫度傳感器,它是將溫度傳感器集成在一個(gè)芯片上、可完成溫度測量及模擬信號輸出功能的專用IC。模擬集成溫度傳感器的主要特點(diǎn)是功能單一(僅測量溫度)、測溫誤差小、價(jià)格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗等,適合遠(yuǎn)距離測溫、控溫,不需要進(jìn)行非線性校準(zhǔn),外圍電路簡單。AD590集成溫度傳感器是一種使用較多的溫度傳感器,其性能基本滿足題目要求。AD590將溫度轉(zhuǎn)換為電流信號,但由于AD轉(zhuǎn)換大都需要電壓信號,因此還需要相應(yīng)的調(diào)理電路,將電流信號轉(zhuǎn)換為電壓信號。最常用的AD轉(zhuǎn)換器是ADC0809,將電壓信號轉(zhuǎn)換為數(shù)字信號輸入單片機(jī)。綜合考慮,選用DS18B20溫度傳感器。1.3.2控制、鍵盤和顯示電路通過認(rèn)真考慮,本系統(tǒng)要求的精度不是太高,本著簡易的思想,用單片機(jī)的P2.0、P2.4分別與三極管的基極連接來控制外設(shè)調(diào)節(jié)溫度,加熱需要較大的功率,因此選用220V市電作為加熱電源。(本系統(tǒng)用模擬軟件設(shè)計(jì),用電燈泡模擬加熱器。用風(fēng)扇模擬制冷器,供電用直流5V)鍵盤可以選用3*3的掃描鍵盤,在本實(shí)驗(yàn)中,可以同時(shí)設(shè)置溫度的十位和個(gè)位,還要按鍵開始比較。只需3個(gè)獨(dú)立的按鍵即可滿足要求。本著簡單實(shí)用的原則,選用1個(gè)溫度加和1個(gè)溫度減鍵,一個(gè)開始比較調(diào)節(jié)溫度鍵。顯示方面,選用了六個(gè)數(shù)碼管。溫度的最小分度為1℃,溫度測量范圍在00℃~99℃。1.3.3總體電路設(shè)計(jì)①測溫電路選用DS18B20集成數(shù)字測溫電路②控制電路用單片機(jī)的P2.0、P2.4分別與三極管的基極連接通過繼電器來控制外設(shè)從而調(diào)節(jié)溫度③控制芯片選用常見的STC89C52RC④顯示方式選用八段數(shù)碼管顯示⑤鍵盤采用3個(gè)獨(dú)立按鍵第2章系統(tǒng)的硬件設(shè)計(jì)2.1單片機(jī)設(shè)計(jì)STC89C52RC有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,STC89C52RC可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。(1)電源及時(shí)鐘引腳Vcc:電源接入引腳;GND:接地引腳;XTAL1:晶體振蕩器接入的一個(gè)引腳(采用外部振蕩器時(shí),此引腳接地);XTAL2:晶體振蕩器接入的另一個(gè)引腳(采用外部振蕩器時(shí),此引腳作為外部振蕩信號的輸入端)。(2)控制線引腳RST:復(fù)位信號輸入引腳。(3)并行I/O口引腳P0.0~P0.7:一般I/O口引腳或數(shù)據(jù)/低位地址總線復(fù)用引腳;P1.0~P1.7:一般I/O口引腳;P2.0~P2.7:一般I/O口引腳或數(shù)據(jù)/高位總線引腳;P3.0~P3.7:一般I/O口引腳或第二功能引腳。(4)外部程序存儲器擴(kuò)展控制信號EA/VPP:用于片內(nèi),片外程序存儲器配置,輸入信號。當(dāng)EA=0時(shí),單片機(jī)的程序存儲器全部為擴(kuò)展的片外程序存儲器;當(dāng)EA=1時(shí),單片機(jī)的程序存儲器可由片內(nèi)程序存儲器和片外程序存儲器構(gòu)成。ALE/PROG:用于所存P0口輸出的低8位地址。PSEN:程序儲存允許(PSEN)輸出,外部程序存儲器的讀選通信號。在溫度顯示時(shí),用P1口的P1.5~P1.7作為譯碼器74LS138的輸入端,通過譯碼方式控制數(shù)碼管的選通信號,當(dāng)譯碼器其中的一個(gè)引腳輸出低電平時(shí),其對應(yīng)的數(shù)碼管被選通來顯示溫度。當(dāng)P1.6和P1.7為高電平,P1.5為低電平時(shí)蜂鳴器工作,發(fā)出報(bào)警信號。在設(shè)置STC89C52RC的振蕩頻率時(shí),我們采用內(nèi)部時(shí)鐘方式,如圖所示。在單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)XTAL1和XTAL2引腳外接石英晶體(簡稱晶振),就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號。圖中電容器C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5pF~30pF,典型值為30pF。晶振CYS的振蕩頻率范圍為1.2-12MHz,典型值為12MHz和6MHz。本次設(shè)計(jì)我們選擇了11.0592MHz。2.2溫度傳感電路設(shè)計(jì)DS18B20的性能特點(diǎn):采用單總線專用技術(shù),既可通過串行口線,也可通過其它I/O口線與微機(jī)接口,無須經(jīng)過其它變換電路,直接輸出被測溫度值(9位二進(jìn)制數(shù),含符號位)測溫范圍為-55℃-+125℃內(nèi)含64位經(jīng)過激光修正的只讀存儲器ROM適配各種單片機(jī)或系統(tǒng)機(jī)用戶可分別設(shè)定各路溫度的上、下限內(nèi)含寄生電源。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖2所示。P1.0圖2DS18B20管腳圖在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻.我們采用的是第一種連接方法,如圖3.3所示:把DS18B20的數(shù)據(jù)線與單片機(jī)的P1.0管腳連接,再加上上拉電阻。DS18B20有六條控制命令,如下表所示:表1DS18B20控制命令指

令約定代碼操

明溫度轉(zhuǎn)換44H啟動DS18B20進(jìn)行溫度轉(zhuǎn)換讀暫存器BEH讀暫存器9個(gè)字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重新調(diào)E2RAMB8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀電源供電方式B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPU2.3溫控電路及報(bào)警電路的設(shè)計(jì)圖3硬件溫度控制和報(bào)警電路單片機(jī)的P2.0、P2.4分別與三極管的基極連接來控制外設(shè)調(diào)節(jié)溫度(圖3)。利用面包板搭了一個(gè)PNP9012的偏置電路和繼電器電路?;鶚O輸入為“0”時(shí),這時(shí)三極管導(dǎo)通推動控制電路工作,當(dāng)基極輸入為“1”時(shí),三極管不導(dǎo)通,控制電路不工作。只要控制單片機(jī)的P2.0、P2.4口的高低電平就可以控制模擬電路的工作。當(dāng)所設(shè)溫度的高于所測溫度的時(shí),置P1.6和P1.7為高電平,P1.5為低電平(譯碼器輸入電平為110,com7輸出低電平),蜂鳴器工作,置P1.5、P1.6和P1.7均為高電平(譯碼器輸入電平為111,com8輸出低電平),LED指示燈點(diǎn)亮,發(fā)出聲光報(bào)警信號,同時(shí)置P2.0為低電平,啟動風(fēng)扇降溫;當(dāng)所設(shè)溫度的高于所測溫度的時(shí),置P2.4為低電平,啟動加熱器,同時(shí)開始計(jì)時(shí),并顯示加熱時(shí)間。2.4鍵盤及顯示部分STC89C52RC的并行口P2接3×3矩陣鍵盤,本設(shè)計(jì)僅采用其中的3個(gè)鍵。以P2.1~P2.3作輸入線,以P2.5~P2.7作輸出線,P2.0,P2.4接外設(shè)。單片機(jī)的P2口6位引腳與行列式鍵盤輸出腳相連,控制和檢測行列式鍵盤的輸入。行線通過上拉電阻接到+5V上,無按鍵按下時(shí),行線處于高電平狀態(tài),有鍵按下時(shí),行線的電平狀態(tài)將由與此行線相連接的列線的電平?jīng)Q定。鍵盤輸入的信息主要進(jìn)程是:1CPU判斷是否有鍵按下。2確定是按下的是哪個(gè)鍵。3把此鍵所代表的信息翻譯成計(jì)算機(jī)可以識別的代碼或者其他的特征符號。本設(shè)計(jì)中P0口用于輸出字型碼,P1口用于輸出顯示位置,LED數(shù)碼管為共陰型。顯示位置采用譯碼器譯碼的方式實(shí)現(xiàn)。為了得到更好的亮度,采用了74LS245N的驅(qū)動器。第3章系統(tǒng)的軟件設(shè)計(jì)3.1系統(tǒng)的主程序設(shè)計(jì)主程序是系統(tǒng)的監(jiān)控程序,在程序運(yùn)行的過程中必須先經(jīng)過初始化,包括測溫程序,控制程序,鍵盤程序,顯示程序以及各個(gè)控制端口的初始化工作。流程圖如4.1所示。系統(tǒng)在初始化完成后就進(jìn)入溫度測量程序,實(shí)時(shí)的測量當(dāng)前的溫度并通過顯示電路在LED上顯示。程序中以按鍵方式來設(shè)定溫度,根據(jù)硬件設(shè)計(jì)完成對溫度的控制。按下3*3鍵盤上的K1,K4,鍵可以設(shè)定溫度,按下K7鍵開始比較調(diào)節(jié)溫度。系統(tǒng)軟件設(shè)計(jì)的總體流程圖:開始開始系統(tǒng)初始化系統(tǒng)初始化顯示設(shè)置溫度顯示設(shè)置溫度顯示所測溫度顯示所測溫度判斷設(shè)置鍵盤是否按下判斷設(shè)置鍵盤是否按下 N判斷比較鍵盤是否按下Y判斷比較鍵盤是否按下N顯示設(shè)置溫度Y顯示設(shè)置溫度顯示所測溫度顯示所測溫度比較所測溫度和設(shè)定溫度是否相等比較所測溫度和設(shè)定溫度是否相等 YCyCy是否為一?聲光報(bào)警RET 聲光報(bào)警RET啟動風(fēng)扇散熱啟動風(fēng)扇散熱燈泡工作加熱N燈泡工作加熱顯示設(shè)定溫度顯示設(shè)定溫度開始計(jì)時(shí)開始計(jì)時(shí)顯示計(jì)時(shí)時(shí)間顯示計(jì)時(shí)時(shí)間顯示設(shè)定溫度圖4.1顯示設(shè)定溫度3.2系統(tǒng)子程序設(shè)計(jì)子程序是能被其他程序調(diào)用,在實(shí)現(xiàn)某種功能后能自動返回到調(diào)用程序中去的程序。其最后一條指令一定是返回指令,故能保證重新返回到調(diào)用它的程序中去。也可調(diào)用其他子程序,甚至可自身調(diào)用。本設(shè)計(jì)中DS18B20和鍵盤識別主要運(yùn)用軟件來實(shí)現(xiàn)。①DS18B20的測溫程序流程圖如下:初始化初始化讀取溫度數(shù)據(jù)讀取溫度數(shù)據(jù)18B2018B20復(fù)位命令跳過跳過ROM匹配溫度轉(zhuǎn)換命令溫度轉(zhuǎn)換命令等待等待A/D轉(zhuǎn)換結(jié)束跳過跳過ROM匹配讀出溫度值讀出溫度值數(shù)碼數(shù)碼管顯示溫度RETRET

開始②鍵盤掃描的程序流程圖如下:開始置置P2為輸入設(shè)置個(gè)位按鍵是否按下?N設(shè)置個(gè)位按鍵是否按下?N延時(shí)20ms消抖延時(shí)20ms消抖設(shè)置個(gè)位按鍵是否按下??NN設(shè)置個(gè)位按鍵是否按下??按鍵釋放?NY按鍵釋放?Y設(shè)定溫度值個(gè)位加1設(shè)定溫度值個(gè)位加1設(shè)置十位按鍵是否按下?N設(shè)置十位按鍵是否按下?延時(shí)20ms消抖延時(shí)20ms消抖設(shè)置十位按鍵是否按下?設(shè)置十位按鍵是否按下?N按鍵釋放??YN按鍵釋放??設(shè)定下限溫度值十位加一Y設(shè)定下限溫度值十位加一比較鍵是否按下?比較鍵是否按下?N延時(shí)20ms消抖延時(shí)20ms消抖Y比較鍵是否按下?比較鍵是否按下?按鍵釋放??Y按鍵釋放??N 跳至比較程序Y 跳至比較程序

第4章調(diào)試過程及運(yùn)行結(jié)果4.1調(diào)試過程實(shí)物制作過程基本順利,硬件焊接比較成功。調(diào)試過程中了解了自己的硬件還是沒有問題的。程序設(shè)計(jì)過程中,各部分程序拼接時(shí)由于沒有搞清楚邏輯關(guān)系花時(shí)間比較長,經(jīng)常出現(xiàn)程序編譯無誤但硬件達(dá)不到預(yù)想情況。經(jīng)過多次調(diào)試,最后整體程序編寫成功,程序燒進(jìn)芯片中進(jìn)行實(shí)物試驗(yàn)也達(dá)到預(yù)想效果。4.2運(yùn)行結(jié)果本設(shè)計(jì)實(shí)現(xiàn)了當(dāng)“所設(shè)溫度=所測溫度”時(shí),控制電路不工作,數(shù)碼管顯示所測溫度和設(shè)定溫度;當(dāng)“所測溫度<所設(shè)溫度”時(shí),加熱電路工作(燈泡模擬),計(jì)時(shí)器開始計(jì)時(shí),數(shù)碼管顯示加熱時(shí)間,當(dāng)溫度加熱到與設(shè)定溫度相等時(shí),加熱電路自動停止工作,數(shù)碼管顯示所測溫度和設(shè)定溫度;當(dāng)“所測溫度>所設(shè)溫度”時(shí),開始聲光報(bào)警,散熱風(fēng)扇工作,當(dāng)溫度降到與設(shè)定溫度相等時(shí),散熱電路自動停止工作,數(shù)碼管顯示所測溫度和設(shè)定溫度。從而實(shí)現(xiàn)溫度自動控制。第5章全文總結(jié)這段時(shí)間對溫度控制系統(tǒng)的設(shè)計(jì),使我對單片機(jī)設(shè)計(jì)的基本要點(diǎn)有一些了解,但也認(rèn)識到自己在設(shè)計(jì)思維上的青澀不足。相信這些能力在今后的設(shè)計(jì)中會被慢慢的培養(yǎng)起來。單片機(jī)系統(tǒng)設(shè)計(jì)中的重點(diǎn),就是在進(jìn)行大體的方案設(shè)計(jì)后,對系統(tǒng)具體的實(shí)現(xiàn)進(jìn)行規(guī)劃。其次就是單片機(jī)機(jī)型和器件的選擇,性能特點(diǎn)要適合所要完成的任務(wù),避免過多的功能閑置,當(dāng)然還要考慮性價(jià)比等問題。一種功能往往是既可以由硬件實(shí)現(xiàn)又可以由軟件實(shí)現(xiàn)。用硬件實(shí)現(xiàn)功能一般情況下可以節(jié)省CPU的時(shí)間,但系統(tǒng)的硬件接線復(fù)雜,成本高。用軟件實(shí)現(xiàn)則較為經(jīng)濟(jì),但要占用更多的CPU時(shí)間。所以,在CPU時(shí)間不緊張的情況下,應(yīng)盡量采用軟件。如果系統(tǒng)回路多,實(shí)時(shí)性要求強(qiáng),則要考慮用硬件完成。確定了所需元件后,便可在仿真軟件上制作出系統(tǒng)的電路原理圖,經(jīng)過必要的實(shí)驗(yàn)驗(yàn)證后完成電路板的制作。最后的重點(diǎn)就是程序設(shè)計(jì)。單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)通常采用模塊化、自頂向下的程序設(shè)計(jì)方法。因此要建立起有條理,靈活的思維方式,只能通過實(shí)踐,通過設(shè)計(jì),一點(diǎn)點(diǎn)鍛煉和完善自己的能力。

參考文獻(xiàn):<<單片機(jī)原理及接口技術(shù)>>段晨東主編《單片機(jī)典型外圍器件及應(yīng)用實(shí)例》求是科技編著《單片機(jī)應(yīng)用實(shí)例教程》張永峰主編附錄一:電路原理圖

附錄二:元件明細(xì)表元器件數(shù)量備注電阻45K電阻14.7K電阻41K獨(dú)石電容230pF電解電容110uf25V51單片機(jī)實(shí)驗(yàn)板1AT89C52芯片1MAX232芯片174LS245芯片274LS138芯片1DS18B201三極管S90122PNP數(shù)碼管2三位八段共陰晶振111.0592MHz芯片座6電源座1三腳5V通信插座1CON232電源適配器1通訊電纜1實(shí)驗(yàn)插板1單排插針若干燈泡15V杜邦線、頭若干風(fēng)扇15V導(dǎo)線若干

附錄三:程序FLAG1BIT00H;FLAG1:標(biāo)志位,為"1"時(shí)表示檢測到DS18B20TEMPER_NUMEQU50H;TEMPER_NUM:保存讀出的溫度數(shù)據(jù)bcd碼TEMPER_LEQU36H;溫度的低位TEMPER_HEQU35H;溫度的低位TEMPEQU34H;臨時(shí)存放溫度數(shù)據(jù)的單元SJGWEQU30H;存放顯示溫度的個(gè)位數(shù)SJSWEQU31H;存放顯示溫度的個(gè)位數(shù)DQBITP1.3;DQ:DS18B20的數(shù)據(jù)總線接腳MOV46H,#00H ;秒個(gè)位 MOV47H,#00H ;秒十位 MOV48H,#00H ;分個(gè)位 MOV49H,#00H ;分十位 ;//*****************************************//ORG0000HLJMPMAIN ORG000BH LJMPT_TOORG0030HMAIN:MOVA,#00 ;置18B20初值MOVTEMPER_NUM,AMOVTEMPER_L,#00MOVTEMPER_H,#00 MOV40H,#00H ;置設(shè)置初值個(gè)位 MOV41H,#00H ;置設(shè)置初值十位MOV43H,#10 MOVSP,#60HMOVTMOD,#01H ;計(jì)時(shí)程序初始化MOVTL0,#0B0H MOVTH0,#3CH MOV5FH,#20 SETBEA ;CPU開中斷 SETBET0 ;允許中斷 MOVR6,#10MOVP2,#0F1H ACALLINIT_1820SHEZHI: MOVP2,#0F1H ;鍵盤初值關(guān)風(fēng)扇關(guān)加熱器LCALLTEMPERLCALLDISP1 ;顯示所測溫度CALLDISP ;顯示設(shè)定溫度JBP2.7,P26LCALLDL20MSJNBP2.7,WAIT JMPP26 WAIT:JBP2.7,GW JMPWAITGW:CALLDISPINC40HDJNZ43H,SHEZHIMOV40H,#00HMOV43H,#10JMP SHEZHIP26:JBP2.6,P25LCALLDL20MS JNBP2.6,WAIT1WAIT1:JBP2.6,SW JMPWAIT1SW:CALLDISP INC41HDJNZR6,SHEZHIMOV41H,#00HMOVR6,#10JMPSHEZHIP25:JBP2.5,SHEZHI ;比較開關(guān) LCALLDL20MS JNBP2.5,WAIT2WAIT2:JBP2.5,COMP JMPWAIT2COMP:LCALLTEMPER;比較程序MOVA,41HSWAPA ORLA,40H CLRCREGU:CJNEA,50H,DO MOVP2,#0F1H CLRTR0 LCALLDISP1CALLDISP JMPCOMP DO:LJMPDO1 DISP:MOVDPTR,#LED_SEG ;置數(shù)顯示MOVA,40H MOVCA,@A+DPTR SETBP1.0 CLRP1.1 SETBP1.2 MOVP0,A LCALLDS1MS MOVA,41H MOVCA,@A+DPTR CLRP1.0 MOVP0,A LCALLDS1MS RETLED_SEG:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB7FH,6FH ;//*****************************************//TEMPER:ACALLRE_CONFIGACALLGET_TEMPERcallTEMPER_COVRET;初始化程序INIT_1820:SETBDQNOPCLRDQ;主機(jī)發(fā)出延時(shí)540us的復(fù)位低脈沖MOVR0,#36LCALLDELAYSETBDQ;然后拉高數(shù)據(jù)線NOPNOPMOVR0,#36TSR2:JNBDQ,TSR3;等待DS18B20的回應(yīng)DJNZR0,TSR2LJMPTSR4;延時(shí)TSR3:SETBFLAG1;置標(biāo)志位,表示DS1820存在LJMPTSR5TSR4:CLRFLAG1;清標(biāo)志位,表示DS1820不存在LJMPTSR7TSR5:MOVR0,#06BH;200usTSR6:DJNZR0,TSR6;復(fù)位成功!時(shí)序要求延時(shí)一段時(shí)間TSR7:SETBDQRET;//*****************************************//;重新寫DS18B20暫存存儲器設(shè)定值;//*****************************************//RE_CONFIG:JBFLAG1,RE_CONFIG1;若DS18B20存在,轉(zhuǎn)RE_CONFIG1RETRE_CONFIG1:MOVA,#0CCH;發(fā)SKIPROM命令LCALLWRITE_1820MOVA,#4EH;發(fā)寫暫存存儲器命令LCALLWRITE_1820MOVA,#00H;不TH(報(bào)警上限)中寫入00HLCALLWRITE_1820MOVA,#00H;TL(報(bào)警下限)中寫入00HLCALLWRITE_1820MOVA,#1FH;選擇9位溫度分辨率LCALLWRITE_1820RET;//*****************************************//;讀出轉(zhuǎn)換后的溫度值;//*****************************************//GET_TEMPER:SETBDQ;定時(shí)入口LCALLINIT_1820JBFLAG1,TSS2RET;若DS18B20不存在則返回TSS2:MOVA,#0CCH;跳過ROM匹配LCALLWRITE_1820MOVA,#44H;發(fā)出溫度轉(zhuǎn)換命令LCALLWRITE_1820MOVR0,#50;等待A/D轉(zhuǎn)換結(jié)束,12位的話750usLCALLDELAYLCALLINIT_1820MOVA,#0CCH;跳過ROM匹配LCALLWRITE_1820MOVA,#0BEH;發(fā)出讀溫度命令LCALLWRITE_1820LCALLREAD_18200MOVTEMPER_NUM,A;將讀出的溫度數(shù)據(jù)保存RET;//*****************************************//;讀DS18B20的程序,從DS18B20中讀出一個(gè)字節(jié)的數(shù)據(jù);//*****************************************//READ_1820:MOVR4,#8RE1:CLRCSETBDQNOPNOPCLRDQNOPNOPNOPSETBDQMOVR7,#7DJNZR7,$MOVC,DQMOVR7,#23DJNZR7,$RRCADJNZR4,RE1RET;//*****************************************//;寫DS18B20的程序;//*****************************************//WRITE_1820:MOVR4,#8CLRCWR1:CLRDQMOVR7,#6DJNZR7,$RRCAMOVDQ,CMOVR7,#23DJNZR7,$SETBDQNOPDJNZR4,WR1SETBDQRET;//*****************************************//;讀DS18B20的程序,從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù);//*****************************************//READ_18200:MOVR4,#2;將溫度高位和低位從DS18B20中讀出MOVR1,#36H;低位存入36H(TEMPER_L),高位存入35H(TEMPER_H)RE00:MOVR7,#8RE01:CLRCSETBDQNOPNOPCLRDQNOPNOPNOPSETBDQMOVR0,#7DJNZR0,$MOVC,DQMOVR0,#23DJNZR0,$RRCADJNZR7,RE01MOV@R1,ADECR1DJNZR4,RE00RET;//*****************************************//;將從DS18B20中讀出的溫度數(shù)據(jù)進(jìn)行轉(zhuǎn)換;//*****************************************//TEMPER_COV:MOVA,#0F0HANLA,TEMPER_L;舍去溫度低位中小數(shù)點(diǎn)后的四位溫度數(shù)值SWAPAMOVTEMPER_NUM,AMOVA,TEMPER_LJNBACC.3,TEMPER_COV1;四舍五入去溫度值INCTEMPER_NUMTEMPER_COV1:MOVA,TEMPER_HANLA,#07HSWAPAORLA,TEMPER_NUMMOVTEMPER_NUM,A;保存變換后的溫度數(shù)據(jù)LCALLBIN_BCDRET;//*****************************************//;將16進(jìn)制的溫度數(shù)據(jù)轉(zhuǎn)換成壓縮BCD碼;//*****************************************//BIN_BCD:MOVDPTR,#TEMP_TABMOVA,TEMPER_NUMMOVCA,@A+DPTRMOVTEMPER_NUM,ARETTEMP_TAB:DB00H,01H,02H,03H,04H,05H,06H,07HDB08H,09H,10H,11H,12H,13H,14H,15HDB16H,17H,18H,19H,20H,21H,22H,23HDB24H,25H,26H,27H,28H,29H,30H,31HDB32H,33H,34H,35H,36H,37H,38H,39HDB40H,41H,42H,43H,44H,45H,46H,47HDB48H,49H,50H,51H,52H,53H,54H,55HDB56H,57H,58H,59H,60H,61H,62H,63HDB64H,65H,66H,67H,68H,69H,70H,71H DB72H,73H,74H,75H,76H,77H,78H,79HDB80H,81H,82H,83H,84H,85H,86H,87HDB88H,89H,90H,91H,92H,93H,94H,95HDB96H,97H,98H,99H;//*****************************************//;延時(shí)子程序;為保證DS18B20的嚴(yán)格I/O時(shí)序,需做較精確的延時(shí);在DS18B20操作中,用到的延時(shí)有15us、90us、270us、540us、750us;因?yàn)檫@些延時(shí)均為15us的倍數(shù),因此可編寫一個(gè)DELAY15(n)函數(shù);//*****************************************//DELAY:LOOP:MOVR1,#06HLOOP1:DJNZR1,LOOP1DJNZR0,LOOPRET;//*****************************************//;500毫秒延時(shí)子程序;//*****************************************// DELAY500:MOV

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論