基于單片機(jī)溫度自動控制設(shè)計.doc_第1頁
基于單片機(jī)溫度自動控制設(shè)計.doc_第2頁
基于單片機(jī)溫度自動控制設(shè)計.doc_第3頁
基于單片機(jī)溫度自動控制設(shè)計.doc_第4頁
基于單片機(jī)溫度自動控制設(shè)計.doc_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

濟(jì)源職業(yè)技術(shù)學(xué)院設(shè)計任務(wù)書設(shè)計題目:基于單片機(jī)溫度自動控制設(shè)計要求:基本范圍 099,精度誤差小于 1,led數(shù)碼直讀顯示,有自動控制、溫度報警指示燈設(shè)計進(jìn)度要求:指導(dǎo)教師(簽名): 摘 要自動控制系統(tǒng)在各個領(lǐng)域尤其是工業(yè)領(lǐng)域中有著及其廣泛的應(yīng)用,溫度控制是控制系統(tǒng)中最為常見的控制類型之一。隨著單片機(jī)技術(shù)的飛速發(fā)展,通過單片機(jī)對被控對象進(jìn)行控制日益成為今后自動控制領(lǐng)域的一個重要發(fā)展方向,電流、電壓、溫度、壓力、流量、流速和開關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對工業(yè)及日常生活中的溫度進(jìn)行檢測和控制。采用mcs-51單片機(jī)來對溫度進(jìn)行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對溫度的控制問題是一個工業(yè)生產(chǎn)中經(jīng)常會遇到的問題。我們利用溫度控制來更好的為我們的生活工作所服務(wù),提高我們的生活質(zhì)量。當(dāng)然本次溫度控制的設(shè)計也有不足之處,相信在不久的以后,隨著單片機(jī)行業(yè)的迅速發(fā)展,將會有更好的溫度控制儀的出現(xiàn)。關(guān)鍵字:mcs-51單片機(jī);溫度;軟硬件;硬件原理圖;程序框35目 錄摘 要ii目 錄iii一、單片機(jī)的發(fā)展1二、設(shè)計思路及總體框圖321設(shè)計思路322系統(tǒng)總體框圖電路總體原理框圖3三、硬件系統(tǒng)的設(shè)計531單片機(jī)系統(tǒng)5311單片機(jī)的選擇5312存儲器芯片的選擇7313單片機(jī)io口擴(kuò)展及外部存儲器電路73.2溫度采集電路的設(shè)計8321、溫度檢測傳感器8322、溫度采集電路9323、ds18b20溫度傳感器與單片機(jī)的接口電路163.3、溫度傳感器信號采集放大電路163.4、a/d的選擇173.5、d/a轉(zhuǎn)換電路1836、溫度檢測和變送器1837、鍵盤和顯示的設(shè)計1938、報警及指示燈電路的設(shè)計20四、軟件系統(tǒng)的設(shè)計2241、主程序22411主程序模塊22412讀出溫度子程序24413、溫度轉(zhuǎn)換命令子程序25414、計算溫度子程序26415、顯示數(shù)據(jù)刷新子程序2742、功能實現(xiàn)模塊2743、運算控制模塊2844、系統(tǒng)程序29致 謝36參考文獻(xiàn)37一、單片機(jī)的發(fā)展單片微型計算機(jī)是微型計算機(jī)的一個重要分支,也是一種非常活躍和頗具有生命力的機(jī)種。單片微型計算機(jī)簡稱單片機(jī),特別適用于工業(yè)控制領(lǐng)域,因此又稱為微控器。1971年微處理器研制成功不久,就出現(xiàn)了單片微型計算機(jī)即單片機(jī),但最早的單片機(jī)是1位的,處理能力有限。單片機(jī)的發(fā)展分為4個階段:第一階段(197476年):單片機(jī)初級階段。因為受工藝限制,單片機(jī)采用單片的形式而且功能比較簡單。例如美國仙童公司生產(chǎn)的f8單片機(jī),實際上只包括了8位cpu,64個字節(jié)的ram和2個并行接口。第二階段(197678年):低性能單片機(jī)階段。以intel公司生產(chǎn)的mcs48系列單片機(jī)為代表,該系列單片機(jī)片內(nèi)集成有8位cpu,8位定時器/計數(shù)器,并行i/o接口,ram和rom等,但是最大的缺點就是無串行接口,中斷處理比較簡單而且片內(nèi)ram和rom容量較小,且尋址范圍不大與4kb。第三階段(197883)高性能單片階段這個階段推出的單片機(jī)普遍帶有串行接口。多級中斷系統(tǒng),16位定時器/計數(shù)器,片內(nèi)rom,ram容量加大,且尋址范圍可達(dá)64kb,有的片內(nèi)還帶有a/d轉(zhuǎn)換器。第四階段(1983年至今)8位單片機(jī)鞏固發(fā)展以及16位單片機(jī),32 位單片機(jī)推出階段。此階段的主要特征是:一方面發(fā)展16位單片機(jī),32位單片機(jī)及專用型單片機(jī);另一方面不斷完善高檔8位單片機(jī),改善其結(jié)構(gòu),增加片內(nèi)器件,以滿足不同的客戶要求。 單片機(jī)的應(yīng)用單片機(jī)的應(yīng)用很廣,分別在以下領(lǐng)域中得到了廣泛的應(yīng)用。工業(yè)自動化:在自動化技術(shù)中,無論是過程控制技術(shù)、數(shù)據(jù)采集技術(shù)還是測控技術(shù),都離不開單片機(jī)。在工業(yè)自動化的領(lǐng)域中,機(jī)電一體化技術(shù)將發(fā)揮愈來愈重要的作用,在這種機(jī)械、微電子和計算機(jī)技術(shù)為一體的綜合技術(shù)(例如機(jī)器人技術(shù)、數(shù)控技術(shù))中,單片機(jī)將發(fā)揮非常重要的作用特別是近些年來,隨著計算機(jī)技術(shù)的發(fā)展,工業(yè)自動化也發(fā)展到了一個新的高度,出現(xiàn)了無人工廠、機(jī)器人作業(yè)、網(wǎng)絡(luò)化工廠等,不僅將人從繁重、重復(fù)和危險的工業(yè)現(xiàn)場解放出來,還大大提高了生產(chǎn)效率,降低了生產(chǎn)成本。儀器儀表:目前對儀器儀表的自動化和智能化要求越來越高。在自動化測量儀器中,單片機(jī)應(yīng)用十分普及。單片機(jī)的使用有助于提高儀器儀表的精度和準(zhǔn)確度,簡化結(jié)構(gòu),減小體積,易于攜帶和使用,加速儀器儀表向數(shù)字化、智能化和多功能化方向發(fā)展。消費類電子產(chǎn)品:該應(yīng)用主要反映在家電領(lǐng)域。目前家電產(chǎn)品的一個重要發(fā)展趨勢是不斷提高其智能化程度。例如,電子游戲、照相機(jī)、洗衣機(jī)、電冰箱、空調(diào)、電視機(jī)、微波爐、手機(jī)、ic卡、汽車電子設(shè)備等。在這些設(shè)備中使用了單片機(jī)后,其功能和性能大大提高,并實現(xiàn)了智能化、最優(yōu)化控制。通信方面:較高檔的單片機(jī)都具有通信接口,因而為單片機(jī)在通信設(shè)備中的應(yīng)用創(chuàng)造了很好的條件。例如,在微波通信、短波通信、載波通信、光纖通信、程控交換等通信設(shè)備和儀器中都能找到單片機(jī)的應(yīng)用。武器裝備:在現(xiàn)代化的武器裝備中, 如飛機(jī)、軍艦、坦克、導(dǎo)單、魚雷制導(dǎo)、智能武器設(shè)備、航天飛機(jī)導(dǎo)航系統(tǒng),都有單片機(jī)在其中發(fā)揮重要作用。終端及外部設(shè)備控制:計算機(jī)網(wǎng)絡(luò)終端設(shè)備,如銀行終端,以及計算機(jī)外部設(shè)備如打印機(jī)、硬盤驅(qū)動器、繪圖機(jī)、傳真機(jī)、復(fù)印機(jī)等,在這些設(shè)備中都使用了單片機(jī)。近年來隨著科技的飛速發(fā)展,同時帶動自動控制系統(tǒng)日新月異更新,單片機(jī)的應(yīng)用正在不斷地走向深入。二、設(shè)計思路及總體框圖21設(shè)計思路本設(shè)計是以at89c52單片機(jī)伯為主機(jī),相當(dāng)于一般用于數(shù)據(jù)采集系統(tǒng)中的數(shù)據(jù)采集卡。的溫度測量及以at89c52單片機(jī)為核心部件,外加溫度采集電路、鍵盤及顯示電路、加熱控制電路和越限報警等電路。采用單總線型數(shù)字式的溫度傳感器ds18b20,及行列式鍵盤和動態(tài)顯示的方式,以容易控制的固態(tài)繼電器作加熱控制的開關(guān)器件。該設(shè)計既可以對當(dāng)前溫度進(jìn)行實時顯示又可以對溫度進(jìn)行控制,以使達(dá)到用戶需要的溫度,并使其恒定在這一溫度。兩位整數(shù)一位小數(shù)的顯示方式具有更高的顯示精度。通過對系統(tǒng)軟件和硬件設(shè)計的合理規(guī)劃,發(fā)揮單片機(jī)自身集成眾多系統(tǒng)級功能單元的優(yōu)勢,在不減少功能的前提下有效降低了硬件成本,系統(tǒng)操控簡便。22系統(tǒng)總體框圖電路總體原理框圖溫度測量及的總體結(jié)構(gòu)如圖1所示。系統(tǒng)主要包括現(xiàn)場溫度采集、實時溫度顯示、加熱控制參數(shù)設(shè)置、與報警裝置和系統(tǒng)核心at89s52單片機(jī)作為微處理器。數(shù)字式溫度傳感器加熱器控制器單 片 機(jī)顯示器超限 報警鍵盤圖1-1 圖1-2,硬件系統(tǒng)的設(shè)計三、硬件系統(tǒng)的設(shè)計31單片機(jī)系統(tǒng)311單片機(jī)的選擇在系統(tǒng)的設(shè)計中,選擇合適的系統(tǒng)核心器件就成為能否成功完成設(shè)計任務(wù)的關(guān)鍵,而作為控制系統(tǒng)核心的單片機(jī)的選擇更是重中之重。目前各半導(dǎo)體公司、電氣商都向市場上推出了形形色色的單片機(jī),并提供了良好的開發(fā)環(huán)境。選擇好合適的單片機(jī)可以最大地簡化單片機(jī)應(yīng)用系統(tǒng),而且功能優(yōu)異,可靠性好,成本低廉,具有較強(qiáng)的競爭力。目前,市面上的單片機(jī)不僅種類繁多,而且在性能方面也各有所長。一般來說,選擇單片機(jī)需要考慮以下幾個方面:(1)單片機(jī)的基本性能參數(shù)。例如指令執(zhí)行速度,程序存儲器容量,i/o引腳數(shù)量等。(2)單片機(jī)的增強(qiáng)功能。例如看門狗、多指針、雙串口等。(3)單片機(jī)的存儲介質(zhì)。對于程序存儲器來說,flash存儲器和otp(一次性可編程)存儲器相比較,最好是flash存儲器。(4)芯片的封裝形式。如dip(雙列直插)封裝,plcc(plcc有對應(yīng)插座)封裝及表面貼附等。(5)芯片工作溫度范圍符合工業(yè)級、軍用級還是商業(yè)級。如果設(shè)計戶外產(chǎn)品,必須選用工業(yè)級。(6)芯片的功耗。比如設(shè)計并口加密狗時,信號線取電只能提供幾微安的電流,選用stc單片機(jī)就是因為它能滿足低功耗的要求。(7)供貨渠道是否暢通、價格是否低廉。(8)技術(shù)支持網(wǎng)站的速度如何,資料是否豐富。包括芯片手冊,應(yīng)用指南,設(shè)計方案,范例程序等。(9)芯片保密性能好、單片機(jī)的抗干擾性能好。stc89系列單片機(jī)是mcs-51系列單片機(jī)的派生產(chǎn)品。它在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,dip40封裝系列與8051為pin-to-pin兼容。stc89系列單片機(jī)高速(最高時鐘頻率90mhz),低功耗,在系統(tǒng)/在應(yīng)用可編程(isp,iap),不占用戶資源。根據(jù)本系統(tǒng)的實際情況,選擇stc89c52單片機(jī),引腳見圖1-3。圖1-3, stc89c52芯片引腳及功能312存儲器芯片的選擇本系統(tǒng)需要的存儲容量不大,且要求存儲器要具有掉電不丟失的特點,增加外部存儲器既增加系統(tǒng)的體積,又增大系統(tǒng)的功耗,所以最好能用一片高速的串行存儲器來存儲數(shù)據(jù)。綜合以上因素,對比國內(nèi)市場土的非易失性存儲器,而24c08eeprom存儲器芯片以其優(yōu)越的表現(xiàn)進(jìn)入我們的視線。24c08存儲器具有容量較大、功耗低、體積小的突出優(yōu)點,而且其性價很高,因此我們決定選用24c08 eeprom存儲器芯片作為系統(tǒng)的數(shù)據(jù)存儲器。313單片機(jī)io口擴(kuò)展及外部存儲器電路由于液晶顯示和usb芯片需要大量的io口,所以采用一片8255來進(jìn)行io口擴(kuò)展。8255是單片機(jī)應(yīng)用系統(tǒng)中廣泛采用的可編程外部io口,擴(kuò)展芯片。它有3個8位并行io口,每個口可以有3種工作方式。其中的wr是寫信號輸入端,rd是讀信號輸入端,a1a0用于決定端口的地址。單片機(jī)系統(tǒng)及外部存儲器電路如圖1-4所示19。 圖1-4 單片機(jī)系統(tǒng)電路圖 3.2溫度采集電路的設(shè)計ds18b20介紹單總線器件具有微型化,低功耗,高性能,抗干攏能力強(qiáng),易配微處理器等優(yōu)點,特別適于構(gòu)成多點溫度測量系統(tǒng),ds18b20就是這樣一個單總線器件,它是新一代產(chǎn)品,適應(yīng)性更強(qiáng),性價比更強(qiáng)。ds18b20提供912位溫度讀數(shù),溫度測量范圍為負(fù)55125。構(gòu)成多點溫度檢測系統(tǒng)而無需任何外圍硬件。ds18b20的信號線是vdd,gnd,dq。dq是開漏輸出的,為了保證有足夠負(fù)載驅(qū)動能力驅(qū)動該總線,系統(tǒng)采用電源直接供電方式,單線總線上加1個4.7k歐的上拉電阻完成對ds18b20的上拉。ds18b20單總線溫度傳感器的功能特點:1. 采用單總線技術(shù),與單片機(jī)通訊只要一根io線2. 通過比較系列號可以在一根線上掛多個ds18b203. 低壓供電,電源范圍從3v5v,也可以直接從數(shù)據(jù)線上竊取電源4. 測溫范圍-55125攝氏度,在-1085攝氏度范圍內(nèi)誤差為0.5度5. 數(shù)據(jù)位可編程912位,轉(zhuǎn)換12位溫度時間為750ms(最大)6. 用戶可自設(shè)定預(yù)警上下限溫度7. 報警搜索命令可識別和尋址那個器件的溫度至超出預(yù)定值ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位刻rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th和tl、配置寄存器。其中dq為數(shù)字信號輸入/輸出端;gnd為電源地;vdd為外接供電電源輸入端。溫度采集電路ds18b20內(nèi)部結(jié)構(gòu)存儲器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器高 速 緩 存 64位rom和單線接口vddi/o64位rom的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的crc檢驗碼,這也是多個ds18b20可以采用一線進(jìn)行通信的原因。溫度報警觸發(fā)器th和tl,可通過軟件寫入戶報警上下限。ds18b20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存ram和一個非易失性的可電擦除的eeram。高速暫存ram的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖3所示。頭個字節(jié)包含測得的溫度信息,第3和第4字節(jié)th和tl的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低5位一直為,tm是工作模式位,用于設(shè)置ds18b20在工作模式還是在測試模式,ds18b20出廠時該位被設(shè)置為0,用戶要去改動,r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分率。ds18b20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/lsb形式表達(dá),其中s為符號位。 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18b20的兩個8比特的ram中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。溫度lsb溫度msbth用戶字節(jié)能tl用戶字節(jié)奏配置寄存器保留保留保留crctmr1r011111ds18b20字節(jié)定義表1ds18b20溫度轉(zhuǎn)換時間表r1r0分辯率/位溫度最大轉(zhuǎn)向時間/ms00993750110187510113751112750由表1可見,ds18b20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號位s0時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位s時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計算十進(jìn)制數(shù)值。表2是一部分溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)。18b20完成溫度轉(zhuǎn)換后,就把測得的溫度值與ram中的th、tl字節(jié)內(nèi)容作比較。若tth或ttl,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機(jī)發(fā)出的報警搜索命令做出響應(yīng)。因此,可用多只ds18b20同時測量溫度并進(jìn)行搜索。在64位rom的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(crc)。主機(jī)rom的前56位來計算crc值,并和存入ds18b20的crc值作比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。ds18b20的測溫原理是這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器;高溫度系數(shù)晶振溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計數(shù)進(jìn)而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器、溫度寄存器中,計數(shù)器和溫度寄存器被預(yù)置在-55所對應(yīng)的一個基數(shù)值。減法計數(shù)器對低溫度系數(shù)晶振的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器的預(yù)置減到時,溫度寄存器的值將加,減法計數(shù)器的預(yù)置將重新被裝入,減法計數(shù)器重新開始對低溫度系數(shù)晶振的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大于被測溫度值。溫度/二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h另外,由于ds18b20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。323、ds18b20溫度傳感器與單片機(jī)的接口電路單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成,因此ds18b20和微處理器之間的通信要通過嚴(yán)格的時序控制來完成,所以精確的定時是接口設(shè)計中一個關(guān)鍵問題,所有的單總線命令序列都是由復(fù)位脈沖,應(yīng)答脈沖,寫0,讀0,讀1時序等幾種基本類型的信號類型組成的。在這些信號中,除了應(yīng)答脈沖外,其它均由主機(jī)發(fā)出同步信號,并且發(fā)送的所有命令和數(shù)據(jù)都是字節(jié)的低位在前。微處理器和單總線器件之間的通信可通過3個步驟完成,分別為初始化1wire器件,識別1wire器件和交換數(shù)據(jù),ds18b20接入多路溫度測量系統(tǒng)之前,根據(jù)讀取序列號的操作流程,先分別從激光rom中讀出其序列號,如本系統(tǒng)中使用的兩個ds18b20的序列號為:28 42 f3 ee 00 00 00 b1 28 ae 2f ef 00 00 00 15取得ds18b20序列號后,分別放在被測環(huán)境中。根據(jù)基本的操作流程,首先單片機(jī)發(fā)出復(fù)位脈沖,使信號線上所有ds18b20芯片都復(fù)位,然后從器件ds18b20回送存在脈沖,告知主機(jī)己準(zhǔn)備好。主機(jī)檢測到存在脈沖就發(fā)出跳過讀序列號和溫度轉(zhuǎn)換命令,使所有的器件完成溫度轉(zhuǎn)換,延時,復(fù)位,發(fā)送64位rom,使序列號與rom匹配的ds18b20被激活,發(fā)送讀取命令并即刻產(chǎn)生讀脈沖以便從內(nèi)存中讀取數(shù)據(jù),讀取的前兩個字節(jié)即為溫度的高低字節(jié)。循環(huán)復(fù)位,發(fā)送第二個rom編碼,讀取第二個溫度值。ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時ds18b20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式, 單片機(jī)端口接單線總線,為保證在有ds18b20時鐘周期內(nèi)提供足夠的電流,可用一個mosfet管完成對總線的上拉。當(dāng)ds18b20處于寫存儲器操作和溫度a/d轉(zhuǎn)換操作時,總線上必須有強(qiáng)的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時vdd端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。ds18b20與單片機(jī)的接口電路3.3、溫度傳感器信號采集放大電路當(dāng)受控對象溫度發(fā)生變化時,鉑電阻的阻值隨之發(fā)生變化。在電路中表現(xiàn)為鉑電阻兩端的電壓發(fā)生變化。因此,我們只需采集鉑電阻兩端的電壓變化情況即可推算出溫度的變化。但由于鉑電阻的溫度系數(shù)比較小,鉑電阻兩端的電壓變化情況不會很明顯。所以在電路中我們使用放大電路鉑電阻兩端電壓放大后進(jìn)行處理。溫度傳感器信號采集放大電路如1-10所示。圖1-10 信號放大電路圖電路中,鉑電阻兩端的電壓 (3-2)把公式(2-7)代入得:3.4、a/d的選擇adc0809與單片機(jī)接口模塊 此系統(tǒng)中,利用74ls165將adc0809輸出的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),然后經(jīng)單片機(jī)的串口輸入。這樣節(jié)省了單片機(jī)有限的端口資源,方便今后的擴(kuò)展。adc0809有11條數(shù)字量輸出及控制線:st為轉(zhuǎn)換啟動信號,當(dāng)st上跳沿時,所有內(nèi)部寄存器清零,下跳沿時,開始進(jìn)行a/d轉(zhuǎn)換;在轉(zhuǎn)換期間,st應(yīng)保持低電平。eoc為轉(zhuǎn)換結(jié)束信號,當(dāng)eoc為高電平時,表明轉(zhuǎn)換結(jié)束;否則,表明正在過行a/d轉(zhuǎn)換。oe為輸出允許信號。當(dāng)oe=1時,輸出轉(zhuǎn)換得到的數(shù)據(jù);oe=0時,輸出數(shù)據(jù)線呈高阻態(tài)。d7至d0為數(shù)字量輸出線。clk為時鐘多輸入信號。因adc0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須外界提供,通常使用頻率為500khz。這個脈沖既可以通過中斷實現(xiàn),也可以通過硬件進(jìn)行分頻得到。為了簡化程序,設(shè)計中采用了硬件分頻的方法,使用雙d觸發(fā)器對單片機(jī)的ale端進(jìn)行兩次分頻得到。具體電路如下:clrdclkqqdclkclr/qqprepre500khz2mhzadc0809的內(nèi)部邏輯結(jié)構(gòu)八路模擬量開關(guān)in0in1in2in3in4in5in6in8地址鎖存器與譯碼器abcale三態(tài)輸出鎖存器八路a/d轉(zhuǎn)換器stclkvref(+)vref()oed0d7eoc由上圖可知,adc0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個a/d轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用a/d轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存a/d轉(zhuǎn)換完的數(shù)字量,當(dāng)oe端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。adc0809的a/d采樣部分電路圖adc0809與單片機(jī)at89c52的接口電路理論計算與分析由于adc0809的參考電壓vref=5.00v,所以轉(zhuǎn)換后要經(jīng)過數(shù)據(jù)處理,在數(shù)碼管上顯示電壓值。實際顯示的電壓值為d/256vref=d/51。當(dāng)輸入為5.00v時,adc0809輸出為255(ffh);因此單片機(jī)最高分辯為0.01965v。測量時一般以0.02v的幅度變化。若需要精度則12、13位的a/d轉(zhuǎn)換。37、鍵盤和顯示的設(shè)計顯示模塊:此設(shè)計中采用四位共陽數(shù)碼管。顯示時字型端輸出低電平,位選端輸出高電平。由于是低電平點亮數(shù)碼管,易于驅(qū)動。顯示過程中,由于單片機(jī)輸出的高電平較低,導(dǎo)致位選端電平不夠,即使加上上拉電阻,高電平也只有3.03.5v左右,仍達(dá)不到要求。所以,本系統(tǒng)采用非門來轉(zhuǎn)換電平,需要選通時,位選端輸出低電平,經(jīng)非門后轉(zhuǎn)換為高電平。通過這種方法得到的高電平可達(dá)到4.5v,很好滿足了要求。圖1-14 顯示接口電路38、報警及指示燈電路的設(shè)計當(dāng)用戶設(shè)定的目標(biāo)溫度達(dá)到時需用聲音的形式提醒用戶,此時蜂鳴器為三聲斷續(xù)的地叫聲。在本系統(tǒng)中我設(shè)計越限報警系統(tǒng),當(dāng)溫度低于用戶設(shè)置的目標(biāo)溫度10度或高于10度時蜂鳴器為連續(xù)不斷的報警聲叫聲。當(dāng)單片機(jī)p1.7輸出高電平時,三極管導(dǎo)通,蜂鳴器工作發(fā)出報警聲。p1.7為低電平時三極管關(guān)斷,蜂鳴器不工作。d1為電熱杯加熱指示燈,p1.5低電平有效;d0為檢測到ds18b20的指示,高電平有效;d10為降溫指示燈,低電平有效。報警及指示燈電路如下圖報警及指示燈電路四、軟件系統(tǒng)的設(shè)計系統(tǒng)的軟件由三大模塊組成:主程序模塊、功能實現(xiàn)模塊和運算控制模塊。41、主程序411主程序模塊主程序主要完成加熱控制系統(tǒng)各部件的初始化和實現(xiàn)各功能子程序的調(diào)用,以及實際測量中各個功能模塊的協(xié)調(diào)在無外部中斷申請時,單片機(jī)通過循環(huán)對外部溫度進(jìn)行實時顯示。把設(shè)置鍵作為外部中斷0,以便能對數(shù)字按鍵進(jìn)行相應(yīng)處理。主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理ds18b20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖2-2所示。 初始化調(diào)用顯示子程序1s到?初次上電?讀出溫度值計數(shù)處理數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令nyyn圖2-2,主程序流程圖412讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進(jìn)行crc校驗,校驗有錯時不進(jìn)溫度數(shù)據(jù)的改寫。其程序流程圖如圖2-3示發(fā)ds18b20復(fù)位命令發(fā)cch skip rom命令發(fā)44h開始轉(zhuǎn)換延時復(fù)位發(fā)cch skip rom命令連續(xù)讀出兩個字節(jié)數(shù)據(jù)(溫度)結(jié)束發(fā)讀存器命令ds18b20讀溫度流程圖din equ p1.0temp equ 30htemp1 equ 31htemp2 equ 32horg 0000hsjmp mainorg 0030hmain: lcall rdtemsjmp $rdtem: lcall reset mov a, #0cchlcall writemov a, #44hlcall writelcalll del1000lcall resetmov a, #0cchlcall writemov a, #0behlcall writelcall readmov temp1, templcall readmov temp2, tempretreset: nopl0: clr dinmov r2, #200l1: nopdjnz r2, l1setb dinmov r2, #30l4: djnz r2, l4clr corl c, dinjc l3mov r6, #80l5: orl c, dinjc l3djnz r6, l5sjmp l0l3: mov r2, #250l2: djnz r2, l2retwrite: mov r3, #8wr1: setb dinmov r4, #8clr dinwr2: djnz r4, wr2mov din, cmov r4, #20wr3: djnz r4, wr3djnz r3, wr1setb dinretread: mov r6, #8re1: clr dinmov r4, #6nopsetb dinre2: djnz r4, re2mov c, dinrrc amov r5, #30re3: djnz r5, re3djnz r6, re1mov temp, asetb dinretdel1000: mov 40h, #18del100: mov 41h, #0ffhdel10: mov 42h, #0ffhdel1: djnz 42h, del1djnz 41h, del10djnz 40h, del100ret413、溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖2-4所示發(fā)ds18b20復(fù)位命令發(fā)跳過rom命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束圖2-4,溫度轉(zhuǎn)換流程圖414、計算溫度子程序計算溫度子程序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖2-5所示。開始溫度零下?溫度值取補(bǔ)碼置“-”標(biāo)志計算小數(shù)位溫度bcd值計算整數(shù)位溫度bcd值結(jié)束置“+”標(biāo)志ny 圖2-5,計算溫度流程圖415、顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,最高顯示為0時將符號顯示位移入下一位。程序流程圖如圖2-6。溫度數(shù)據(jù)移入顯示寄存器十位數(shù)為0?百們數(shù)為0?十們數(shù)顯示百位數(shù)不顯示百位顯示數(shù)據(jù)(不顯示符號)結(jié)束nyny圖2-6,顯示數(shù)據(jù)刷新流程圖42、功能實現(xiàn)模塊以用來執(zhí)行對固態(tài)繼電器及電熱杯的控制。功能實現(xiàn)模塊主要由中斷處理子程序、溫度比較處理子程序、鍵盤處理子程序、顯示子程序、報警子程序等部分組成。鍵盤顯示及中斷程序流程圖如下圖2-7: 中斷開始保護(hù)寄存器內(nèi)容調(diào)用鍵掃子程序有鍵按下?調(diào)用鍵處理子程序是yes鍵?是no鍵?調(diào)顯示子程序溫度設(shè)置完?調(diào)用溫度處理子程序調(diào)用比較子程序恢復(fù)寄存器內(nèi)容返回nyynyn圖2-7 鍵盤、顯示、中斷 子程序流程圖43、運算控制模塊該模塊由標(biāo)度轉(zhuǎn)換、模糊控制算法,及其中用到的乘法子程序。標(biāo)度轉(zhuǎn)換 式中 為二進(jìn)制的溫度值, 為ds18b20的數(shù)字信號線送回來的溫度數(shù)據(jù)。單片機(jī)在處理標(biāo)度轉(zhuǎn)換時是通過把ds18b20的信號線送回的16位數(shù)據(jù)右移4位得到二進(jìn)制的溫度值。其小數(shù)部分通過查小數(shù)表的形式獲取。程序流程圖如下圖2-8: 開始將28h低4位與29h高4位組合成一個字節(jié)將合成的字節(jié)(整數(shù)部分)送29h單元29h單元低4位送a給dptr賦常數(shù)表格2首地址將查到的數(shù)值(即小數(shù)部分)送30h單元結(jié)束圖2-8,標(biāo)度轉(zhuǎn)換子程序流程圖硬件平臺結(jié)構(gòu)一旦確定,大的功能框架即形成。軟件在硬件平臺上構(gòu)筑,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)功能是由軟硬件共同實現(xiàn)的,由于軟件的可伸縮性,最終實現(xiàn)的系統(tǒng)功能可強(qiáng)可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設(shè)計方法,不僅易于編程和調(diào)試,也可減小軟件故障率和提高軟件的可靠性。同時,對軟件進(jìn)行全面測試也是檢驗錯誤排除故障的重要手段。由于編程多涉及到數(shù)值運算,比較復(fù)雜,還有l(wèi)cd的菜單界面設(shè)計都是需要多重選擇判斷,用我們平時常用的匯編語言編程是很難實現(xiàn)的,這里我們選用了移值性好、結(jié)構(gòu)清晰、我使用匯編語言來實現(xiàn)編程。44、系統(tǒng)程序本設(shè)計使用的單片機(jī)程序如下:溫度控制器程序溫度傳感器用單總線ds18b20cpu為at89s52,一個按鍵復(fù)位溫度測量上限99度,下限為0度,超過設(shè)置溫度為30度時,二極管亮,自動控制用p3.7作為數(shù)據(jù)線發(fā)送與接收串口p1數(shù)據(jù)輸出p2位選,p2.5個位,p2.4十位flag1 bit f0 ;ds18b20存在標(biāo)志位 dq bit p3.7 temper_l equ 29h temper_h equ 28h a_bit equ 35h b_bit equ 36h ;*程序起始* org 0000h ajmp main org 0100h;*主程序開始*main: lcall init_18b20 lcall re_config lcall get_temper ajmp change ;*ds18b20復(fù)位程序*init_18b20: setb dq nop clr dq mov r0, #0fbh tsr1: djnz r0,tsr1 ;延時 setb dq mov r0, #25h tsr2: jnb dq, tsr3 djnz r0, tsr2 tsr3: setb flag1 ;置標(biāo)志位,表明ds18b20存在 clr p2.0 ;二極管指示 ajmp tsr5 tsr4: clr flag1 ljmp tsr7 tsr5: mov r0, #06bh tsr6: djnz r0, tsr6 tsr7: setb dq ;表明不存在 ret;*設(shè)定ds18b20暫存器設(shè)定值*re_config: jb flag1, re_config1 ret;re_config1: mov a,#0cch ;放跳過rom命令 lcall write_18b20 mov a,#4eh lcall write_18b20 ;寫暫存器命令 mov a,#00h ;報警上限中寫入00h lcall write_18b20 mov a,#00h ;報警下限中寫入00h lcall write_18b20 mov a,#1fh ;選擇九位溫度分辨率 lcall write_18b20 ret;*讀轉(zhuǎn)換后的溫度值*get_temper: setb dq lcall init_18b20 jb flag1, tss2 ret ;若不存在則返回 tss2: mov a,#0cch ;跳過rom lcall write_18b20 mov a,#44h ;發(fā)出溫度轉(zhuǎn)換命令 lcall write_18b20 lcall display ;延時 lcall init_18b20 mov a,#0cch ;跳過rom lcall write_18b20 mov a,#0beh ;發(fā)出讀溫度換命令 lcall write_18b20 lcall read2_18b20 ;讀兩個字節(jié)的溫度 ret ;*寫ds18b20程序* write_18b20: mov r2, #8 clr c wr1: clr dqmov r3, #6 djnz r3, $ rrc a mov dq, c mov r3, #23 djnz r3, $ setb dq nop djnz r2, wr1 setb dq ret*讀18b20程序,讀出兩個字節(jié)的溫度* read2_18b20: mov r4,#2 ;低位存在29 h,高位存在28hmov r1, #29h re00: mov r2, #8 re01: clr c setb c nop nopclr dq nop nop nop setb dq mov r3, #7 djnz r3, $ mov c, dq mov r3, #23 djnz r3, $ rrc a djnz r2, re01 mov r1, a dec r1 djnz r4, re00 ret ;*讀出的溫度進(jìn)行數(shù)據(jù)轉(zhuǎn)換*change: mov a, 29h mov c, 28h.0 ;將28h中的最低位移入c rrc a mov c, 28h.1 rrc a mov c, 28h.2 rrc a

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論