微控制器溫度控制器實訓總結

微控制器溫度控制器實訓總結

  一、功能要求

  設計並製作一個溫度控制器,用於自動接通或斷開室內的電加熱裝置,從而使室內溫度達到設定溫度要求,並能實時顯示室內溫度。當室內溫度大於等於設定溫度時,控制器斷開電加熱裝置;當室內溫度比設定溫度小2?C時,控制器接通電加熱裝置。 控溫範圍:0~51?C 控溫精度:≤ 1?C

  二、硬體系統設計

  1.硬體系統由七部分組成,即微控制器及看門狗電路、溫度檢測電路、控制輸出電路、鍵盤電路、顯示電路、設定溫度儲存電路及電源電路。 (1)微控制器及看門狗電路

  根據設計所需的微控制器的內部資源(程式儲存器的容量、資料儲存器的容量及I/O口數量),選擇AT89C51-24PC較合適。為了防止程式跑飛,導致溫度失控,進而引起可怕的後果,本設計加入了硬體看門狗電路IMP813L,如果它的WDI腳不處於浮空狀態,在1.6秒內WDI不被觸發(即沒有檢測到上什沿或下降沿),就說明程式已經跑飛,看門狗輸出端

  WDO將輸出低電平到手動復位端,使復位輸出端RST發出復位訊號,使微控制器可靠復位,

  即程式重新開始執行。(注:如果選用AT89S51,由於其內部已具有看門狗電路,就不需外加IMP813L)

  (2)溫度檢測電路

  溫度感測器採用AD590,它實際上是一個與絕對溫度成正比的電流源,它的工作電壓為4~30V,感測的溫度範圍為-550C~+1500C,具有良好的線性輸出,其輸出電流與溫度成正比,即1μA/K。因此在00C時的輸出電流為273.2μA,在1000C時輸出電流為373.2μA。溫度感測器將溫度的變化轉變為電流訊號,透過電阻後轉變電壓訊號,經過運算放大器JRC4558運算處理,處理後得到的'模擬電壓訊號傳輸給A/D轉換部分。A/D轉換器選用ADC0804,它是用CMOS整合工藝製成的逐次逼近型模數轉換晶片,解析度8位,轉換時間100μs,基準電壓0~5V,輸入模擬電壓0~5V。

  (3)控制輸出電路

  控制訊號由微控制器的P1.4引腳輸出,經過光耦TLP521-1隔離後,經三極體C8550直接驅動繼電器WJ108-1C-05VDC,如果所接的電加熱裝置的功率≤2KW,則可利用繼電器的常開觸點直接控制加熱裝置,如果加熱裝置的功率>2KW,可以繼電器控制接觸器,由接觸器直接控制加熱裝置。

  (4)鍵盤電路

  鍵盤共有四個按鍵,分別是S1(設定)、S2(+)、S3(-)、S4(儲存)。透過鍵盤來設定室內應達到的溫度,鍵盤採用中斷方式控制。 (5)顯示電路

  顯示電路由兩位E10501_AR數碼管組成,由兩片74LS164驅動,實現靜態顯示,74LS164所需的序列資料和時鐘由微控制器的P3.0和P3.1提供。對於學過“序列口”知識的班級,實習時,可以採用序列口工作於方式0,即同步移位暫存器的輸出方式,透過序列口輸出顯示資料(實時溫度值或設定溫度值);對於沒學過“序列口”知識的班級,實習時,可以採用模擬序列口的輸出方式,實現顯示資料的序列輸出。 (6)設定溫度儲存電路

  為了防止設定溫度在電源斷電後丟失,此設計加入了儲存電路,儲存器選用具有I2C匯流排功能的AT24C01或FM24C01均可。每次透過鍵盤設定的室內設定溫度都透過儲存器儲存起來,即使是電源斷電,儲存器儲存的設定溫度也不丟失,在電源來電後,微控制器自動將設

  定溫度從儲存器中讀出,一方面避免了斷電後的更新設定工作;另一方面也保護了控制器控制的安全性,可靠性。 (7)電源電路

  電源採用了串聯型整合穩壓器電路,電源有兩路輸出,一路由L7805CV穩壓輸出+5V,除JRC4558、AD590外,電路的其它部分均由+5V供電;一路由MC78L12和LM79L12穩壓輸出±12V,給JRC4558、AD590供電。當然這裡還可以選擇現成的開關型穩壓電源,但

  3.參考程式:

  ;---------------------------- ;溫度控制器源程式

  ;----------------------------

  s1 bit p1.0 ;s1按鍵控制口位 s2 bit p1.1 ;s2按鍵控制口位 s3 bit p1.2 ;s3按鍵控制口位 s4 bit p1.3 ;s4按鍵控制口位 wdkz bit p1.4 ;溫度控制口位 wdi bit p1.5 ;看門狗觸發端 sda bit p1.7 ;AT24C01的資料線 scl bit p1.6 ;AT24C01的時鐘線 drxd bit p3.0 ;74LS164資料 dtxd bit p3.1 ;74ls164時鐘

  intr bit p3.2 ;A/D轉換結束訊號控制口位 szled bit p3.5 ;設定LED sbz bit 00h ;秒標誌位

  swwd equ 30h ;十位溫度的BCD碼儲存單元 gwwd equ 31h ;個位溫度的BCD碼儲存單元

  adpj equ 32h ;A/D轉換後的平滑濾波值儲存單元 szwd equ 33h ;設定溫度值儲存單元

  adwz equ 34h ;5次A/D值的初始位置,即34h~38h mjsz equ 39h ;1秒記數值(50ms次數) smjsz equ 3ah ;3秒記數值(200ms次數) shmjsz equ 3bh ;10秒記數值(200ms次數)

  org 0000h ljmp start org 000bh

  ljmp timezd ;T0中斷 org 0013h

  ljmp temszzd ;INT1中斷 org 0030h

  start: clr sbz mov mjsz,#20 mov smjsz,#15 mov shmjsz,#50 mov sp,#60h

  ;--------------賦初值 ;lcall durom mov szwd,a

  ;--------------讀設定溫度 mov tmod,#01h mov th0,#3ch

  mov tl0,#0b0h setb tr0

  ;--------------定時器T0的設定及啟動 setb it1 setb ex1 setb et0 setb ea

  ;--------------開中斷(INT1和T0中斷) cyc: lcall adzh mov a,adpj lcall bcdzh lcall disp lcall tembj jnb sbz,$ clr sbz lcall wdog sjmp cyc

  ;--------------------------- ;模數轉換子程式名:adzh ;入口引數:無 ;出口引數:adpj

  ;--------------------------- adzh: push psw push acc mov r1,#adwz mov r2,#5 adzh1: movx @r0,a jb intr,$ movx a,@r0 mov @r1,a inc r1

  djnz r2,adzh1

  ;--------------5次A/D值完成 mov r0,#adwz mov r2,#5 lcall paix

  ;--------------5次A/D值排序 mov r5,#00h mov r6,#00h mov r7,#3 mov a,#adwz add a,#1 mov r1,a

最近訪問