單片機(jī)溫度控制系統(tǒng)_第1頁
單片機(jī)溫度控制系統(tǒng)_第2頁
單片機(jī)溫度控制系統(tǒng)_第3頁
單片機(jī)溫度控制系統(tǒng)_第4頁
單片機(jī)溫度控制系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、設(shè)計(jì)題目:?jiǎn)纹瑱C(jī)溫度控制系統(tǒng) 設(shè)計(jì)要求 1. 利用單片機(jī)對(duì)溫度進(jìn)行采集與控制。 2. 利用A/D轉(zhuǎn)換芯片AD0809進(jìn)行信號(hào)的轉(zhuǎn)換。 3. 轉(zhuǎn)換后的信號(hào)通過單片機(jī)的處理對(duì)可控硅進(jìn)行控制。 4. 利用可控硅的通斷對(duì)加熱路進(jìn)行控制從而達(dá)到對(duì)溫度的控制。 5. 外部數(shù)碼顯示器采用動(dòng)態(tài)顯示方法,由單片機(jī)通過I/O口提供位碼和段碼實(shí)現(xiàn)四個(gè)數(shù)碼顯示器循環(huán)顯示。6. 根據(jù)控制原理設(shè)計(jì)溫度測(cè)量及顯示系統(tǒng)硬件電路圖。7. 根據(jù)控制要求合理編寫控制軟件程序。 摘   要在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開關(guān)量都是常用的主要被控參數(shù)。其中,溫度控制也越來越重要。在工業(yè)生產(chǎn)的很多領(lǐng)域中,人們

2、都需要對(duì)各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制。采用單片機(jī)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大的提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對(duì)溫度的控制問題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的控制問題。 單片機(jī)是一種集CPU、RAM、ROM、I/O接口和中斷系統(tǒng)等部分于一體的器件,只需要外加電源和晶振就可實(shí)現(xiàn)對(duì)數(shù)字信息的處理和控制。因此,單片機(jī)廣泛用于現(xiàn)代工業(yè)控制中。 本論文側(cè)重介紹“單片機(jī)溫度控制系統(tǒng)”的軟件設(shè)計(jì)及相關(guān)內(nèi)容。論文的主要內(nèi)容包括:采樣、濾波、鍵盤、LED顯示和報(bào)警系統(tǒng),加熱控制系統(tǒng),單片機(jī)MCS-51的開發(fā)以及

3、系統(tǒng)應(yīng)用軟件開發(fā)等。作為控制系統(tǒng)中的一個(gè)典型實(shí)驗(yàn)設(shè)計(jì),單片機(jī)溫度控制系統(tǒng)綜合運(yùn)用了微機(jī)原理、自動(dòng)控制原理、模擬電子技術(shù)、數(shù)字控制技術(shù)、鍵盤顯示技術(shù)等諸多方面的知識(shí),是對(duì)所學(xué)知識(shí)的一次綜合測(cè)試。關(guān) 鍵 詞:MCS-51 8051 溫度控制 可控硅ABSTRACWith scientific constant progress, in industrial production, electric current, voltage, temperature, pressure are mainly commonly used. especially in the heat treatment in

4、dustry, the accurate test and controlling of temperature is very important. In a lot of fields, for example: In metallurgical industry, chemical production, power engineering, machine manufactures, food processing, family and industry heat etc. people need to heating furnace, heat-treatment furnace

5、and all kinds of response stove and boiler temperature measure and control, through software design, to reach the intelligent control finally and realize the interactive function. This thesis introduces the design and debugging of “the temperature control system by microcomputer”. As a typical exper

6、imental system, it uses much control knowledge and comprehensively tests students ability in control system.The content of this thesis mainly includes: introduces, filtering ware, keyboard, man-computer dialogue supported by LED indication, heat control method, the development of micro-computer MCS-

7、51 and systemic applied software.Key words:MCS-51, 8051, temperature control, silicon controlled目 錄摘要 一 緒論 1(一) 概述 1(二)課題分析 1(三) 設(shè)計(jì)思路 2二MCS-51單片機(jī)的基本知識(shí) 5(一) MCS-51單片機(jī)的結(jié)構(gòu) 5(二) 8051存儲(chǔ)器配置 5(三)定時(shí)器及其應(yīng)用 12三采樣與濾波 16(一)采樣 161. ADC0809的主要功能 162. 逐次逼近式轉(zhuǎn)換原理 17(二)數(shù)字濾波 17(三)可控硅 181. 可控硅的結(jié)構(gòu) 182. 可控硅的基本特性 18四系統(tǒng)程序設(shè)計(jì)

8、 20(一) 電路設(shè)計(jì) 20(二)鍵盤掃描及顯示程序 20(三)T0中斷服務(wù)程序 30(四)  子程序 321. 采樣子程序SAMP 322. 數(shù)字濾波子程序FILTER 33結(jié)    論 35參考文獻(xiàn) 36一 、緒 論(一)概述 隨著現(xiàn)代工業(yè)的逐步發(fā)展,在工業(yè)生產(chǎn)中,溫度、壓力、流量和液位是四種最常見的過程變量。其中,溫度是一個(gè)非常重要的過程變量。例如:在冶金工業(yè)、化工工業(yè)、電力工業(yè)、機(jī)械加工和食品加工等許多領(lǐng)域,都需要對(duì)各種加熱爐、熱處理爐、反應(yīng)爐和鍋爐的溫度進(jìn)行控制。然而,用常規(guī)的控制方法,潛力是有限的,難以滿足較高的性能要求。采用單片機(jī)

9、來對(duì)它們進(jìn)行控制不僅具有控制方便、簡(jiǎn)單和靈活性大的優(yōu)點(diǎn),而且可以大幅度提高被測(cè)溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對(duì)溫度的控制問題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的控制問題。 (二) 課題分析 單片機(jī)溫度控制系統(tǒng),是利用單片機(jī)作為系統(tǒng)的主控制器,測(cè)量電路中的溫度反饋信號(hào)經(jīng)A/D變換后,送入單片機(jī)中進(jìn)行處理,經(jīng)過一定的算法后,單片機(jī)的輸出用來控制可控硅的通斷,控制加熱爐的輸出功率,從而實(shí)現(xiàn)對(duì)溫度的控制。 本單片機(jī)溫度控制系統(tǒng)的具體指標(biāo)要求是,對(duì)加熱器加熱溫度調(diào)整范圍為6001000,溫度控制精度小于3,系統(tǒng)的超調(diào)量須小于15%。軟件設(shè)計(jì)須能進(jìn)行人機(jī)對(duì)話,考慮到本系統(tǒng)控制對(duì)象為

10、電爐,是一個(gè)大延遲環(huán)節(jié),且溫度調(diào)節(jié)范圍較寬,所以本系統(tǒng)對(duì)過渡過程時(shí)間不予要求。 單片機(jī)是一種集CPU、RAM、ROM、I/O接口和中斷系統(tǒng)于一體的器件,只需要外加電源和晶振就可以實(shí)現(xiàn)對(duì)數(shù)字信號(hào)的處理和控制。本設(shè)計(jì)運(yùn)用MCS-51系列單片集中的8051單片機(jī)為主控制器,對(duì)加熱爐的溫度進(jìn)行智能化控制,最終通過軟件設(shè)計(jì)來實(shí)現(xiàn)人機(jī)對(duì)話功能,實(shí)現(xiàn)對(duì)加熱爐的溫度控制。 本論文主要介紹單片機(jī)溫度控制系統(tǒng),內(nèi)容主要包括:采樣、濾波、鍵盤顯示、加熱控制系統(tǒng),單片機(jī)MCS-51的開發(fā)及系統(tǒng)應(yīng)用軟件的開發(fā)等。全文共分四章。第一章緒論介紹課題背景、目的、意義及設(shè)計(jì)的總體思路。第二章介紹主控電路核心部分MCS-51單片

11、機(jī)8051的基本結(jié)構(gòu)和配置。第三章介紹A/D采樣技術(shù)和數(shù)字濾波技術(shù)。第四章主要是系統(tǒng)軟件編程。(三) 設(shè)計(jì)思路 根據(jù)系統(tǒng)具體指標(biāo)要求,可以對(duì)每一個(gè)具體部分進(jìn)行分析設(shè)計(jì)。整個(gè)控制系統(tǒng)分為硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)兩部分。硬件電路。分析硬件電路主要包括:加熱及控制電路部分,數(shù)據(jù)采集和模/數(shù)(A/D)轉(zhuǎn)換處理部分,鍵盤和顯示器部分,單片機(jī)與各部分的接口處理部分。這些可用一個(gè)方框圖來表示,顯然,這是一個(gè)典型的單反饋控制系統(tǒng)。單片機(jī)溫度控制系統(tǒng)框圖整個(gè)系統(tǒng)也可劃分為控制電路部分、加熱電路部分和測(cè)量電路三部分。控制電路是由單片機(jī)來處理給定信號(hào)和反饋信號(hào),發(fā)出相應(yīng)的指令來控制可控硅,是系統(tǒng)的核心。8051對(duì)

12、溫度的控制是通過可控硅調(diào)功能電路實(shí)現(xiàn)的。在給定的周期T內(nèi),8051只要改變可控硅管的接通時(shí)間便可改變加熱絲的功率,從而達(dá)到調(diào)節(jié)溫度的目的。而可控硅的接通時(shí)間可以通過可控硅極上觸發(fā)脈沖控制。該觸發(fā)脈沖受過零同步脈沖同步后經(jīng)光耦合管和驅(qū)動(dòng)管輸出送到可控硅的控制極上。過零同步脈沖是一種50HZ交流電壓過零時(shí)刻的脈沖,可使可控硅在交流電壓正弦波過零時(shí)觸發(fā)導(dǎo)通。該脈沖一方面作為可控硅的觸發(fā)同步脈沖加到控制電路中,另一方面還作為計(jì)數(shù)脈沖加到8051的T0和T1端。 加熱電路用來實(shí)現(xiàn)對(duì)系統(tǒng)的升溫加熱達(dá)到預(yù)定的溫度。當(dāng)溫度沒有達(dá)到要求,控制電路利用雙向可控硅的通斷特性來決定加熱電路的通電與斷電。 測(cè)量電路功能

13、為將測(cè)量到的信號(hào)經(jīng)過處理變成數(shù)字信號(hào)送入單片機(jī)中進(jìn)行處理。主要由溫度檢測(cè)和變送器組成。溫度檢測(cè)元件和變送器的類型選擇和被控溫度及精度等級(jí)有關(guān)。鎳絡(luò)/鎳鋁熱電偶(2001000)適用于01000的溫度測(cè)量范圍,相應(yīng)輸出電壓為0mV41.32mV。 變送器由毫伏變送器和電流/電壓變送器組成:毫伏變送器用于把熱點(diǎn)偶輸出的0mV41.32mV變換成0 mA10 mA范圍內(nèi)的電流;電流/電壓變送器用于把毫伏變送器輸出的0 mA10 mA電流變換成0 V5V范圍內(nèi)的電壓。 為了提高測(cè)量精度,變送器可以進(jìn)行零點(diǎn)漂移。 本次設(shè)計(jì)的溫度控制范圍為6001000之間,溫度誤差要求在3左右,系統(tǒng)超調(diào)量不超過15%,

14、采用8位轉(zhuǎn)換器ADC0809就可以使溫度誤差保持在±2.34以內(nèi),滿足設(shè)計(jì)要求。除上述電路,8051還要有81552732和ADC0809等芯片接口電路。其中8155用于鍵盤/LED顯示器接口,2732可以作為8051的外部ROM存儲(chǔ)器,ADC0809為溫度測(cè)量電路的輸入接口,用于把連續(xù)變化的信號(hào)進(jìn)行離散化。最終再通過控制電路中的鍵盤顯示器電路實(shí)現(xiàn)人機(jī)對(duì)話功能。軟件設(shè)計(jì)主要由溫度控制的算法和溫度控制程序組成。 軟件設(shè)計(jì)主要為控制器部分,即溫度控制系統(tǒng),采用PID算法,其原理是先求出實(shí)測(cè)爐溫對(duì)所需爐溫的偏差值,而后對(duì)偏差值處理而獲得控制信號(hào)去調(diào)節(jié)加熱爐的加熱功率,以實(shí)現(xiàn)對(duì)爐溫的控制。P

15、ID基本可滿足系統(tǒng)要求。 程序設(shè)計(jì)是本次設(shè)計(jì)的核心部分。整個(gè)程序包括管理程序和控制程序兩部分。管理程序是對(duì)顯示LED進(jìn)行動(dòng)態(tài)刷新,控制指示燈,處理鍵盤的掃描和響應(yīng),進(jìn)行掉電保護(hù),執(zhí)行中斷服務(wù)程序等??刂瞥绦蚴怯脕韺?duì)被控進(jìn)行采樣,數(shù)據(jù)處理,根據(jù)控制算法進(jìn)行計(jì)算和輸出等二 MCS-51單片機(jī)的基本知識(shí)(一) MCS-51單片機(jī)的結(jié)構(gòu) (二)8051存儲(chǔ)器配置8051存儲(chǔ)器可以分為程序和數(shù)據(jù)存儲(chǔ)器2大類。MCS-51單片機(jī)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是相互分離的,分開編址,而且存儲(chǔ)器有片內(nèi)、片外存儲(chǔ)器之分。(1)程序存儲(chǔ)器    一個(gè)微處理器能夠聰明地執(zhí)

16、行某種任務(wù),除了它們強(qiáng)大的硬件外,還需要它們運(yùn)行的軟件,其實(shí)微處理器并不聰明,它們只是完全按照人們預(yù)先編寫的程序而執(zhí)行之。那么設(shè)計(jì)人員編寫的程序就存放在微處理器的程序存儲(chǔ)器中,俗稱只讀程序存儲(chǔ)器(ROM)。程序相當(dāng)于給微處理器處理問題的一系列命令。其實(shí)程序和數(shù)據(jù)一樣,都是由機(jī)器碼組成的代碼串。只是程序代碼則存放于程序存儲(chǔ)器中。    MCS-51具有64kB程序存儲(chǔ)器尋址空間,它是用于存放用戶程序、數(shù)據(jù)和表格等信息。對(duì)于內(nèi)部無ROM的8031單片機(jī),它的程序存儲(chǔ)器必須外接,空間地址為64kB,此時(shí)單片機(jī)的端必須接地。強(qiáng)制CPU從外部程序存儲(chǔ)器讀取程序。對(duì)

17、于內(nèi)部有ROM的8051等單片機(jī),正常運(yùn)行時(shí),則需接高電平,使CPU先從內(nèi)部的程序存儲(chǔ)中讀取程序,當(dāng)PC值超過內(nèi)部ROM的容量時(shí),才會(huì)轉(zhuǎn)向外部的程序存儲(chǔ)器讀取程序。    8051片內(nèi)有4kB的程序存儲(chǔ)單元,其地址為0000H0FFFH,單片機(jī)啟動(dòng)復(fù)位后,程序計(jì)數(shù)器的內(nèi)容為0000H,所以系統(tǒng)將從0000H單元開始執(zhí)行程序。但在程序存儲(chǔ)中有些特殊的單元,這在使用中應(yīng)加以注意:    其中一組特殊是0000H0002H單元,系統(tǒng)復(fù)位后,PC為0000H,單片機(jī)從0000H單元開始執(zhí)行程序,如果程序不是從0000H單元

18、開始,則應(yīng)在這三個(gè)單元中存放一條無條件轉(zhuǎn)移指令,讓CPU直接去執(zhí)行用戶指定的程序。8051內(nèi)部RAM共有256個(gè)單元,這256個(gè)單元共分為兩部分。其一是地址從00H7FH單元(共128個(gè)字節(jié))為用戶數(shù)據(jù)RAM。從80HFFH地址單元(也是128個(gè)字節(jié))為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結(jié)構(gòu)分布。    在00H1FH共32個(gè)單元中被均勻地分為四塊,每塊包含八個(gè)8位寄存器,均以R0R7來命名,我們常稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為R0R7,那么在程序中怎么區(qū)分和使用它們呢?聰明的INTEL工程師們又安排了一個(gè)寄存器程序狀

19、態(tài)字寄存器(PSW)來管理它們,CPU只要定義這個(gè)寄存的PSW的第3和第4位(RS0和RS1),即可選中這四組通用寄存器。對(duì)應(yīng)的編碼關(guān)系如圖2所示。  內(nèi)部RAM的20H2FH單元為位尋址區(qū),既可作為一般單元用字節(jié)尋址,也可對(duì)它們的位進(jìn)行尋址。位尋址區(qū)共有16個(gè)字節(jié),128個(gè)位,位地址為00H7FH。位地址分配如表1所示,CPU能直接尋址這些位,執(zhí)行例如置“1”、清“0”、求“反”、轉(zhuǎn)移,傳送和邏輯等操作。我們常稱MCS-51具有布爾處理功能,布爾處理的存儲(chǔ)空間指的就是這些為尋址區(qū)。 (2)   程序計(jì)數(shù)器PC(program Counter)

20、    程序計(jì)數(shù)器在物理上是獨(dú)立的,它不屬于特殊內(nèi)部數(shù)據(jù)存儲(chǔ)器塊中。PC是一個(gè)16位的計(jì)數(shù)器,用于存放一條要執(zhí)行的指令地址,尋址范圍為64kB,PC有自動(dòng)加1功能,即完成了一條指令的執(zhí)行后,其內(nèi)容自動(dòng)加1。PC本身并沒有地址,因而不可尋址,用戶無法對(duì)它進(jìn)行讀寫,但是可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以控制程序按我們的要求去執(zhí)行。   (3) 累加器ACC(Accumulator)    累加器A是一個(gè)最常用的專用寄存器,大部分單操作指令的一個(gè)操作數(shù)取自累加器,很多雙操

21、作數(shù)指令中的一個(gè)操作數(shù)也取自累加器。加、減、乘、除法運(yùn)算的指令,運(yùn)算結(jié)果都存放于累加器A或AB累加器對(duì)中。大部分的數(shù)據(jù)操作都會(huì)通過累加器A進(jìn)行,它形象于一個(gè)交通要道,在程序比較復(fù)雜的運(yùn)算中,累加器成了制約軟件效率的“瓶頸”,它的功能較多,地位也十分重要。以至于后來發(fā)展的單片機(jī),有的集成了多累加器結(jié)構(gòu),或者使用寄存器陣列來代替累加器,即賦予更多  表2-1 特殊功能寄存器標(biāo)識(shí)符號(hào)地址寄存器名稱ACC0E0H累加器B0F0HB寄存器PSW0D0H程序狀態(tài)字SP81H堆棧指針DPTR82H、83H數(shù)據(jù)指針(16位)含DPL和DPHIE0A8H中斷允許控制寄存器IP0B8

22、H中斷優(yōu)先控制寄存器P080HI/O口0寄存器P190HI/O口1寄存器P20A0HI/O口2寄存器P30B0HI/O口3寄存器PCON87H電源控制及波特率選擇寄存器SCON98H串行口控制寄存器SBUF99H串行數(shù)據(jù)緩沖寄存器TCON88H定時(shí)控制寄存器TMOD89H定時(shí)器方式選擇寄存器TL08AH定時(shí)器0低8位TH08CH定時(shí)器0高8位TL18BH定時(shí)器1低8位TH18DH定時(shí)器1高8位寄存器以累加器的功能,目的是解決累加器的“交通堵塞”問題。提高單片機(jī)的軟件效率。  DPTR主要是用來保存16位地址,當(dāng)對(duì)64kB外部數(shù)據(jù)存儲(chǔ)器尋址時(shí),可作為間址寄存器使用,此時(shí),使用

23、如下兩條指令:            MOVX    A, DPTR            MOVX    DPTR, A    在訪問程序存儲(chǔ)器時(shí),DPTR可用來作基址寄存器,采用基址+變址尋址方式訪問程序存儲(chǔ)器,這條

24、指令常用于讀取程序存儲(chǔ)器內(nèi)的表格數(shù)據(jù)。            MOVC    A, A+DPTR(4) 堆棧指針SP(Stack Pointer)    堆棧是一種數(shù)據(jù)結(jié)構(gòu),它是一個(gè)8位寄存器,它指示堆棧頂部在內(nèi)部RAM中的位置。系統(tǒng)復(fù)位后,SP的初始值為07H,使得堆棧實(shí)際上是從08H開始的。但我們從RAM的結(jié)構(gòu)分布中可知,08H1FH隸屬13工作寄存器區(qū),若編程時(shí)需要用到這

25、些數(shù)據(jù)單元,必須對(duì)堆棧指針SP進(jìn)行初始化,原則上設(shè)在任何一個(gè)區(qū)域均可,但一般設(shè)在30H1FH之間較為適宜。   數(shù)據(jù)的寫入堆棧我們稱為入棧(PUSH,有些文獻(xiàn)也稱作插入運(yùn)算或壓入),從堆棧中取出數(shù)據(jù)稱為出棧(POP,也稱為刪除運(yùn)算或彈出),堆棧的最主要特征是“后進(jìn)先出”規(guī)則,也即最先入棧的數(shù)據(jù)放在堆棧的最底部,而最后入棧的數(shù)據(jù)放在棧的頂部,因此,最后入棧的數(shù)據(jù)出棧時(shí)則是最先的。這和我們往一個(gè)箱里存放書本一樣,需將最先放入箱底部的書取出,必須先取走最上層的書籍。這個(gè)道理非常相似。  那么堆棧有何用途呢?堆棧的設(shè)立是為了中斷操作和子程序的調(diào)用而用于保存數(shù)據(jù)的

26、,即常說的斷點(diǎn)保護(hù)和現(xiàn)場(chǎng)保護(hù)。微處理器無論是在轉(zhuǎn)入子程序和中斷服務(wù)程序的執(zhí)行,執(zhí)行完后,還是要回到主程序中來,在轉(zhuǎn)入子程序和中斷服務(wù)程序前,必須先將現(xiàn)場(chǎng)的數(shù)據(jù)進(jìn)行保存起來,否則返回時(shí),CPU并不知道原來的程序執(zhí)行到哪一步,原來的中間結(jié)果如何?所以在轉(zhuǎn)入執(zhí)行其它子程序前,先將需要保存的數(shù)據(jù)壓入堆棧中保存。以備返回時(shí),再?gòu)?fù)原當(dāng)時(shí)的數(shù)據(jù)。供主程序繼續(xù)執(zhí)行。轉(zhuǎn)入中斷服務(wù)程序或子程序時(shí),需要保存的數(shù)據(jù)可能有若干個(gè),都需要一一地保留。如果微處理器進(jìn)行多重子程序或中斷服務(wù)程序嵌套,那么需保存的數(shù)據(jù)就更多,這要求堆棧還需要有相當(dāng)?shù)娜萘?。否則會(huì)造成堆棧溢出,丟失應(yīng)備份的數(shù)據(jù)。輕者使運(yùn)算和執(zhí)行結(jié)果錯(cuò)誤,重則使整個(gè)

27、程序紊亂。    MCS-51的堆棧是在RAM中開辟的,即堆棧要占據(jù)一定的RAM存儲(chǔ)單元。同時(shí)MCS-51的堆??梢杂捎脩粼O(shè)置,SP的初始值不同,堆棧的位置則不一定,不同的設(shè)計(jì)人員,使用的堆棧區(qū)則不同,不同的應(yīng)用要求,堆棧要求的容量也有所不同。堆棧的操作只有兩種,即進(jìn)棧和出棧,但不管是向堆棧寫入數(shù)據(jù)還是從堆棧中讀出數(shù)據(jù),都是對(duì)棧頂單元進(jìn)行的,SP就是即時(shí)指示出棧頂?shù)奈恢茫吹刂罚T谧映绦蛘{(diào)用和中斷服務(wù)程序響應(yīng)的開始和結(jié)束期間,CPU都是根據(jù)SP指示的地址與相應(yīng)的RAM存儲(chǔ)單元交換數(shù)據(jù)。    堆棧的操作有兩種方法

28、:其一是自動(dòng)方式,即在中斷服務(wù)程序響應(yīng)或子程序調(diào)用時(shí),返回地址自動(dòng)進(jìn)棧。當(dāng)需要返回執(zhí)行主程序時(shí),返回的地址自動(dòng)交給PC,以保證程序從斷點(diǎn)處繼續(xù)執(zhí)行,這種方式是不需要編程人員干預(yù)的。第二種方式是人工指令方式,使用專有的堆棧操作指令進(jìn)行進(jìn)出棧操作,也只有兩條指令:進(jìn)棧為PUSH指令,在中斷服務(wù)程序或子程序調(diào)用時(shí)作為現(xiàn)場(chǎng)保護(hù)。出棧操作POP指令,用于子程序完成時(shí),為主程序恢復(fù)現(xiàn)場(chǎng)。(5) I/O口專用寄存器(P0、P1、P2、P3)    I/O口寄存器P0、P1、P2和P3分別是MCS-51單片機(jī)的四組I/O口鎖存器。MCS-51單片機(jī)并沒有專門的

29、I/O口操作指令,而是把I/O口也當(dāng)作一般的寄存器來使用,數(shù)據(jù)傳送都統(tǒng)一使用MOV指令來進(jìn)行,這樣的好處在于,四組I/O口還可以當(dāng)作寄存器直接尋址方式參與其他操作。(6) 定時(shí)/計(jì)數(shù)器(TL0、TH0、TL1和TH1)    MCS-51單片機(jī)中有兩個(gè)16位的定時(shí)/計(jì)數(shù)器T0和T1,它們由四個(gè)8位寄存器組成的,兩個(gè)16位定時(shí)/計(jì)數(shù)器卻是完全獨(dú)立的。我們可以單獨(dú)對(duì)這四個(gè)寄存器進(jìn)行尋址,但不能把T0和T1當(dāng)作16位寄存來使用。(7) 定時(shí)/計(jì)數(shù)器方式選擇寄存器(TMOD)    TMOD寄存器是一個(gè)

30、專用寄存器,用于控制兩個(gè)定時(shí)計(jì)數(shù)器的工作方式,TMOD可以用字節(jié)傳送指令設(shè)置其內(nèi)容,但不能位尋址,各位的定義如下,更詳細(xì)的內(nèi)容,我們將在MCS-51定時(shí)器和中斷系統(tǒng)章節(jié)中敘述。(三)定時(shí)器及其應(yīng)用8051單片機(jī)內(nèi)部定時(shí)器T0,T1的結(jié)構(gòu)與CPU的關(guān)系如圖6.1所示。16位定時(shí)器T0由8位特殊功能寄存器TH0和TL 0構(gòu)成,16位定時(shí)器T1由8位特殊功能寄存器TH1和TL1構(gòu)成。定時(shí)器方式寄存器TMOD用于設(shè)置定時(shí)器的工作方式,定時(shí)器控制寄存器TCON用于啟動(dòng)和停止定時(shí)器的計(jì)數(shù),并控制定時(shí)器的狀態(tài)。T0和T1實(shí)際上都是16位加1計(jì)數(shù)器,可由編程來設(shè)置它工作狀態(tài)。當(dāng)T0或T1設(shè)置為定時(shí)工作方式時(shí),

31、定時(shí)器對(duì)8051片內(nèi)振蕩器輸出經(jīng)12分頻后的脈沖進(jìn)行計(jì)數(shù),即每個(gè)機(jī)器周期使T0或T1的數(shù)值加1直到計(jì)滿溢出,當(dāng)8051采用12MHz晶振時(shí),一個(gè)機(jī)器周期為1s,計(jì)數(shù)頻率為1MHz。當(dāng)T0或T1設(shè)置為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)器對(duì)來自輸入引腳T0(P3.4)和T1(P3.5)的外部信號(hào)計(jì)數(shù)。在每一個(gè)機(jī)器周期的S5P2周期采樣引腳輸入電平,若前一個(gè)機(jī)器周期采樣值為1, 后一個(gè)機(jī)器周期采樣值為0,則計(jì)數(shù)器加1。新的計(jì)數(shù)值是在檢測(cè)到輸入引腳發(fā)生1到0的負(fù)跳變后,于下一個(gè)機(jī)器周期的S3P1期間裝入計(jì)數(shù)器中,由于它需要兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)來識(shí)別一個(gè)1到0跳變,所以計(jì)數(shù)頻率最高為fosc的1/24。計(jì)數(shù)

32、器對(duì)外部脈沖信號(hào)的占空比沒有特別的要求,但必須保證輸入的高電平和低電平信號(hào)至少應(yīng)維持一個(gè)完整的機(jī)器周期。8051單片機(jī)的定時(shí)器/計(jì)數(shù)器T0和T1可由軟件對(duì)TMOD的M1,M0位進(jìn)行四種工作模式設(shè)置,即模式0,模式1,模式2和模式3。 在模式0 、模式1和模式2時(shí),T0與T1的工作模式相同; 在模式3時(shí),兩個(gè)定時(shí)器的工作模式不同。下面簡(jiǎn)單介紹一下模式0的應(yīng)用模式0是選擇定時(shí)器的高8位和低5位組成的一個(gè)13位定時(shí)器/計(jì)數(shù)器,圖6.4是T0在模式T0時(shí)的邏輯電路結(jié)構(gòu)。圖2-2 T0時(shí)的邏輯電路結(jié)構(gòu)在這種模式下,16位寄存器只用了13位。其中,TL0的高3位未用,TH0占8位。當(dāng)TL0的低5位溢出時(shí),

33、向TH0進(jìn)位。當(dāng)TH0溢出時(shí),向中斷標(biāo)志位TF0進(jìn)位,并申請(qǐng)中斷。 因此,可通過查詢TF0 是否置位或考察中斷是否發(fā)生來判斷定時(shí)器/計(jì)數(shù)器0的操作完成與否。 在圖6.4中,當(dāng)C/T=0時(shí), 控制開關(guān)接通振蕩器12分頻輸出端, T0對(duì)機(jī)器周期計(jì)數(shù)。 即定時(shí)器工作方式。 定時(shí)時(shí)間由下式?jīng)Q定: T=(1213T0初值)×振蕩周期×12如果晶振頻率為12MHz,則時(shí)鐘周期為1/12s,當(dāng)初值為0時(shí),最長(zhǎng)的定時(shí)時(shí)間為TMAX=(12130)×1/12×12s=8.192ms。 當(dāng)C/T=1 控制開關(guān)與引腳T0(P3.4)接通,計(jì)數(shù)器T0對(duì)來自外部引腳T0的輸入脈沖

34、計(jì)數(shù),當(dāng)外部信號(hào)電平發(fā)生由1到0跳變時(shí),計(jì)數(shù)器加1,這時(shí),T0成為外部事件計(jì)數(shù)器。當(dāng)GATE=0時(shí),封鎖或門輸出恒為1,使外部中斷輸入引腳INT0信號(hào)失效,同時(shí)又打開與門,由TR0控制定時(shí)器T0的開啟和關(guān)斷。若TR0=1,接通控制開關(guān),啟動(dòng)定時(shí)器T0工作,計(jì)數(shù)器被控制為允許計(jì)數(shù)。若TR0=0,則斷開控制開關(guān),停止計(jì)數(shù)。 當(dāng)GATE=1時(shí),與門的輸出由INT0的輸入電平和TR0位的狀態(tài)來確定。若TR0=1,則打開與門,外部信號(hào)電平通過INT0引腳直接開啟或關(guān)斷定時(shí)器T0。 當(dāng)INT0為高電平時(shí),允許計(jì)數(shù),否則停止計(jì)數(shù)。這種工作方式可用來測(cè)量外部信號(hào)的脈沖寬度等。 同理,上述說明同樣適合于定時(shí)器T

35、1。8051的定時(shí)器/計(jì)數(shù)器是可編程的,因此在利用定時(shí)器/計(jì)數(shù)器進(jìn)行定時(shí)或計(jì)數(shù)之前。需通過軟件對(duì)其進(jìn)行初始化。即:確定工作模式;對(duì)TMOD寄存器賦值。設(shè)置定時(shí)器/計(jì)數(shù)器初值;初值按下列原則計(jì)算:設(shè)計(jì)數(shù)器的最大值為M(在不同的工作模式中:M可以為213,216和28) 初值為X: 計(jì)數(shù)方式時(shí): X=M-計(jì)數(shù)模值 定時(shí)方式時(shí): 因?yàn)椋∕-X)×振蕩周期×12=定時(shí)值 所以 X=M-定時(shí)值/振蕩周期×12是否設(shè)置中斷,則需對(duì)中斷允許寄存器IE置初值。三 采樣與濾波(一) 采樣1. ADC0809的主要功能   ADC0809是帶有8位A/D轉(zhuǎn)換器、8

36、路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。 (1) ADC0809的內(nèi)部邏輯結(jié)構(gòu) 圖3-1 ADC8090的內(nèi)部邏輯結(jié)構(gòu)    由上圖可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。    (2) ADC0809應(yīng)用說明 ADC080

37、9內(nèi)部帶有輸出鎖存器,可以與AT89S51單片機(jī)直接相連。 初始化時(shí),使ST和OE信號(hào)全為低電平。 送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。 在ST端給出一個(gè)至少有100ns寬的正脈沖信號(hào)。 是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號(hào)來判斷。 當(dāng)EOC變?yōu)楦唠娖綍r(shí),這時(shí)給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機(jī)了。 2. 逐次逼近式轉(zhuǎn)換原理常規(guī)模數(shù)轉(zhuǎn)換電路中,采用并行(Flash)式轉(zhuǎn)換法的并行式ADC的轉(zhuǎn)換速度最快,其轉(zhuǎn)換時(shí)間tc和比特?cái)?shù)n無關(guān),但不足之處是其器件內(nèi)部單元數(shù)m隨著比特?cái)?shù)n的增加呈指數(shù)增長(zhǎng),即m2n1 (1)逐次逼近比較式ADC的器件內(nèi)部單元數(shù)m隨著比特?cái)?shù)n的增加呈線性增長(zhǎng),但不足之處

38、是其轉(zhuǎn)換時(shí)間tc隨著比特?cái)?shù)n的增加呈線性增長(zhǎng),即 tck1·n    (2)其中,k1為比例系數(shù)。(二) 數(shù)字濾波數(shù)字濾波:  用數(shù)字處理方式選擇信號(hào)頻率。數(shù)字濾波是用計(jì)算機(jī)軟件或數(shù)字電路來實(shí)現(xiàn)的。設(shè)計(jì)數(shù)字濾波器,就是按預(yù)期的選頻要求,構(gòu)造其脈沖響應(yīng)函數(shù) 優(yōu)點(diǎn):精度高,若使用16位數(shù)字系統(tǒng),精度可達(dá);靈活性強(qiáng),只要改變程序參數(shù)即可改變?yōu)V波器的性能;時(shí)分兩用,一臺(tái)計(jì)算機(jī)可同時(shí)處理多路信號(hào);處理功能強(qiáng),可處理幾赫茲頻率的信號(hào);可靠性強(qiáng),不受周圍環(huán)境溫度的影響等。分類:直接卷積濾波 遞歸濾波(三)可控硅1. 可控硅的結(jié)構(gòu)不管可控硅的外形如何,它們的管

39、芯都是由P型硅和N型硅組成的四層P1N1P2N2結(jié)構(gòu)。見圖1。它有三個(gè)PN結(jié)(J1、J2、J3),從J1結(jié)構(gòu)的P1層引出陽極A,從N2層引出陰級(jí)K,從P2層引出控制極G,所以它是一種四層三端的半導(dǎo)體器件。圖3-2、可控硅結(jié)構(gòu)示意圖和符號(hào)圖 2.可控硅的基本特性(1)反向特性當(dāng)控制極開路,陽極加上反向電壓時(shí)(見下圖),J2結(jié)正偏,但J1、J2結(jié)反偏。此時(shí)只能流過很小的反向飽和電流,當(dāng)電壓進(jìn)一步提高到J1結(jié)的雪崩擊穿電壓后,接差J3結(jié)也擊穿,電流迅速增加,圖3的特性開始彎曲,如特性O(shè)R段所示,彎曲處的電壓URO叫“反向轉(zhuǎn)折電壓”。此時(shí),可控硅會(huì)發(fā)生永久性反向擊穿。圖3-3、反向特性(2)

40、正向特性當(dāng)控制極開路,陽極上加上正向電壓時(shí)(見下圖),J1、J3結(jié)正偏,但J2結(jié)反偏,這與普通PN結(jié)的反向特性相似,也只能流過很小電流,這叫正向阻斷狀態(tài),當(dāng)電壓增加,圖3的特性發(fā)生了彎曲,如特性O(shè)A段所示,彎曲處的是UBO叫:正向轉(zhuǎn)折電壓 圖3-4、正向特性四、系統(tǒng)程序設(shè)計(jì)(一) 電路設(shè)計(jì)溫度控制模塊原理框圖如圖4-1所示,溫度傳感器經(jīng)模擬開關(guān)由單片機(jī)控制順序選通到放大電路和A/D轉(zhuǎn)換器ADC0809。單片機(jī)采集數(shù)據(jù)后,經(jīng)校零、濾波、參比端補(bǔ)償(熱電偶)和線性化處理后轉(zhuǎn)換為對(duì)應(yīng)的溫度數(shù)字量,存入內(nèi)部RAM。模塊每隔2.16秒(有濾波)或0.72秒(無濾波)完成一次上述操作,自動(dòng)刷新內(nèi)

41、部RAM。上位機(jī)可以通過RS485接口取得這些溫度數(shù)據(jù)。單片機(jī)把采集來的溫度根據(jù)控溫參數(shù)設(shè)置,進(jìn)行相應(yīng)的控溫運(yùn)算,由運(yùn)算結(jié)果決定PWM的占空比進(jìn)行控溫。開關(guān)量輸出口如果用于報(bào)警輸出,單片機(jī)則根據(jù)該開關(guān)量輸出的邏輯參數(shù)設(shè)置進(jìn)行邏輯運(yùn)算,結(jié)果輸出到輸出口。開關(guān)量輸入輸出口撥碼開關(guān)DI0DI20A校零通道輸入電路和模擬開關(guān)放大電路和斷偶指示基準(zhǔn)源RXDP07VrefD7D0P13P10VROESTEOCRDWRINT0ADC08098051TXDP04P06P00P03P20P27T1INT1電源監(jiān)視看門狗EEPROMT+T-INTD8(STB)D0D7隔離485單片機(jī)0B0C7A7B7C圖4-1溫

42、度控制模塊電路原理框圖(二) 鍵盤掃描及顯示程序A 鍵盤掃描子程序KEYBUF EQU 30H ORG 00H START: MOV KEYBUF,#2 WAIT: MOV P3,#0FFH CLR P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK1 MOV KEYBUF,#0 LJMP DK1 NK1: CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP

43、 DK1 NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3: CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1 NK4: NOP DK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A DK1A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK1A NOKEY1: MOV P3,#0FFH CLR P3.5 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P3

44、ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5: CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6: CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK2 NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2 NK8: NOP DK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A DK2A: MOV A

45、,P3 ANL A,#0FH XRL A,#0FH JNZ DK2A NOKEY2: MOV P3,#0FFH CLR P3.6 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3 NK9: CJNE A,#0DH,NK10 MOV KEYBUF,#9 LJMP DK3 NK10: CJNE A,#0BH,NK11 MOV KEYBUF,

46、#10 LJMP DK3 NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3 NK12: NOP DK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A DK3A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK3A NOKEY3: MOV P3,#0FFH CLR P3.7 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4

47、MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4 NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4 NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4 NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4 NK16: NOP DK4: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A DK4A: MOV A,P3 ANL A,#0FH XRL A

48、,#0FH JNZ DK4A NOKEY4: LJMP WAIT DELY10MS: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END B顯示子程序DISP: ANL 2FH,#10H   MOV A,21H   ANL A,#0FH    ORL A,2FH   MOV 2FH,A 

49、0; MOV A,21H   ANL A,#0F0H   SWAP A   MOV 2EH,A   ANL 2DH,#10H   MOV A,22H   ANL A,#0FH   ORL A,2DH   MOV 2DH,A   MOV A,22H   ANL A,#0F0H   SWAP A   MOV 2CH,AANL 2BH,#10HMOV A,23HA

50、NL A,#0FHORL A,2BHMOV 2BH,AMOV A,23HANL A,#0F0HSWAP AMOV 2AH,AMOV R0,#2FH       MOV R3,#06H       MOV A,#01HLOOP1:  MOV B,A       MOV p2,a       MOV DPTR,#TABLE  

51、60;    MOV A,R0       MOVC A,A+DPTR       MOV  p0,A       MOV R2,#80H       DJNZ R2,$       DEC R0       MOV A,B       RL A      

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論