基于DS18B20的溫度控制系統(tǒng)設計_第1頁
基于DS18B20的溫度控制系統(tǒng)設計_第2頁
基于DS18B20的溫度控制系統(tǒng)設計_第3頁
基于DS18B20的溫度控制系統(tǒng)設計_第4頁
基于DS18B20的溫度控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄1、前言12、溫度控制系統(tǒng)設計22.1方案選擇22.2整體電路設計23、電路模塊設計33.1電源電路模塊33.2 STC89C52控制芯片33.3 DS18B20溫度控制芯片63.3.1 DS18B20簡介63.3.2 DS18B20的性能特點63.3.3 DS18B20供電方式73.3.4 DS18B20測溫原理73.4復位電路模塊83.5顯示電路模塊9移位寄存器74HC1649數碼管顯示電路103.6報警電路模塊113.7按鍵電路模塊114、軟件設計124.1控制流程圖124.2 DS18B20工作過程及時序12初始化時序12寫時序13讀時序145、閉環(huán)控制165.1 被控對象的傳遞函

2、數測定165.2控制算法166、系統(tǒng)調試197、結論20參考文獻22附錄231、前言溫度控制系統(tǒng)廣泛應用于社會生活的各個領域 ,如家電、汽車、材料、電力電子等 ,常用的控制電路根據應用場合和所要求的性能指標有所不同 , 在工業(yè)企業(yè)中,如何提高溫度控制對象的運行性能一直以來都是控制人員和現場技術人員努力解決的問題。這類控制對象慣性大,滯后現象嚴重,存在很多不確定的因素,難以建立精確的數學模型,從而導致控制系統(tǒng)性能不佳,甚至出現控制不穩(wěn)定、失控現象。傳統(tǒng)的繼電器調溫電路簡單實用 ,但由于繼電器動作頻繁 ,可能會因觸點不良而影響正常工作。控制領域還大量采用傳統(tǒng)的PID控制方式,但PID控制對象的模型

3、難以建立,并且當擾動因素不明確時,參數調整不便仍是普遍存在的問題。而采用數字溫度傳感器DS18B20,因其內部集成了A/D轉換器,使得電路結構更加簡單,而且減少了溫度測量轉換時的精度損失,使得測量溫度更加精確。數字溫度傳感器DS18B20只用一個引腳即可與單片機進行通信,大大減少了接線的麻煩,使得單片機更加具有擴展性。由于DS18B20芯片的小型化,更加可以通過單跳數據線就可以和主電路連接,故可以把數字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實用性。更能串接多個數字溫度傳感器DS18B20進行范圍的溫度檢測。2、溫度控制系統(tǒng)設計2.1方案選擇實現溫度控制的方法主要有以下幾種。

4、方案一:采用純硬件的閉環(huán)控制系統(tǒng)。該系統(tǒng)的優(yōu)點在于速度較快,但可靠性比較差控制精度比較低、靈活性小、線路復雜、調試、安裝都不方便。且要實現題目所有的要求難度較大。方案二:FPGA/CPLD或采用帶有IP內核的FPGA/CPLD方式。即用FPGA/CPLD完成采集,存儲,顯示及A/D等功能,由IP核實現人機交互及信號測量分析等功能。這種方案的優(yōu)點在于系統(tǒng)結構緊湊,可以實現復雜的測量與與控制,操作方便;缺點是調試過程復雜,成本較高。方案三:單片機與高精度溫度傳感器結合的方式。即用單片機完成人機界面,系統(tǒng)控制,信號分析處理,由前端溫度傳感器完成信號的采集與轉換。這種方案克服了方案一、二的缺點,所以本

5、設計任務是基于STC89C52單片機和溫度傳感器實現對溫度的控制。系統(tǒng)框圖如下:溫度傳感器單片機鍵盤控制復位電路顯示電路報警電路電源電路圖2-1 系統(tǒng)框圖2.2整體電路設計溫度傳感器 DS18B20從設備環(huán)境的不同位置采集溫度,單片機 STC89C52 獲取采集的溫度值,經處理后得到當前環(huán)境中一個比較穩(wěn)定的溫度值,再根據當前設定的溫度值,通過加熱和冷卻對當前溫度進行調整。采集到的溫度數據傳輸到單片機,由單片機處理后的數據送顯示部分顯示,當采集的溫度經處理后低于設定溫度的下限或高于設定溫度的上限時,單片機控制報警電路發(fā)出報警聲,同時相應的發(fā)光二極管發(fā)光顯示。本次設計的整體電路圖見附錄。3、電路模

6、塊設計3.1電源電路模塊控制系統(tǒng)主控制部分電源需要用5V直流電源供電,其電路如圖6-1所示,把頻率為50Hz、有效值為220V的單相交流電壓轉換為幅值穩(wěn)定的5V直流電壓。其主要原理是把單相交流電經過電源變壓器、整流電路、濾波電路、穩(wěn)壓電路轉換成穩(wěn)定的直流電壓。由于輸入電壓為電網電壓,一般情況下所需直流電壓的數值和電網電壓的有效值相差較大,因而電源變壓器的作用顯現出來起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉換成直流電壓。由于經整流電路整流后的電壓含有較大的交流分量,會影響到負載電路的正常工作。需通過低通濾波電路濾波,使輸出電壓平滑。穩(wěn)壓電路的功能是使輸出直流電壓基本不受電網

7、電壓波動和負載電阻變化的影響,從而獲得穩(wěn)定性足夠高的直流電壓。本電路使用集成穩(wěn)壓芯片7805解決了電源穩(wěn)壓問題。電源電路如圖所示。圖3-1 電源電路3.2 STC89C52控制芯片STC89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,STC89C52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦

8、寫的Flash存儲器可有效地降低開發(fā)成本。STC89C52單片機在電子行業(yè)中有著廣泛的應用。STC89C52芯片具有以下主要功能特性:1、兼容MCS51指令系統(tǒng);2、8k可反復擦寫(大于1000次)Flash ROM;3、32個雙向I/O口;4、256x8bit內部RAM;5、3個16位可編程定時/計數器中斷;6、時鐘頻率0-24MHz;7、2個串行中斷,可編程UART串行通道;8、2個外部中斷源,共8個中斷源;9、2個讀寫中斷口線,3級加密位;10、低功耗空閑和掉電模式,軟件設置睡眠和喚醒功能;11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應不同產品的需求。STC89C5

9、2單片機的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復用的引腳,以及32條輸入輸出I/O引腳。引腳圖如圖3-2所示:圖3-2 STC89C52引腳圖具體介紹如下:1.電源引腳Vcc和VssVcc(40腳):接+5V電源正端;Vss(20腳):接+5V電源負端。2.外接晶振引腳XTAL1和XTAL2XTAL1(19腳):接外部石英晶體的一端。在單片機內部,它是一個反相放大器的輸入端,這個放大器構成采用外部時鐘時,對于HMOS單片機,該引腳接地;對于CHOMS單片機,該引腳作為外部振蕩信號的輸入端。XTAL2(18腳):接外部晶體的另一端。在單片機內部,接至片內振

10、蕩器的反相放大器的輸出端。當采用外部時鐘時,對于HMOS單片機,該引腳作為外部振蕩信號的輸入端。對于CHMOS芯片,該引腳懸空不接。3.控制信號或與其它電源復用引腳有RST/VPD、ALE/P、PSEN和EA/VPP等4種形式。RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機的上電復位或掉電保護端。當單片機振蕩器工作時,該引腳上出現持續(xù)兩個機器周期的高電平,就可實現復位操作,使單片機復位到初始狀態(tài)。當VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源VPD(+5V)為內部RAM供電,以保證RAM中的數據不丟失。ALE/ PROG(30腳):當訪問

11、外部存儲器時,ALE(允許地址鎖存信號)以每機器周期兩次的信號輸出,用于鎖存出現在P0口的地址信號。PSEN(29腳):片外程序存儲器讀選通輸出端,低電平有效。當從外部程序存儲器讀取指令或常數期間,每個機器周期PESN兩次有效,以通過數據總線口讀回指令或常數。當訪問外部數據存儲器期間,PESN信號將不出現。EA/Vpp(31腳):EA為訪問外部程序儲器控制信號,低電平有效。當EA端保持高電平時,單片機訪問片內程序存儲器4KB(MS52子系列為8KB)。若超出該范圍時,自動轉去執(zhí)行外部程序存儲器的程序。當EA端保持低電平時,無論片內有無程序存儲器,均只訪問外部程序存儲器。對于片內含有EPROM的

12、單片機,在EPROM編程期間,該引腳用于接21V的編程電源Vpp。4.輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口P0口(39腳22腳):這8條引腳有兩種不同功能,分別適用于兩種不同情況。第一種情況是89S51不帶片外存儲器,P0口可以作為通用I/O口使用,用于傳送CPU的輸入/輸出數據。第二種情況是89S51帶片外存儲器,在CPU訪問片外存儲器時用于傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀寫數據。P1口(1腳8腳):這8條引腳和P0口的8條引腳類似,P1.7為最高位,P1.0為最低位。當P1口作為通用I/O口使用時,的功能和P0口的第一功能相同,也用于傳送用戶的輸

13、入和輸出數據。P2口(21腳28腳):這組引腳的第一功能和上述兩組引腳的第一功能相同,既它可以作為通用I/O口使用。它的第二功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址。P3口(10腳17腳):P3.0P3.7統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見表3-1。表3-1 單片機P3口管腳第2功能引腳第2功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD(串行口輸入端)TXD(串行口輸出端)INT0(外部中斷0請求輸入端,低

14、電平有效)INT1(外部中斷1請求輸入端,低電平有效)T0(時器/計數器0計數脈沖端)T1(時器/計數器1計數脈沖端)WR(外部數據存儲器寫選通信號輸出端,低電平有效)RD(外部數據存儲器讀選通信號輸出端,低電平有效)3.3 DS18B20溫度控制芯片3.3.1 DS18B20簡介DS18B20是DALLAS公司生產的一線式數字溫度傳感器,具有3引腳TO92小體積封裝形式;溫度測量范圍為55 125,可編程為9位12位A/D轉換精度,測溫分辨率可達0.0625,被測溫度用符號擴展的16位數字量方式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產生;多個DS18B20可以并聯(lián)到3根或2

15、根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使DS18B20非常適用于遠距離多點溫度檢測系統(tǒng)。其封裝圖如圖3-3所示。圖3-3 DS18B20引腳圖3.3.2 DS18B20的性能特點a、獨特的單線接口僅需要一個端口引腳進行通信;b、多個DS18B20可以并聯(lián)在惟一的三線上,實現多點組網功能;c、無須外部器件;d、可用數據線供電,電壓范圍:3.05.5V;e、測溫范圍:-55 +125 ,在-10 +85 時精度為±0.5 ;可編程的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、0.125和0.06

16、25;f、12位分辨率時最多在750ms內把溫度值轉換為數字;g、用戶可定義的非易失性溫度報警設置;h、報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;i、負壓特性:電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。j、溫度轉換時間由DS1820的2s降為750ms,且靈敏度大為提高,在逐漸升溫的水中與精度為±0.5的溫度計幾乎同步,且回復性很好;k、每個芯片唯一編碼,支持聯(lián)網尋址,零功耗等待。3.3.3 DS18B20供電方式在硬件上,DS18B20與單片機的連接有兩種方法,一種是用寄生電源供電,此時VCC、GND接地,I/O接單片機I/O如圖3-4所示;另一種

17、是VCC接外部電源,GND接地,I/O與單片機的I/O線相連如圖3-5所示。無論是內部寄生電源還是外部供電,I/O口線要接5K左右的上拉電阻。圖3-4寄生電源方式圖3-5外接電源方式本設計中,采用第二種方法,這樣簡化硬件電路設計,降低了整個系統(tǒng)的復雜度。3.3.4 DS18B20測溫原理當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數據,讀數據時低位在先,高位在后,數據格式以0.0625 形式表示。溫度值格式如圖4-6所示。圖3-6 溫度值格式當符號位S=0時,表示測得的溫

18、度值為正值,可以直接將二進制位轉換為十進制;當符號位S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制。表3-2是一部分溫度值對應的二進制溫度數據。表3-2 部分溫度值對應的二進制數據溫度二進制表示十六進制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 11

19、11 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HDS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內容作比較。若T>TH或TL,則將該器件內的報警標志位置位,并對主機發(fā)出的報警搜索命令做出響應。因此,可以用多只DS18B20同時測量溫度并進行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機根據ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM

20、數據是否正確。DS18B20有六條控制命令,如表3-3所示:表3-3 DS18B20控制命令指    令約定代碼操      作     說     明溫度轉換讀暫存器寫暫存器復制暫存器重新調E2RAM讀電源供電方式44HBEH4EH48HB8HB4H啟動DS18B20進行溫度轉換讀暫存器9個字節(jié)內容將數據寫入暫存器的TH、TL字節(jié)把暫存器的TH、TL字節(jié)寫到E2RAM中把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)啟動DS18B20發(fā)送

21、電源供電方式的信號給主CPUCPU對DS18B20的訪問流程是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作,數據操作。DS18B20每一步操作都要遵循嚴格的工作時序和通信協(xié)議。如主機控制DS18B20完成溫度轉換這一過程,根據DS18B20的通訊協(xié)議,須經三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。3.4復位電路模塊復位電路有上電自動復位和按鍵手動復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現的,只要電源VCC的上升時間不超過1ms,就可以實現自動上電復位

22、,即接通電源就成了系統(tǒng)的復位初始化。按鍵手動復位有電平方式和脈沖方式兩種。其中,按鍵電平復位是通過使復位端經電阻與VCC電源接通而實現的,而按鍵脈沖復位則是利用RC微分電路產生的正脈沖來實現的。本系統(tǒng)的復位電路采用上電復位方式。電路圖如圖所示:圖4-7 復位電路3.5顯示電路模塊本電路主要使用八段數碼管和移位寄存器芯片74HC164。單片機通過數據總線將要顯示的數據信號傳送到移位寄存器芯片74HC164,再由移位寄存器控制數碼管的顯示,從而實現移位寄存點亮數碼管顯示。由于單片機的時鐘頻率達到12M,移位寄存器的移位速度相當快,所以我們根本看不到數據是一位一位傳輸的。從人類視覺的角度上看,就仿佛

23、是全部數碼管同時顯示的一樣。3.5.1移位寄存器74HC16474HC164、74HCT164 是高速硅門 CMOS 器件,與低功耗肖特基型 TTL (LSTTL) 器件的引腳兼容。74HC164、74HCT164 是 8 位邊沿觸發(fā)式移位寄存器,串行輸入數據,然后并行輸出。數據通過兩個輸入端(DSA 或 DSB)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數據輸入。兩個輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。圖3-8 74HC164引腳圖3.5.2數碼管顯示電路顯示部分采用LED靜態(tài)顯示方式,共陽極的數碼管的公共端COM連接在一起接地,每位的段選線與

24、74HC164的8位并口相連,只要在該位的段選線上保持段選碼電平,該位就能保持相應的顯示字符,考慮到節(jié)約單片機的I/O資源,因而采用串行接口方式,外接8位移位寄存器74HC164構成顯示電路,顯示電路如圖所示。圖3-9 顯示電路3.6報警電路模塊報警電路用于在溫度超出設定值范圍時提供聲音報警,它由單片機的P1.7引腳控制。并且通過發(fā)光二極管實現對系統(tǒng)運行狀態(tài)的顯示。報警電路如圖所示。圖3-10報警電路3.7按鍵電路模塊利用單片機的IO口實現按鍵的中斷輸入。另外需要一個與門實現與中斷端口的連接。按鍵電路如圖所示。圖3-11 按鍵電路4、軟件設計系統(tǒng)軟件設計主要包括系統(tǒng)程序和控制流程圖,根據整個系

25、統(tǒng)要求的溫度測量與控制寫出系統(tǒng)的控制流程圖,然后進行編程。具體程序見附錄。4.1控制流程圖圖4-1 系統(tǒng)流程圖4.2 DS18B20工作過程及時序DS18B20工作過程中的協(xié)議如下:(1)初始化(2)ROM操作命令(3)存儲器操作命令(4)處理數據4.2.1初始化時序時序如圖4-2所示。主機總線發(fā)送483S復位脈沖,接著再釋放總線(置總線為高電平)并進入接收狀態(tài)。DS18B20在檢測到總線的上升沿后等待60S發(fā)出器件存在脈沖(低電平持續(xù)60240S)。初始化程序如下所示:INIT_1820:MOV R1,#2H ;兩次查詢復位18b20存在TSR0: CLR P2.0 MOV R0,#161

26、;主機發(fā)出延時483微秒的復位低脈沖TSR1: NOP DJNZ R0,TSR1 SETB P2.0 ;然后拉高數據線 MOV R0,#20;延時60usTSR2: NOP DJNZ R0,TSR2 MOV R0,#20HTSR3: JNB P2.0,TSR4 ;等待DS18B20回應 DJNZ R0,TSR3 LJMP TSR5 ;延時TSR4: SETB FLAG1 ;置標志位,表示DS1820存在 SETB P1.5; 清除DS1820不存在顯示信號 SETB P1.6 SETB P1.7 LJMP TSR6TSR5: DJNZ R1,TSR0 CLR FLAG1 ;清標志位,表示DS1

27、820不存在 CLR P1.6 ;DS1820不存在警告信號 CLR P1.7 CLR P1.5;如果18b20不存在處理跳轉 LJMP TSR8TSR6: MOV R0,#117TSR7: DJNZ R0,TSR7 ;時序要求延時一段時間TSR8: SETB P2.0 RET單片機主動釋放60-240S60S483S圖4-2 初始化時序圖此初始化程序功能為:檢測DS18B20是否存在,如存在,將位地址38H置1;如不存在,將位地址38H清零。4.2.2寫時序單片機寫DS18B20的時序如圖4-3所示,當主機總線從高拉至低電平時就產生寫時間隙,DS18B20在檢測到下降沿后15S時開始采樣總線

28、上的電平,所以15S之內應將所需寫的位送到總線上,DS18B20在60S以內對總線采樣,每寫一位總時間必須在60120S之間完成。若低電平寫入的位是0,高電平寫入的位是1,連續(xù)寫時位間的間隙應大于1S。程序如下所示:WRITER_1820: MOV R2,#8 ;一共8位數據 CLR CWR1:CLR P2.0 MOV R3,#5;要求15us內寫數 DJNZ R3,$ RRC A MOV P2.0,C MOV R3,#21 ;時序要求,所有寫時序至少維持60us DJNZ R3,$;執(zhí)行該條指令用時間2us SETB P2.0 NOP DJNZ R2,WR1 SETB P2.0 RET寫06

29、0-120S寫1,DS18B20在檢測到下降沿15S后采樣,采樣時間為60S1560-120SDS18B20檢測到下降沿15S后采樣15S圖4-3 單片機寫DS18B20時序圖4.2.3讀時序單片機讀DS18B20的時序如圖5-4所示,單片機主動產生一個下降沿的啟動信號,并維持低電平大于1S后釋放總線,15S后DS18B20占主動權,DS18B20會將數據按位放在總線上(低位在先,當讀取兩個字節(jié)的溫度值時,低字節(jié)在先),這時單片機可讀取信號,讀取一位的時間應在60S內完成。當需要讀取下一位時再產生下降沿啟動信號。T<60S單片機采樣第二位啟動脈沖T<60S單片機采樣第一位啟動脈沖圖

30、4-4 單片機讀DS18B20的時序圖READ_1820:MOV R4,#2 ;將溫度高位和低位從DS18B20中讀出MOV R1,#TEMPER_L ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00: MOV R2,#8 ;數據一共有8位RE01: CLR CSETB P2.0NOPNOPCLR P2.0NOPNOPNOPSETB P2.0MOV R3,#4RE10: DJNZ R3,RE10MOV C,P2.0RRC A MOV R3,#20RE20: DJNZ R3,RE20DJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET

31、此程序功能為:讀取DS18B20 A/D轉換后的溫度值,轉換后的二進制存入29H、28H單元。5、閉環(huán)控制PID調節(jié)器在工業(yè)控制領域得到了很大的發(fā)展和廣泛的應用。它的結構簡單,參數易于調整,而且人們在長期的應用中積累了豐富的經驗,再加上計算機控制技術的結合,使得PID具有很大的靈活性和適用性??紤]各種因素,本設計中采用了PID調節(jié)器進行控制。此溫度閉環(huán)控制系統(tǒng)設定四個溫度值,分別為50、60、70、80。用戶可以根據需要進行溫度的設定,在與18b20實際測得溫度進行比較,得到的偏差(此時的偏差是實際溫度,即輸出值,與給定溫度的差值)作為數字控制器的輸入,數字控制器的輸出經過數模轉換后作用于被控

32、對象(加熱杯)進行偏差調整。其閉環(huán)控制系統(tǒng)框圖如下所示:圖5-1 閉環(huán)控制系統(tǒng)的結構框圖5.1 被控對象的傳遞函數測定采用階躍響應曲線法對其進行傳遞函數GP(s)的測定。5.2控制算法適用PID控制器。計算機控制系統(tǒng)是一種采樣控制系統(tǒng),其只能根據采樣時刻的偏差值計算控制量。因此,利用外接矩形法進行數值積分,一階后向差分進行數值微分,當選定的采樣周期為T時,有如果采樣周期足夠小,這種離散逼近相當準確。但周期小對于硬件的要求也將提高很多,故需要對以上算式進行改進。由上式可導出下面的式子:此式稱為增量型PID控制式。增量型控制算式具有如下優(yōu)點:1. 計算機只輸出控制增量,即執(zhí)行機構位置的變化部分,因

33、而誤動作影響較小2. 在i時刻的輸出,只需要用到此刻的偏差以及前一時刻、前兩時刻的偏差和前一次的輸出值,這大大節(jié)約了內存和計算時間。3. 在進行手動-自動切換時,控制量沖擊小,能平滑地過渡。增量型PID算式經過移項可以寫成如下式所示:按照上式表示的遞推PID算式,計算出每輸出一次,要做四次加法、兩次減法、四次乘法和兩次除法。若將該式稍加合并整理寫成如下形式:其中可以離線算出,即可加快算法程序的運算速度。按上式編制的數字控制器的程序框圖如下圖所示。圖5-2 遞推型PID控制器程序框圖5.3 數字控制器的確定為了保持系統(tǒng)的穩(wěn)定性,減少頻譜混疊現象,保持穩(wěn)態(tài)增益不變,本設計中采用階躍響應不變法對數字

34、控制器D(z)進行確定。階躍響應不變法的基本思想是:離散近似后的數字控制器的階躍響應序列與模擬控制器的階躍響應的采樣值一致。設連續(xù)系統(tǒng)的控制器為GC(s),輸入信號為單位階躍函數。構造新的控制器如下所示(在GC(s)前增加一個零階保持器):G0s=1-e-TssGcs=1-e-TsGcs1s取z變換,的相應的數字控制器為:Dz=ZG0s=1-z-1ZGcs1s則對于單位階躍輸入的響應序列為:此式表明,數字控制器D(z)的階躍響應與模擬控制器的階躍響應的采樣值相同,即兩個控制器是等效關系,使其滿足控制要求。6、系統(tǒng)調試系統(tǒng)可以自由設定不同的加熱溫度,溫度設定當環(huán)境溫度低于設定溫度時系統(tǒng)啟動加熱,

35、當環(huán)境溫度高于或等于設定溫度時,系統(tǒng)停止加熱。經過反復測試,系統(tǒng)溫度設定范圍為099(本實驗中為了效果更加明顯,設定的范圍為3070),最小區(qū)分度為1,溫度控制的誤差1;能夠測量并用數碼管顯示當前實際溫度值;通過復位鍵可以使系統(tǒng)設定溫度還原默認值,通過溫度設定鍵可以設置預定溫度;環(huán)境溫度低于設定溫度時,啟動加熱,環(huán)境溫度高于或等于設定溫度時,停止加熱,達到了實習要求的技術指標。7、結論本設計詳細介紹了基于單片機STC89C52的溫度控制系統(tǒng)的設計方案與軟硬件實現。系統(tǒng)溫度設定范圍為099,最小區(qū)分度為1,溫度控制的誤差1;能夠測量并用數碼管顯示當前實際溫度值;通過復位鍵可以使系統(tǒng)設定溫度還原默

36、認值,通過按鍵可以設置預定溫度;當檢測溫度超出設定溫度域則啟動蜂鳴器報警,若超出低溫限,同時綠燈亮,若超出高溫限,同時紅燈亮。具體可以實現的功能如下: 1、溫度設定范圍為099(本設計中為了使效果更加明顯,設置的低溫線為30度,高溫限為70度),最小區(qū)分度為1,溫度控制的誤差1;2、能夠用數碼管顯示當前實際溫度值;3、按鍵控制:設置復位鍵、溫度設置鍵;4、超溫報警。系統(tǒng)包括電源模塊、溫度控制模塊、溫度檢測模塊、復位模塊、顯示模塊、溫度報警模塊和按鍵模塊七個部分。文中對每個部分功能、實現過程作了詳細介紹。完成了實習的基本任務,達到了預期的目標。系統(tǒng)具有如下特點:.采用溫度傳感器DS18B20采集

37、溫度數據,簡化了硬件電路設計,溫度采集數據更加精準;.STC89C52單片機的采用,有利于功能擴展;.電路設計充分考慮了系統(tǒng)可靠性和安全性。本系統(tǒng)沒有增加外部存儲器,設定溫度不能保存,斷電復位后必須重新設置溫度;采用靜態(tài)顯示方式,從而使用了較多的驅動芯片,增加了硬件電路的復雜性;只使用兩位顯示,即顯示溫度的十位、個位,沒有充分發(fā)揮DS18B20的特性。心得體會在做課程設計的過程中,通過理論聯(lián)系實際,不斷的學習和總結經驗,鞏固了所學的知識,提高了處理實際問題的能力。我的理論和實踐水平都有了較大的提高。在本設計中,我熟練掌握了單片機硬件設計和接口技術,同時對溫度傳感器的原理及應用有了一定的了解,掌

38、握了各種控制電路及其相關元器件的使用。這次課程設計過程中也讓我認識到了團隊合作的重要性。通過這次課程設計,我不僅學會如何將所學專業(yè)知識運用到實際生活中,還學會如何克服未知的困難,解決難題的方法,為將來畢業(yè)設計的順利進行打下了基礎。這次設計過程中也讓我認識到了很多不足,在今后的學習過程中我一定努力補缺補漏,多實踐,將理論知識更好地應用于實踐。最后感謝各位指導老師的指導。參考文獻1 童詩白,華成英.模擬電子技術基礎M. 北京:高等教育出版社,20062 張齊,杜群貴.單片機應用系統(tǒng)設計技術M.北京:電子工業(yè)出版社,20073 中國機械工業(yè)教育協(xié)會組編.單片機原理與應用.機械工業(yè)出版社.20014

39、求是科技單片機通信技術與工程實踐M北京:人民郵電出版社,20055 張洪潤電子線路與電子技術M.清華大學出版社M,20056郭永貞主編數字電子技術M 西安電子科技大學出版社 20007 李廣弟單片機基礎M,北京:北京航空航天大學出版社,20018楊金巖等.8051單片機數據傳輸接口擴展技術與應用實例M北京:人民郵電出版社,2005。附錄附錄一:總體程序;*;所用芯片AT89s52,晶振11.0592M;*TEMPER_L EQU 29H;用于保存讀出溫度的低8位TEMPER_H EQU 28H;用于保存讀出溫度的高8位TEMPER_SET EQU 27H;用于保存用戶設定的溫度值FLAG1 E

40、QU 38H;是否檢測到DS18B20標志位ORG 0000H LJMP MAIN ORG 001BHLJMP INTERRUPT ;中斷入口ORG 0100H MAIN: MOV SP,#60H ;堆棧指針設置 LCALLINIT_T1_KEY ; 中斷初始化 LCALL INIT_1820 ; 18b20初始化LOOP: LCALL GET_TEMPER ;讀取18b20溫度 LCALL WRITER_SMG ; 調用數碼管顯示 ;以下延時可酌情刪減,具體根據系統(tǒng)周期和系統(tǒng)采樣周期確定 LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY SJMP

41、 LOOP ;* ;初始化18b20 ,若18b20不存在,紅燈、綠燈同時亮,同時,蜂鳴器響 ;18b20數據端口接單片機P2.0 ;*INIT_1820: MOV R1,#2H ;兩次查詢復位18b20存在TSR0: CLR P2.0 MOV R0,#161 ;主機發(fā)出延時483微秒的復位低脈沖TSR1: NOP DJNZ R0,TSR1 SETB P2.0 ;然后拉高數據線 MOV R0,#20;延時60usTSR2: NOP DJNZ R0,TSR2 MOV R0,#20HTSR3: JNB P2.0,TSR4 ;等待DS18B20回應 DJNZ R0,TSR3 LJMP TSR5 ;延

42、時TSR4: SETB FLAG1 ;置標志位,表示DS1820存在SETB P1.5; 清除DS1820不存在顯示信號SETB P1.6;SETB P1.7 LJMP TSR6TSR5: DJNZ R1,TSR0 CLR FLAG1 ;清標志位,表示DS1820不存在 CLR P1.6 ;DS1820不存在警告信號 CLR P1.7 CLR P1.5;如果18b20不存在處理跳轉 LJMP TSR8TSR6: MOV R0,#117TSR7: DJNZ R0,TSR7 ;時序要求延時一段時間TSR8: SETB P2.0 RET;*;T1初始化的子程序;*INIT_T1_KEY:MOV TM

43、OD,#60H;T1方式2,兩位8位計數自動重裝MOV TH1,#0FFHMOV TL1,#0FFHSETB ET1SETB P3.5 SETB TR1SETB EACLR P1.0CLR P1.1CLR P1.2CLR P1.3RET;*;寫DS18B20的子程序;*WRITER_1820:MOV R2,#8 ;一共8位數據 CLR CWR1: CLR P2.0 MOV R3,#5;要求15us內寫數 DJNZ R3,$ RRC A MOV P2.0,C MOV R3,#21 ;時序要求,所有寫時序至少維持60us DJNZ R3,$;執(zhí)行該條指令用時間2us SETB P2.0 NOP D

44、JNZ R2,WR1 SETB P2.0RET;*; 讀DS18B20的程序,從DS18B20中讀出一個字節(jié)的溫度數據;*READ_1820:MOV R4,#2 ;將溫度高位和低位從DS18B20中讀出MOV R1,#TEMPER_L ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00: MOV R2,#8 ;數據一共有8位RE01: CLR CSETB P2.0NOPNOPCLR P2.0NOPNOPNOPSETB P2.0MOV R3,#4RE10: DJNZ R3,RE10MOV C,P2.0RRC A MOV R3,#20RE20: DJNZ R3,RE2

45、0DJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;*; 寫數碼管兩位顯示子程序 ,74HC164的data端口接P2.3,; 時鐘CLK端口接P2.2;*WRITER_SMG: ;MOV A,TEMPER_LMOV B, #0AHDIV AB;取出十位和個位,十位放在A中,個位在B中MOV R0,A;將十位暫存在寄存器R6中MOV R3,#2;數碼管兩位顯示MOV DPTR,#SMG_NUM ;數碼管段碼表地址MOV A,B;個位給A WRS2:MOVC A ,A+DPTR ; 查表MOV R2,#8 ;單口串行輸出8個二進制數至74HC164數據端口CLR

46、 C WRS1:RLC A ;帶進位左循環(huán)CLR P2.2MOV P2.3,CNOPSETB P2.2;上升沿74HC164輸出下移DJNZ R2,WRS1MOV A,R0 ;將十位移入A中,進行十位輸出至數碼管DJNZ R3,WRS2RET;*; 獲取18b20測量的溫度,并進行轉換,判斷報警;*GET_TEMPER: SETB P2.0 LCALL INIT_1820 ;先復位DS18B20 JB FLAG1,TSS2 ;DS18B20已經被檢測到,跳到TSS2子程序 RET ;若DS18B20不存在則返回TSS2: MOV A,#0CCH ;跳過ROM匹配 LCALL WRITER_18

47、20 MOV A,#44H ;發(fā)出溫度轉換命令 LCALL WRITER_1820 LCALL INIT_1820 ;準備讀溫度前先復位 MOV A,#0CCH ;跳過ROM匹配 LCALL WRITER_1820 MOV A,#0BEH ;發(fā)出讀溫度命令 LCALL WRITER_1820 LCALL READ_1820 ;將讀出的溫度數據保存到29H/28H SETB P2.0LCALL SWAPW; 調用轉換溫度程序LCALL CMP_TEM_ALARM; 調用比較報警子程序RET;*;溫度轉換子程序:;將TEMPER_H中的低4位移入TEMPER_L中的高4位,;TEMPER_L中的高4位移入TEMPER_L中的低4位,;這樣獲得一個不帶小數的實際測量溫度值;*SWAPW: MOV A,TEMPER_LANL A,#0F0HMOV R0,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論