![基于單片機溫度自動控制設計.doc_第1頁](http://file.renrendoc.com/FileRoot1/2019-7/18/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a1.gif)
![基于單片機溫度自動控制設計.doc_第2頁](http://file.renrendoc.com/FileRoot1/2019-7/18/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a2.gif)
![基于單片機溫度自動控制設計.doc_第3頁](http://file.renrendoc.com/FileRoot1/2019-7/18/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a3.gif)
![基于單片機溫度自動控制設計.doc_第4頁](http://file.renrendoc.com/FileRoot1/2019-7/18/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a4.gif)
![基于單片機溫度自動控制設計.doc_第5頁](http://file.renrendoc.com/FileRoot1/2019-7/18/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a/4b670af2-24c9-4b0b-a3d6-7fd5009dc34a5.gif)
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
濟源職業(yè)技術學院設計任務書設計題目:基于單片機溫度自動控制設計要求:基本范圍 099,精度誤差小于 1,led數碼直讀顯示,有自動控制、溫度報警指示燈設計進度要求:指導教師(簽名): 摘 要自動控制系統(tǒng)在各個領域尤其是工業(yè)領域中有著及其廣泛的應用,溫度控制是控制系統(tǒng)中最為常見的控制類型之一。隨著單片機技術的飛速發(fā)展,通過單片機對被控對象進行控制日益成為今后自動控制領域的一個重要發(fā)展方向,電流、電壓、溫度、壓力、流量、流速和開關量都是常用的主要被控參數。例如:在冶金工業(yè)、化工生產、電力工程、造紙行業(yè)、機械制造和食品加工等諸多領域中,人們都需要對工業(yè)及日常生活中的溫度進行檢測和控制。采用mcs-51單片機來對溫度進行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術指標,從而能夠大大提高產品的質量和數量。因此,單片機對溫度的控制問題是一個工業(yè)生產中經常會遇到的問題。我們利用溫度控制來更好的為我們的生活工作所服務,提高我們的生活質量。當然本次溫度控制的設計也有不足之處,相信在不久的以后,隨著單片機行業(yè)的迅速發(fā)展,將會有更好的溫度控制儀的出現。關鍵字:mcs-51單片機;溫度;軟硬件;硬件原理圖;程序框35目 錄摘 要ii目 錄iii一、單片機的發(fā)展1二、設計思路及總體框圖321設計思路322系統(tǒng)總體框圖電路總體原理框圖3三、硬件系統(tǒng)的設計531單片機系統(tǒng)5311單片機的選擇5312存儲器芯片的選擇7313單片機io口擴展及外部存儲器電路73.2溫度采集電路的設計8321、溫度檢測傳感器8322、溫度采集電路9323、ds18b20溫度傳感器與單片機的接口電路163.3、溫度傳感器信號采集放大電路163.4、a/d的選擇173.5、d/a轉換電路1836、溫度檢測和變送器1837、鍵盤和顯示的設計1938、報警及指示燈電路的設計20四、軟件系統(tǒng)的設計2241、主程序22411主程序模塊22412讀出溫度子程序24413、溫度轉換命令子程序25414、計算溫度子程序26415、顯示數據刷新子程序2742、功能實現模塊2743、運算控制模塊2844、系統(tǒng)程序29致 謝36參考文獻37一、單片機的發(fā)展單片微型計算機是微型計算機的一個重要分支,也是一種非常活躍和頗具有生命力的機種。單片微型計算機簡稱單片機,特別適用于工業(yè)控制領域,因此又稱為微控器。1971年微處理器研制成功不久,就出現了單片微型計算機即單片機,但最早的單片機是1位的,處理能力有限。單片機的發(fā)展分為4個階段:第一階段(197476年):單片機初級階段。因為受工藝限制,單片機采用單片的形式而且功能比較簡單。例如美國仙童公司生產的f8單片機,實際上只包括了8位cpu,64個字節(jié)的ram和2個并行接口。第二階段(197678年):低性能單片機階段。以intel公司生產的mcs48系列單片機為代表,該系列單片機片內集成有8位cpu,8位定時器/計數器,并行i/o接口,ram和rom等,但是最大的缺點就是無串行接口,中斷處理比較簡單而且片內ram和rom容量較小,且尋址范圍不大與4kb。第三階段(197883)高性能單片階段這個階段推出的單片機普遍帶有串行接口。多級中斷系統(tǒng),16位定時器/計數器,片內rom,ram容量加大,且尋址范圍可達64kb,有的片內還帶有a/d轉換器。第四階段(1983年至今)8位單片機鞏固發(fā)展以及16位單片機,32 位單片機推出階段。此階段的主要特征是:一方面發(fā)展16位單片機,32位單片機及專用型單片機;另一方面不斷完善高檔8位單片機,改善其結構,增加片內器件,以滿足不同的客戶要求。 單片機的應用單片機的應用很廣,分別在以下領域中得到了廣泛的應用。工業(yè)自動化:在自動化技術中,無論是過程控制技術、數據采集技術還是測控技術,都離不開單片機。在工業(yè)自動化的領域中,機電一體化技術將發(fā)揮愈來愈重要的作用,在這種機械、微電子和計算機技術為一體的綜合技術(例如機器人技術、數控技術)中,單片機將發(fā)揮非常重要的作用特別是近些年來,隨著計算機技術的發(fā)展,工業(yè)自動化也發(fā)展到了一個新的高度,出現了無人工廠、機器人作業(yè)、網絡化工廠等,不僅將人從繁重、重復和危險的工業(yè)現場解放出來,還大大提高了生產效率,降低了生產成本。儀器儀表:目前對儀器儀表的自動化和智能化要求越來越高。在自動化測量儀器中,單片機應用十分普及。單片機的使用有助于提高儀器儀表的精度和準確度,簡化結構,減小體積,易于攜帶和使用,加速儀器儀表向數字化、智能化和多功能化方向發(fā)展。消費類電子產品:該應用主要反映在家電領域。目前家電產品的一個重要發(fā)展趨勢是不斷提高其智能化程度。例如,電子游戲、照相機、洗衣機、電冰箱、空調、電視機、微波爐、手機、ic卡、汽車電子設備等。在這些設備中使用了單片機后,其功能和性能大大提高,并實現了智能化、最優(yōu)化控制。通信方面:較高檔的單片機都具有通信接口,因而為單片機在通信設備中的應用創(chuàng)造了很好的條件。例如,在微波通信、短波通信、載波通信、光纖通信、程控交換等通信設備和儀器中都能找到單片機的應用。武器裝備:在現代化的武器裝備中, 如飛機、軍艦、坦克、導單、魚雷制導、智能武器設備、航天飛機導航系統(tǒng),都有單片機在其中發(fā)揮重要作用。終端及外部設備控制:計算機網絡終端設備,如銀行終端,以及計算機外部設備如打印機、硬盤驅動器、繪圖機、傳真機、復印機等,在這些設備中都使用了單片機。近年來隨著科技的飛速發(fā)展,同時帶動自動控制系統(tǒng)日新月異更新,單片機的應用正在不斷地走向深入。二、設計思路及總體框圖21設計思路本設計是以at89c52單片機伯為主機,相當于一般用于數據采集系統(tǒng)中的數據采集卡。的溫度測量及以at89c52單片機為核心部件,外加溫度采集電路、鍵盤及顯示電路、加熱控制電路和越限報警等電路。采用單總線型數字式的溫度傳感器ds18b20,及行列式鍵盤和動態(tài)顯示的方式,以容易控制的固態(tài)繼電器作加熱控制的開關器件。該設計既可以對當前溫度進行實時顯示又可以對溫度進行控制,以使達到用戶需要的溫度,并使其恒定在這一溫度。兩位整數一位小數的顯示方式具有更高的顯示精度。通過對系統(tǒng)軟件和硬件設計的合理規(guī)劃,發(fā)揮單片機自身集成眾多系統(tǒng)級功能單元的優(yōu)勢,在不減少功能的前提下有效降低了硬件成本,系統(tǒng)操控簡便。22系統(tǒng)總體框圖電路總體原理框圖溫度測量及的總體結構如圖1所示。系統(tǒng)主要包括現場溫度采集、實時溫度顯示、加熱控制參數設置、與報警裝置和系統(tǒng)核心at89s52單片機作為微處理器。數字式溫度傳感器加熱器控制器單 片 機顯示器超限 報警鍵盤圖1-1 圖1-2,硬件系統(tǒng)的設計三、硬件系統(tǒng)的設計31單片機系統(tǒng)311單片機的選擇在系統(tǒng)的設計中,選擇合適的系統(tǒng)核心器件就成為能否成功完成設計任務的關鍵,而作為控制系統(tǒng)核心的單片機的選擇更是重中之重。目前各半導體公司、電氣商都向市場上推出了形形色色的單片機,并提供了良好的開發(fā)環(huán)境。選擇好合適的單片機可以最大地簡化單片機應用系統(tǒng),而且功能優(yōu)異,可靠性好,成本低廉,具有較強的競爭力。目前,市面上的單片機不僅種類繁多,而且在性能方面也各有所長。一般來說,選擇單片機需要考慮以下幾個方面:(1)單片機的基本性能參數。例如指令執(zhí)行速度,程序存儲器容量,i/o引腳數量等。(2)單片機的增強功能。例如看門狗、多指針、雙串口等。(3)單片機的存儲介質。對于程序存儲器來說,flash存儲器和otp(一次性可編程)存儲器相比較,最好是flash存儲器。(4)芯片的封裝形式。如dip(雙列直插)封裝,plcc(plcc有對應插座)封裝及表面貼附等。(5)芯片工作溫度范圍符合工業(yè)級、軍用級還是商業(yè)級。如果設計戶外產品,必須選用工業(yè)級。(6)芯片的功耗。比如設計并口加密狗時,信號線取電只能提供幾微安的電流,選用stc單片機就是因為它能滿足低功耗的要求。(7)供貨渠道是否暢通、價格是否低廉。(8)技術支持網站的速度如何,資料是否豐富。包括芯片手冊,應用指南,設計方案,范例程序等。(9)芯片保密性能好、單片機的抗干擾性能好。stc89系列單片機是mcs-51系列單片機的派生產品。它在指令系統(tǒng)、硬件結構和片內資源上與標準8052單片機完全兼容,dip40封裝系列與8051為pin-to-pin兼容。stc89系列單片機高速(最高時鐘頻率90mhz),低功耗,在系統(tǒng)/在應用可編程(isp,iap),不占用戶資源。根據本系統(tǒng)的實際情況,選擇stc89c52單片機,引腳見圖1-3。圖1-3, stc89c52芯片引腳及功能312存儲器芯片的選擇本系統(tǒng)需要的存儲容量不大,且要求存儲器要具有掉電不丟失的特點,增加外部存儲器既增加系統(tǒng)的體積,又增大系統(tǒng)的功耗,所以最好能用一片高速的串行存儲器來存儲數據。綜合以上因素,對比國內市場土的非易失性存儲器,而24c08eeprom存儲器芯片以其優(yōu)越的表現進入我們的視線。24c08存儲器具有容量較大、功耗低、體積小的突出優(yōu)點,而且其性價很高,因此我們決定選用24c08 eeprom存儲器芯片作為系統(tǒng)的數據存儲器。313單片機io口擴展及外部存儲器電路由于液晶顯示和usb芯片需要大量的io口,所以采用一片8255來進行io口擴展。8255是單片機應用系統(tǒng)中廣泛采用的可編程外部io口,擴展芯片。它有3個8位并行io口,每個口可以有3種工作方式。其中的wr是寫信號輸入端,rd是讀信號輸入端,a1a0用于決定端口的地址。單片機系統(tǒng)及外部存儲器電路如圖1-4所示19。 圖1-4 單片機系統(tǒng)電路圖 3.2溫度采集電路的設計ds18b20介紹單總線器件具有微型化,低功耗,高性能,抗干攏能力強,易配微處理器等優(yōu)點,特別適于構成多點溫度測量系統(tǒng),ds18b20就是這樣一個單總線器件,它是新一代產品,適應性更強,性價比更強。ds18b20提供912位溫度讀數,溫度測量范圍為負55125。構成多點溫度檢測系統(tǒng)而無需任何外圍硬件。ds18b20的信號線是vdd,gnd,dq。dq是開漏輸出的,為了保證有足夠負載驅動能力驅動該總線,系統(tǒng)采用電源直接供電方式,單線總線上加1個4.7k歐的上拉電阻完成對ds18b20的上拉。ds18b20單總線溫度傳感器的功能特點:1. 采用單總線技術,與單片機通訊只要一根io線2. 通過比較系列號可以在一根線上掛多個ds18b203. 低壓供電,電源范圍從3v5v,也可以直接從數據線上竊取電源4. 測溫范圍-55125攝氏度,在-1085攝氏度范圍內誤差為0.5度5. 數據位可編程912位,轉換12位溫度時間為750ms(最大)6. 用戶可自設定預警上下限溫度7. 報警搜索命令可識別和尋址那個器件的溫度至超出預定值ds18b20內部結構主要由四部分組成:64位刻rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th和tl、配置寄存器。其中dq為數字信號輸入/輸出端;gnd為電源地;vdd為外接供電電源輸入端。溫度采集電路ds18b20內部結構存儲器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器高 速 緩 存 64位rom和單線接口vddi/o64位rom的結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的crc檢驗碼,這也是多個ds18b20可以采用一線進行通信的原因。溫度報警觸發(fā)器th和tl,可通過軟件寫入戶報警上下限。ds18b20溫度傳感器的內部存儲器還包括一個高速暫存ram和一個非易失性的可電擦除的eeram。高速暫存ram的結構為8字節(jié)的存儲器,結構如圖3所示。頭個字節(jié)包含測得的溫度信息,第3和第4字節(jié)th和tl的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。ds18b20工作時寄存器中的分辨率轉換為相應精度的溫度數值。該字節(jié)各位的定義如圖3所示。低5位一直為,tm是工作模式位,用于設置ds18b20在工作模式還是在測試模式,ds18b20出廠時該位被設置為0,用戶要去改動,r1和r0決定溫度轉換的精度位數,來設置分率。ds18b20中的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數形式提供,以0.0625/lsb形式表達,其中s為符號位。 這是12位轉化后得到的12位數據,存儲在18b20的兩個8比特的ram中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。溫度lsb溫度msbth用戶字節(jié)能tl用戶字節(jié)奏配置寄存器保留保留保留crctmr1r011111ds18b20字節(jié)定義表1ds18b20溫度轉換時間表r1r0分辯率/位溫度最大轉向時間/ms00993750110187510113751112750由表1可見,ds18b20溫度轉換的時間比較長,而且分辨率越高,所需要的溫度數據轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來檢驗數據,從而保證通信數據的正確性。當ds18b20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數據,讀數據時低位在先,高位在后,數據格式以0.0625lsb形式表示。當符號位s0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位s時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數值。表2是一部分溫度值對應的二進制溫度數據。18b20完成溫度轉換后,就把測得的溫度值與ram中的th、tl字節(jié)內容作比較。若tth或ttl,則將該器件內的報警標志位置位,并對主機發(fā)出的報警搜索命令做出響應。因此,可用多只ds18b20同時測量溫度并進行搜索。在64位rom的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(crc)。主機rom的前56位來計算crc值,并和存入ds18b20的crc值作比較,以判斷主機收到的rom數據是否正確。ds18b20的測溫原理是這樣的,器件中低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器;高溫度系數晶振溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數器的脈沖輸入。器件中還有一個計數門,當計數門打開時,ds18b20就對低溫度系數振蕩器產生的時鐘脈沖進行計數進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將55所對應的一個基數分別置入減法計數器、溫度寄存器中,計數器和溫度寄存器被預置在-55所對應的一個基數值。減法計數器對低溫度系數晶振的脈沖信號進行減法計數,當減法計數器的預置減到時,溫度寄存器的值將加,減法計數器的預置將重新被裝入,減法計數器重新開始對低溫度系數晶振的脈沖信號進行計數,如此循環(huá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單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作按協議進行。操作協議為:初始化ds18b20(發(fā)復位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數據。323、ds18b20溫度傳感器與單片機的接口電路單總線即只有一根數據線,系統(tǒng)中的數據交換,控制都由這根線完成,因此ds18b20和微處理器之間的通信要通過嚴格的時序控制來完成,所以精確的定時是接口設計中一個關鍵問題,所有的單總線命令序列都是由復位脈沖,應答脈沖,寫0,讀0,讀1時序等幾種基本類型的信號類型組成的。在這些信號中,除了應答脈沖外,其它均由主機發(fā)出同步信號,并且發(fā)送的所有命令和數據都是字節(jié)的低位在前。微處理器和單總線器件之間的通信可通過3個步驟完成,分別為初始化1wire器件,識別1wire器件和交換數據,ds18b20接入多路溫度測量系統(tǒng)之前,根據讀取序列號的操作流程,先分別從激光rom中讀出其序列號,如本系統(tǒng)中使用的兩個ds18b20的序列號為:28 42 f3 ee 00 00 00 b1 28 ae 2f ef 00 00 00 15取得ds18b20序列號后,分別放在被測環(huán)境中。根據基本的操作流程,首先單片機發(fā)出復位脈沖,使信號線上所有ds18b20芯片都復位,然后從器件ds18b20回送存在脈沖,告知主機己準備好。主機檢測到存在脈沖就發(fā)出跳過讀序列號和溫度轉換命令,使所有的器件完成溫度轉換,延時,復位,發(fā)送64位rom,使序列號與rom匹配的ds18b20被激活,發(fā)送讀取命令并即刻產生讀脈沖以便從內存中讀取數據,讀取的前兩個字節(jié)即為溫度的高低字節(jié)。循環(huán)復位,發(fā)送第二個rom編碼,讀取第二個溫度值。ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時ds18b20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式, 單片機端口接單線總線,為保證在有ds18b20時鐘周期內提供足夠的電流,可用一個mosfet管完成對總線的上拉。當ds18b20處于寫存儲器操作和溫度a/d轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時vdd端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。ds18b20與單片機的接口電路3.3、溫度傳感器信號采集放大電路當受控對象溫度發(fā)生變化時,鉑電阻的阻值隨之發(fā)生變化。在電路中表現為鉑電阻兩端的電壓發(fā)生變化。因此,我們只需采集鉑電阻兩端的電壓變化情況即可推算出溫度的變化。但由于鉑電阻的溫度系數比較小,鉑電阻兩端的電壓變化情況不會很明顯。所以在電路中我們使用放大電路鉑電阻兩端電壓放大后進行處理。溫度傳感器信號采集放大電路如1-10所示。圖1-10 信號放大電路圖電路中,鉑電阻兩端的電壓 (3-2)把公式(2-7)代入得:3.4、a/d的選擇adc0809與單片機接口模塊 此系統(tǒng)中,利用74ls165將adc0809輸出的并行數據轉換為串行數據,然后經單片機的串口輸入。這樣節(jié)省了單片機有限的端口資源,方便今后的擴展。adc0809有11條數字量輸出及控制線:st為轉換啟動信號,當st上跳沿時,所有內部寄存器清零,下跳沿時,開始進行a/d轉換;在轉換期間,st應保持低電平。eoc為轉換結束信號,當eoc為高電平時,表明轉換結束;否則,表明正在過行a/d轉換。oe為輸出允許信號。當oe=1時,輸出轉換得到的數據;oe=0時,輸出數據線呈高阻態(tài)。d7至d0為數字量輸出線。clk為時鐘多輸入信號。因adc0809的內部沒有時鐘電路,所需時鐘信號必須外界提供,通常使用頻率為500khz。這個脈沖既可以通過中斷實現,也可以通過硬件進行分頻得到。為了簡化程序,設計中采用了硬件分頻的方法,使用雙d觸發(fā)器對單片機的ale端進行兩次分頻得到。具體電路如下:clrdclkqqdclkclr/qqprepre500khz2mhzadc0809的內部邏輯結構八路模擬量開關in0in1in2in3in4in5in6in8地址鎖存器與譯碼器abcale三態(tài)輸出鎖存器八路a/d轉換器stclkvref(+)vref()oed0d7eoc由上圖可知,adc0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個a/d轉換器和一個三態(tài)輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用a/d轉換器進行轉換。三態(tài)輸出鎖器用于鎖存a/d轉換完的數字量,當oe端為高電平時,才可以從三態(tài)輸出鎖存器取走轉換完的數據。adc0809的a/d采樣部分電路圖adc0809與單片機at89c52的接口電路理論計算與分析由于adc0809的參考電壓vref=5.00v,所以轉換后要經過數據處理,在數碼管上顯示電壓值。實際顯示的電壓值為d/256vref=d/51。當輸入為5.00v時,adc0809輸出為255(ffh);因此單片機最高分辯為0.01965v。測量時一般以0.02v的幅度變化。若需要精度則12、13位的a/d轉換。37、鍵盤和顯示的設計顯示模塊:此設計中采用四位共陽數碼管。顯示時字型端輸出低電平,位選端輸出高電平。由于是低電平點亮數碼管,易于驅動。顯示過程中,由于單片機輸出的高電平較低,導致位選端電平不夠,即使加上上拉電阻,高電平也只有3.03.5v左右,仍達不到要求。所以,本系統(tǒng)采用非門來轉換電平,需要選通時,位選端輸出低電平,經非門后轉換為高電平。通過這種方法得到的高電平可達到4.5v,很好滿足了要求。圖1-14 顯示接口電路38、報警及指示燈電路的設計當用戶設定的目標溫度達到時需用聲音的形式提醒用戶,此時蜂鳴器為三聲斷續(xù)的地叫聲。在本系統(tǒng)中我設計越限報警系統(tǒng),當溫度低于用戶設置的目標溫度10度或高于10度時蜂鳴器為連續(xù)不斷的報警聲叫聲。當單片機p1.7輸出高電平時,三極管導通,蜂鳴器工作發(fā)出報警聲。p1.7為低電平時三極管關斷,蜂鳴器不工作。d1為電熱杯加熱指示燈,p1.5低電平有效;d0為檢測到ds18b20的指示,高電平有效;d10為降溫指示燈,低電平有效。報警及指示燈電路如下圖報警及指示燈電路四、軟件系統(tǒng)的設計系統(tǒng)的軟件由三大模塊組成:主程序模塊、功能實現模塊和運算控制模塊。41、主程序411主程序模塊主程序主要完成加熱控制系統(tǒng)各部件的初始化和實現各功能子程序的調用,以及實際測量中各個功能模塊的協調在無外部中斷申請時,單片機通過循環(huán)對外部溫度進行實時顯示。把設置鍵作為外部中斷0,以便能對數字按鍵進行相應處理。主程序的主要功能是負責溫度的實時顯示、讀出并處理ds18b20的測量的當前溫度值,溫度測量每1s進行一次。這樣以在一秒之內測量一次被測溫度,其程序流程見圖2-2所示。 初始化調用顯示子程序1s到?初次上電?讀出溫度值計數處理數據刷新發(fā)溫度轉換開始命令nyyn圖2-2,主程序流程圖412讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進行crc校驗,校驗有錯時不進溫度數據的改寫。其程序流程圖如圖2-3示發(fā)ds18b20復位命令發(fā)cch skip rom命令發(fā)44h開始轉換延時復位發(fā)cch skip rom命令連續(xù)讀出兩個字節(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、溫度轉換命令子程序溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如上圖,圖2-4所示發(fā)ds18b20復位命令發(fā)跳過rom命令發(fā)溫度轉換開始命令 結束圖2-4,溫度轉換流程圖414、計算溫度子程序計算溫度子程序將ram中讀取值進行bcd碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖2-5所示。開始溫度零下?溫度值取補碼置“-”標志計算小數位溫度bcd值計算整數位溫度bcd值結束置“+”標志ny 圖2-5,計算溫度流程圖415、顯示數據刷新子程序顯示數據刷新子程序主要是對顯示緩沖器中的顯示數據進行刷新操作,最高顯示為0時將符號顯示位移入下一位。程序流程圖如圖2-6。溫度數據移入顯示寄存器十位數為0?百們數為0?十們數顯示百位數不顯示百位顯示數據(不顯示符號)結束nyny圖2-6,顯示數據刷新流程圖42、功能實現模塊以用來執(zhí)行對固態(tài)繼電器及電熱杯的控制。功能實現模塊主要由中斷處理子程序、溫度比較處理子程序、鍵盤處理子程序、顯示子程序、報警子程序等部分組成。鍵盤顯示及中斷程序流程圖如下圖2-7: 中斷開始保護寄存器內容調用鍵掃子程序有鍵按下?調用鍵處理子程序是yes鍵?是no鍵?調顯示子程序溫度設置完?調用溫度處理子程序調用比較子程序恢復寄存器內容返回nyynyn圖2-7 鍵盤、顯示、中斷 子程序流程圖43、運算控制模塊該模塊由標度轉換、模糊控制算法,及其中用到的乘法子程序。標度轉換 式中 為二進制的溫度值, 為ds18b20的數字信號線送回來的溫度數據。單片機在處理標度轉換時是通過把ds18b20的信號線送回的16位數據右移4位得到二進制的溫度值。其小數部分通過查小數表的形式獲取。程序流程圖如下圖2-8: 開始將28h低4位與29h高4位組合成一個字節(jié)將合成的字節(jié)(整數部分)送29h單元29h單元低4位送a給dptr賦常數表格2首地址將查到的數值(即小數部分)送30h單元結束圖2-8,標度轉換子程序流程圖硬件平臺結構一旦確定,大的功能框架即形成。軟件在硬件平臺上構筑,完成各部分硬件的控制和協調。系統(tǒng)功能是由軟硬件共同實現的,由于軟件的可伸縮性,最終實現的系統(tǒng)功能可強可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設計方法,不僅易于編程和調試,也可減小軟件故障率和提高軟件的可靠性。同時,對軟件進行全面測試也是檢驗錯誤排除故障的重要手段。由于編程多涉及到數值運算,比較復雜,還有l(wèi)cd的菜單界面設計都是需要多重選擇判斷,用我們平時常用的匯編語言編程是很難實現的,這里我們選用了移值性好、結構清晰、我使用匯編語言來實現編程。44、系統(tǒng)程序本設計使用的單片機程序如下:溫度控制器程序溫度傳感器用單總線ds18b20cpu為at89s52,一個按鍵復位溫度測量上限99度,下限為0度,超過設置溫度為30度時,二極管亮,自動控制用p3.7作為數據線發(fā)送與接收串口p1數據輸出p2位選,p2.5個位,p2.4十位flag1 bit f0 ;ds18b20存在標志位 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復位程序*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 ;置標志位,表明ds18b20存在 clr p2.0 ;二極管指示 ajmp tsr5 tsr4: clr flag1 ljmp tsr7 tsr5: mov r0, #06bh tsr6: djnz r0, tsr6 tsr7: setb dq ;表明不存在 ret;*設定ds18b20暫存器設定值*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;*讀轉換后的溫度值*get_temper: setb dq lcall init_18b20 jb flag1, tss2 ret ;若不存在則返回 tss2: mov a,#0cch ;跳過rom lcall write_18b20 mov a,#44h ;發(fā)出溫度轉換命令 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 ;*讀出的溫度進行數據轉換*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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨物運輸保險協議書范本
- 西南科技大學《電子技術基礎模擬》2023-2024學年第二學期期末試卷
- 第 12課《干點家務活》(說課稿)統(tǒng)編版道德與法治一年級下冊
- 山東杏林科技職業(yè)學院《電氣控制與課程設計》2023-2024學年第二學期期末試卷
- 河北省2024七年級道德與法治上冊第一單元少年有夢第一課開啟初中生活第2課時規(guī)劃初中生活背記新人教版
- 贛南科技學院《醫(yī)學微生物學D》2023-2024學年第二學期期末試卷
- 上饒職業(yè)技術學院《刑法案例與實務》2023-2024學年第二學期期末試卷
- 遼寧稅務高等??茖W?!豆こ讨械臄抵捣椒ā?023-2024學年第二學期期末試卷
- 蘭州現代職業(yè)學院《機器人驅動與控制》2023-2024學年第二學期期末試卷
- 統(tǒng)編版八年級歷史上冊《第18課 從九一八事變到西安事變》聽課評課記錄
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應急
- 部編版2024-2025學年三年級上冊語文期末測試卷(含答案)
- 《景觀設計》課件
- 門窗安裝施工安全管理方案
- 2024年安徽省高校分類對口招生考試數學試卷真題
- ISO45001管理體系培訓課件
- 動畫課件教學教學課件
- 會所股東合作協議書范文范本
- 綿陽市高中2022級(2025屆)高三第一次診斷性考試(一診)數學試卷(含答案逐題解析)
- 人教版(2024)七年級上冊英語期中復習單項選擇100題(含答案)
- 2024年胡麻油市場前景分析:全球胡麻油市場規(guī)模達到了25.55億美元
評論
0/150
提交評論