45基于單片機(jī)的電阻爐爐溫控制系統(tǒng)
45基于單片機(jī)的電阻爐爐溫控制系統(tǒng),45,基于,單片機(jī),電阻爐,爐溫,控制系統(tǒng)
1 2 3 4 5 6ABCD654321DCBA TitleNumber RevisionSizeBDate: 6-Jun-2010 Shet of File: F:與與與與.db Drawn By:D03 Q0 2D14 Q1 5D27 Q2 6D38 Q3 9D413 Q4 12D514 Q5 15D617 Q6 16D718 Q7 19LE1 74LS373A08 A17 A26 A35 A44 A53 A62A71 A823 A92 A1019 A121 CE18OE/VP20D0 9D1 10D2 1D313D4 14D5 15D6 16D7 172732AD012PA021AD113PA12AD214PA223AD315PA324AD416PA425AD517PA526AD618PA627AD719PA728PB029CE8PB130RD9PB231WR10PB332IO/M7PB43ALE1PB534PB635PB736PC037PC138PC239PC31PC42PC55815IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42EOC7 IN-53AD-A25IN-64AD-B24 AD-C23IN-75ALE2START6CLOCK10 ADC0809OE與與與與與 與與與與與MC14528 23LM31 20VR?RES1C CGNDCR12 3A74LS0與與 與與與TIL17WRP2RDALE/P P20P21與LED與LEDR130R230R32KVC與與1 231A74LS021 231A74LS021NPN EA/VP31 RD17WR16T0 14T1 15P101P12P123P13 4P0 39P01 38P02 37P0336P04 35P05 34P06 3P07 32P20 21P21 2P2 23P2324P24 25PSEN29ALE/P 308031P3與與與與與與與與與與與與與與目 錄第 1 章 引言.31.1 課題背景及研究意義.31.2 計(jì)算機(jī)在熱處理爐爐溫控制中的應(yīng)用.3第 2 章 系統(tǒng)硬件設(shè)計(jì).82.1 溫度檢測(cè)及變送器.82.2 控制機(jī)構(gòu).92.3 A/D 轉(zhuǎn)換電路.102.4 溫度控制電路.142.5 部分接口電路.16第 3 章 溫度控制的算法和程序.183.1 溫度控制的算法.183.2 溫度控制的程序.20第 4 章 對(duì)于抗干擾的探究.344.1 抗干擾的措施.34結(jié)束語(yǔ).35致謝.36參考文獻(xiàn).37附錄 1 電路圖.38附錄 2 英文專業(yè)文摘及翻譯.392基于單片機(jī)的電阻爐溫度控制系統(tǒng)設(shè)計(jì)摘要:主要以 51 系列單片機(jī)為核心對(duì)電阻爐爐溫進(jìn)行控制,使其溫度穩(wěn)定在某一個(gè)值上。最高溫度為 1000,并且有鍵盤(pán)輸入給定溫度值,由 LED 數(shù)碼管顯示溫度值的功能.關(guān)鍵詞:單片機(jī);電阻爐;溫度控制The design of temperature control system of the resistance furnace based on single chip microcomputer Abstract: Mainly with 51 series single chip microcomputer for the unit of nucleus heats to the control of The resistance furnace, the tallest temperature is 1000. And the temperature of keyboard input is constant, LED digitron displays the function of temperature point.Key words: single chip microcomputer; the resistance furnace; temperature control system3第一章 引言1.1 課題背景及研究意義近幾年來(lái),在我國(guó)以信息化帶動(dòng)的工業(yè)化正在蓬勃發(fā)展,溫度已成為工業(yè)對(duì)象控制中一種重要的參數(shù),特別是在冶金、化工、機(jī)械等各類工業(yè)中,廣泛使用各種加熱爐、熱處理爐、反應(yīng)爐等。由于爐子的種類及原理不同,因此所采用的加熱方法及燃料也不同,如煤氣、天然氣、油電等。對(duì)于不同生產(chǎn)情況和工藝要求下的溫度控制,所采用的加熱方式,選用的燃料,控制方案也有所不同。例如冶金、機(jī)械、食品、化工等各類工業(yè)生產(chǎn)中廣泛使用的各種加熱爐、熱處理爐、反應(yīng)爐等;燃料有煤氣、天然氣、油、電等;控制方案有直接數(shù)字控制(DDC) ,推斷控制,預(yù)測(cè)控制,模糊控制(Fuzzy) ,專家控制 (Expert Control),魯棒控制( Robust Control) ,推理控制等。隨著工業(yè)技術(shù)的不斷發(fā)展,傳統(tǒng)的控制方式以不能滿足高精度,高速度的控制要求,如溫度控制表溫度接觸器,其主要缺點(diǎn)是溫度波動(dòng)范圍大,由于他主要通過(guò)控制接觸器的通斷時(shí)間比例來(lái)達(dá)到改變加熱功率的目的,受儀表本身誤差和交流接觸器的壽命限制,通斷頻率很低。近幾年來(lái)快速發(fā)展了多種先進(jìn)的溫度控制方式,如:PID 控制,模糊控制,神經(jīng)網(wǎng)絡(luò)及遺傳算法控制等。這些控制技術(shù)大大的提高了控制精度,不但使控制變得簡(jiǎn)便,而且使產(chǎn)品的質(zhì)量更好,降低了產(chǎn)品的成本,提高了生產(chǎn)效率。單片微型計(jì)算機(jī)的功能不斷的增強(qiáng),為先進(jìn)的控制算法提供的載體,許多高性能的新型機(jī)種應(yīng)運(yùn)而生。單片機(jī)以其功能強(qiáng)、體積小、可靠性高、造價(jià)低和開(kāi)發(fā)周期短等優(yōu)點(diǎn),成為自動(dòng)化領(lǐng)域和其他測(cè)控領(lǐng)域中廣泛應(yīng)用的器件,在工業(yè)生產(chǎn)中成為必不可少的器件。在溫度控制系統(tǒng)中,單片機(jī)更是起到了不可替代的核心作用。像用于熱處理的加熱爐、用于融化金屬的坩鍋電阻爐等類似工業(yè)用加熱爐中都可以廣泛應(yīng)用,隨著生產(chǎn)的發(fā)展,在工業(yè)中,一些設(shè)備對(duì)溫度的控制要求越來(lái)越高,而本文則以單片機(jī)為核心、PID 算法為控制方式而設(shè)計(jì)的電阻爐溫度控制系統(tǒng)。1.2 計(jì)算機(jī)在爐溫控制中的應(yīng)用以前,人們是通過(guò)模擬儀表對(duì)爐溫進(jìn)行控制,采用人工手動(dòng)操作,依據(jù)個(gè)人的工作經(jīng)驗(yàn)和控制系統(tǒng)返回的數(shù)據(jù)來(lái)調(diào)節(jié)相應(yīng)的設(shè)備,控制效果不太理想,生產(chǎn)也不穩(wěn)定。到了 50 年代,隨著計(jì)算機(jī)的出現(xiàn),人們開(kāi)始在工廠、實(shí)驗(yàn)室或其它測(cè)試環(huán)境中用計(jì)算機(jī)進(jìn)行數(shù)據(jù)采集和處理。此時(shí)的計(jì)算機(jī)只起到 “離線”的應(yīng)用,且計(jì)算機(jī)與過(guò)程裝置4之間沒(méi)有任何物理上的連接。隨著計(jì)算機(jī)技術(shù)的進(jìn)一步發(fā)展,提供了計(jì)算機(jī)與過(guò)程裝置之間的接口,人們開(kāi)始用直接連接方法,使計(jì)算機(jī)與變送器和執(zhí)行部件之間的信號(hào)雙向傳遞無(wú)需人工干涉。1962 年,英國(guó)帝國(guó)工業(yè)公司安裝了 Ferranti Argus 計(jì)算機(jī)控制系統(tǒng),替代全部模擬控制儀表,即模擬技術(shù)由數(shù)字技術(shù)代替,而系統(tǒng)功能保持不變,計(jì)算機(jī)控制系統(tǒng)應(yīng)用真正開(kāi)始,經(jīng)歷多年研究和改進(jìn),到 70 年代中期進(jìn)入了集散控制系統(tǒng)的發(fā)展時(shí)期,爐溫控制也隨之進(jìn)步,方式不斷更新,算法也不斷深入 技術(shù)日益成熟。一般來(lái)說(shuō),計(jì)算機(jī)對(duì)爐溫控制大致采用以四種方式1.計(jì)算機(jī)采集和處理系統(tǒng)(data acquisition system, DAS)計(jì)算機(jī)采集和處理系統(tǒng)是以計(jì)算機(jī)為核心對(duì)生產(chǎn)過(guò)程進(jìn)行智能化,全工況開(kāi)環(huán)監(jiān)視系統(tǒng)。其主要功能包括:信息輸入,信息處理,報(bào)警處理,人機(jī)聯(lián)系與信息輸出等。其系統(tǒng)構(gòu)成如圖 1-1 所示,計(jì)算機(jī)系統(tǒng)對(duì)生產(chǎn)過(guò)程的溫度參數(shù)進(jìn)行采集,并對(duì)信號(hào)進(jìn)行轉(zhuǎn)換,計(jì)算機(jī)對(duì)內(nèi)部信息進(jìn)行定期計(jì)算和處理。圖 11 計(jì)算機(jī)采樣處理系統(tǒng)結(jié)構(gòu)圖2 直接數(shù)字控制系統(tǒng)(direct digital control, DDC)直接數(shù)字控制由計(jì)算機(jī)直接對(duì)生產(chǎn)過(guò)程進(jìn)行控制,計(jì)算機(jī)取代模擬調(diào)節(jié)器作為生產(chǎn)過(guò)程控制裝置,計(jì)算機(jī)按控制規(guī)律進(jìn)行數(shù)值計(jì)算,并經(jīng)過(guò)輸出通道(D/A)直接控制生產(chǎn)過(guò)程。直接數(shù)字控制系統(tǒng)實(shí)質(zhì)上是單回路或多回路的數(shù)字調(diào)節(jié)裝置,它以工控機(jī)為核心,加上過(guò)程輸入、輸出通道,與被控對(duì)象一起構(gòu)成閉環(huán)控制系統(tǒng)。它還具有巡回檢測(cè)的全部功能,可以顯示參數(shù)值,打印報(bào)表,并能進(jìn)行越限報(bào)警和故障自診。(如圖1-2 所示 )被控對(duì)象控制儀表檢測(cè)A/D轉(zhuǎn)換計(jì)算機(jī)數(shù)碼 LED 顯示事故報(bào)警打印機(jī)音響燈光報(bào)警人5圖 12 直接數(shù)字控制系統(tǒng)結(jié)構(gòu)圖3 計(jì)算機(jī)監(jiān)督控制系統(tǒng)(supervisory computer control, SCC)由計(jì)算機(jī)根據(jù)生產(chǎn)過(guò)程工藝參數(shù)和數(shù)學(xué)模型,計(jì)算出最佳設(shè)定值和相應(yīng)的控制指令,送給模擬調(diào)節(jié)器或 DDC 計(jì)算機(jī),由模擬調(diào)節(jié)器或 DDC 計(jì)算機(jī)控制生產(chǎn)過(guò)程,使其處于最優(yōu)工況。其系統(tǒng)框圖如 1-3 所示。圖 13 計(jì)算機(jī)監(jiān)督控制系統(tǒng)結(jié)構(gòu)圖6SCC 系統(tǒng)不僅可以進(jìn)行給定值控制,同時(shí)還可以進(jìn)行順序控制,最優(yōu)控制及自適應(yīng)控制,它是 DAS 和 DDC 系統(tǒng)的綜合和發(fā)展。SCC 系統(tǒng)按結(jié)構(gòu)分為兩種,一種是SCC 加模擬調(diào)節(jié)器,另一種是 SCC+DDC 控制系統(tǒng),模擬或 DDC 系統(tǒng)擔(dān)負(fù)第一級(jí)控制功能,監(jiān)督計(jì)算機(jī)作為的二級(jí)控制系統(tǒng),通過(guò)對(duì)子回路裝置的切除或投入,對(duì)子回路狀態(tài)及控制效果的監(jiān)視,對(duì)最佳設(shè)定值進(jìn)行計(jì)算與設(shè)置,使生產(chǎn)過(guò)程能在協(xié)調(diào)或最優(yōu)化的程度上達(dá)到要求的性能指標(biāo)。監(jiān)督計(jì)算機(jī)可僅完成最優(yōu)工況計(jì)算,不直接參與過(guò)程控制,在有的系統(tǒng)中,它本身也具備直接數(shù)字控制功能,當(dāng)監(jiān)督計(jì)算機(jī)發(fā)生故障時(shí),直接數(shù)字控制或模擬調(diào)節(jié)器可獨(dú)立完成操作,而在模擬調(diào)節(jié)器等發(fā)生故障時(shí),則可由監(jiān)督計(jì)算機(jī)執(zhí)行部分功能。4.集散控制系統(tǒng)(distributed control)集散控制即分散控制,信息集中管理的分布控制系統(tǒng)。它是計(jì)算機(jī)技術(shù),控制技術(shù),通信技術(shù)和 CRT 技術(shù)相結(jié)合的產(chǎn)物。集散控制是以微處理機(jī)為核心,把微型計(jì)算機(jī),工業(yè)控制機(jī),數(shù)據(jù)通訊系統(tǒng),顯示操作裝置,過(guò)程通道,模擬儀表等有機(jī)的結(jié)合起來(lái),采用組合組裝式組成系統(tǒng)。為每個(gè)被控對(duì)象配備一套下位機(jī)控制設(shè)備,置于現(xiàn)場(chǎng),用于對(duì)每個(gè)被控對(duì)象的數(shù)據(jù)采集和控制??傮w配備一臺(tái) 1_控機(jī)作為上位機(jī),置于控制室內(nèi),對(duì)現(xiàn)場(chǎng)每個(gè)被控對(duì)象進(jìn)行命令下達(dá),組織和處理數(shù)據(jù)信息,集中管理整個(gè)系統(tǒng)。此種方式能夠?qū)崿F(xiàn)工程系統(tǒng)的最優(yōu)控制,使生產(chǎn)過(guò)程能長(zhǎng)期在最佳狀態(tài)下進(jìn)行,且具有較高的可靠性,提高了系統(tǒng)的功能和效率,另外它的軟件和硬件采用模塊化結(jié)構(gòu),使用維護(hù)方便,系統(tǒng)易開(kāi)發(fā),易擴(kuò)展,有利于分批投資逐步擴(kuò)展;如果采用 CRT 操作站會(huì)有良好的人機(jī)交互接口;數(shù)據(jù)的高速傳輸,設(shè)備、通信,配線的費(fèi)用低廉。性能價(jià)格比較好。( 其系統(tǒng)框圖見(jiàn)圖 1-4)近年來(lái),由工控機(jī) (或 PC 機(jī))和多臺(tái)單片機(jī)或 PLC 構(gòu)成的集散測(cè)控系統(tǒng)已廣泛用于工業(yè)自動(dòng)化控制中。它既利用了單片機(jī)和 PLC 價(jià)格低、功能強(qiáng)、可靠性高的優(yōu)點(diǎn) 構(gòu)建適宜于工業(yè)現(xiàn)場(chǎng)的監(jiān)控站或下位機(jī),又結(jié)合 PC 機(jī)豐富的軟硬件資源,提供管理功能強(qiáng)大、人機(jī)界面友好的操作平臺(tái),實(shí)現(xiàn)了信息集中管理、過(guò)程分散控制的有機(jī)結(jié)合。7圖 14 集散系統(tǒng)控制結(jié)構(gòu)圖從溫度控制系統(tǒng)的發(fā)展來(lái)看,以單片機(jī)為核心構(gòu)成的溫度控制系統(tǒng)己被國(guó)內(nèi)外許多公司和單位作為研究對(duì)象,單片機(jī)溫度控制裝置硬件簡(jiǎn)單,軟件豐富,能方便地實(shí)現(xiàn)現(xiàn)代化控制規(guī)律和多種功能,性能優(yōu)良,運(yùn)行、調(diào)試都非常方便,且生產(chǎn)成本低,可加快生產(chǎn)設(shè)備的更新?lián)Q代,己開(kāi)始受到重視和歡迎。加之近年來(lái),單片機(jī)的性能不斷提高,而價(jià)格卻逐年降低,所以單片機(jī)溫度控制裝置將具有廣闊的發(fā)展和運(yùn)用前景。8第二章 系統(tǒng)硬件設(shè)計(jì)溫度測(cè)控系統(tǒng)硬件結(jié)構(gòu)圖如圖 21 所示 。圖 21 系統(tǒng)硬件結(jié)構(gòu)圖 系統(tǒng)的工作過(guò)程 :溫度檢測(cè)及變換電路把溫度轉(zhuǎn)換成電壓信號(hào),經(jīng) AD 轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào)送人 8031 單片機(jī)中,并與給定值(對(duì)應(yīng)著所要控制的溫度值)進(jìn)行比較,其偏差被 PID 程序計(jì)算出輸出控制量,由 P1.3 口輸出脈沖信號(hào)控制雙向可控硅的導(dǎo)通,以實(shí)現(xiàn)對(duì)電爐輸出有效功率的調(diào)節(jié)。 現(xiàn)對(duì)各部分主要電路作介紹。2.1 溫度檢測(cè)和變送器溫度檢測(cè)元件和變送器的類型選擇和被控溫度及其精度等級(jí)有關(guān),選用鎳鉻一鎳鋁熱電偶作為溫度傳感器,測(cè)量溫度范圍 01000,相應(yīng)輸出電壓為 0mV-41.32mV。變送器由毫伏變送器和電流/電壓變送器組成:毫伏變送器用于將熱電偶輸出的 0-41.32mV 的電壓變化成 0-10Ma 范圍內(nèi)的電流,電流/電壓變送器負(fù)責(zé)將毫伏變送器輸出的 0-10mA 電流變換成為 0-5v 范圍內(nèi)的電壓。 (ADC0809 的限定電壓為 0-5v)為了提高測(cè)量精度,變送器可以進(jìn)行零點(diǎn)遷移。例如:如果溫度測(cè)量范圍為 400-1000,則熱電偶輸出為 16.4Mv-41.32Mv,毫伏變送器零點(diǎn)遷移后輸出 0-10mA 范圍內(nèi)的電流。這樣采用 ADC0809 這個(gè) 8 位的 A/D 轉(zhuǎn)換器就能是量化溫度誤差達(dá)到正負(fù) 2.34以內(nèi)92.2 控制機(jī)構(gòu)本設(shè)計(jì)采用8031單片機(jī)作為控制機(jī)構(gòu)的核心。8031是一種速度快,功耗大的TTL型8位單片機(jī)。它片內(nèi)無(wú)ROM,片內(nèi)RAM容量為128B,最高頻率為24MHz ,小巧,價(jià)格便宜,且在中國(guó)市場(chǎng)最常見(jiàn),應(yīng)用最廣泛。8031單片機(jī)采用40條引腳雙列直插封裝(DIP)形式。由于受引腳數(shù)目的限制,所以有一些引腳具有第二功能。在單片機(jī)的40條引腳中,有兩條專用于主電源的引腳,2條外接晶體的引腳,四條控制禾其他電源復(fù)用的引腳,32條輸入/輸出引腳。下面分別說(shuō)明這些引腳的名稱和功能。(1)主電源引腳V cc和V ssVcc:接5V電源。Vss:接電源地。(2)時(shí)鐘電路引腳XTAL1和XTAL2XTAL1:接外部晶體的一端。在單片機(jī)內(nèi)部,它是反向放大器的輸入端,該放大器構(gòu)成了片內(nèi)振蕩器。在采用外部時(shí)鐘電路時(shí),對(duì)于HMOS單片機(jī),此引腳必須接地;對(duì)CHMOS單片機(jī),此引腳作為驅(qū)動(dòng)端。XTAL2:接外部晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反向放大器的輸出端,振蕩器的頻率時(shí)晶體振蕩頻率。如采用外部時(shí)鐘電路時(shí),對(duì)于HMOS單片機(jī),該引腳輸入外面時(shí)鐘脈沖;對(duì)于CHMOS單片機(jī),此引腳懸空。(3)控制信號(hào)引腳RST/V PD、ALE/PROG、PSEN和EA/V PPRST/VPD復(fù)位/備用電源輸入端。ALE/PROG:地址鎖存使能輸出/編程脈沖輸入端。PSEN:外部程序庫(kù)存儲(chǔ)器讀選通信號(hào)。EA/VPP:外部訪問(wèn)允許/編程電源輸入端。(4)輸入/輸出(I/O) 引腳 P0、P1、P2 和P3P0.0P0.7:P0使一個(gè)8位雙向I/O端口。在訪問(wèn)片外存儲(chǔ)器時(shí),它分時(shí)提供低8位地址和作8位雙向數(shù)據(jù)總線。P1.01.7:P1口是8位準(zhǔn)雙向 I/O端口。在EPROM編程和程序驗(yàn)證時(shí),它輸入低8位地址。P1口能驅(qū)動(dòng) 4個(gè)LSTTL負(fù)載。P2.0P2.7:P2口是一個(gè)準(zhǔn)雙向I/O端口。在CPU訪問(wèn)外部存儲(chǔ)器時(shí),它輸出高8位地址。在對(duì)EPROM編程和程序驗(yàn)證時(shí),它輸入高8位地址。P2口可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。P3.0P3.7:P3口是八位準(zhǔn)雙向I/O端口。它是一個(gè)復(fù)用功能口。作為第一功能使用時(shí),為普通I/O 口,其功能和操作方法與P1相同。作為第二功能使用時(shí),個(gè)引腳的定義如表1。實(shí)際在使用時(shí),總是先按需要優(yōu)先選用它的第二功能,剩下不用的才作為第一功能10口線使用。P3 口能驅(qū)動(dòng)4個(gè) LSTTL負(fù)載。表1 P3個(gè)口線的第二功能表口線 第二功能P3.0 RXD (串行口輸入)P3.1 TXD (串行口輸出)P3.2 INT0 (外部中斷 0輸入)P3.3 INT1 (外部中斷 1輸入)P3.4 T0 (定時(shí)器0的外部輸入)P3.5 T1 (定時(shí)器1的外部輸入)P3.6 WR (外部數(shù)據(jù)存儲(chǔ)器“寫(xiě)”信號(hào)輸出)P3.7 RD (外部數(shù)據(jù)存儲(chǔ)器“讀”信號(hào)輸出) 2.3 A/D轉(zhuǎn)換電路 選用A/D轉(zhuǎn)換器ADC0809.A/D 轉(zhuǎn)換器芯片 ADC0809 簡(jiǎn)介 8 路模擬信號(hào)的分時(shí)采集,片內(nèi)有 8 路模擬選通開(kāi)關(guān),以及相應(yīng)的通道抵制鎖存用譯碼電路,其轉(zhuǎn)換時(shí)間為 100s 左右。圖 2-2 ADC0809 引腳圖(一) ADC0809 的內(nèi)部結(jié)構(gòu)ADC0809 的內(nèi)部邏輯結(jié)構(gòu)圖如圖 2-3 所示。11圖 2-3 ADC0809 內(nèi)部邏輯結(jié)構(gòu)圖中多路開(kāi)關(guān)可選通 8 個(gè)模擬通道,允許 8 路模擬量分時(shí)輸入,共用一個(gè) A/D 轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,這是一種經(jīng)濟(jì)的多路數(shù)據(jù)采集方法。地址鎖存與譯碼電路完成對(duì) A、B、C 3 個(gè)地址位進(jìn)行鎖存和譯碼,其譯碼輸出用于通道選擇,其轉(zhuǎn)換結(jié)果通過(guò)三態(tài)輸出鎖存器存放、輸出,因此可以直接與系統(tǒng)數(shù)據(jù)總線相連,下圖為通道選擇表。 圖 2-4 通道選擇示意圖(二) 信號(hào)引腳ADC0809 芯片為 28 引腳為雙列直插式封裝,其引腳排列見(jiàn)圖 2-2。對(duì) ADC0809 主要信號(hào)引腳的功能說(shuō)明如下:IN7IN0模擬量輸入通道ALE地址鎖存允許信號(hào)。對(duì)應(yīng) ALE 上跳沿,A、B、C 地址狀態(tài)送入地址鎖存器中。12START轉(zhuǎn)換啟動(dòng)信號(hào)。START 上升沿時(shí),復(fù)位 ADC0809;START 下降沿時(shí)啟動(dòng)芯片,開(kāi)始進(jìn)行 A/D 轉(zhuǎn)換;在 A/D 轉(zhuǎn)換期間,START 應(yīng)保持 低電平。本信號(hào)有時(shí)簡(jiǎn)寫(xiě)為 ST.A、B、C地址線。 通道端口選擇線,A 為低地址,C 為高地址,引腳圖中為ADDA,ADDB 和 ADDC。CLK時(shí)鐘信號(hào)。ADC0809 的內(nèi)部沒(méi)有時(shí)鐘電路,所需時(shí)鐘信號(hào)由外界提供,因此有時(shí)鐘信號(hào)引腳。通常使用頻率為 500KHz 的時(shí)鐘信號(hào)EOC轉(zhuǎn)換結(jié)束信號(hào)。EOC=0,正在進(jìn)行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號(hào)即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請(qǐng)求信號(hào)使用。D7D0數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。D0為最低位,D7 為最高 OE輸出允許信號(hào)。用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。Vcc +5V 電源。 Vref參考電源參考電壓用來(lái)與輸入的模擬信號(hào)進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5V(Vref(+)=+5V, Vref(-)=-5V).(三). 轉(zhuǎn)換數(shù)據(jù)的傳送A/D 轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時(shí)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問(wèn)題是如何確認(rèn)A/D 轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。為此可采用下述三種方式。A定時(shí)傳送方式對(duì)于一種 A/D 轉(zhuǎn)換其來(lái)說(shuō),轉(zhuǎn)換時(shí)間作為一項(xiàng)技術(shù)指標(biāo)是已知的和固定的。例如ADC0809 轉(zhuǎn)換時(shí)間為 128s,相當(dāng)于 6MHz 的 MCS-51 單片機(jī)共 64 個(gè)機(jī)器周期。可據(jù)此設(shè)計(jì)一個(gè)延時(shí)子程序,A/D 轉(zhuǎn)換啟動(dòng)后即調(diào)用此子程序,延遲時(shí)間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。B查詢方式A/D 轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號(hào),例如 ADC0809 的 EOC 端。因此可以用查詢方式,測(cè)試 EOC 的狀態(tài),即可卻只轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。C中斷方式把表明轉(zhuǎn)換完成的狀態(tài)信號(hào)(EOC)作為中斷請(qǐng)求信號(hào),以中斷方式進(jìn)行數(shù)據(jù)傳送。不管使用上述那種方式,只要一旦確定轉(zhuǎn)換完成,即可通過(guò)指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以信號(hào)有效時(shí),OE 信號(hào)即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機(jī)接受。不管使用上述那種方式,只要一旦確認(rèn)轉(zhuǎn)換結(jié)束,便可通過(guò)指令進(jìn)行數(shù)據(jù)傳送。所用的指令為 MOVX 讀指令,則有MOV DPTR , #FE00HMOVX A , DPTR13該指令在送出有效口地址的同時(shí),發(fā)出有效信號(hào),使 0809 的輸出允許信號(hào) OE 有效,從而打開(kāi)三態(tài)門輸出,是轉(zhuǎn)換后的數(shù)據(jù)通過(guò)數(shù)據(jù)總線送入 A 累加器中。這里需要說(shuō)明的示,ADC0809 的三個(gè)地址端 A、B、C 即可如前所述與地址線相連,也可與數(shù)據(jù)線相連,例如與 D0D2 相連。這是啟動(dòng) A/D 轉(zhuǎn)換的指令與上述類似,只不過(guò) A的內(nèi)容不能為任意數(shù),而必須和所選輸入通道號(hào) IN0IN7 相一致。例如當(dāng) A、B、C 分別與 D0、D1、D2 相連時(shí),啟動(dòng) IN7 的 A/D 轉(zhuǎn)換指令如下:MOV DPTR, #FE00H ;送入 0809 的口地址MOV A ,#07H ;D2D1D0=111 選擇 IN7 通道MOVX DPTR, A ;啟動(dòng) A/D 轉(zhuǎn)換(四) MCS-51 單片機(jī)與 ADC0809 的接口ADC0809 與 MCS-51 單片機(jī)的連接如圖 2-5 所示。電路連接主要涉及兩個(gè)問(wèn)題。一是 8 路模擬信號(hào)通道的選擇,二是 A/D 轉(zhuǎn)換完成后轉(zhuǎn)換數(shù)據(jù)的傳送。圖 2-5 ADC0809 與 MCS-51 的連接如圖 2-6 所示模擬通道選擇信號(hào) A、B、C 分別接最低三位地址 A0、A1、A2 即(P0.0、P0.1、P0.2) ,而地址鎖存允許信號(hào) ALE 由 P2.0 控制,則 8 路模擬通道的地址為 0FEF8H0FEFFH.此外,通道地址選擇以作寫(xiě)選通信號(hào),這一部分電路連接如圖2-7 所示。14圖 2-6 ADC0809 的部分信號(hào)連接 圖 2-7 信號(hào)的時(shí)間配合ADC0809 的 0 通道和變送器的輸出端相連,所以從通道 0(IN0)上輸入的 0V-+5V范圍的模擬電壓經(jīng) A/D 轉(zhuǎn)換后可由 8031 通過(guò)程序從 P0 口輸入到它的內(nèi)部 RAM 單元,在 P2.2=0 和 WR=0 時(shí),8031 可使 ALE 和 START 變?yōu)楦唠娖蕉鴨?dòng) ADC0809 工作;在 P2.2=0 和 RD=0 時(shí),8031 可以從 ADC0809 接收 A/D 轉(zhuǎn)換后的數(shù)字量。也就是說(shuō)ADC0809 可以視為 8031 的一個(gè)外部 RAM 單元,地址為 03F8H(地址重復(fù)范圍很大) ,因此,8031 執(zhí)行如下程序可以啟動(dòng) ADC0809 工作。 MOV DPTR, #03F8HMOVX DPTR,A若 8031 執(zhí)行下列程序:MOV DPTR, #03F8HMOVX A,DPTR則可以從 ADC0809 輸入 A/D 轉(zhuǎn)換后的數(shù)字量2.4 溫度控制電路8031對(duì)溫度的控制是通過(guò)可控硅調(diào)功器電路實(shí)現(xiàn)的。如圖2-8所示。雙向可控硅管和加熱絲串接在交流220V、50H Z交流市電回路。在給定周期T內(nèi),8031只要改變可控硅15管的接通時(shí)間便可改變加熱絲功率,以達(dá)到調(diào)節(jié)溫度的目的。圖2-8示出了可控硅管在給定周期T內(nèi)具有不同接通時(shí)間的情況。顯然,可控硅在給定周期T的100時(shí)間內(nèi)接通時(shí)的功率最大。U12.5 tu25%tu50%tu100 t 圖28可控硅調(diào)功器輸出功率和通斷時(shí)間的關(guān)系可控硅接通時(shí)間可以通過(guò)可控硅控制硅控制極上觸發(fā)脈沖控制。該觸發(fā)脈沖由8031用軟件在P 1.3引腳上產(chǎn)生,受過(guò)零同步脈沖同步后經(jīng)光耦管和驅(qū)動(dòng)器輸出送到可控硅的控制極上。過(guò)零同步脈沖是一種50Hz交流電壓過(guò)零時(shí)刻的脈沖,可使可控硅在交流電壓正弦渡過(guò)零時(shí)觸發(fā)通導(dǎo)。過(guò)零同步脈沖由過(guò)零觸發(fā)電路產(chǎn)生,更為詳細(xì)的電路原理圖如圖5所示。圖中,電壓比較器LM311用于把50Hz正弦交流電壓變成方波。方波的正邊沿和負(fù)邊沿分別作為兩個(gè)單穩(wěn)態(tài)觸發(fā)器的輸入觸發(fā)信號(hào),單穩(wěn)態(tài)觸發(fā)器輸出的兩個(gè)窄脈沖經(jīng)二極管或門混合后就可得到對(duì)應(yīng)于交流220V市電的過(guò)零同步脈沖。此脈沖一方面作為可控硅的觸發(fā)同步脈沖加到溫度控制電路,另一方面作為計(jì)數(shù)脈沖加到8031的T0和16T1端。112233445566D DC CB BA ATitleNumber RevisionSizeBDate: 2007-5-23 Sheet of File: D:protel與與Sheet1.SCHDOC Drawn By:LM311+5VMC14528411 Q1Q2C?+5V74LS00P1.3220V+12V+5V圖29 過(guò)零觸發(fā)電路2.5 部分接口電路8031的接口電路有8155、2731和ADC0809等芯片。8155用于鍵盤(pán)/LED顯示器接口,2732可以作為8031的外部ROM存儲(chǔ)器,ADC0809為溫度測(cè)量電路的輸入接口。由圖26可見(jiàn),在P2.0=0P2.1=0時(shí),8155選中它內(nèi)部的RAM工作;在P2.01和P2.20時(shí),8155 選中片內(nèi)三個(gè) I/O端口。相應(yīng)地址分配為:0000H00FFH 8155內(nèi)部RAM0100H 命令/狀態(tài)口0101H A口0102H B口0103H C口0104H 定時(shí)器低8位口0105H 定時(shí)器高8位口2732是4KB EPROM型器件。8031的P SEN和2732 的OE相接,P2.4和CE相連,故2732的地址空間為:0000H0FFFHP1.0-P1.2引腳用于報(bào)警,可以和報(bào)警電路相連。17圖210 顯示器和鍵盤(pán)電路PBPBPBPB01234567PAPAPAPA01234567abcdefdp1AAAAA26345781AAAAA26345786134578YYYY26134578YYYY2 g+5V+5V RESETCEIO/MWRRDALEPALERDWRPPBIC87185.1K 4+5V+5V10 8+5VVCVCGGNDG81502.72.0020 F1K8031 1BIC8788023PCPCDD70 1 2 3 4 5 6 78 9 101 12 1314151617 18 1920 212 2324 25262728 29303118第三章 溫度控制的算法和程序3.1 溫度控制的算法溫度控制系統(tǒng)要求較高時(shí),常常采樣有源校正環(huán)節(jié)。有源校正環(huán)節(jié)一般是有運(yùn)算放大器和電阻、電容組成的反饋網(wǎng)絡(luò)連節(jié)而成,被廣泛地用于工程控制系統(tǒng)中,常常被稱為調(diào)節(jié)器。其中,按偏差的比例(proportional) 、積分(Integral )和微分(Derivative)進(jìn)行控制的PID調(diào)節(jié)器是應(yīng)用最為廣泛的一種調(diào)節(jié)器。PID調(diào)節(jié)器已經(jīng)形成了典型結(jié)構(gòu),其參數(shù)整定方便,結(jié)構(gòu)改變靈活(P 、PI 、PD、PID等) ,在許多工業(yè)過(guò)程控制中獲得良好的效果。對(duì)于那些數(shù)學(xué)模型不易精確求得、參數(shù)變化較大的被控對(duì)象,采樣PID調(diào)節(jié)器也往往能得到滿意的控制效果。PID控制在經(jīng)典控制理論中技術(shù)成熟,自20世紀(jì)30年代末出現(xiàn)模擬式PID調(diào)節(jié)器,自今仍在非常廣泛的應(yīng)用。今天,隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,用計(jì)算機(jī)算法代替模擬式PID 調(diào)節(jié)器,實(shí)現(xiàn)數(shù)字PID控制,使其控制作用更靈活、更易于改進(jìn)和完善。通常,電阻爐爐溫控制采用偏差控制法。偏差控制的原理是先求出實(shí)測(cè)爐溫對(duì)所需爐溫的偏差值,然后對(duì)偏差值處理而獲得控制信號(hào)去調(diào)節(jié)電阻爐的加熱功率,以實(shí)現(xiàn)對(duì)爐溫的控制。控制論告訴我們,PID控制的理想微分方程為:1()()()()0tdetUtKeTpi(3.1)式中,e(t)=r(t)-y(t) 稱為偏差值,可作為溫度調(diào)節(jié)器的輸入信號(hào),其中r(t)為給定值,y(t)為被測(cè)變量值;Kp為比例系數(shù);T d為積分時(shí)間常數(shù);u(t)為調(diào)節(jié)器的輸出控制電壓信號(hào)。但計(jì)算機(jī)只能處理數(shù)學(xué)信號(hào),故上述數(shù)學(xué)方程必須加以變換。若設(shè)溫度的采樣周期為T,第 n次采樣得到的輸入偏差為e n,調(diào)節(jié)器輸出為U n,則有:(微分用差分代替)1()dt19(積分用求和代替)0()nKted這樣,式(3.1)便可改寫(xiě)為: 101nnnpkdieUT(3.2)寫(xiě)成遞推形式為:(2)11Keeenpnni0( kdiT1112()npnnniUee改寫(xiě)成: ()()()()21PIDIDKEKEn(3.3)203.2 溫度控制程序溫度控制程序的設(shè)計(jì)應(yīng)考慮如下問(wèn)題:(1)鍵盤(pán)掃描,鍵碼識(shí)別和溫度顯示;(2)爐溫采樣,數(shù)字濾波;(3)數(shù)據(jù)處理時(shí)把所有數(shù)按定點(diǎn)純小數(shù)補(bǔ)碼形式轉(zhuǎn)換,然后把8位溫度采樣值、U min和U max都變成16位參加運(yùn)算,運(yùn)算結(jié)果取8位有效值;(4)越限報(bào)警和處理;(5)PID計(jì)算,溫度表度轉(zhuǎn)換。通常,符合上述功能的溫度控制程序由主程序和T 0中斷服務(wù)程序組成,現(xiàn)分述如下:(1)主程序主程序應(yīng)包括8031本身的初始化等等。為簡(jiǎn)化起見(jiàn),本程序只給出有關(guān)標(biāo)志,暫存單元和顯示緩沖區(qū)清零、T 0初始化、開(kāi)CPU中斷。溫度顯示和鍵盤(pán)掃描等程序。相應(yīng)程序框圖如同34所示。程序清單為:ORG 0100HDISM0 DATA 78HDISM1 DATA 79H DISM2 DATA 7AHDISM3 DATA 7BHDISM4 DATA 7CH 圖31 T1 中斷服務(wù)程序DISM5 DATA 7DHMOVE SP, #50H ; 50H送SPCLR 5EH ; 清本次越限標(biāo)志CLR 5FH ; 清上次越限標(biāo)志CLR A ; 清累加器AMOV 2FH, A ; MOV 30H, A ; MOV 3BH, A ; MOV 3CH, A ; 清暫存單元設(shè)定堆棧指針清標(biāo)志和暫存單元清顯示緩沖器區(qū)T0 初始開(kāi) CPU中斷掃描鍵盤(pán)溫度顯示T1 中斷程序清標(biāo)志 D5H停止輸出返回21MOV 3DH, A ;MOV 3EH, A ;MOV 44H, A ;圖32 主程序流程圖MOV DISM0, A ; MOV DISM1, A ; MOV DISM2, A ;MOV DISM3, A ; 清顯示緩沖區(qū)MOV DISM4, A ; MOV DISM5, A ;MOV TMOD, #56H ; 設(shè)T0為計(jì)數(shù)器方式2;T1為方式1MOV TL0, #06H; T0賦初值 MOV TH0, #06H;CLR PT0 ; 令T0為低中斷優(yōu)先級(jí) SETB TR0 ; 啟動(dòng)T0工作 SETB ET0 ; 允許T0中斷SETB EA ; 開(kāi)CPU中斷LOOP: ACALL DISPLY ; 調(diào)用顯示程序ACALL SCAN ; 調(diào)用掃描程序AJMP LOOP ; 等待中斷(2) T0中斷服務(wù)程序CT0T0中斷服務(wù)程序是溫度控制系統(tǒng)的主體程序,用于啟動(dòng)A/D 轉(zhuǎn)換,讀入采樣數(shù)據(jù)、數(shù)字濾波、越限溫度報(bào)警和越限處理、PID計(jì)算和輸出可控硅的同步觸發(fā)脈沖等。P1.3引腳上輸出的該同步觸發(fā)脈沖寬度由T1計(jì)算器的溢出中斷控制, 8031利用T1 溢出中斷空隙時(shí)間(形成P1.3 輸出脈沖頂寬)完成把本次采樣值轉(zhuǎn)換成顯示值而放入顯示緩沖區(qū)和調(diào)用溫度顯示程序。8031從T1中斷服務(wù)程序返回后便可恢復(fù)現(xiàn)場(chǎng)和返回主程序,以等待下次T0中斷。在T0 中斷服務(wù)程序中,還需要用到一系列子程序。例如:采樣溫度值的子程序、數(shù)字濾波子程序、越限處理程序、PID計(jì)算程序、標(biāo)度轉(zhuǎn)換程序和溫度顯示程序。在PID計(jì)算程序中,也需要用到雙字節(jié)家法子程序、雙字節(jié)帶符號(hào)數(shù)乘法子程序等。T0中斷服務(wù)程序框圖如圖3-3所示。22YNYN NYN NYNYYN保護(hù)現(xiàn)場(chǎng)Ui(K)=Umax?采樣爐溫?cái)?shù)字濾波boUi(K) Umax?清上次越限標(biāo)志恢復(fù)現(xiàn)場(chǎng)溫度顯示溫度標(biāo)度轉(zhuǎn)換初始化從 P1.3 輸出求補(bǔ)計(jì)算 PID求補(bǔ)取最大 PID 值輸出下限報(bào)警越限計(jì)算器加 1Ui(K)=Umin?Ui(K)Umax?上次越限越限 N 次?(D5H)1?上限報(bào)警清越限標(biāo)志恢復(fù)現(xiàn)場(chǎng)返回上限處理本次越限標(biāo)志送5FH 清零 5EH 單元置本次越限標(biāo)志23圖33 T0中斷服務(wù)程序流程圖CPU內(nèi)部RAM 中有關(guān)參數(shù)的分配列出如圖 34。相應(yīng)程序清單為:ORG 000BHAJMP CT0CT0: PUSH ACC ;保護(hù)現(xiàn)場(chǎng)PUSH DPL ;保護(hù)現(xiàn)場(chǎng)PUSH DPH ;保護(hù)現(xiàn)場(chǎng)SETB D5H ;置標(biāo)志ACALL SAMP ;調(diào)用采樣子程序ACALL FILTER ;調(diào)用數(shù)學(xué)濾波程序CJNE A,42H,TPL ;若Ui(K)!Umax,則TPL WL: MOV C,5EH ; (5EH)送5FHMOV 5FH,C ;CLR 5EH ;清5EH單元ACALL UPL ;轉(zhuǎn)上限處理程序POP DPH ;POP DPL ;POP ACC ;RETI ;中斷返回TPL: JNC TPL1 ;若Ui(K)Umaz,則 TPL1CLR 5FH ;清上次越限標(biāo)志CJNE A,43H,MTPL ;若Ui(K)!=Umax,則MTPLHAT: SETB P1.1 ;若溫度不越限,則令綠燈亮ACALL PID ;調(diào)用計(jì)算PID子程序MOV A,2FH ;PID值送ACPL A ; 對(duì)PID值求補(bǔ),作為TL1值INC A ;NM: SETB P1.3 ;令P1.3輸出高電平脈沖MOV TL1,A ; T1賦初值MOV TH1,#0FFH SETB PT1 ;T1高優(yōu)先中斷SETB TR1 ;啟動(dòng)T1返回24SETB ET1 ;允許T1 中斷ACALL TRAST ;調(diào)用標(biāo)度轉(zhuǎn)換程序LOOP: ACALL DISPLY ;顯示溫度JB D5H,LOOP ;等待T1中斷POP DPH ; POP DPL ; 恢復(fù)現(xiàn)場(chǎng)POP ACC ;RETI ;中斷返回MTPL: JNC HAT ;若Ui(K)Umin,則HATSETB P1.0 ;否則,越下限聲光報(bào)警MOV A,45H ;取PID最大值輸出CPL A ; 取PID值求補(bǔ),作為TL1INC A ;AJMP NM ;轉(zhuǎn)NM執(zhí)行TPL1: SETB 5EH ;若Ui(K)Umax,則5EH單元置位JNB 5FH,WL ;若上次未越限,則轉(zhuǎn) WLINC 44H ;越限計(jì)算器加“1”MOV A,44H ;CLR C ;SUBB A,#N ;越限N 次嗎?JNZ WL ;越限小于N次,則 WLSETB P1.2 ;否則,越上限聲光報(bào)警CLR 5EH ; CLR 5FH ; 清越限標(biāo)志POP DPH ; POP DPL ; 恢復(fù)現(xiàn)場(chǎng)POP ACC ;RETI ;中斷返回(2)T1中斷服務(wù)程序:ORG 001BHAJMP CTA CT1: CLR D5H ;清標(biāo)志CLR P1.3 ;令P1.3 變?yōu)榈碗娖絉ETI ;中斷返回25(3)子程序1、采樣子程序SAMP:SAMP子程序流程圖如圖 35所示,子程序清單如下。SAMP: MOV R0, #2CH ;采樣值始址送R0SAM1: MOV ADCON,#08H ;啟動(dòng)A/D 轉(zhuǎn)換MOV R3,#20H ;DLY : DJNZ R3,DLY ;延時(shí)ADLOOP:MOV A,ADCON ;讀ADCON狀態(tài)JNB ACC.4,ADLOOP ;等待A/D完成MOV ADCON,#00H ;舍去10位數(shù)字量中低 2位MOV A,ADCH ;高8位數(shù)字量送存MOV R0,A ;INC R0 ;DJNZ R2,SAM1 ;若采樣未完,則SAMIRET ;若采樣已完,則返回2AH Ui中間值2BH 標(biāo)志位*注2CH2DH 三次采樣值2EH2FH30H 本次計(jì)數(shù)值31H32H 給定值33H 34H 給定值35H 36H 給定值37H 38H 給定值39H 3AH 本次計(jì)算值3BH 3CH 上次計(jì)算值3DH 3EH 上上次計(jì)算值42HUi(k)Ui1Ui2Ui3P(K)HP(K)LURHURLKPHKPLK(I)LKI)HK(D)LK(D)HE(K)HE(K)LE(K-1)HE(K-2)LE(K-2)HE(K-2)L UmaxUmin越限計(jì)數(shù)值PID 最大值2643H 給定值44H45H圖34 內(nèi)部RAM中有關(guān)參數(shù)分配圖2、數(shù)字濾波程序FILTER:數(shù)字濾波程序用于濾去來(lái)自控制現(xiàn)場(chǎng)對(duì)采樣值的干擾。數(shù)字濾波程序算法頗多,本設(shè)計(jì)采樣中值濾波。中值濾波及只需對(duì)2CH、2DH 和2EH 中三次采樣值進(jìn)行比較,取中間值存放到2AH單元內(nèi),以作為溫度標(biāo)度轉(zhuǎn)換時(shí)使用。圖28示出了中值濾波程序框圖。NYYNN NYY YN N N YYN Y 圖25采樣子程序流程圖 圖26 數(shù)學(xué)濾波程序流程圖相應(yīng)程序清單為:FILTER:MOV A,2CH ;(2CH)送ACJNE A,2DH,CMP1 ;若(2CH)?。?2DH) ,則CMP1采樣值始址送 R0采樣次數(shù)送 R2(2CH)?。?DH)?(2CH)送 AA/D 完成返回(2DH)送2AH(2CH) (2DH)?(2DH)(2EH)?(2CH)!(2EH)?(2EH)(2CH)?選通 IN0 啟動(dòng)ADC延時(shí)所有采樣結(jié)束?(2CH)送 2AH(2CH) (2DH)?(2DH)!(2EH)?(2DH)送2AH(2DH)送2AH(2EH)送2AH返回27AJMP CMP2 ;否則,轉(zhuǎn)CMP2CMP1: JNC CMP2 ;若(2CH)(2DH) ,則CMP2XCH A,2DH ; (2CH) (2DH)XCH A,2CH ;CMP2: MOV A,2DH ;(2DH)送ACJNE A,2EH,CMP3 ;若(2DH )!=(2EH),則CMP3MOV 2AH,A ;否則, (2DH)送 2AHRET ;返回CMP3: JC COMP4 ;若(2DH) (2EH) ,則CMP4MOV 2AH,A ;否則, (2DH)送 2AHRET ;返回CMP4: MOV A,2EH ;(2EH)送ACJNE A,2CH,CMP5 ;若(2EH)?。?2CH) ,則CMP5MOV 2AH,A ;否則(2EH)送2AHRET ;返回CMP5: JC SMP6 ;若(2EH)(2CH),則CMP6XCH A,2CH ;否則, (2EH) (2CH )CMP6: MOV 2AH,A ;A送2AHRET :3. PID計(jì)算程序式(28)可以改寫(xiě)成: ()1)()1)()22PKEKEKPIDI(38)根據(jù)式(38)編程,相應(yīng)程序框圖如圖37所示,程序清單如下:PID: MOV R5,31H ; UR送R 5R4MOV R4,32H ;MOV R3,2AH ; Ui(K)送R 3R2MOV R2,#00H ;ACALL CPL1 ;取U i(K)的補(bǔ)碼ACALL DSUM ;計(jì)算E(K)MOV 39H,R7 ; E(K)送39H和3AH單元28MOV 3AH,R6 ;MOV R5,35H ;KI送R 5R4MOV R4,36H ;KI送R 5R4MOV R0,#4AH ;積始址4AH送R 0ACALL MULT1 ;計(jì)算P I=KIE(K)MOV R5,39H ; E(K)送R 5R4MOV R4,3AH ;MOV R3,3BH ; E(K1)送R 3R2MOV R2,3CH ;ACLL CPL1 ;對(duì)E(K1)送求補(bǔ)ACALL DSUM ;求E(K)E(K 1)MOV R5,33H ; KP送R 5R4MOV R4,34H ;MOV R0,#46H ;積始址46H送R 0ACALL MULT1 ;求得P PMOV R5,49H ; Pp的高16位送R 5R4MOV R4,48H ;MOV R3,4DH ; KPI送R 3R2MOV R2,4CH ;ACALL DSUM ;求得P PP IMOV 4AH,R7 ; 存入4AH和4BH單元MOV 4BH,R6 ;MOV R5,39H ; E(K)送R 5R4MOV R4,3AH ; MOV R3,3DH ; E(K2)送R 3R2MOV R2,3EH ;ACALL DSUM ;計(jì)算E(K)E(K2)MOV R5,R7 ; 存入R 5R4MOV R4,R6 ;MOV R3,3BH ; E(K-1)送R 3R2MOV R2,3CH ;ACALL CPL1 ;對(duì)E(K-1) 求補(bǔ)ACALL DSUM ;計(jì)算E(K)+E(K-2)-E(K1)MOV R5,R7 ; 存入R 5R429MOV R4,R6 ;MOV R3,3BH ; E(K1)送R 3R2MOV R2,3CH ;ACALL CPL1 ;對(duì)E(K-1)求補(bǔ)ACALL DSUM ;求E(K)2E(K1)E (K 2)MOV R5,37H ; KD送R 5R4MOV R4,38H ;MOV R0,#46H ;積始址46H送R 0ACALL MULT1 ;求得P DMOV R5,49H ; 送入R 5R4MOV R4,48H ;MOV R3,4AH
收藏