溫度檢測(cè)系統(tǒng)設(shè)計(jì)--單片機(jī)課程設(shè)計(jì)報(bào)告.docx
《溫度檢測(cè)系統(tǒng)設(shè)計(jì)--單片機(jī)課程設(shè)計(jì)報(bào)告.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《溫度檢測(cè)系統(tǒng)設(shè)計(jì)--單片機(jī)課程設(shè)計(jì)報(bào)告.docx(54頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、電氣工程學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)報(bào)告班 級(jí): 姓 名: 學(xué) 號(hào): 設(shè)計(jì)題目: 溫度檢測(cè)系統(tǒng)設(shè)計(jì) 設(shè)計(jì)時(shí)間: 評(píng)定成績(jī): 評(píng)定教師: 摘要 以51單片機(jī)為核心,設(shè)計(jì)一個(gè)溫度檢測(cè)系統(tǒng)。該系統(tǒng)基于8051核心的單片機(jī)AT89S51,通過(guò)串行AD轉(zhuǎn)換芯片PCF8591將基于NTC熱敏電阻的測(cè)溫電路輸出的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并根據(jù)電路特性曲線計(jì)算出目標(biāo)溫度值,還具有通過(guò)lcd1602液晶顯示目標(biāo)溫度和超過(guò)設(shè)定閾值報(bào)警功能。該系統(tǒng)面向普通的要求不高的測(cè)溫場(chǎng)景,并盡可能提高測(cè)量精度、減小測(cè)量誤差。 Proteus仿真、keil與proteus聯(lián)調(diào)是此次設(shè)計(jì)該系統(tǒng)的主要手段,即過(guò)程中,通過(guò)軟件對(duì)系統(tǒng)各個(gè)模塊功能
2、的調(diào)試。該系統(tǒng)的核心有以下幾個(gè)部分:lcd控制、ic通信協(xié)議,以及NTC熱敏電阻特性曲線和補(bǔ)償算法。 由于該系統(tǒng)功能簡(jiǎn)單,元器件數(shù)量較少,最終可以在單片機(jī)學(xué)習(xí)板上實(shí)現(xiàn)。由于仿真和實(shí)際學(xué)習(xí)板的條件不同,使用軟件仿真是時(shí)采用AT89S51單片機(jī),實(shí)際調(diào)試時(shí)使用STC89C52RC單片機(jī),其功能完全兼容AT89S52單片機(jī)。關(guān)鍵詞:溫度檢測(cè)、51單片機(jī)、ic通訊、NTC熱敏電阻、仿真目錄一、設(shè)計(jì)要求11.1 設(shè)計(jì)要求分析1二、方案設(shè)計(jì)和選定22.1文獻(xiàn)綜述22.1.1 單片機(jī)模塊22.1.2 AD轉(zhuǎn)換模塊22.1.3 顯示模塊32.1.4 報(bào)警模塊42.1.5 測(cè)溫模塊42.1.6 輸入模塊52.2
3、 最終方案選定52.3硬件成本計(jì)算6三、硬件設(shè)計(jì)(基于proteus)73.1 仿真原理圖設(shè)計(jì)73.2 仿真器件選擇及參數(shù)設(shè)定11四、程序設(shè)計(jì)124.1程序流程圖124.2 LCD顯示程序134.3 PCF 8591控制程序164.3測(cè)溫電路算法設(shè)計(jì) 164.5 報(bào)警模塊和按鍵模塊程序設(shè)計(jì)25五、調(diào)試過(guò)程275.1 軟硬件調(diào)試275.2 運(yùn)行效果展示28六、設(shè)計(jì)總結(jié)31參考文獻(xiàn)32附錄:源程序34一、設(shè)計(jì)要求溫度檢測(cè)及報(bào)警實(shí)現(xiàn)具有溫度檢測(cè)、顯示、以及報(bào)警功能的溫度檢測(cè)應(yīng)用系統(tǒng),功能指標(biāo)如下:(1) 滿足通用要求;(2) 溫度采集及顯示精度為1位小數(shù);其中:*通用要求1、人機(jī)接口:可選擇開(kāi)關(guān)、按
4、鍵、發(fā)光管、LED數(shù)碼管、點(diǎn)陣字符LCD、圖形字符LCD等;2、模擬器件:可選擇A/D、D/A、運(yùn)放、模擬開(kāi)關(guān)等,其中A/D、D/A要求是串行接口類;3、傳感器:要求是模擬量輸出。1.1 設(shè)計(jì)要求分析在現(xiàn)有的條件和一定的成本控制下,應(yīng)該盡可能提高溫度檢測(cè)的精度和響應(yīng)速度。在顯示方面應(yīng)該盡可能清晰直觀,設(shè)定操作也應(yīng)該簡(jiǎn)單方便。滿足通用要求即系統(tǒng)可以提供人機(jī)交互,應(yīng)通過(guò)顯示模塊顯示被測(cè)參數(shù),且可以通過(guò)按鍵或開(kāi)關(guān)對(duì)系統(tǒng)進(jìn)行設(shè)置。模擬器件要求是串行接口,可以節(jié)省io資源,但是編程相對(duì)較為復(fù)雜。傳感器要求模擬量輸出,則不能使用數(shù)字溫度傳感器,如18B20數(shù)字溫度傳感器。設(shè)計(jì)一個(gè)具有溫度檢測(cè)、顯示、以及報(bào)
5、警功能的溫度檢測(cè)應(yīng)用系統(tǒng),可以分為溫度檢測(cè)模塊檢測(cè)溫度,顯示模塊用于顯示溫度值和其他信息,報(bào)警模塊用來(lái)提供警報(bào),系統(tǒng)的核心應(yīng)由單片機(jī)系統(tǒng)完成信息和用戶操作的處理。對(duì)于各個(gè)模塊的方案分析和選用,在下一章節(jié)進(jìn)行詳細(xì)的說(shuō)明。二、方案設(shè)計(jì)和選定2.1文獻(xiàn)綜述查閱相關(guān)資料之后,在各個(gè)模塊的選用方案在考慮成本、性能、設(shè)計(jì)要求和使用環(huán)境的前提下,最終做出較為合適的選擇。系統(tǒng)方案的最終目標(biāo)是在考慮成本的前提下,盡量提高系統(tǒng)的易用度、提高溫度檢測(cè)的精度。各個(gè)模塊的方案比較和選用具體如下:2.1.1 單片機(jī)模塊由于系統(tǒng)目標(biāo)功能比較簡(jiǎn)單,所以核心微控制器可以采用成本低廉、應(yīng)用非常廣泛的8位單片機(jī)。根據(jù)實(shí)際情況,有以
6、下幾種單片機(jī)可供選擇:51單片機(jī)、avr單片機(jī)、stm8、pic單片機(jī)等。相比于其他幾類單片機(jī),51單片機(jī)在功能、價(jià)格、穩(wěn)定性、處理速度上均不具特別優(yōu)勢(shì),但是由于其使用比較簡(jiǎn)單、價(jià)格足夠便宜、例程豐富和在現(xiàn)有軟硬件資源限制下,最終選擇8051核心的AT89S51增強(qiáng)版單片機(jī)。AT89S51單片機(jī)是Atmel公司的產(chǎn)品,其具有4組8位雙向IO口,內(nèi)部集成2個(gè)16位定時(shí)器/計(jì)數(shù)器、兩個(gè)外部中斷以及一個(gè)全雙工異步uart通信接口,此外片內(nèi)集成4KB flash ROM和128B高速RAM。該單片機(jī)可工作于0-33MHz速度下,其性能足以用來(lái)設(shè)計(jì)該溫度檢測(cè)系統(tǒng)。2.1.2 AD轉(zhuǎn)換模塊由于該款單片機(jī)內(nèi)
7、部未集成AD轉(zhuǎn)換功能,所以需采用一片外部AD轉(zhuǎn)換芯片。常用的AD芯片由轉(zhuǎn)換方法可分為積分型、逐次比較型、電容陣列逐次比較型等等。AD轉(zhuǎn)換芯片的分辨率越高、轉(zhuǎn)換速度越快,其價(jià)格越高。受限于成本要求和應(yīng)用場(chǎng)景,主要有以下幾款芯片待選:TLC5510、ADC0809、AD574、PCF8591。以上四種AD轉(zhuǎn)換芯片都具有8位或12位的轉(zhuǎn)換精度,但是其轉(zhuǎn)換類型各有不同,輸入通道數(shù)量也有所不同,成本都比較適中。由于設(shè)計(jì)要求使用串行接口的芯片并且要求檢測(cè)和顯示精度為小數(shù)點(diǎn)后一位,并且根據(jù)現(xiàn)有的單片機(jī)學(xué)習(xí)版的資源,最終選用具有串行接口的8位AD芯片PCF8591。該芯片使用逐次逼近方法進(jìn)行AD轉(zhuǎn)換,使用ic
8、通信協(xié)議。其有四個(gè)輸入通道,可作為獨(dú)立4通道輸入,或者3或2組差分輸入,另有一個(gè)模擬輸出接口(該系統(tǒng)中未使用)。ic通信協(xié)議是一種串行通訊協(xié)議,其只需一根雙向數(shù)據(jù)線、一根時(shí)鐘脈沖線即可完成通訊,占用IO口少,但編程相對(duì)較為復(fù)雜。相比而言,PCF8591芯片具有差分輸入功能,可以一定程度上抑制共模信號(hào),所以可以設(shè)計(jì)電路使其具有一定的抗干擾能力。2.1.3 顯示模塊從實(shí)際系統(tǒng)要求和成本考慮,主要有兩類顯示模塊可供選擇:LED顯示和LCD顯示。LED模塊主要有八段數(shù)碼管、點(diǎn)陣LED,LCD模塊主要有l(wèi)cd1602、lcd12864、諾基亞5110液晶屏。下面分別將五個(gè)模塊在成本、功能、控制、優(yōu)缺點(diǎn)等
9、方面做出比較:點(diǎn)陣LED八段數(shù)碼管lcd1602lcd12864Nokia5110價(jià)格低低較低較高一般顯示內(nèi)容較少少多多多數(shù)量需求2-44-6111優(yōu)點(diǎn)亮度高、成本低亮度高、成本低可直接顯示ascll字符,可顯示16*2個(gè)字符,成本較低、控制簡(jiǎn)單128*64點(diǎn)陣,顯示內(nèi)容多,可顯示各種字符和圖案串行通訊、需要io口較少,84*48點(diǎn)陣可顯示30個(gè)字符,工作速度快、價(jià)格低缺點(diǎn)驅(qū)動(dòng)電流大,占用io口多,需動(dòng)態(tài)掃描、編程復(fù)雜驅(qū)動(dòng)電流大,占用io口多,需動(dòng)態(tài)掃描、編程復(fù)雜占用io口較多、難以顯示復(fù)雜字符,不適合顯示圖案占用io口較多、需要的顯示數(shù)據(jù)多、成本高自身不帶有字庫(kù),需要的顯示數(shù)據(jù)較多綜合成本8
10、元4元5元24元11元最終根據(jù)設(shè)計(jì)要求和考慮成本,選用lcd1602液晶作為系統(tǒng)的顯示模塊顯示被測(cè)溫度值和提供人機(jī)交互界面。Lcd1602液晶屏在成本和功能、易用度等各個(gè)方便均由不錯(cuò)的表現(xiàn),幾乎是設(shè)計(jì)該系統(tǒng)顯示模塊的不二之選。2.1.4 報(bào)警模塊根據(jù)設(shè)計(jì)要求,系統(tǒng)可以根據(jù)用戶設(shè)定的溫度值進(jìn)行監(jiān)控,當(dāng)被測(cè)溫度高于設(shè)定溫度時(shí)應(yīng)該提供警報(bào),提供警報(bào)。警報(bào)的方式有很多種,此次采用最常見(jiàn)的聲光警報(bào)。聲音警報(bào)可以選用有源蜂鳴器、無(wú)源蜂鳴器和專用的聲音ic芯片。有源蜂鳴器在通電之后就可以發(fā)出特定頻率和間隔的聲音;無(wú)源蜂鳴器需要給予一定500-20000Hz的脈沖才可發(fā)出人類可聽(tīng)見(jiàn)的聲音;專用的聲音ic配合微
11、型揚(yáng)聲器就可以發(fā)出不同的聲音。三種方案成本都比較低,但是無(wú)源蜂鳴器的成本最低,不足0.5元錢??梢岳脝纹瑱C(jī)控制其發(fā)出特定頻率的聲音作為聲音警報(bào),所以選用無(wú)源蜂鳴器作為聲音警報(bào)模塊。另外使用一顆led發(fā)光管作為警報(bào)光源。2.1.5 測(cè)溫模塊根據(jù)要求使用NTC熱敏電阻組成的測(cè)溫電路進(jìn)行溫度測(cè)量。類似的還有PTC熱敏電阻構(gòu)成測(cè)溫電路,其輸出均為模擬量,滿足設(shè)計(jì)要求。NTC熱敏電阻又稱為負(fù)溫度系數(shù)熱敏電阻,是一類電阻值隨溫度增大而減小的一種傳感器電阻。廣泛用于各種電子原件中,如溫度傳感器、可復(fù)式保險(xiǎn)絲及自動(dòng)調(diào)節(jié)的加熱器等。其價(jià)格低廉,工作比較穩(wěn)定,適用于測(cè)量精度要求不高的場(chǎng)合。普通型的NTC熱敏電阻
12、可以用于測(cè)量 -20200,可選阻值?,F(xiàn)選用10k阻值的NTC熱敏電阻和10k阻值的不變電阻組成分壓電路。該測(cè)溫電路輸出0-5v DC模擬量,溫度和輸出量呈非線性關(guān)系,需要進(jìn)行大量的數(shù)據(jù)測(cè)量并據(jù)此使用數(shù)學(xué)工具軟件擬合出關(guān)系公式,最終得出盡量準(zhǔn)確的溫度曲線。此外為保證數(shù)據(jù)的準(zhǔn)確性,還應(yīng)該根據(jù)實(shí)際溫度曲線和建模擬合的曲線進(jìn)行比對(duì),并適當(dāng)對(duì)數(shù)據(jù)進(jìn)行修正。2.1.6 輸入模塊根據(jù)設(shè)計(jì)要求,系統(tǒng)應(yīng)該具有報(bào)警功能。設(shè)定溫度值應(yīng)由用戶輸入設(shè)定,另外還需提供一個(gè)報(bào)警的開(kāi)關(guān)功能選定。采用簡(jiǎn)單的按鍵輸入方案。使用單片機(jī)學(xué)習(xí)版提供的四腳輕觸開(kāi)關(guān),其成本低廉,但是由于其機(jī)械結(jié)構(gòu),在按下的過(guò)程中會(huì)產(chǎn)生機(jī)械抖動(dòng)情況,應(yīng)該
13、盡量使用編程方法消除可能產(chǎn)生的誤差。根據(jù)系統(tǒng)功能要求,使用三個(gè)按鍵即可實(shí)現(xiàn)要求的功能。三個(gè)按鍵分別用于設(shè)定溫度的“+”、“-”功能,以及警報(bào)的開(kāi)關(guān)功能。2.2 最終方案選定最終方案:選用AT89S51單片機(jī)作為控制核心,使用PCF8591 AD芯片和NTC熱敏電阻測(cè)溫電路構(gòu)成系統(tǒng)的測(cè)溫模塊,使用一片lcd1602液晶作為系統(tǒng)的顯示模塊,使用一個(gè)無(wú)源蜂鳴器和led發(fā)光管作為系統(tǒng)的報(bào)警模塊,使用3個(gè)按鍵作為系統(tǒng)的輸入模塊。系統(tǒng)結(jié)構(gòu)圖如下:報(bào)警模塊控制按鍵LCD1602液晶屏AT89S51 單片機(jī)NTC熱敏電阻測(cè)溫電路PCF 8591AD轉(zhuǎn)化各模塊功能說(shuō)明:1、單片機(jī)配合對(duì)應(yīng)的電源、復(fù)位和晶振模塊,
14、使之成為可以工作的最小系統(tǒng)。該部分可以獨(dú)立工作并完成基本功能。2、報(bào)警模塊由一個(gè)串聯(lián)限流電阻的發(fā)光二極管和蜂鳴器構(gòu)成,二極管以單片機(jī)引腳直接低電平驅(qū)動(dòng),蜂鳴器采用一個(gè)NPN三極管驅(qū)動(dòng)。3、LCD1602液晶屏的數(shù)據(jù)引腳由單片機(jī)的P0口連接,三個(gè)控制引腳分別由P2口低三位控制。4、三個(gè)按鍵功能分別為:設(shè)定溫度+0.5,設(shè)定溫度-0.5和警報(bào)開(kāi)關(guān)、前兩個(gè)按鍵鎖定功能。5、AD轉(zhuǎn)化、測(cè)溫電路由PCF8591和NTC熱敏電阻以及一個(gè)10k電阻構(gòu)成。2.3硬件成本計(jì)算在選定最終方案后,應(yīng)該計(jì)算系統(tǒng)的硬件成本。硬件成本如下表:?jiǎn)蝺r(jià)數(shù)量總價(jià)AT89S51單片機(jī)5.015.0pcf8591p11.0111.0
15、lcd1602液晶5.015.0無(wú)源蜂鳴器0.510.5NTC熱敏電阻0.110.1其他零散元件818PCB制版費(fèi)15.0115.0其他10.0110.0總計(jì)39.6關(guān)于硬件成本計(jì)算的補(bǔ)充說(shuō)明:1、所有元器件的封裝要根據(jù)實(shí)際情況進(jìn)行選定,但是成本近似相等。2、實(shí)際系統(tǒng)中多使用各種規(guī)格的電容、電阻、晶振、按鍵、芯片插槽、排針、導(dǎo)線等零散元件,由于其種類多、價(jià)格低廉,所以不逐個(gè)列出。還有制作做過(guò)程中產(chǎn)生的成本,如焊接設(shè)備、耗材等,只進(jìn)行統(tǒng)一折算。3、PCB制版要根據(jù)實(shí)際情況做改動(dòng),此處的10元成本是指批量定制(10片及以上)的平均成本。4、該系統(tǒng)使用5v電源即可滿足供電要求,因此默認(rèn)使用USB供電
16、而未單獨(dú)設(shè)計(jì)電源模塊。三、硬件設(shè)計(jì)(基于proteus)系統(tǒng)方案確立后,應(yīng)該根據(jù)設(shè)定的方案具體實(shí)現(xiàn)規(guī)定的功能。在硬件方面,可以使用proteus軟件進(jìn)行電路原理圖的設(shè)計(jì)并進(jìn)行初步仿真。Proteus提供了硬件的設(shè)計(jì)及仿真,能仿真許多常用電子器件的功能,可以為設(shè)計(jì)者提供方案的可行性檢測(cè)和初步仿真。在仿真過(guò)程中可以發(fā)現(xiàn)設(shè)計(jì)方案的不足并加以改正,此外還可以很大程度的驗(yàn)證程序設(shè)計(jì)的可行性。3.1 仿真原理圖設(shè)計(jì)以下根據(jù)模塊來(lái)介紹仿真原理圖。1、單片機(jī)模塊該模塊包含AT89S51單片機(jī)、晶振電路和復(fù)位電路。系統(tǒng)采用12MHz的晶振,折算到機(jī)器周期為1us。復(fù)位電路主要由一個(gè)電容、電阻和按鍵組成,上電時(shí)電
17、容充電在單片機(jī)RST引腳產(chǎn)生一個(gè)高電平,其周期與RC時(shí)間常數(shù)有關(guān)。在正常工作時(shí),電容飽和,RST引腳通過(guò)電阻接地為低電平,按鍵按下Vcc直接接入單片機(jī)RST引腳并且使電容放電,按鍵松開(kāi)時(shí),電容充電從而使RST引腳維持高電平一段時(shí)間。AT89S51的復(fù)位信號(hào)為大于2個(gè)機(jī)器周期的高電平有效。應(yīng)該注意的是,proteus默認(rèn)的元件庫(kù)中并沒(méi)有AT89S51單片機(jī),但是完全可以用AT89C51代替,兩者功能互相兼容,在此設(shè)計(jì)中仿真效果基本一致。2、按鍵模塊按鍵電路比較簡(jiǎn)單,使用三個(gè)按鍵直接和單片機(jī)io引腳相連,另一端與地相連。單片機(jī)讀引腳時(shí)先向io引腳內(nèi)部的鎖存器寫“1”使場(chǎng)效應(yīng)管截止,因此按鍵若未按下
18、則讀入為“1”,按下則讀入為“0”。另外單片機(jī)io引腳默認(rèn)復(fù)位電平為高電平,應(yīng)考慮復(fù)位后io高電平可能產(chǎn)生的不良影響。3、報(bào)警電路報(bào)警電路采用一個(gè)無(wú)源蜂鳴器和一個(gè)發(fā)光二極管。由于單片機(jī)的io驅(qū)動(dòng)能力不強(qiáng),僅為幾個(gè)毫安,而無(wú)源蜂鳴器一般需要幾十毫安的驅(qū)動(dòng)電流,所以應(yīng)該給無(wú)源蜂鳴器配備驅(qū)動(dòng)電路。該電路中采用了一個(gè)NPN型三極管,在單片機(jī)輸出高電平至其基極時(shí)三極管導(dǎo)通,輸出低電平時(shí)關(guān)斷。實(shí)際應(yīng)用中,可選用常見(jiàn)的8050或9013三極管,其最大集電極電流大概在500mA左右,工作頻率在100MHz以上,完全可用于驅(qū)動(dòng)三極管。Led驅(qū)動(dòng)電流極小,只需用單片機(jī)以低電平方式驅(qū)動(dòng)即可??捎糜趯?shí)際仿真的單片機(jī)學(xué)
19、習(xí)板提供一片uln2003驅(qū)動(dòng)芯片,其驅(qū)動(dòng)效果和NPN三極管相同。4、顯示電路使用通用的lcd1602,軟件的仿真元件和實(shí)際元件的控制方式完全相同,工作頻率相近,顯示效果相同。Lcd1602有一個(gè)8位數(shù)據(jù)接口,用于數(shù)據(jù)和命令的傳輸,使用單片機(jī)的P0口作為數(shù)據(jù)接口。由于單片機(jī)的P0口作為io口時(shí)漏極開(kāi)路,所以應(yīng)該接入上拉電阻以實(shí)現(xiàn)標(biāo)準(zhǔn)雙向io口的功能。Lcd1602另需三個(gè)控制信號(hào),分別由單片機(jī)的P2.0、P2.1、P2.2三個(gè)io口控制。5、ic調(diào)試工具該部分由proteus提供的ic調(diào)試工具組成,可以據(jù)此判斷ic總線的工作情況,對(duì)于程序調(diào)試非常有幫助。此外還能看見(jiàn)ic傳輸?shù)臅r(shí)序、應(yīng)答信號(hào)、傳
20、輸?shù)牡刂泛蛢?nèi)容信息。6、AD轉(zhuǎn)換電路及測(cè)溫電路PCF8591芯片工作在差分輸入方式,其輸出結(jié)果為AIN0和AIN1通道的電壓差,差分輸入可以一致共模信號(hào),是系統(tǒng)抗干擾的能力大大增加。NTC電阻仿真型號(hào)為NCP15XH103,其典型阻值為10k,隨溫度的增大其阻值變小。在其參數(shù)屬性中可以設(shè)置不同的工作溫度,配合pcf8591檢測(cè)電壓,可以得到溫度與電壓對(duì)應(yīng)的數(shù)據(jù)。3.2 仿真器件選擇及參數(shù)設(shè)定仿真器件的參數(shù)一般要在器件的屬性里進(jìn)行設(shè)置,如AT89C51單片機(jī)工作頻率是在屬性頁(yè)面里設(shè)置,而不是由外部電路的晶振頻率決定的。NTC熱敏電阻可以在屬性設(shè)置假定的環(huán)境溫度,使其阻值發(fā)生相應(yīng)的變化。有的器件可
21、以改變工作電壓和電流的條件,方便調(diào)試時(shí)使用。設(shè)置器件參數(shù)如下:12MHz晶振,配合兩個(gè)22pF的啟動(dòng)電容,復(fù)位電路用一個(gè)10uF的電容以及1k歐的限流、下拉電阻,P0口采用10k歐的上拉電阻,報(bào)警電路的led采用220歐姆的限流電阻,測(cè)溫電路選用10k的定值電阻和NTC組成分壓電路,AD芯片的參考電壓采用5v的Vcc等。四、程序設(shè)計(jì)4.1程序流程圖程序主要分為以下幾個(gè)部分:PCF8591控制讀取程序,按鍵讀取程序,LCD1602控制程序,報(bào)警程序等。實(shí)際編程使用C語(yǔ)言,C51編程速度快,可讀性好,移植性好。采用模塊化編程,即將不同部分的程序分門別類寫入不同的.c文件中,在主程序中調(diào)用,好處是方
22、便修改、可讀性高。4.2 LCD顯示程序Lcd1602液晶主要有寫指令、寫數(shù)據(jù)、讀數(shù)據(jù)、讀狀態(tài)四種控制狀態(tài),在讀、寫時(shí)應(yīng)該嚴(yán)格遵守手冊(cè)的操作時(shí)序。 如圖,分別是lcd1602的讀寫時(shí)序和典型的時(shí)序時(shí)間表。對(duì)于51單片機(jī)來(lái)說(shuō),由于其工作指令周期一般在1us以上,因此一般無(wú)需考慮lcd1602時(shí)序?qū)r(shí)間的要求,但是在使用高速型微控制器時(shí)應(yīng)該考慮這個(gè)問(wèn)題。Lcd1602的控制程序主要是由初始化程序、寫指令程序、讀狀態(tài)程序以及寫數(shù)據(jù)程序構(gòu)成。使用前應(yīng)該先進(jìn)行初始化,每次進(jìn)行讀寫操作時(shí)應(yīng)該檢測(cè)lcd1602的狀態(tài)信息,忙狀態(tài)不可對(duì)屏幕進(jìn)行控制。4.3 PCF 8591控制程序PCF 8591芯片的使用重
23、點(diǎn)在于ic協(xié)議的掌握,只要編寫調(diào)試出ic協(xié)議的程序,即可根據(jù)芯片手冊(cè)提供的控制字對(duì)芯片進(jìn)行各種操作。ic是一種串行通訊協(xié)議,需要兩根線用于通訊:一根時(shí)鐘線、一根雙向數(shù)據(jù)線。通訊過(guò)程主要有以下幾個(gè)部分構(gòu)成:起始信號(hào)、應(yīng)答信號(hào)、數(shù)據(jù)幀、地址幀構(gòu)成。每次通訊均由主機(jī)發(fā)起,時(shí)鐘信號(hào)由主機(jī)提供。主機(jī)發(fā)出開(kāi)始信號(hào)后接著發(fā)出地址幀,地址幀包括芯片的識(shí)別碼、引腳地址和讀寫操作位,然后由芯片返回應(yīng)答信號(hào),接著主機(jī)讀取或發(fā)送一字節(jié)數(shù)據(jù)。每字節(jié)數(shù)據(jù)發(fā)送完,接收方應(yīng)該返回一個(gè)應(yīng)答信號(hào)以繼續(xù)進(jìn)行通訊。關(guān)于ic的操作時(shí)序如下圖:根據(jù)pcf 8591的芯片手冊(cè),芯片使用步驟大概如下:先發(fā)送地址幀和讀/寫選擇信號(hào),如果是寫操
24、作則由主機(jī)發(fā)送控制字,讀操作則主機(jī)讀取寄存器中轉(zhuǎn)換的8位數(shù)值。pcf 8591的控制字如下:Pcf 8591芯片地址幀后寫入的第一個(gè)字節(jié)為控制字,第二個(gè)字節(jié)為DA轉(zhuǎn)換的數(shù)值(可缺?。?。讀入為控制字設(shè)置的模式和通道對(duì)應(yīng)的寄存器。此程序中,設(shè)置芯片為AIN0、1和AIN2、3差分輸入,其結(jié)果分別會(huì)被存入channel 0、1中。應(yīng)注意每次讀取寄存器的值為上一次轉(zhuǎn)換結(jié)果。Pcf 8591程序如下:根據(jù)芯片手冊(cè)的操作要求,事實(shí)上無(wú)需由主機(jī)發(fā)送應(yīng)答信號(hào)。最終在主程序中只要調(diào)用ReadAdc()這個(gè)程序即可完成對(duì)通道0或1的讀取。讀取的數(shù)據(jù)為8位無(wú)符數(shù)據(jù),參考電壓設(shè)置為5.0v,則可以算出對(duì)應(yīng)的電壓值。4
25、.4 測(cè)溫電路建模及算法設(shè)計(jì)測(cè)量溫度的核心是NTC熱敏電阻隨著環(huán)境溫度的升高其阻值降低,通過(guò)分壓電路測(cè)量電壓變化則可以根據(jù)溫度電壓的關(guān)系曲線得到對(duì)應(yīng)的溫度值。電壓溫度的轉(zhuǎn)換可以有兩種方法,一是查表法,二是根據(jù)電壓溫度的關(guān)系曲線得到關(guān)系式,從而根據(jù)電壓值計(jì)算出溫度值。首先查表法由于數(shù)據(jù)量較大,因此執(zhí)行時(shí)需要較多時(shí)間,且有精度限制。其次測(cè)量數(shù)值為浮點(diǎn)型數(shù)據(jù),單個(gè)數(shù)據(jù)需占用4個(gè)字節(jié),由于AT89S51的存儲(chǔ)容量限制,數(shù)據(jù)不能過(guò)多。最后考慮到51單片機(jī)的計(jì)算能力和存儲(chǔ)容量,決定采用關(guān)系式計(jì)算的方法。關(guān)系式計(jì)算法具有連續(xù)性和更大的適用范圍,理論上能提供更高精度的計(jì)算結(jié)果。關(guān)系式由電壓溫度的關(guān)系曲線得來(lái),
26、此處用軟件仿真的方法,測(cè)量0100之間共101個(gè)溫度整數(shù)值對(duì)應(yīng)電壓的數(shù)據(jù),反復(fù)測(cè)量得出準(zhǔn)確的的數(shù)據(jù)。根據(jù)pcf 8591的轉(zhuǎn)換精度,采集的電壓值精確到小數(shù)點(diǎn)后三位。將獲得的溫度電壓一一對(duì)應(yīng)的數(shù)據(jù)輸入表格工具并加以整理,然后用數(shù)學(xué)工具M(jìn)ATLAB軟件中的CFTOOL工具箱描繪出二者的關(guān)系曲線:接下來(lái)對(duì)不連續(xù)曲線進(jìn)行分析和擬合,由于曲線非線性,所以不能采用線性數(shù)學(xué)公式。經(jīng)過(guò)試驗(yàn)并根據(jù)單片機(jī)的實(shí)際處理能力,決定嘗試以下幾種常用的擬合公式:四次多項(xiàng)式、五次多項(xiàng)式、傅里葉公式和高斯曲線公式。其擬合公式和曲線分別如下: 以下為四次多項(xiàng)式的擬合結(jié)果:以上為4次多項(xiàng)式的擬合結(jié)果,可見(jiàn)擬合曲線和原曲線基本重合,
27、不過(guò)相對(duì)于5次多項(xiàng)式擬合結(jié)果方差較大。由于數(shù)據(jù)是由軟件仿真得來(lái),因此不能保證其精確性。一下為5次多項(xiàng)式的擬合結(jié)果:可見(jiàn)相對(duì)于4次多項(xiàng)式的擬合結(jié)果,5次多項(xiàng)式具有更小的方差,曲線更加重合,但是沒(méi)有顯現(xiàn)出很大的差距。以下為傅里葉擬合結(jié)果:由于數(shù)據(jù)的數(shù)量和準(zhǔn)確性限制,傅里葉函數(shù)擬合結(jié)果并沒(méi)有顯現(xiàn)出很好的效果,且在010區(qū)域內(nèi)不能很好的重合,計(jì)算公式也比較復(fù)雜。以下為高斯曲線擬合結(jié)果:結(jié)果和傅里葉曲線擬合結(jié)果和傅里葉一樣,并不具有優(yōu)勢(shì),且計(jì)算較為復(fù)雜。通過(guò)以上圖標(biāo)和公式對(duì)比可知:其中傅里葉和高斯擬合公式的結(jié)果相比多項(xiàng)式而言,一是方差較大且在個(gè)別區(qū)域內(nèi)擬合曲線較實(shí)際曲線偏差較大,二是其計(jì)算公式復(fù)雜會(huì)導(dǎo)致
28、單片機(jī)計(jì)算負(fù)擔(dān)過(guò)大,從而可能影響整個(gè)系統(tǒng)的工作效率,故考慮采用多項(xiàng)式進(jìn)行擬合。由于選用的AD芯片精度和單片機(jī)數(shù)學(xué)公式計(jì)算程序的誤差限制,在四次和五次多項(xiàng)式兩項(xiàng)中,比較根據(jù)公式計(jì)算的結(jié)果與真實(shí)值之間的實(shí)際誤差來(lái)看,兩者效果相近,所以優(yōu)先采用計(jì)算較為簡(jiǎn)單的四次多項(xiàng)式。但是計(jì)算結(jié)果和實(shí)際溫度值仍有偏差,所以在現(xiàn)有的關(guān)系公式基礎(chǔ)上,增加了分段補(bǔ)償。部分?jǐn)?shù)據(jù)如下:即將電壓值分成若干個(gè)區(qū)間進(jìn)行分段修正。可以看見(jiàn)理想情況下的修正效果比較明顯,整體的誤差明顯降低。程序?qū)崿F(xiàn)如下:經(jīng)過(guò)程序仿真,最終可以實(shí)現(xiàn)在0100的范圍內(nèi),測(cè)量誤差在1以內(nèi)。以上數(shù)據(jù)均來(lái)源于仿真,在實(shí)際應(yīng)用中,由于條件限制,無(wú)法得到所需數(shù)量的電
29、壓溫度關(guān)系數(shù)據(jù),因此準(zhǔn)確性大大降低。在于普通的溫度計(jì)進(jìn)行不嚴(yán)格的比對(duì)后,發(fā)現(xiàn)實(shí)際的測(cè)量誤差通常在2以內(nèi),誤差較大。4.5 報(bào)警模塊和按鍵模塊程序設(shè)計(jì)報(bào)警模塊程序比較簡(jiǎn)單,利用單片機(jī)的一個(gè)16位定時(shí)器使無(wú)源蜂鳴器發(fā)出1KHz的警報(bào)聲。報(bào)警模塊主要配合按鍵,根據(jù)用戶設(shè)定值完成報(bào)警。報(bào)警和按鍵模塊的程序如下:利用單片機(jī)的定時(shí)器1產(chǎn)生1kHz的方波,是蜂鳴器發(fā)出1kHz的報(bào)警聲音。51單片機(jī)的定時(shí)器工作的必要條件是TR=1,因此只要控制TR就能完成對(duì)定時(shí)器1中斷的控制。配合按鍵程序使用,程序如下:兩功能模塊的程序在主程序中的使用如下:定時(shí)器1中斷程序如下,每次進(jìn)入中斷io口輸出電平取反,即可產(chǎn)生占空比
30、為50的方波:五、調(diào)試過(guò)程5.1 軟硬件調(diào)試調(diào)試過(guò)程采用Keil與Proteus聯(lián)調(diào)的調(diào)試方式。首先應(yīng)該對(duì)軟件進(jìn)行功能配置,在debug選項(xiàng)中選擇Proteus VSM Monitor-51 Driver,并勾選“Run to main”。然后在Proteus 的菜單欄“degug”,選擇允許遠(yuǎn)程調(diào)試,然后點(diǎn)擊keil的調(diào)試按鈕,即可在兩軟件間進(jìn)行聯(lián)調(diào)。使用聯(lián)調(diào)有助于快速發(fā)現(xiàn)程序和原理圖存在的問(wèn)題,在keil上選擇單步調(diào)試可以跟隨程序一步步執(zhí)行并觀察執(zhí)行結(jié)果。對(duì)于復(fù)雜程序,單步調(diào)試效率較低,此時(shí)可以在任意地方設(shè)置任意數(shù)量的斷點(diǎn),然后可以全速運(yùn)行到斷點(diǎn)處停下,然后根據(jù)需要選擇單步調(diào)試和斷點(diǎn)調(diào)試,
31、最終通過(guò)分析可以推斷問(wèn)題所在。例如在調(diào)試ic的過(guò)程中,程序發(fā)生問(wèn)題,通訊失敗,經(jīng)過(guò)軟件聯(lián)調(diào)并使用proteus中的ic調(diào)試工具,最終發(fā)現(xiàn)問(wèn)題出在ic通訊中的應(yīng)答信號(hào)上。在ic調(diào)試工具中,可以清楚看到通訊過(guò)程中的起始信號(hào)、應(yīng)答信號(hào)和傳輸數(shù)據(jù)的情況。可以據(jù)此推斷程序運(yùn)行狀況,并鎖定問(wèn)題大致所在區(qū)域。在整個(gè)調(diào)試過(guò)程中,出現(xiàn)過(guò)很多小問(wèn)題,均可通過(guò)聯(lián)調(diào)的方式發(fā)現(xiàn)問(wèn)題端倪,最終一一調(diào)試解決。另外,在整個(gè)程序調(diào)試過(guò)程中,應(yīng)該分模塊逐漸編程并調(diào)試。先解決了顯示屏的程序,然后在一一解決其他模塊的程序時(shí)可以利用顯示屏顯示調(diào)試結(jié)果。最終一步步完成整個(gè)程序的編寫調(diào)試工作。5.2 運(yùn)行效果展示1、系統(tǒng)運(yùn)行初始界面:此時(shí)
32、顯示屏第一行的Temp: 36.29為當(dāng)前檢測(cè)的溫度,第二行SetT:40.0為用戶設(shè)定的溫度值,開(kāi)機(jī)默認(rèn)值為四十,N表示當(dāng)前不允許溫度超過(guò)設(shè)定值警報(bào)并禁用溫度+、- 鍵。當(dāng)前的NTC熱敏電阻仿真屬性為36條件下。2、按下選擇鍵:N變Y,即允許溫度報(bào)警并可以使用+、- 按鍵。3、按下+鍵:溫度設(shè)定值+0.5.4、按下-鍵:溫度設(shè)定值-0.55、設(shè)定值低于檢測(cè)溫度值:顯示!,報(bào)警電路工作。6、再次按下選擇鍵:Y變成N,且!不顯示,報(bào)警電路停止工作。7、檢測(cè)溫度值大于設(shè)定值時(shí)系統(tǒng)工作情況與5、6步驟相同。Proteus使用總結(jié):Proteus自帶了很多元器件和各種調(diào)試工具,可以方便的調(diào)整電路和器件
33、的參數(shù)。仿真中,可以通過(guò)聯(lián)調(diào)等手段獲得仿真過(guò)程中系統(tǒng)的運(yùn)行狀態(tài)。Proteus仿真相比實(shí)際硬件對(duì)電路的要求不太嚴(yán)格,部分元器件及電路可以設(shè)定其屬性是仿真更為便捷,但是實(shí)際應(yīng)用中應(yīng)該嚴(yán)格按照各個(gè)元器件的電氣屬性進(jìn)行應(yīng)用。一般情況下proteus可能放寬了器件的工作條件,使硬件過(guò)于理想化。例如lcd1602的顯示程序在proteus仿真中可以得到期望結(jié)果,但有可能在實(shí)際器件上不能正確運(yùn)行。再如AT89S51的實(shí)際ROM容量為4KB,但是在proteus仿真中卻沒(méi)有容量上的限制,所以可以存儲(chǔ)超過(guò)4KB的程序和數(shù)據(jù)。而且Proteus中單片機(jī)的引腳驅(qū)動(dòng)能力沒(méi)有太大限制,甚至可以直接驅(qū)動(dòng)蜂鳴器等較大工作
34、電流的器件,但是實(shí)際應(yīng)用中應(yīng)該用三極管或者uln2003芯片構(gòu)成專用的驅(qū)動(dòng)電路。另外,盡管proteus中可以方便的設(shè)置各種變量,但是對(duì)于溫度等環(huán)境變量通常仿真結(jié)果不能保證準(zhǔn)確性,應(yīng)該盡量用實(shí)際電路進(jìn)行試驗(yàn)。因此,proteus仿真有利有弊,應(yīng)該充分利用其強(qiáng)大的仿真功能進(jìn)行學(xué)習(xí),但是也應(yīng)該注意仿真和實(shí)際硬件電路的差別。六、設(shè)計(jì)總結(jié)(1)此次課題設(shè)計(jì)使我對(duì)proteus和keil的操作熟練程度大大增加,尤其是熟練掌握了proteus和keil的聯(lián)調(diào)方法,使得調(diào)試程序的效率大大增加。(2)總結(jié)此次設(shè)計(jì)的經(jīng)驗(yàn),對(duì)于較為復(fù)雜的系統(tǒng),應(yīng)該將其按功能分成多個(gè)小的模塊,再按照一定順序逐一解決各個(gè)模塊,最終解
35、決整個(gè)問(wèn)題。(3)此次課程設(shè)計(jì)讓我初步體驗(yàn)到了做一整個(gè)工程需要經(jīng)歷的過(guò)程,雖然簡(jiǎn)單,但是卻和以往的效果不同。此次設(shè)計(jì)中,我需要在各個(gè)方面列出多種方案,并根據(jù)從成本、功能、穩(wěn)定性等各個(gè)方面分析各方案的可行性,并最終挑選出最合適的方案。較以往的設(shè)計(jì)更加嚴(yán)謹(jǐn)和全面,使個(gè)人能力得到了一定的鍛煉。(4)最后,此次設(shè)計(jì)仍然存在一些缺陷,例如實(shí)際應(yīng)用中溫度精度不高的問(wèn)題。同時(shí)在編程和設(shè)計(jì)算法的方面,仍有很多的可以優(yōu)化、改進(jìn)的方面,這需要花額外的時(shí)間和努力進(jìn)行完善。參考文獻(xiàn)1 徐愛(ài)鈞,彭秀華. Keil Cx51 V7.0單片機(jī)高級(jí)語(yǔ)言編程與uVision2應(yīng)用實(shí)踐,20042 余永權(quán). ATMEL89系列單片機(jī)應(yīng)用技術(shù). 北京航空航天大學(xué)出版社,20023 張毅剛. 單片機(jī)原理及應(yīng)用. 高等教育出版社,20104 馬忠梅,王美剛等. 單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì). 北京航空航天大學(xué)出版社,20135 張毅剛. 基于Proteus的單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì). 人民郵電出版社,20126 彭偉. 單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例. 電子工業(yè)出版社,2010附錄:源程序51
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語(yǔ)文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語(yǔ)文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版