單片機實訓溫度控制器的設計與制作.教程文件_第1頁
單片機實訓溫度控制器的設計與制作.教程文件_第2頁
單片機實訓溫度控制器的設計與制作.教程文件_第3頁
單片機實訓溫度控制器的設計與制作.教程文件_第4頁
單片機實訓溫度控制器的設計與制作.教程文件_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、溫度控制器的設計與制作一、功能要求設計并制作一個溫度控制器,用于自動接通或斷開室內的電加熱設備,從而使室內溫度達到 設定溫度要求,并能實時顯示室內溫度。當室內溫度大于等于設定溫度時,控制器斷開電加熱設 備;當室內溫度比設定溫度小2 C時,控制器接通電加熱設備。控溫范圍:0-51 C控溫精度:w1C二、硬件系統設計1硬件系統由七部分組成,即單片機及看門狗電路、溫度檢測電路、控制輸出電路、鍵盤電 路、顯示電路、設置溫度儲存電路及電源電路。(1) 單片機及看門狗電路根據設計所需的單片機的內部資源(程序存儲器的容量、 數據存儲器的容量及I/O 口數量),選擇AT89C51-24PC較合適。為了防止程序

2、跑飛,導致溫度失控,進而引起可怕的后果,本設 計加入了硬件看門狗電路IMP813L,如果它的WDI腳不處于浮空狀態,在 1.6秒內WDI不被觸發(即沒有檢測到上什沿或下降沿),就說明程序已經跑飛,看門狗輸出端WDO將輸出低電平到手動復位端,使復位輸岀端 RST發出復位信號,使單片機可靠復位, 即程序重新開始執行。(注:如果選用AT89S51,由于其內部已具有看門狗電路,就不需外力0 IMP813L )(2) 溫度檢測電路溫度傳感器采用AD590,它實際上是一個與絕對溫度成正比的電流源,它的工作電壓為 430V,感測的溫度范圍為55C+150C,具有良好的線性輸出,其輸出電流與溫度成正比,即1卩

3、A/K。因此在0Q時的輸出電流為273.2卩A,在100C時輸出電流為373.2卩A。溫度 傳感器將溫度的變化轉變為電流信號,通過電阻后轉變電壓信號,經過運算放大器JRC4558運算處 理,處理后得到的模擬電壓信號傳輸給A/D轉換部分。A/D轉換器選用ADC0804,它是用CMOS集成工藝制成的逐次逼近型模數轉換芯片,分辨率8位,轉換時間100卩s基準電壓05V,輸入模擬電壓05V。(3) 控制輸出電路控制信號由單片機的P1.4引腳輸出,經過光耦TLP521-1隔離后,經三極管C8550直接驅動 繼電器WJ108-1C-05VDC,如果所接的電加熱設備的功率w2KW,則可利用繼電器的常開觸點直

4、接控制加熱設備,如果加熱設備的功率2KW,可以繼電器控制接觸器,由接觸器直接控制加熱設備。(4 )鍵盤電路鍵盤共有四個按鍵,分別是S1 (設置)、S2 ( +)、S3 (-)、S4 (儲存)。通過鍵盤來設置室內應達到的溫度,鍵盤采用中斷方式控制。(5 )顯示電路顯示電路由兩位E10501_AR數碼管組成,由兩片74LS164驅動,實現靜態顯示,74LS164所 需的串行數據和時鐘由單片機的P3.0和P3.1提供。對于學過“串行口”知識的班級,實習時,可以采用串行口工作于方式0,即同步移位寄存器的輸出方式,通過串行口輸出顯示數據(實時溫度值或設置溫度值);對于沒學過“串行口”知識的班級,實習時,

5、可以采用模擬串行口 的輸出方式,實現顯示數據的串行輸出。(6)設置溫度存儲電路為了防止設定溫度在電源斷電后丟失,此設計加入了儲存電路,儲存器選用具有FC總線功能的AT24C01或FM24C01均可。每次通過鍵盤設置的室內設定溫度都通過儲存器儲存起來,單片機自動將設即使是電源斷電,儲存器存儲的設定溫度也不丟失,在電源來電后,定溫度從儲存器中讀出,一方面避免了斷電后的更新設置工作;另一方面也保護了控制器控制的安全性,可靠性。(7 )電源電路電源采用了串聯型集成穩壓器電路,電源有兩路輸出,一路由L7805CV穩壓輸出+5V,除JRC4558、AD590夕卜,電路的其它部分均由+5V供電;一路由MC7

6、8L12和LM79L12穩 壓輸 出土 12V,給JRC4558、AD590供電。當然這里還可以選擇現成的開尖型穩壓電源,但它的價格相 對來說要高一些。32 硬件系統電路原理圖溫度控制器電路原理圖ccgo3.材料表82 中陽PKtnr呻 Q購PRevert型號數量對應兀件序號-呵九z-r. r.ac330 Q1R26電阻470 Q19R1-R17、R28、R29820 Q2R20、R251K2R22、R232K1R273K2R21 、 R2410K2R18、R192K2RP3、RP4電位器5K2RP1、RP210P1C9瓷片電容30P2C17 C18100 卩 /25V4C1、C2、C3、C4

7、電解電容470 卩 /16V2C5、C61N41482D2、D3整流二極管3.9V/1W1D1穩定二極管紅色、0 32D4、D5發光二極管DB1071ZLQ1整流橋KBP2061ZLQ2Nu nurC85501Q1三極管12M1Y1晶振74LS1642U11 、 U12ICAD5901U9ADC08041U5AT24C011U6AT89C511U4IMP813L1U7JRC45581U8L7805CV1U3LM79L121U2MC78L121U1TLP521-11U10E10501-AR2DS1 、 DS2數碼管WJ108-1C-05VDC1K1繼電器220V/8V/2X 15V/2.5W1T

8、1電源變壓器VH-22CN1、CN2連接座三、軟件系統設計1溫控系統采用模塊化程序結構,可分為四大模塊:(1) 系統初始化模塊:完成變量的設定、中斷入口的設定、各變量賦初值、堆棧設定、讀 設置溫度、定時器TO工作方式及初值的設定并啟動、開中斷。(2) 循環模塊:完成A/D轉換及溫度值的換算、溫度值顯示、溫度比較、看門狗的觸發。 (3 )定時器TO中斷模塊:完成1秒的定時。(4) 外部中斷INT1中斷模塊:完成鍵盤對溫度值的設定。2軟件流程框圖:開始程序初始化(50 ms至.4|THO T】0般備A/D轉換及溫度換算1秒記弦盤 力0 否?BC碼轉換1秒記數單 元垂新賦值4秒標志位認1溫度顯示秒標

9、志他清零調用看門狗(S1按卜)INT1中斷程序流程 圖主程序流程圖3參考程序:;溫度控制器源程序si bit p1.0 ;s1按鍵控制口位s2bit p1.1 ;s2按鍵控制口位S3bitp1.2 ;s3按鍵控制口位s4bitp1.3 ;s4按鍵控制位wdkzbitp1.4 ;溫度控制口位wdibit p1.5 ;看門狗觸發端sda bitp1.7 :AT24C01 的數據線 scl bit p1.6 :AT24C01 的時鐘線 drxd bit p3.0 ;74LS164 數據dtxdbit p3.1 ;74ls164時鐘intrbit p3.2 :A/D轉換結束信號控制口位szledbit

10、 p3.5 ;設置LEDsbzbit OOh ;秒標志位swwdequ 30h ;十位溫度的BCD碼存儲單兀gwwdequ 31h ;個位溫度的BCD碼存儲單兀adpjequ 32h :A/D轉換后的平滑濾波值存儲單兀szwdequ 33h ;設置溫度值存儲單兀adwzequ 34h ;5次A/D值的初始位置,即34h38hmjszequ 39h ;1秒記數值(50ms次數)smjszequ 3ah ;3秒記數值(200ms次數)shmjsz equ 3bh ;10秒記數值(200ms次數)org OOOOhIjmp startorg OOObhIjmp timezd ;T0 中斷org 00

11、13hIjmp temszzd ;INT1 中斷 org 0030h start: clr sbz mov mjs乙#20mov smjs乙#15mov shmjsz,#50mov sp,#60h;賦初值;lcall durommov szwd,a;讀設置溫度mov tmod,#01hmov th0,#3chmov tlO,#ObOh setb trO ;定時器TO的設定及啟動setb it1 setb ex1 setb etO setb ea;開中斷(INT1和TO中斷)eye: Icall adzhmov a5adpj Icall bedzh Icall disp Icall tembj

12、jnb sbz,$ clr sbz Icall wdog sjmp eye;模數轉換子程序名:adzh ;入口參數:無;出參數:adpj adzh: push psw push acc mov r1 ,#adwz mov r2,#5adzhl: movx rO,a jb intr,$ movx a,rO mov r1 ,a inc r1 djnz r2,adzh1;5次A/D值完成mov rO,#adwz mov r2,#5 Icall paix;5次A/D值排序mov r5,#00h mov r6,#00h mov r7,#3mov a5#adwz add a,#1 mov r1 ,ajia

13、fa: mov a,r1 add a,r5 mov r5,a mov a,r6 addc a,#0 mov r6,a inc r1djnz r7,jiafaJ去極值后,余下的3個值求和(和在r6r5中)chufa: mov r3,#16 mov r4,#30 mov r7,#0 mov a,r5 add a,r5 mov r5,a mov a,r6 addc a,r6 mov r6,a mov a,r5 adda,#15 mov r5,a mov a,r6 addca,#0 mov r6,a為“四舍五入”作準備即和值乘以2加上15除以30 chufal: clr c mov a,r5 rlc

14、a mov r5,a mov a,r6 rlc a mov r6,a mov a,r7 rlc asubb a,r4 jncchufa2 add a,r4 sjmpchufa3 chufa2: inc r5 chufa3: mov r7,adjnz r3,chufa1mov adpj,r5J完成溫度平均值pop accpop psw ret;排序子程序名:paix (從大到小);入口參數:R0指向數據存儲區的首地址,R2存放數據長度paix: push psw push acc paixO: mov a,rO mov r1 ,a mov a,r2 mov r5,a dec r5 clr fO

15、paixl: mov a,r1 inc r1 clr csubb a,r1 jnc paix2 setb fO add a5r1 xch a5r1 dec r1 mov r1 ,a inc r1 paix2: djnz r5,paix1 jnb f0,paix3 clr fO dec r2 cjne r2,#O1h5paixO paix3: pop acc pop psw ret ;T0 中斷程序名:timezd;出口參數:sbittimezd: mov th0,#3ch mov tlO,#ObOh djnz mjsz,timezd1 mov mjs乙#20 setb sbz timezdl:

16、 reti;溫度設置中斷程序名:temszzd;入口參數:szwd;出參數:szwd temszzd: push psw push acc clr rs1 setb rsO clr trO mov a,szwd Icall bcdzh Icall disp temszO: Icall wdog lead delay200ms jb s1 ,temszOa Ijmp temszOb temszOa: Ijmp retO temszOb: djnz smjsz,temszO mov smjs乙#15 clr szled wdogl: Icall wdog Icall delay200ms jnb

17、s1,wdogl Ijmp temsz2 temszl: Icall delay200ms djnz shmjsz,temsz2 mov shmjsz,#50 Ijmp retO temsz2: jb s2,temsz3 Icall delay20ms jb s2,temsz3 wdog2: Icall wdog Icall delay200ms jrib s2,wdog2 inc szwd mov a,szwd cjne a,#52,temsz2a mov a,#51 mov szwd,a temsz2a: Icall bcdzh Icall disp mov shmjsz,#50 sjmp

18、 temsz2 temsz3: jb s3,temsz4Icall delay20ms jb s3,temsz4 wdog3: Icall wdogIcall delay200ms jnb s3,wdog3 dec szwd mov a,szwdcjne a5#255,temsz3a mov a5#0 mov szwd,a temsz3a: Icall bcdzh Icall dispmov shmjsz,#50 sjmp temsz2 temsz4: jb s4,temszl Icall delay20ms jbs4,temszl wdog4: Icall wdogIcall delay20

19、0ms jnb s4,wdog4 Icall xierom retO: setb szledmov a,adpjIcall bcdzh Icall disp Icall wdogsetb trO pop acc pop psw reti;bcd碼轉換子程序名:bcdzh;入口參數:a;出參數:swwdgwwdbcdzh: push psw push bmov b,#10 div ab mov swwd,amov gwwd,bpop bpop pswret;溫度比較子程序名:tembj;入口參數:adpj、szwd;出參數 :wdkz tembj: push psw push acc mov a

20、,adpj cjne a,szwd,tembjO tembjO: jc tembjl setb wdkz sjmp tembj3 tembjl: add a,#2 cjne a5szwd,tembj2 tembj2: jnc tembj3 clr wdkz tembj3: pop acc pop psw ret ;讀 ROM 子程序名:durom;出口參數:adurom:push pswclr sda ;啟動 AT24C01 mov a,#0a0h Icall a_sendmov a,#08h Icall a_sendsetb scl setb sdaclr sda mov a,#0a1 h

21、Icall a_send Icall a_receive clr sda nop nop setb sclnop nop setb sda pop psw ret;字節發送子程序名:a_send;入口參數:aa_send: push psw movr0,#08h a_send1: clr scl rlca mov sda5c nop setb sclnop nop nop djnzrO5a_sencH clr scl nop nopnop setb scl ajoop: movc5sda jc ajoop clr scl poppsw ret;字節接收子程序名:a_receive;出參數:a

22、a_receive:push psw mov r0,#08h a_rec: setb scl nopnop mov c,sda rlc aclr scl nop nop djnz rO5a_rec setb sda nopnopsetb sclnopnop clr scl pop pswret;寫ROM子程序名:xierom;入口參數:szwd xierom: push pswpush acc setb scl setb sda clr sda mov a,#0a0h Icall a send mov a,#08h Icall a_send mov a,szwd Icall a_send cl

23、r sda nop nop setb scl nop nop setb sda Icall delay50ms pop acc pop pswret;延時 200mS 子程序名:delay200msdelay200ms: mov r7,#4dell: mov r6,#200 del2: mov r5,#123nopdjnz r5,$ djnz r6,del2 djnz r7,del1 ret;延時 50ms 子程序名:delay50ms delay50ms:mov r7,#200 delal: mov r6,#123 nop djnz r6,$djnz r7,delal ret;延時 20ms

24、 子程序名:delay20ms delay20ms:mov r7,#80 delayl: mov r6,#123 nop djnz r6,$djnz r7,delayl ret;看門狗子程序名:wdogwdog: clr wdi setb wdiclr wdi ret;顯示子程序disp;入參數:swwd gwwd disp: push pswpush accpush bmov dptr,#tab mov a,swwd cjne a,#OOh,nO mov a,#Offh ajmp n1 nO: movea,a+dptr n1: Icall zjfsmov a,gwwd move a,a+dptr Icall zjfspop bpop accpop psw retzjfs:mov r0,#08hclr czjfsl: rrc amov drxd5c setb dtxd nop nop nop nop nop nop clr dtxd nopnopnopnopnop nopdjnz rO,zjfs1rettab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hend四、系統調試硬件系統的調試(1) 看溫度檢測電路部

溫馨提示

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

評論

0/150

提交評論