基于單片機(jī)的溫度控制系統(tǒng)
基于單片機(jī)的溫度控制系統(tǒng),基于,單片機(jī),溫度,控制系統(tǒng)
株 洲 工 學(xué) 院200 屆畢業(yè)設(shè)計(jì)說(shuō)明書(shū)題 目基于單片機(jī)的溫度控制系統(tǒng)院(系 )、部: 學(xué)生姓名: 指導(dǎo)教師: 職稱 專 業(yè): 班 級(jí): 完成時(shí)間: 摘 要本文列舉了單片機(jī)在鍋爐中的一個(gè)實(shí)際應(yīng)用,并對(duì)設(shè)計(jì)的溫度控制系統(tǒng)的組成及主要電路的作用進(jìn)行了詳細(xì)的介紹。文章介紹了用單片機(jī)控制的、基于數(shù)字溫度傳感器 DS1820 的溫度測(cè)量和控制系統(tǒng):重點(diǎn)闡述了 DS1820 的工作原理、指令系統(tǒng)、單片機(jī)與 DS1820 之間的接口、數(shù)據(jù)傳遞、通信協(xié)議。該系統(tǒng)采用單片機(jī)與數(shù)字溫度傳感器 DS1820 相結(jié)合,能夠測(cè)量出-55℃-125℃之間的溫度,同時(shí)還具有通過(guò)控制加熱系統(tǒng)調(diào)節(jié)被測(cè)環(huán)境溫度和對(duì)超限溫度進(jìn)行報(bào)警等功能。關(guān)鍵詞 溫度傳感器 DS1820;單片機(jī);硬件設(shè)計(jì);軟件設(shè)計(jì)AbstractPractical application of one-chip computer in heat-treatment furnace is listed,and detailed introduction is given to the compositionsand the main functions of temperature control system.The paper introduces the temperature measurement and control system based on the DS1820. The author emphasizes on the working principle of the DS1820, instructionset, data transfer, the interface and the communication protocol between the DS1820 and single chip microcomputer. The system adopt single chi'p microcomputer combined with the DS1820,it can measure temperature between -55℃-125℃. The system not only can measure the temperature of the environment , but also can alarm when the temperature is beyond the rang of the safe temperature which is set.[Key words DS1820; Single Chip Microcomputer; tlardware Design; Software Design目 錄第 1 章 緒 論第 2 章 系統(tǒng)簡(jiǎn)介2.1 系統(tǒng)的組成 2.1.1 系統(tǒng)組成圖2.1.2 系統(tǒng)各部分工作原理2.1.3 系統(tǒng)各部分功能2.2 系統(tǒng)的工作過(guò)程第 3 章 系統(tǒng)的硬件電路設(shè)計(jì)3.1 微處理器的 89C51 的簡(jiǎn)介3.1.1 引腳性能3.2 DS1820 的簡(jiǎn)介3.2.1 DS1820 功能塊的詳細(xì)說(shuō)明3.2.2 DS1820 測(cè)溫原理3.2.3 DS1820 使用中注意事項(xiàng) 3.3 控制電路設(shè)計(jì)3.3.1 主回路設(shè)計(jì)3.3.2 鍵盤顯示電路3.3.3 接口電路3.3.4 溫度控制電路第 4 章 控制的算法4.1 溫度控制的 PID 算法第 5 章 溫度控制程序5.1 總 述5.2 主程序5.3 T0 中斷服務(wù)程序 CT05.4 子程序致 謝參考文獻(xiàn)附錄 1附錄 2第 1 章 緒 論單片微型計(jì)算機(jī)是隨著超大規(guī)模集成電路技術(shù)的發(fā)展而誕生的,由于它具有體積小、功能強(qiáng)、性價(jià)比高等特點(diǎn),所以廣泛應(yīng)用于電子儀表、家用電器、節(jié)能裝置、軍事裝置、機(jī)器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡(jiǎn)化了設(shè)計(jì)。本文主要介紹單片機(jī)在溫度控制中的應(yīng)用。在現(xiàn)代化的工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開(kāi)關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對(duì)各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制。采用 MCS-51 單片機(jī)來(lái)對(duì)溫度進(jìn)行控制,不僅具有控制方便、組態(tài)簡(jiǎn)單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對(duì)溫度的控制問(wèn)題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的問(wèn)題。MCS-51 單片機(jī),體積小,重量輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,即使是非電子計(jì)算機(jī)專業(yè)人員,通過(guò)學(xué)習(xí)一些專業(yè)基礎(chǔ)知識(shí)以后也能依靠自己的技術(shù)力量,來(lái)開(kāi)發(fā)所希望的單片機(jī)應(yīng)用系統(tǒng)。本文的溫度控制系統(tǒng),只是單片機(jī)廣泛應(yīng)用于各行各業(yè)中的一例傳統(tǒng)控制方法(包括經(jīng)典控制和現(xiàn)代控制)在處理具有非線形或不精確特性的被控對(duì)象時(shí)十分困難。而溫度系統(tǒng)為大滯后系統(tǒng),較大的純滯后可引起系統(tǒng)不穩(wěn)定。大量的應(yīng)用實(shí)踐表明,在在工程實(shí)際中,應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律為比例、積分、微分控制,簡(jiǎn)稱 PID 控制,又稱 PID 調(diào)節(jié)。PID 控制器問(wèn)世至今已有近 70 年歷史,它以其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制的主要技術(shù)之一。當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),控制理論的其它技術(shù)難以采用時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來(lái)確定,這時(shí)應(yīng)用 PID 控制技術(shù)最為方便。實(shí)際應(yīng)用中取得了很好的效果。測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段:①傳統(tǒng)的分立式溫度傳感器,②模擬集成溫度傳感器,③智能集成溫度傳感器。目前,國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展。本文將介紹智能集成溫度傳感器 DS18B20 的結(jié)構(gòu)特征及控制方法,并對(duì)以此傳感器、89C2051 單片機(jī)為控制器構(gòu)成的溫度測(cè)量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。該裝置適用于人民的日常生活和工、農(nóng)業(yè)生產(chǎn)用于溫度測(cè)量。第 2 章 系統(tǒng)簡(jiǎn)介該儀器采用美國(guó) Intel 公司八位單片機(jī)作為控制核心,配以 DS18B20 構(gòu)成的智能溫度測(cè)量裝置及其他集成電路,加上精心對(duì)軟件設(shè)計(jì),實(shí)現(xiàn)了儀表智能化。對(duì) 0~100℃范圍內(nèi)的各種電加熱爐的溫度進(jìn)行精密測(cè)量并能實(shí)現(xiàn)實(shí)時(shí)控制,同時(shí), LED 顯示器直接跟蹤顯示被控對(duì)象的溫度值,準(zhǔn)確度高,顯示清晰,穩(wěn)定可靠,使用方便。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過(guò)程作了詳細(xì)介紹。整個(gè)系統(tǒng)的核心是進(jìn)行溫度監(jiān)控與溫度傳感器,完成了課題所有要求。2.1 系統(tǒng)的組成由 DS18B20 構(gòu)成的智能溫度控制裝置由四部分組成:DS18B20 溫度傳感器、89C51 芯片、顯示模塊,溫度調(diào)節(jié)驅(qū)動(dòng)電路。產(chǎn)品的主要技術(shù)指標(biāo):① 測(cè)量范圍:0℃ ~ 100℃ ,② 測(cè)量精度: 0.5℃ ,③ 反應(yīng)時(shí)間≤500ms。2.1.1 系統(tǒng)組成圖顯示等TTL 電平到EIA 電平轉(zhuǎn)換電路單片機(jī)溫度傳感器降溫控制電路控制對(duì)象加熱控制電路圖 一2.1.2 系統(tǒng)各部分工作原理溫控儀原理框圖如圖 1 所示。整個(gè)儀表的工作原理是:由 89C51 單片機(jī)控制,按預(yù)先編制的程序定時(shí)對(duì)被測(cè)信號(hào)進(jìn)行采樣,并自動(dòng)進(jìn)行零漂校正,最后顯示所測(cè)溫度值,同時(shí)按設(shè)定值、所測(cè)溫度值、溫度變化速率,自動(dòng)進(jìn)行 PID 參數(shù)自整定和運(yùn)算,并輸出 0~10mA 控制電流,配以主回路實(shí)現(xiàn)溫度的控制及顯示。2.1.3 系統(tǒng)各部分功能由 DS18B20 構(gòu)成的智能溫度控制裝置由四部分組成:DS18B20 溫度傳感器、89C51、顯示模塊,溫度調(diào)節(jié)驅(qū)動(dòng)電路。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過(guò)程作了詳細(xì)介紹。整個(gè)系統(tǒng)的核心是進(jìn)行溫度監(jiān)控以及溫度傳感器。2.2 系統(tǒng)的工作過(guò)程基于 DS18B20 的溫度測(cè)量裝置電圖如圖 2 所示:溫度傳感器 DS18B20 將被測(cè)環(huán)境溫度轉(zhuǎn)化成帶符號(hào)的數(shù)字信號(hào)(以十六位補(bǔ)碼形式,占兩個(gè)字節(jié)) ,傳感器可置于離裝置 150 米以內(nèi)的任何地方,輸出腳 I/O 直接與單片機(jī)的 P1.1 相連,R1 為上拉電阻,傳感器采用外部電源供電。89C51 是整個(gè)裝置的控制核心,89C51 內(nèi)帶 1K 字節(jié)的 FlashROM,用戶程序存放在這里。顯示器模塊由四位一體的共陽(yáng)數(shù)碼管和 4 個(gè) 9012 組成。系統(tǒng)程序分傳感器控制程序和顯示器程序和溫度控制程序三部分,傳感器控制程序是按照 DS18B20 的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對(duì)傳感器的讀寫和對(duì)溫度的顯示。標(biāo)度轉(zhuǎn)換程序根據(jù)溫度檢測(cè)值求的實(shí)際爐溫,數(shù)字調(diào)節(jié)器程序根據(jù)恒溫給定值與實(shí)際值的偏差。按積分分離的 PID 控制算法得到輸出的控制量。數(shù)字觸發(fā)器程序根據(jù)控制量控制電阻爐子的導(dǎo)通時(shí)間,調(diào)節(jié)爐溫的變化使之與給定恒溫值一致。導(dǎo)通時(shí)間長(zhǎng),輸出功率大,溫度升的快;導(dǎo)通時(shí)間短,輸出功率小,溫度升的變慢。89C51 對(duì)溫度的控制是通過(guò)雙向可控硅實(shí)現(xiàn)的。雙向可控硅管和加熱絲串接在交流220V、50Hz 市電回路。在給定周期 T 內(nèi),89C51 只要改變可控硅管的接通時(shí)間即可改變加熱絲的功率,以達(dá)到調(diào)節(jié)溫度的目的。圖 二第 3 章 系統(tǒng)的硬件電路設(shè)計(jì)3.1 微處理器的 89C51 的簡(jiǎn)介89C51 單片機(jī)最早由 Intel 公司推出,其后,多家公司購(gòu)買了 89C51 的內(nèi)核,使得以 89C51 為內(nèi)核的 MCU 系列單片機(jī)在世界上產(chǎn)量最大,應(yīng)用也最廣泛,有人推測(cè) 89C51 可能最終形成事實(shí)上的標(biāo)準(zhǔn) MCU 芯片.3.1.1 引腳性能89C51 引腳說(shuō)明一、I/O 端口89C51 共有 4 I/O 端口,為 P0,P1,P2,P3;4 個(gè) I/O 口都是雙向的,且每個(gè)口都具有鎖存器。每個(gè)端口有 8 條線,共計(jì) 32 條 I/O 線。P0.0~P0.7;P1.0~P1.7;P2.0~P2.7;P3.0~P3.71. P0 有三個(gè)功能1) 。外部擴(kuò)充存儲(chǔ)器時(shí),作數(shù)據(jù)總線(D0~D7)2) 。外部擴(kuò)充存儲(chǔ)器時(shí),作地址總線(A0~A7)3) 。不擴(kuò)充時(shí),作一般 I/O 使用,內(nèi)部無(wú)上拉電阻,作為輸出/輸入使用時(shí)應(yīng)加上拉電阻2. P1 只作 I/O 口使用,有內(nèi)部上拉電阻。3. P2 有兩個(gè)功能1)。擴(kuò)充外部存儲(chǔ)器時(shí),作地址總線(A8~A15)使用。2) 。作一般 I/O 口使用,有內(nèi)部上拉電阻。3. P3 有兩個(gè)功能除作為 I/O 口(有內(nèi)部上拉電阻)外,還有一些特殊功能。如下表所示,由特殊寄存器來(lái)設(shè)置。 端口的引腳 特殊功能P10 T2 TIMER2 的外部輸入引腳P11 /T2EX (TIMER2 的捕捉(Capture)/重新加載(Reload)的觸發(fā)) P30 RXD(串行輸入口)P31 TXD(串行輸出口)P32 /INT0(外部中斷)P33 /INT1(外部中斷)P34 T0(TMER0 的外部輸入腳)P35 T1(TMER1 的外部輸入腳)P36 /WR(外部數(shù)據(jù)存儲(chǔ)器的寫入控制信號(hào))P37 /RD(外部數(shù)據(jù)存儲(chǔ)器的讀取控制信號(hào))端口 1,2,3 有內(nèi)部上拉電阻,作為輸入時(shí),其電位被拉高,若輸入為低電平可提供電流源;作為輸出時(shí)可驅(qū)動(dòng) 4 個(gè) LS TTL。而端 0 作輸入時(shí),處在抗的狀態(tài),其輸出緩沖器可驅(qū)動(dòng) 8個(gè) LS TTL(需外加上拉電阻) 。二、RESET 復(fù)位引腳為高電平時(shí)(約 2 個(gè)機(jī)器周期) ,可將 CPU 復(fù)位,CPU 復(fù)位后累加器及寄存器的初值如下表所示:寄 存 器 二 進(jìn) 制 值A(chǔ)CC 00000000B 00000000PSW 00000000SP 00000111P0/P1/P2/P3 11111111IP XXX00000IE 0XX00000TMOD 00000000TCON 00000000三、ALE/PROG 地址使能信號(hào)端有三種功能:1) 。89C51 外接 RAM/ROM 時(shí),ALE 接地址器(8282)的 STB 腳, (74373)的 EN 腳,當(dāng) CPU 對(duì)外部存儲(chǔ)器進(jìn)行存取時(shí),用以鎖住地址的低位地址。2) 。89C51 未外接 RAM/ROM 時(shí),ALE 腳會(huì)有 1/6 晶體振蕩頻率,可作為外部時(shí)鐘。3) 。在燒寫 EPROM 時(shí),ALE 作為燒寫時(shí)鐘的輸入端。四、PSEN 程序儲(chǔ)存使能端1) 。內(nèi)部程序存儲(chǔ)器讀取,不動(dòng)作。2) 。外部程序存儲(chǔ)器讀?。≧OM) ,在每個(gè)機(jī)器周期會(huì)動(dòng)作兩次。3) 。外部數(shù)據(jù)存儲(chǔ)器讀取(RAM) ,兩個(gè)/PSEN 脈沖被跳過(guò)不會(huì)輸出。4) 。外接 ROM 時(shí),與 ROM 的/OE 腳連接。五、EA/VPP1) 。接高電平時(shí):CPU 讀取內(nèi)部程序存儲(chǔ)器(ROM) 。擴(kuò)充外部 ROM,當(dāng)讀取內(nèi)部程序存儲(chǔ)器超過(guò) 0FFFH(89C51) 、1FFFH(8052)時(shí),自動(dòng)讀取外部 ROM。2) 。接低電平時(shí):CPU 讀取外部程序存儲(chǔ)器(ROM) 。3) 。8751 燒寫內(nèi)部 EPROM 時(shí),利用此腳 21V 的燒寫電壓。六、XTAL1 、XTAL2 接晶體振蕩器引腳機(jī)器周期=晶體×12;如 12MHz 晶體/12=1 微秒3.2 DS1820 的說(shuō)明DS1820 是美國(guó) DALLAS 半導(dǎo)體公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD )專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的器件里。3.2.1 詳細(xì)說(shuō)明1 綜述圖 1 的方框圖表示 DS1820 的主要部件 DS1820 有三個(gè)主要的數(shù)據(jù)部件 64 位激光 ROM; 溫度靈敏元件和非易失性溫度告警觸發(fā)器 TH 和 TL 。器件從單線的通信線取得其電源,在信號(hào)線為高電平的時(shí)間周期內(nèi)把能量貯存在內(nèi)部的電容器中;在單信號(hào)線為低電平的時(shí)間期內(nèi),斷開(kāi)此電源,直到信號(hào)線變?yōu)楦唠娖街匦陆由霞纳娙蓦娫礊橹?,作為另一種可供選擇的方法。DS1820 也可用外部 5V 電源供電與 DS1820 的通信經(jīng)過(guò)一個(gè)單線接口,在單線接口情況下,在 ROM 操作未定建立之前不能使用。存貯器和控制操作 主機(jī)必須首先提供五種 ROM 操作命令之一:1 Read ROM(讀 ROM) 2 Match ROM(符合 ROM),3)Search ROM(搜索 ROM),4)Skip ROM(跳過(guò) ROM),或 5 Alarm Search(告警搜索) 這些命令對(duì)每一器件的 64 位激光 ROM 部分進(jìn)行操作 如果在單線上有許多器件,那么可以挑選出一個(gè)特定的器件,并給總線上的主機(jī)指示存在多少器件及其類型。在成功地執(zhí)行了 ROM 操作序列之后,可使用存貯器和控制操作,然后主機(jī)可以提供五種存貯器和控制操作命令之一。一個(gè)控制操作命令指示 DS1820 完成溫度測(cè)量,該測(cè)量的結(jié)果將放入 DS1820 的高速暫存便箋式存貯器 Scratchpad memory,通過(guò)發(fā)出讀暫存存儲(chǔ)器內(nèi)容的存儲(chǔ)器操作命令可以讀出此結(jié)果,每一溫度告警觸發(fā)器 TH 和 TL 構(gòu)成一個(gè)字節(jié)的 EEPROM 如果不對(duì) DS1820 施加告警搜索命令,這些寄存器可用作通用用戶存儲(chǔ)器 使用存儲(chǔ)器操作命令可以寫 TH 和 TL 對(duì)這些寄存器的讀訪問(wèn)。通過(guò)便箋存儲(chǔ)器,所有數(shù)據(jù)均以最低有效位在前的方式被讀寫。2 寄生電源(parasite power)方框圖(圖 1)示出寄生電源電路。當(dāng) I/O 或 VDD 引腳為高電平時(shí),這個(gè)電路便 取 得電源。只要符合指定的定時(shí)和電壓要求,I/O 將提供足夠的功率。寄生電源的優(yōu)點(diǎn)是雙重的 1 利用此引腳遠(yuǎn)程溫度檢測(cè)無(wú)需本地電源,2 缺少正常電源條件下也可以讀 ROM。為了使 DS1820 能完成準(zhǔn)確的溫度變換,當(dāng)溫度變換發(fā)生時(shí),I/O 線上必須提供足夠的功率,因?yàn)?DS1820 的工作電流高達(dá) 1mA。 5K 的上拉電阻將使 I/O 線沒(méi)有足夠的驅(qū)動(dòng)能力。3 運(yùn)用測(cè)量溫度DS1820 通過(guò)使用在板 on-board 溫度測(cè)量專利技術(shù)來(lái)測(cè)量溫度。溫度測(cè)量電路的方框圖見(jiàn)圖二所示。DS1820 通過(guò)門開(kāi)通期間內(nèi)低溫度系數(shù)振蕩器經(jīng)歷的時(shí)鐘周期個(gè)數(shù)計(jì)數(shù)來(lái)測(cè)量溫度。而門開(kāi)通期由高溫度系數(shù)振蕩器決定,計(jì)數(shù)器予置對(duì)應(yīng)于-55 的基數(shù),如果在門開(kāi)通期結(jié)束前計(jì)數(shù)器達(dá)到零,那么溫度寄存器,它也被予置到-55 的數(shù)值。將增量指示溫度高于-55,同時(shí),計(jì)數(shù)器用斜率累加器電路所決定的值進(jìn)行予置,為了對(duì)遵循拋物線規(guī)律的振蕩器溫度特性進(jìn)行補(bǔ)償,這種電路是必需的。時(shí)鐘再次使計(jì)數(shù)器計(jì)值至它達(dá)到零。如果門開(kāi)通時(shí)間仍未結(jié)束,那么此過(guò)程再次重復(fù)。斜率累加器用于補(bǔ)償振蕩器溫度特性的非線性,以產(chǎn)生高分辯率的溫度測(cè)量,通過(guò)改變溫度。每升高一度,計(jì)數(shù)器必須經(jīng)歷的計(jì)數(shù)個(gè)數(shù)來(lái)實(shí)行補(bǔ)償,因此,為了獲得所需的分辯率,計(jì)數(shù)器的數(shù)以及在給定溫度處每一攝氏度的計(jì)數(shù)個(gè)數(shù),斜率累加器的值,二者都必須知道。此計(jì)算在 DS1820 內(nèi)部完成以提供 0.5 的分辯率,溫度讀數(shù)以 16 位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供。數(shù)據(jù)在單線接口上串行發(fā)送 DS1820 可以以 0.5 的增量值在 0.5 至+125 的范圍內(nèi)測(cè)量溫度。對(duì)于應(yīng)用華氏溫度的場(chǎng)合 必須使用查找表或變換系數(shù)。 注意 在 DS1820 中 溫度是以 1/2 LSB 最低有效位形式表示時(shí)產(chǎn)生以下 9 位格 MSB:最高有效位 ;最低有效位:LSB。最高有效符號(hào)位被復(fù)制到存儲(chǔ)器內(nèi)兩字節(jié)的溫度寄存器中較高 MSB的所有位,這種符號(hào)擴(kuò)展產(chǎn)生了如表 1 所示的 16 位溫度讀數(shù)。 以下的過(guò)程可以獲得較高的分辯率 首先 讀溫度 并從讀得的值截去 0.5 位(最低有效位),這個(gè)值便是 TEMP_READ 然后可以讀留在計(jì)數(shù)器內(nèi)的值,此值是門開(kāi)通期停止之后計(jì)數(shù)剩余。TEMPRATURE(溫度 = TEMP _ READ 0.25+ (COUNT _ PER _ C COUNT _ REMAIN)COUNT _ PER _ C COUNT_REMAIN 所需的最后一個(gè)數(shù)值是在該溫度處每一攝氏度的計(jì)數(shù)個(gè)數(shù) COUNT_PER_C 于是用戶可以使用上式計(jì)算實(shí)際溫度。4 運(yùn)用告警信號(hào)在 DS1820 完成溫度變換之后,溫度值與貯存在 TH 和 TL 內(nèi)的觸發(fā)值相比較,因?yàn)檫@些寄存器僅僅是 8 位,所以 0.5 位在比較時(shí)被忽略。TH 或 TL 的最高有效位直接對(duì)應(yīng)于 16 位溫度寄存器的符號(hào)位,如果溫度測(cè)量的結(jié)果高于 TH 或低于 TL,那么器件內(nèi)告警標(biāo)志將置位。每次溫度測(cè)量更新此標(biāo)志,只要告警標(biāo)志置位,DS1820 將對(duì)告警搜索命令作出響應(yīng) 。這允許并聯(lián)連接許多 DS1820 同時(shí)進(jìn)行溫度測(cè)量,如果某處溫度超過(guò)極限,那么可以識(shí)別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。5 64 位激光 ROM每一 DS1820 包括一個(gè)唯一的 64 位長(zhǎng)的 ROM 編碼。開(kāi)紿的 8 位是單線產(chǎn)品系列編碼。64 位 ROM 和 ROM 操作控制部分允許 DS1820 作為一個(gè)單線器件工作并遵循單線總線系統(tǒng)一節(jié)中所詳述的單線協(xié)議,直到 ROM 操作協(xié)議被滿足。DS1820 控制部分的功能是不可訪問(wèn)的, 單線總線主機(jī)必須首先操作五種 ROM 操作命令之一。6 CRC 產(chǎn)生DS1820 有一存貯在 64 位 ROM 的最高有效字節(jié)內(nèi)的 8 位 CRC 總線上的主機(jī)可以根據(jù) 64 位 ROM 的前 56 位計(jì)算機(jī) CRC 的值并把它與存貯在 DS1820 內(nèi)的值進(jìn)行比較,以決定 ROM 的數(shù)據(jù)是否已被主機(jī)正確地接收。CRC 的等效多項(xiàng)式函數(shù)為:CRC=X8+X5+X4+1DS1820 也利用與上述相同的多項(xiàng)式函數(shù)產(chǎn)生一個(gè) 8 位 CRC 值并把此值提供給總線的主機(jī)以確認(rèn)數(shù)據(jù)字節(jié)的傳送。在使用 CRC 來(lái)確認(rèn)數(shù)據(jù)傳送的每一種情況中,總線主機(jī)必須使用上面給出的多項(xiàng)式函數(shù)計(jì)算 CRC 的值,并把計(jì)算所得的值或者與存貯在 DS1820 的 64 位 ROM 部分中的 8 位 CRC 值 ROM 讀數(shù),或者與 DS1820 中計(jì)算得到的 8 位 CRC 值 在讀暫存存貯器中時(shí)它作為第九個(gè)字節(jié)被讀出。進(jìn)行比較 CRC 值的比較和是否繼續(xù)操作都由總線主機(jī)來(lái)決定,當(dāng)存貯在 DS1820 內(nèi)或由 DS1820 計(jì)算得到的 CRC 值與總線主機(jī)產(chǎn)生的值不相符合時(shí) 在 DS1820 內(nèi)設(shè)有電路來(lái)阻止命令序列的繼續(xù)執(zhí)行。移位寄存器的所有位被初始化為零,然后從產(chǎn)品系列編碼的最低有效位開(kāi)始,每次移入一位。當(dāng)產(chǎn)品系列編碼的 8 位移入以后,接著移入序列號(hào),在序列號(hào)的第 48 位進(jìn)入之后 移位寄存器便包含了 CRC 值,移入 CRC 的 8 位應(yīng)該使移位寄存器返回至全零。7 存貯器DS1820 的存貯器如圖所示那樣被組織。存貯器由一個(gè)高速暫存便箋式 RAM 和一個(gè)非易失性電可擦除 E2 RAM 組成。后者存貯高溫度和低溫度和觸發(fā)器 TH 和 TL。暫存存貯器有助于在單線通信時(shí)確保數(shù)據(jù)的完整性。數(shù)據(jù)首先寫入暫存存貯器,在那里它可以被讀回,當(dāng)數(shù)據(jù)被校驗(yàn)之后,復(fù)制暫存存貯器的命令把數(shù)據(jù)傳送到非易失性 E2 RAM,這一過(guò)程確保了更改存貯器時(shí)數(shù)據(jù)的完整性。SCRATCHPAD BYTE E2RAMTEMPERATURE LSB 0TEMPERATURE MSB 1TH/USERBYTE1 2 TH/USERBYTE1TL/USERBVTE2 3 TL/USERBVTE2RESERVED 4RESERVED 5COUNT REMAIN 6COUNT PER 7CRC 8DS1820 存貯器映象圖暫存存貯器是按 8 位字節(jié)存儲(chǔ)器來(lái)組織的。頭兩個(gè)字節(jié)包含測(cè)得溫度信息,第三和第四個(gè)字節(jié)是 TH 和 TL 的易失性拷貝,在每一次上電復(fù)位時(shí)被刷新,接著的兩個(gè)字節(jié)沒(méi)有使用,但是在讀回時(shí),它們呈現(xiàn)為邏輯全 1。第七和第八個(gè)字節(jié)是計(jì)數(shù)寄存器,它們可用于獲得較高的溫度分辨率。還有第九個(gè)字節(jié),它可用 Read Scratchpad 讀暫存存貯器命令。該字節(jié)包含一個(gè)循環(huán)冗余校驗(yàn) CRC 字節(jié),它是前面所有 8 個(gè)字節(jié)的 CRC 值。此 CRC 值以 CRC 產(chǎn)生一節(jié)中所述的方式產(chǎn)生。8 單線總線系統(tǒng)8.1 硬件接法單線總線只有一根線,即線上的第一個(gè)器件能在適當(dāng)?shù)臅r(shí)間驅(qū)動(dòng)該總線。為了做到這一點(diǎn),第一個(gè)連接到單線總線上的器件必須具有漏極開(kāi)路或三態(tài)輸出。單線總線要求近似等于 5k 的上拉電阻,單線總線的空閑狀態(tài)是高電平。不管任何原因,如果執(zhí)行需要被掛起,那么,若要重新恢復(fù)執(zhí)行,總線必須保持在空閑狀態(tài)。如果不滿足這一點(diǎn)且總線保持在低電平時(shí)間大于 480us,那么總線上所有器件均被復(fù)位。存在脈沖 presence pulse 使總線主機(jī)知道 DS1820 在總線上并已準(zhǔn)備好工作。 經(jīng)過(guò)單線接口訪問(wèn) DS1820 的協(xié)議 protocol 如下初始化ROM 操作命令存貯器操作命令處理/數(shù)據(jù)8.2.1 初始化單線總線上的所有處理均從初始化序列開(kāi)始,初始化序列包括總線主機(jī)發(fā)出一復(fù)位脈沖 ,接由從屬器件送出存在脈沖。2.8.2.2 ROM 操作命令一旦總線主機(jī)檢測(cè)到從屬器件的存在,它便可以發(fā)出器件 ROM 操作命令之一,所有 ROM 作命令均為 8 位長(zhǎng),這些命令列表如下:Read ROM(讀 ROM) [33h]此命令允許總線主機(jī)讀 DS1820 的 8 位產(chǎn)品系列編碼 唯一的 48 位序列號(hào) 以及 8 位的 CRC。此命令只能在總線上僅有一個(gè) DS1820 的情況下可以使用,如果總線上存在多于一個(gè)的從屬器件,那么當(dāng)所有從片企圖同時(shí)發(fā)送時(shí)將發(fā)生數(shù)據(jù)沖突的現(xiàn)象,漏極開(kāi)路會(huì)產(chǎn)生線與的結(jié)果。Match ROM( 符合 ROM) [55h]符合 ROM 命令后繼以 64 位的 ROM 數(shù)據(jù)序列,允許總線主機(jī)對(duì)多點(diǎn)總線上特定的 DS1820 尋址。只有與 64 位 ROM 序列嚴(yán)格相符的 DS1820 才能對(duì)后繼的存貯器操作命令作出響應(yīng)。所有與 64 位 ROM 序列不符的從片將等待復(fù)位脈沖,此命令在總線上有單個(gè)或多個(gè)器件的情況下均可使用。Skip ROM( 跳過(guò) ROM ) [CCh]在單點(diǎn)總線系統(tǒng)中,此命令通過(guò)允許總線主機(jī)不提供 64 位 ROM 編碼而訪問(wèn)存儲(chǔ)器操作來(lái)節(jié)省時(shí)間。如果在總線上存在多于一個(gè)的從屬器件而且在 Skip ROM 命令之后發(fā)出讀命令 那么由于多個(gè)從片同時(shí)發(fā)送數(shù)據(jù),會(huì)在總線上發(fā)生數(shù)據(jù)沖突,漏極開(kāi)路下拉會(huì)產(chǎn)生線與的效果。Search ROM( 搜索 ROM) [F0h]當(dāng)系統(tǒng)開(kāi)始工作時(shí),總線主機(jī)可能不知道單線總線上的器件個(gè)數(shù)或者不知道其 64 位 ROM 編碼。搜索 ROM 命令允許總線主機(jī)使用一種消去 elimination 處理來(lái)識(shí)別總線上所有從片的 64 位 ROM 編碼。Alarm Search(告警搜索) [ECh] 此命令的流程與搜索 ROM 命令相同,但是僅在最近一次溫度測(cè)量出現(xiàn)告警的情況下 DS1820 才對(duì)此命令作出響應(yīng)。告警的條件定義為溫度高于 TH 或低于 TL。只要 DS1820 一上電,告警條件就保持在設(shè)置狀態(tài),直到另一次溫度測(cè)量顯示出非告警值,或者改變 TH 或 TL 的設(shè)置使得測(cè)量值再一次位于允許的范圍之內(nèi),貯存在 EEPROM 內(nèi)的觸發(fā)器值用于告警。3.2.2 DS1820 測(cè)溫原理如圖 2 所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器 1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器 2 的脈沖輸入。計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在-55 ℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器 1 對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1 的預(yù)置值減到 0 時(shí),溫度寄存器的值將加 1 ,計(jì)數(shù)器 1 的預(yù)置將重新被裝入,計(jì)數(shù)器 1 重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2 計(jì)數(shù)到 0 時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖 2 中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1 的預(yù)置值。 在正常測(cè)溫情況下,DS1820 的測(cè)溫分辯率為 0.5℃ 以 9 位數(shù)據(jù)格式表示,其中最低有效位(LSB)由比較器進(jìn)行 0.25℃比較,當(dāng)計(jì)數(shù)器 1 中的余值轉(zhuǎn)化成溫度后低于 0.25℃時(shí),清除溫度寄存器的最低位(LSB),當(dāng)計(jì)數(shù)器 1 中的余值轉(zhuǎn)化成溫度后高于 0.25℃,置位溫度寄存器的最低位( LSB),如-25.5℃對(duì)應(yīng)的 9 位數(shù)據(jù)格式如下: 3.2.3 DS1820 使用中注意事項(xiàng) DS1820 雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題: (1)較小的硬件開(kāi)銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于 DS1820 與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì) DS1820 進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用 PL/M、C 等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS1820 操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。 (2)在 DS1820 的有關(guān)資料中均未提及單總線上所掛 DS1820 數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè) DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛 DS1820 超過(guò) 8 個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。 (3)連接 DS1820 的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò) 50m 時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá) 150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在?DS1820 進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問(wèn)題。 (4)在 DS1820 測(cè)溫程序設(shè)計(jì)中,向 DS1820 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820 的返回信號(hào),一旦某個(gè) DS1820 接觸不好或斷線,當(dāng)程序讀該 DS1820 時(shí),將沒(méi)有返回信號(hào),這一點(diǎn)在進(jìn)程序進(jìn)入死循環(huán)。對(duì) DS1820 硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。3.3 電路的設(shè)計(jì)3.3.1 主回路的設(shè)計(jì)3.3.2 鍵盤顯示電路由 74LS247 七段譯碼器、74LS139 雙二四線譯碼器、74LS05 六倒向器各一片和四位 LED顯示器組成。89C51 單片機(jī)把要顯示的溫度信號(hào)通過(guò) P3.0~P3.3 口送到 74LS247,經(jīng)譯碼后送七段數(shù)碼顯示器,然后再由 89C51 的 P1.4~P1.5 口輸出位選通信號(hào),選通要顯示的位。四位顯示器從個(gè)位到千位依次輪番點(diǎn)亮,每位顯示時(shí)間 1ms,顯示實(shí)際測(cè)量的溫度以及斷偶報(bào)警。3.3.3 接口電路8255 用作鍵盤/LED 顯示器接口電路8255 引腳功能RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成輸入方式。CS:片選信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),表示芯片被選中,允許 8255 與 CPU 進(jìn)行通訊。RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許 8255 通過(guò)數(shù)據(jù)總線向 CPU 發(fā)送數(shù)據(jù)或狀態(tài)信息,即 CPU 從 8255 讀取信息或數(shù)據(jù)。WR:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許 CPU 將數(shù)據(jù)或控制字寫入 8255。D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255 與 CPU 數(shù)據(jù)傳送的通道,當(dāng) CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。PA0~PA7:端口 A 輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/ 緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。PB0~PB7:端口 B 輸入輸出線,一個(gè)8位的 I/O 鎖存器, 一個(gè)8位的輸入輸出緩沖器。PC0~PC7:端口 C 輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器 /緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口 C 可以通過(guò)工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口 A 和端口 B 配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。PA3-- 1 40 --PA4 PA2-- 2 39 --PA5 PA1-- 3 38 --PA6 PA0-- 4 37 --PA7 RD-- 5 36 --WR CS-- 6 35 --RESET GND-- 7 34 --D0 A1-- 8 33 --D1 A0-- 9 32 --D2 PC7-- 10 31 --D3 PC6-- 11 30 --D4 PC5-- 12 29 --D5 PC4-- 13 28 --D6 PC0-- 14 27 --D7 PC1-- 15 26 --VCC PC2-- 16 25 --PB7 PC-- 17 24 --PB6 PB0-- 18 23 --PB5 PB1-- 19 22 --PB4 PB2-- 20 21 --PB3 A1、A0: 端口地址總線, 8255 中有端口 A、B 、C 和一個(gè)內(nèi)部控制字寄存器,共4個(gè)端口,由 A0、A1 輸入地址信號(hào)來(lái)尋址。2764 是 8K EPROM 型器件。89C51 的 PSEN 和 2764 的 OE 相連,P2.5 和 CE 相連,所以 2764的地址空間為:0000H---1FFFH,ADC0809 的 0 通道(IN0 其他輸入端可作備用)和變送器的輸出端相連,所以從通道 0(IN0)上輸入的 0V--+5V 范圍的模擬電壓經(jīng) A/D 轉(zhuǎn)換后可由89C51 通過(guò)程序從 P0 口輸入到它的內(nèi)部 RAM 單元,在 P2.2=0 和 WR=0 時(shí),89C51 可使 ALE和 START 變?yōu)楦唠娖蕉鴨?dòng) ADC0809 工作;在 P2.2=0 和 RD=0 時(shí),89C51 可以從 ADC0809 接收 A/D 轉(zhuǎn)換后的數(shù)字量。也就是說(shuō) ADC0809 可以視為 89C51 的一個(gè)外部 RAM 單元,地址為03F8H(地址重復(fù)范圍很大) ,因此,89C51 執(zhí)行如下程序可以啟動(dòng) ADC0809 工作。MOV DPTR,#03F8HMOVX @DPTR,A若 89C51 執(zhí)行下列程序:MOV DPTR,#03F8HMOVX A,@DPTR則可以從 ADC0809 輸入 A/D 轉(zhuǎn)換后的數(shù)字量。3.3.4 溫度控制電路可控硅在自動(dòng)控制控制,機(jī)電領(lǐng)域,工業(yè)電氣及家電等方面都有廣泛的應(yīng)用。可控硅是一種有源開(kāi)關(guān)元件,平時(shí)它保持在非道通狀態(tài),直到由一個(gè)較少的控制信號(hào)對(duì)其觸發(fā)或稱“點(diǎn)火”使其道通,一旦被點(diǎn)火就算撤離觸發(fā)信號(hào)它也保持道通狀態(tài),要使其截止可在其陽(yáng)極與陰極間加上反向電壓或?qū)⒘鬟^(guò)可控硅二極管的電流減少到某一個(gè)值以下??煽毓瓒O管可用兩個(gè)不同極性(P-N-P 和 N-P-N)晶體管來(lái)模擬,如圖 G1 所示。當(dāng)可控硅的柵極懸空時(shí),BG1 和 BG2 都處于截止?fàn)顟B(tài),此時(shí)電路基本上沒(méi)有電流流過(guò)負(fù)載電阻RL,當(dāng)柵極輸入一個(gè)正脈沖電壓時(shí) BG2 道通,使 BG1 的基極電位下降,BG1 因此開(kāi)始道通,BG1 的道通使得 BG2 的基極電位進(jìn)一步升高,BG1 的基極電位進(jìn)一步下降,經(jīng)過(guò)這一個(gè)正反饋過(guò)程使 BG1 和 BG2 進(jìn)入飽和道通狀態(tài)。電路很快從截止?fàn)顟B(tài)進(jìn)入道通狀態(tài),這時(shí)柵極就算沒(méi)有觸發(fā)脈沖電路由于正反饋的作用將保持道通狀態(tài)不變。如果此時(shí)在陽(yáng)極和陰極加上反向電壓,由于 BG1 和 BG2 均處于反向偏置狀態(tài)所以電路很快截止,另外如果加大負(fù)載電阻 RL 的阻值使電路電流減少 BG1 和 BG2 的基電流也將減少,當(dāng)減少到某一個(gè)值時(shí)由于電路的正反饋?zhàn)饔?,電路將很快從道通狀態(tài)翻轉(zhuǎn)為截止?fàn)顟B(tài),我們稱這個(gè)電流為維持電流。在實(shí)際應(yīng)用中,我們可通過(guò)一個(gè)開(kāi)關(guān)來(lái)短路可控硅的陽(yáng)極和陰極從而達(dá)到可控硅的關(guān)斷。第 4 章 控制的算法4.1 溫度控制的 PID 算法PID 參數(shù)如何設(shè)定調(diào)節(jié)PID 就是比例微積分調(diào)節(jié),具體你可以參照自動(dòng)控制課程里有詳細(xì)介紹!正作用與反作用在溫控里就是當(dāng)正作用時(shí)是加熱,反作用是制冷控制。PID 控制簡(jiǎn)介目前工業(yè)自動(dòng)化水平已成為衡量各行各業(yè)現(xiàn)代化水平的一個(gè)重要標(biāo)志。同時(shí),控制理論的發(fā)展也經(jīng)歷了古典控制理論、現(xiàn)代控制理論和智能控制理論三個(gè)階段。智能控制的典型實(shí)例是模糊全自動(dòng)洗衣機(jī)等。自動(dòng)控制系統(tǒng)可分為開(kāi)環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)。一個(gè)控控制系統(tǒng)包括控制器﹑傳感器﹑變送器﹑執(zhí)行機(jī)構(gòu)﹑輸入輸出接口??刂破鞯妮敵鼋?jīng)過(guò)輸出接口﹑執(zhí)行機(jī)構(gòu)﹐加到被控系統(tǒng)上﹔控制系統(tǒng)的被控量﹐經(jīng)過(guò)傳感器﹐變送器﹐通過(guò)輸入接口送到控制器。不同的控制系統(tǒng)﹐其傳感器﹑變送器﹑執(zhí)行機(jī)構(gòu)是不一樣的。比如壓力控制系統(tǒng)要采用壓力傳感器。電加熱控制系統(tǒng)的傳感器是溫度傳感器。目前,PID 控制及其控制器或智能 PID 控制器(儀表)已經(jīng)很多,產(chǎn)品已在工程實(shí)際中得到了廣泛的應(yīng)用,有各種各樣的PID 控制器產(chǎn)品,各大公司均開(kāi)發(fā)了具有 PID 參數(shù)自整定功能的智能調(diào)節(jié)器(intelligent regulator),其中 PID 控制器參數(shù)的自動(dòng)調(diào)整是通過(guò)智能化調(diào)整或自校正、自適應(yīng)算法來(lái)實(shí)現(xiàn)。有利用 PID 控制實(shí)現(xiàn)的壓力、溫度、流量、液位控制器,能實(shí)現(xiàn) PID 控制功能的可編程控制器(PLC),還有可實(shí)現(xiàn) PID 控制的 PC 系統(tǒng)等等。 可編程控制器(PLC)是利用其閉環(huán)控制模塊來(lái)實(shí)現(xiàn) PID 控制,而可編程控制器(PLC)可以直接與 ControlNet 相連,如 Rockwell 的PLC-5 等。還有可以實(shí)現(xiàn) PID 控制功能的控制器,如 Rockwell 的 Logix 產(chǎn)品系列,它可以直接與 ControlNet 相連,利用網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)其遠(yuǎn)程控制功能。1、開(kāi)環(huán)控制系統(tǒng)開(kāi)環(huán)控制系統(tǒng)(open-loop control system)是指被控對(duì)象的輸出(被控制量)對(duì)控制器(controller)的輸出沒(méi)有影響。在這種控制系統(tǒng)中,不依賴將被控量反送回來(lái)以形成任何閉環(huán)回路。2、閉環(huán)控制系統(tǒng)閉環(huán)控制系統(tǒng)(closed-loop control system)的特點(diǎn)是系統(tǒng)被控對(duì)象的輸出(被控制量)會(huì)反送回來(lái)影響控制器的輸出,形成一個(gè)或多個(gè)閉環(huán)。閉環(huán)控制系統(tǒng)有正反饋和負(fù)反饋,若反饋信號(hào)與系統(tǒng)給定值信號(hào)相反,則稱為負(fù)反饋( Negative Feedback),若極性相同,則稱為正反饋,一般閉環(huán)控制系統(tǒng)均采用負(fù)反饋,又稱負(fù)反饋控制系統(tǒng)。閉環(huán)控制系統(tǒng)的例子很多。比如人就是一個(gè)具有負(fù)反饋的閉環(huán)控制系統(tǒng),眼睛便是傳感器,充當(dāng)反饋,人體系統(tǒng)能通過(guò)不斷的修正最后作出各種正確的動(dòng)作。如果沒(méi)有眼睛,就沒(méi)有了反饋回路,也就成了一個(gè)開(kāi)環(huán)控制系統(tǒng)。另例,當(dāng)一臺(tái)真正的全自動(dòng)洗衣機(jī)具有能連續(xù)檢查衣物是否洗凈,并在洗凈之后能自動(dòng)切斷電源,它就是一個(gè)閉環(huán)控制系統(tǒng)。3、階躍響應(yīng) 階躍響應(yīng)是指將一個(gè)階躍輸入(step function)加到系統(tǒng)上時(shí),系統(tǒng)的輸出。穩(wěn)態(tài)誤差是指系統(tǒng)的響應(yīng)進(jìn)入穩(wěn)態(tài)后﹐系統(tǒng)的期望輸出與實(shí)際輸出之差??刂葡到y(tǒng)的性能可以用穩(wěn)、準(zhǔn)、快三個(gè)字來(lái)描述。穩(wěn)是指系統(tǒng)的穩(wěn)定性(stability),一個(gè)系統(tǒng)要能正常工作,首先必須是穩(wěn)定的,從階躍響應(yīng)上看應(yīng)該是收斂的﹔準(zhǔn)是指控制系統(tǒng)的準(zhǔn)確性、控制精度,通常用穩(wěn)態(tài)誤差來(lái)(Steady-state error) 描述,它表示系統(tǒng)輸出穩(wěn)態(tài)值與期望值之差﹔快是指控制系統(tǒng)響應(yīng)的快速性,通常用上升時(shí)間來(lái)定量描述。 4、PID 控制的原理和特點(diǎn) 在工程實(shí)際中,應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律為比例、積分、微分控制,簡(jiǎn)稱 PID 控制,又稱 PID 調(diào)節(jié)。PID 控制器問(wèn)世至今已有近 70 年歷史,它以其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制的主要技術(shù)之一。當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時(shí),控制理論的其它技術(shù)難以采用時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來(lái)確定,這時(shí)應(yīng)用 PID 控制技術(shù)最為方便。即當(dāng)我們不完全了解一個(gè)系統(tǒng)和被控對(duì)象﹐或不能通過(guò)有效的測(cè)量手段來(lái)獲得系統(tǒng)參數(shù)時(shí),最適合用 PID 控制技術(shù)。PID 控制,實(shí)際中也有 PI 和 PD 控制。PID 控制器就是根據(jù)系統(tǒng)的誤差,利用比例、積分、微分計(jì)算出控制量進(jìn)行控制的。 比例(P)控制 比例控制是一種最簡(jiǎn)單的控制方式。其控制器的輸出與輸入誤差信號(hào)成比例關(guān)系。當(dāng)僅有比例控制時(shí)系統(tǒng)輸出存在穩(wěn)態(tài)誤差(Steady-state error) 。 積分(I)控制 在積分控制中,控制器的輸出與輸入誤差信號(hào)的積分成正比關(guān)系。對(duì)一個(gè)自動(dòng)控制系統(tǒng),如果在進(jìn)入穩(wěn)態(tài)后存在穩(wěn)態(tài)誤差,則稱這個(gè)控制系統(tǒng)是有穩(wěn)態(tài)誤差的或簡(jiǎn)稱有差系統(tǒng)(System with Steady-state Error) 。為了消除穩(wěn)態(tài)誤差,在控制器中必須引入“積分項(xiàng)” 。積分項(xiàng)對(duì)誤差取決于時(shí)間的積分,隨著時(shí)間的增加,積分項(xiàng)會(huì)增大。這樣,即便誤差很小,積分項(xiàng)也會(huì)隨著時(shí)間的增加而加大,它推動(dòng)控制器的輸出增大使穩(wěn)態(tài)誤差進(jìn)一步減小,直到等于零。因此,比例+積分(PI)控制器,可以使系統(tǒng)在進(jìn)入穩(wěn)態(tài)后無(wú)穩(wěn)態(tài)誤差。 微分(D)控制 在微分控制中,控制器的輸出與輸入誤差信號(hào)的微分(即誤差的變化率)成正比關(guān)系。 自動(dòng)控制系統(tǒng)在克服誤差的調(diào)節(jié)過(guò)程中可能會(huì) 出現(xiàn)振蕩甚至失穩(wěn)。其原因是由于存在有較大慣性組件(環(huán)節(jié))或有滯后(delay)組件,具有抑制誤差的作用,其變化總是落后于誤差的變化。解決的辦法是使抑制誤差的作用的變化“超前”,即在誤差接近零時(shí),抑制誤差的作用就應(yīng)該是零。這就是說(shuō),在控制器中僅引入“比例”項(xiàng)往往是不夠的,比例項(xiàng)的作用僅是放大誤差的幅值,而目前需要增加的是“微分項(xiàng)”,它能預(yù)測(cè)誤差變化的趨勢(shì),這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控制作用等于零,甚至為負(fù)值,從而避免了被控量的嚴(yán)重超調(diào)。所以對(duì)有較大慣性或滯后的被控對(duì)象,比例+微分(PD)控制器能改善系統(tǒng)在調(diào)節(jié)過(guò)程中的動(dòng)態(tài)特性。 5、PID 控制器的參數(shù)整定 PID 控制器的參數(shù)整定是控制系統(tǒng)設(shè)計(jì)的核心內(nèi)容。它是根據(jù)被控過(guò)程的特性確定 PID 控制器的比例系數(shù)、積分時(shí)間和微分時(shí)間的大小。PID 控制器參數(shù)整定的方法很多,概括起來(lái)有兩大類:一是理論計(jì)算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過(guò)理論計(jì)算確定控制器參數(shù)。這種方法所得到的計(jì)算數(shù)據(jù)未必可以直接用,還必須通過(guò)工程實(shí)際進(jìn)行調(diào)整和修改。二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡(jiǎn)單、易于掌握,在工程實(shí)際中被廣泛采用。PID 控制器參數(shù)的工程整定方法,主要有臨界比例法、反應(yīng)曲線法和衰減法。三種方法各有其特點(diǎn),其共同點(diǎn)都是通過(guò)試驗(yàn),然后按照工程經(jīng)驗(yàn)公式對(duì)控制器參數(shù)進(jìn)行整定。但無(wú)論采用哪一種方法所得到的控制器參數(shù),都需要在實(shí)際運(yùn)行中進(jìn)行最后調(diào)整與完善?,F(xiàn)在一般采用的是臨界比例法。利用該方法進(jìn)行 PID 控制器參數(shù)的整定步驟如下:(1)首先預(yù)選擇一個(gè)足夠短的采樣周期讓系統(tǒng)工作﹔(2)僅加入比例控制環(huán)節(jié),直到系統(tǒng)對(duì)輸入的階躍響應(yīng)出現(xiàn)臨界振蕩,記下這時(shí)的比例放大系數(shù)和臨界振蕩周期﹔(3)在一定的控制度下通過(guò)公式計(jì)算得到 PID 控制器的參數(shù)。 PID 參數(shù)的設(shè)定:是靠經(jīng)驗(yàn)及工藝的熟悉,參考測(cè)量值跟蹤與設(shè)定值曲線,從而調(diào)整 P\I\D 的大小。PID 控制器參數(shù)的工程整定,各種調(diào)節(jié)系統(tǒng)中 P.I.D 參數(shù)經(jīng)驗(yàn)數(shù)據(jù)以下可參照:溫度 T: P=20~60%,T=180~600s,D=3-180s第 5 章 溫度控制程序5.1 總 述通常,電阻爐爐溫控制都采用偏差控制法。偏差控制的原理是先求出實(shí)測(cè)爐溫對(duì)所需爐溫的偏差值,然后對(duì)偏差值處理獲得控制信號(hào)去調(diào)節(jié)電阻爐的加熱功率,以實(shí)現(xiàn)對(duì)爐溫的控制。在工業(yè)上,偏差控制又稱 PID 控制,這是工業(yè)控制過(guò)程中應(yīng)用最廣泛的一種控制形式,一般都能收到令人滿意的效果溫度控制程序的設(shè)計(jì)應(yīng)考慮如下:1)鍵盤掃描、鍵碼識(shí)別和溫度顯示;2)爐溫采樣、數(shù)字濾波;3)數(shù)據(jù)處理;4)越限報(bào)警和處理;5)PID 計(jì)算、溫度標(biāo)度轉(zhuǎn)換軟件結(jié)構(gòu)圖如圖所示檢測(cè)與變送A/D 轉(zhuǎn)換工程量變換溫度非線性轉(zhuǎn)換發(fā)送數(shù)據(jù)到串口比較判斷算法溫度預(yù)設(shè)值 溫度調(diào)節(jié) 電路執(zhí)行器從串口接受數(shù)據(jù)命令識(shí)別控制程序5.2 主程序主程序包括 89C51 本身的初始化、并行接口 8255 初始化等等。大體說(shuō)來(lái),本程序包括設(shè)置有關(guān)標(biāo)志、暫存單元和顯示緩沖區(qū)清零、T0 初始化、CPU 開(kāi)中斷、溫度顯示和鍵盤掃描等程序5.3 T0 中斷服務(wù)程序 CT0T0 中斷服務(wù)程序是溫度控制系統(tǒng)的主體程序,用于啟動(dòng)數(shù)/模轉(zhuǎn)換器、讀入采樣數(shù)據(jù)、數(shù)字濾波、越限溫度報(bào)警和越限處理、PID 計(jì)算和輸出可控硅的觸發(fā)脈沖等。P1.3 引腳上輸出的該同步觸發(fā)脈沖寬度由 T1 計(jì)數(shù)器的溢出中斷控制,89C51 利用等待 T1 溢出中斷的空閑時(shí)間(形成 P1.3 輸出脈沖頂寬)完成把本次采樣值轉(zhuǎn)換成顯示值而放入顯示單元緩沖區(qū)和調(diào)用溫度顯示程序。89C51 從 T1 中斷服務(wù)程序返回后即可恢復(fù)現(xiàn)場(chǎng)和返回主程序。5.4 子程序主要服務(wù)子程序包括溫度檢測(cè)采樣及數(shù)字濾波子程序、帶符號(hào)雙字節(jié)乘法子程序和標(biāo)度轉(zhuǎn)換子程序目的是把實(shí)際采樣取得的二進(jìn)制值轉(zhuǎn)換成 BCD 碼形式的溫度值,然后存放到顯示緩沖區(qū)中,供顯示子程序調(diào)用致 謝時(shí)間飛逝,歲月如梭,轉(zhuǎn)眼大學(xué)生活就要以畢業(yè)論文完成而結(jié)束。畢業(yè)論文能夠順利的按時(shí)完成,自始至終都貫穿著我的導(dǎo)師——羅文老師的關(guān)懷和指導(dǎo),羅文老師在我們的心里是一位知識(shí)豐富,平易近人的老師。他豐富的知識(shí)與耐心的教導(dǎo)使我受益非淺。借此機(jī)會(huì)對(duì)羅老師表示衷心的感謝和由衷的敬意。 同時(shí),還要感謝這四年來(lái)所有傳道授業(yè)過(guò)我的老師,以及關(guān)心和幫助過(guò)我的同學(xué)們。參考文獻(xiàn)[1]《單片機(jī)原理及應(yīng)用》李鴻主編,湖南大學(xué)出版社 2004[2]《測(cè)控系統(tǒng)原理與設(shè)計(jì)》孫占友等編著,北京航空航天大學(xué)出版社 2002.9[3]《檢測(cè)與轉(zhuǎn)換技術(shù)》常健生等主編,北京機(jī)械工業(yè)出版社 2002.2[4]《電子測(cè)量?jī)x器原理與應(yīng)用Ⅱ—智能儀器》羅耀華主編,哈爾濱工程大學(xué)出版社 2002.5[5]《單片機(jī)外圍電路設(shè)計(jì)》沙占友主編,電子工業(yè)出版社 2003.1[6] 陳明熒.8051 單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材 北京:清華大學(xué)出版社 2004[7] 胡漢才.單片機(jī)原理及其接口技術(shù) 北京:清華大學(xué)出版社 1995[8] 徐淑華 程退安 姚萬(wàn)生 .單片機(jī)微型機(jī)原理及應(yīng)用 哈爾濱工業(yè)大學(xué)出版社 1994[9]戴明楨、周建江編,微型計(jì)算機(jī)接口技術(shù)[M],北京:航空工業(yè)出版社,1993 [10]孫育才編,單片微型計(jì)算機(jī)及其應(yīng)用[M],江蘇:東南大學(xué)出版社,1987[11]李均宜編,爐溫儀表與熱控制[M],北京:機(jī)械工業(yè)出版社,1981[12]徐愛(ài)鈞編著. 智能化測(cè)量控制儀表原理與設(shè)計(jì)[M].北京航空航天大學(xué)出版社.[13]《MCS-51系列單片機(jī)實(shí)用子程序集錦》陳偉人編著, 清華大學(xué)出版社1993.3。[14]《單片微型計(jì)算機(jī)及其應(yīng)用》徐愛(ài)卿、孫涵芳、盛煥鳴、張繼志編著, 北京航空學(xué)院出版社1986年。[15]《MCS-51單片機(jī)綜合系統(tǒng)及其設(shè)計(jì)開(kāi)發(fā)》張凱、馬忠梅、劉繼華、張立平編著, 科學(xué)出版社1996年。[16]《MCS-51系列單片機(jī)實(shí)用子程序集錦》陳偉人編著, 清華大學(xué)出版社1993.3。[17]《MCS-51單片機(jī)綜合系統(tǒng)及其設(shè)計(jì)開(kāi)發(fā)》張凱、馬忠梅、劉繼華、張立平編著, 科學(xué)出版社1996年。 附錄 1本設(shè)計(jì)使用的單片機(jī)程序如下:#include //*************************void INIT(){ADCON1=0X07;TRISC=0X80;TRISB=0X00;TRISD=0X00;RD1=0;RD0=0;TRISA=0X0f; TRISE=0X00;}//*************************#include #include "init.h"#include "proc.h"http://*************************unsigned char i;unsigned int delay;extern unsigned char a;extern unsigned char temph;extern unsigned char templ;//***************************void main(){//初始化INIT();for(delay=65536;delay>0;d
收藏