溫度控制系統(tǒng)設(shè)計論文資料
溫度控制系統(tǒng)設(shè)計論文資料,溫度,控制系統(tǒng),設(shè)計,論文,資料
微型計算機控制技術(shù)課程設(shè)計 電阻爐溫度控制系統(tǒng)摘要:本設(shè)計采用直接數(shù)字控制(DDC)對加熱爐進行控制,使其溫度穩(wěn)定在在某一個值上。并且具有鍵盤輸入溫度給定值,LED數(shù)碼管顯示溫度值和溫度達到極限時提醒操作人員注意的功能。一 概述溫度是工業(yè)生產(chǎn)中常見的工藝參數(shù)之一,任何物理變化和化學反應(yīng)過程都與溫度密切相關(guān),因此溫度控制是生產(chǎn)自動化的重要任務(wù)。對于不同生產(chǎn)情況和工藝要求下的溫度控制,所采用的加熱方式,燃料,控制方案也有所不同。例如冶金、機械、食品、化工等各類工業(yè)生產(chǎn)中廣泛使用的各種加熱爐、熱處理爐、反應(yīng)爐等;燃料有煤氣、天然氣、油、電等;控制方案有直接數(shù)字控制(DDC),推斷控制,預測控制,模糊控制(Fuzzy),專家控制(Expert Control),魯棒控制(Robust Control),推理控制等。本設(shè)計的控制對象為一電加熱爐,輸入為加在電阻絲兩斷的電壓,輸出為電加熱爐內(nèi)的溫度。輸入和輸出的傳遞函數(shù)為:G(s)=2/(s(s+1)??販胤秶鸀?00500,所采用的控制方案為直接數(shù)字控制(DDC)中的最少拍控制。二溫度控制系統(tǒng)的組成框圖采用典型的反饋式溫度控制系統(tǒng),組成部分見下圖。其中數(shù)字控制器的功能由微型機算機實現(xiàn)。三 溫度控制系統(tǒng)結(jié)構(gòu)圖及總述A/D數(shù)字濾波I/V420mA變送器定時計數(shù)器SCR觸發(fā)回路電加熱爐SCR主回路8086CPU圖中由420mA變送器,I/V,A/D轉(zhuǎn)換器構(gòu)成輸入通道,用于采集爐內(nèi)的溫度信號。其中,變送器選用XTR101,它將熱電偶信號(溫度信號)變?yōu)?20mA電流輸出,再由高精密電流/電壓變換器RCV420將420mA電流信號變?yōu)?5V標準電壓信號,以供A/D轉(zhuǎn)換用。轉(zhuǎn)換后的數(shù)字量與與爐溫的給定值數(shù)字化后進行比較,即可得到實際爐溫和給定爐溫的偏差。爐溫的設(shè)定值由鍵盤輸入。由微型計算機構(gòu)成的數(shù)字控制器按最小拍進行運算,計算出所需要的控制量。數(shù)字控制器的輸出經(jīng)標度變換后送給8253,由8253定時計數(shù)器轉(zhuǎn)變?yōu)楦叩碗娖降牟煌掷m(xù)時間,送至SCR觸發(fā)電路,觸發(fā)晶閘管并改變其導通角大小,從而控制電加熱爐的加熱電壓,起到調(diào)溫的作用。四 溫度控制系統(tǒng)硬件與其詳細功能介紹1 微型計算機的選擇選擇8086微處理器構(gòu)成爐溫控制系統(tǒng),使其工作于最小方式下。并配備以8284A時鐘發(fā)生器,8282帶三態(tài)緩沖器的通用8位地址鎖存器,8286具有三態(tài)輸出的8位雙極型總線收發(fā)器。其中,時鐘發(fā)生器8284A為CPU提供時鐘信號,經(jīng)時鐘同步的系統(tǒng)復位信號RESET和準備就緒信號READY;地址鎖存器8282是針對于8086CPU地址/數(shù)據(jù)線分時復用而設(shè)計配備的,它可以在8086CPU總線周期的T1狀態(tài),利用ALE信號的下降沿將地址信息鎖存于其中;總線收發(fā)器8286是為了提高8086CPU數(shù)據(jù)總線的驅(qū)動能力2 SCR觸發(fā)回路和主回路如圖所示為一晶閘管觸發(fā)電路。包括脈沖觸發(fā)器(單穩(wěn)態(tài)電路,由IC1和IC2組成),控制門,光電耦合器4N25,放大器和雙向晶閘管。由全波整流電路得到的同步電壓使晶體管BG1每半波導通一次。當控制端為“1”高電平的時候,BG1的每次導通都會經(jīng)由單穩(wěn)電路由IC2輸出一個負脈沖,該脈沖經(jīng)IC3反向后由光電耦合器和放大電路發(fā)大后觸發(fā)晶閘管,在這一半周內(nèi)晶閘管基本上處于全導通狀態(tài)。若控制端為“0”低電平的時候,則單穩(wěn)態(tài)電路不輸出脈沖,在這一半周內(nèi)晶閘管也不導通。因此,可以改變控制端的電平,控制單穩(wěn)態(tài)電路每秒輸出的脈沖數(shù),從而改變晶閘管每秒鐘內(nèi)導通的時間,達到調(diào)壓的目的。與以下的電路相比較第一個電路的優(yōu)點在于晶閘管導通時基本處于全導通狀態(tài),因此波形較好,包含的諧波成分較少,因此對系統(tǒng)的干擾也較小。而第二個電路的缺點是加熱電阻兩端電壓波形很差,包含了較多的諧波成分,當晶閘關(guān)導通角較小時由為如此,這些些波電壓可能會對周圍系統(tǒng)產(chǎn)生影響。3 熱電偶的選擇熱電偶是常用的測溫元件,它利用不同材料的導體一端緊密連接在一起產(chǎn)生的熱電勢效應(yīng)將溫度信號轉(zhuǎn)換為電勢信號。本設(shè)計采用K型熱電偶鎳絡(luò)-鎳硅(線性度較好,熱電勢較大,靈敏度較高,穩(wěn)定性和復現(xiàn)性較好,抗氧化性強,價格便宜)對溫度進行檢測,參比端溫度為20。由以下公式可以計算出K型熱電偶分別在100,200,300,400,500時候的輸出電勢:E(100,20)=E(100,0)-E(20,0)=4.096mV-0.798 mV=3.298 mVE(200,20)=E(200,0)-E(20,0)=8.138mV-0.798 mV=7.34 mVE(300,20)=E(300,0)-E(20,0)=12.209mV-0.798 mV=11.411 mVE(400,20)=E(400,0)-E(20,0)=16.397mV-0.798 mV=15.599 mVE(500,20)=E(500,0)-E(20,0)=20.644mV-0.798 mV=19.846 mV4 420mA變送器XTR101XTR101為420mA線性化變送器,它可與鎳絡(luò)-鎳硅測溫傳感器構(gòu)成精密的T/I變換。器件中的放大器適合很寬的測溫范圍,在-40+85的工作溫度內(nèi),傳送電流的總誤差不超過1%,供電電源可以從11.6V到40V,輸入失調(diào)電壓2.5mV,輸入失調(diào)電流20nA。XTR101外形采用標準的14腳DIP封裝。(芯片內(nèi)部結(jié)構(gòu)與封裝見附錄)XTR101有如下兩種應(yīng)用于轉(zhuǎn)換溫度信號的典型電路:5 I/V轉(zhuǎn)換器RCV420RCV420是一種精密電流/電壓變換器,它能將420mA的環(huán)路電流變?yōu)?5V的電壓輸出,并且具有可靠的性能和很低的成本。除具有精密運放和電阻網(wǎng)絡(luò)外,還集成有10V基準電源。對環(huán)路電流由很好的變換能力。具有-25+85和070的工作溫度范圍,輸入失調(diào)電壓1mA,總的變換誤差0.1%,電源電壓范圍518V。RCV420的外形采用標準的16腳DIP封裝。(芯片內(nèi)部結(jié)構(gòu)與封裝見附錄)它的典型應(yīng)用如下:6 .A/D轉(zhuǎn)換器ADC0809ADC0809是美國國家半導體公司的CMOS型8位28條引腳A/D轉(zhuǎn)換器。采用逐次逼近技術(shù),輸出的數(shù)字信號由TTL三態(tài)緩沖器順序控制,可以直接與數(shù)據(jù)總線相連。分辨率為8位,精度為7位,時鐘頻率范圍在101280kHz之間,單一+5V電源供電,數(shù)據(jù)具有三態(tài)輸出能力,易于和微處理器相連。(芯片內(nèi)部結(jié)構(gòu)與封裝見附錄)ADC0809的典型應(yīng)用如下:7.定時計數(shù)器82538253是Intel公司的使用單一+5V電源供電,NMOS工藝制成的24條引腳的雙列直插式芯片。具有3個獨立的計數(shù)器,每一個都可以單獨作為定時器或者計數(shù)器使用,且都可以按照二進制或者十進制計數(shù),每個計數(shù)器計數(shù)速率高達2MHz,最高的技術(shù)速率可達2.6MHz。所有的輸入輸出引腳都與TTL電平兼容。(芯片內(nèi)部結(jié)構(gòu)與封裝見附錄)8253典型應(yīng)用如下圖所示:8.LED數(shù)碼管驅(qū)動芯片ICM7218AICM7218是一種多功能LED數(shù)碼管驅(qū)動芯片,能驅(qū)動8位共陽或者共陰數(shù)碼管,且輸出可以直接驅(qū)動LED顯示器。其內(nèi)部主要由控制器,8*8靜態(tài)RAM,BCS譯碼,B碼和顯示字段譯碼器,掃描振蕩控制電路和顯示驅(qū)動器等組成。ICM7218的外引線有寫入控制線2條:WR和MODE;數(shù)據(jù)線8條:ID0ID7;LED顯示驅(qū)動線16條;電源線2條。WR為寫選通信號,低電平有效。MODE為寫入控制字的寫入顯示數(shù)據(jù)控制線,當MODE=1時,寫控制字;當MODE=0是,寫數(shù)據(jù)。(芯片內(nèi)部結(jié)構(gòu)與封裝見附錄)典型應(yīng)用如下圖所示:9.可編程并行I/O接口芯片82C55A82C55A是Intel公司的并行I/O接口芯片,40條引腳,雙列直插式封裝。D0D7位三態(tài),雙向數(shù)據(jù)線,可與CPU總線直接相連。內(nèi)部由3個端口A,B,C。三個端口都具有8位數(shù)據(jù)輸出鎖存器,只有A端口具有輸入所鎖存器。(芯片內(nèi)部結(jié)構(gòu)與封裝見附錄)典型應(yīng)用如下圖所示:10.硬件地址分配列表A7A6A5A4A3A2A1A082C55AA口0001000010HB口0001001012HC口0001010014H控制口0001011016H8253計數(shù)器00000100004H控制口000011100EHADC0809START0000011006HOE000111101EHICM7218控制口0010000020H寫數(shù)據(jù)0000000000H五 溫度控制系統(tǒng)軟件設(shè)計1 溫度控制系統(tǒng)軟件結(jié)構(gòu)圖上圖所示的是單回路閉環(huán)溫度控制系統(tǒng),虛線框內(nèi)的某些功能有計算機來完成。2 總體流程圖NX-FF=0?A/D轉(zhuǎn)換結(jié)果經(jīng)數(shù)字濾波后送入NX單元數(shù)字濾波算法啟動A/D轉(zhuǎn)換從鍵盤讀入要設(shè)定的溫度值送到SET單元初始化82C55A,8253,ICM7218,數(shù)據(jù)段開 始紅燈響,警笛鳴,提醒操作人員 Y變換結(jié)果送入8253作為計數(shù)初值標度變換最小拍控制算法N工程量變換變換結(jié)果送入WN溫度的非線性轉(zhuǎn)換轉(zhuǎn)換后溫度值送入TEM單元顯 示3 模塊程序流程圖i. 數(shù)字濾波(采用程序判斷濾波的限速濾波)計算C=(C1-C2+C2-C3)/2計算C2-C3計算C1-C2限速濾波程序C2-C1C?NYC3-C2C?YC3送入NX單元C2送入NX單元(C2+C3)/2送入NX單元N注:C1,C2,C3分別為第一次采樣,第二次采樣, 第三次采樣值ii. 工程量變換程序模塊變送器XTR101輸出420mADC,溫度起點為100,滿量程為500。8位A/DADC0809輸出數(shù)字量00HFFH(05V),應(yīng)用以下變換公式進行變換:AX=A0+(AM-A0)(NX-N0)/(NM-N0)式中,A0為一次測量儀表的下限AM為一次測量儀表的上限AX實際測量值N0儀表下限對應(yīng)的數(shù)字量NM儀表上限對應(yīng)的數(shù)字量NX測量值對應(yīng)的數(shù)字量工程量變換流程圖如下:AM送入AL,A0送入BL計算AM-A0NX采樣值送入BL計算(AM-A0)*NX/NM計算A0+(AM-A0)*NX/NMAX內(nèi)容送入WN單元iii. 溫度非線性轉(zhuǎn)換程序模塊采用折線擬合法進行線性化處理如下圖所示,分為以下幾段:當3.298mVWN7.34mV時,T=24.47*WN+18.41當7.34mVWN11.411mV時,T=24.56*WN+19.70當11.411mVWN15.599mV時,T=23.88*WN+27.53當15.599mVWN19.846mV時,T=23.55*WN+32.71當19.846mVWN時,T=500分段如下圖所示:流程圖如下所示:溫度非線性轉(zhuǎn)換WN送入ALAL19.846?Y500送入TEMPNAL15.599?YWN=T=23.55*WN+32.71NAL11.411?YWN=T=23.88*WN+27.53NAL7.34?YWN=T=24.56*WN+19.70NWN=T=24.47*WN+18.414源程序STACK SEGMENT STACK DW 256 DUP(?)STACK ENDSDATASEGMENTSAVEBUFF DB 256 DUP(00H)TK DB64HK0 DB 00H,54H,35HK1 DB 01H,20H,00HK2 DB 00H,00H,00HK3 DB 00H,00H,00HP1 DB 00H,71H,70HP2 DB 00H,00H,00HP3 DB 00H,00H,00HSAVEMARK DB00HSAVEADDR DB0FFHCONTROLMARK DB00HEKB DB00HK0_16 DB00H,00H,00HK1_16 DB00H,00H,00HK2_16 DB00H,00H,00HK3_16 DB00H,00H,00HP1_16 DB00H,00H,00HP2_16 DB00H,00H,00HP3_16 DB00H,00H,00HEK DW0000HEKK DW0000HEK_1 DW0000HEK_2 DW0000HUK DW0000HUKK DW0000HUK_1 DW0000HUK_2 DW0000HOUTPUT DW0000HALLK_ALLP DW0000HSETDB?;溫度設(shè)定值NXDB?;濾波后A/D轉(zhuǎn)換值WNDB?;工程量變換結(jié)果SUMDBC1,C2,C3;A/D三次采樣值TEMDB?;顯示溫度8255PORTDW0010H,0012H,0014H,0016H;8255地址8253PORTDW0004H,000EH;8253地址0809PORTDW0006H,001EH;0809地址7218PORTDW0020H,0000H;7218地址DISPLAYDW?;顯示溫度二進制值DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA;初始化數(shù)據(jù)段各芯片MOVDS,AXMOVBX,OFFSET 8255PORTMOVDX,BX+3MOVAL,81H;方式0,C口底四出,其余入OUTDX,ALMOVBX,OFFSET 8253PORTMOVDX,BX+1MOVAL,00HOUTDX,AL;計數(shù)器0工作于方式0,二進制計數(shù)MOVBX,OFFSET 7218PORTMOVDX,BXMOVAL,A0HOUTDX,AL;十進制軟件譯碼KEYS:CALLKEYCHECK;鍵盤掃描程序JZKEYSCALL D10MSCALL KEYCHECKJZKEYSMOVAL,0FEHMOVAH,0MOVDX,BX+2OUTDX,ALMOVDX,BXINAL,DXCMPAL,1EHJZKEY1CMPAL,1DHJZKEY2CMPAL,1BHJZKEY3CMPAL,17HJZKEY4CMPAL,0FHJZKEY5JMPKEYSKEY1:MOVAH,00HJMPTRANSKEY2:MOVAH,44HJMPTRANSKEY3:MOVAH,88HJMPTRANSKEY4:MOVAH,CCHJMPTRANSKEY5:MOVAH,FFHJMPTRANSTRANS:MOVSET,AH;讀設(shè)定值到SET單元ADCH:MOVBX,OFFSET 0809PORT;啟動A/D轉(zhuǎn)換MOVDX,BXOUTDX,ALMOVX,BX+1CHANGE:INAL,DXTESTAL,80HJZCHANGEMOVDX,BXINAL,DXMOVAH,00HMOVCX,0003HMOVBX+AH,ALINCAHLOOPADCHFILTER:LEASI,SUM;數(shù)字濾波(限速濾波)MOVAL,SI+2SUBAL,SIJNCDONE1NEGALDONE1:MOVDL,ALMOVBL,SI+3SUBBL,SI+2JNCDONE2NEGBLDONE2:ADDAL,BLSHRAL,1CMPDL,ALMOVCL,SI+2JBEDONECMPBL,ALMOVCL,SI+3JBEDONEMOVAL,SI+2ADDAL,SI+3SHRAL,1MOVSI+3,ALMOVCL,ALDONE:MOVDL,SI+2MOVSI,DLMOVDL,SI+3MOVSI+2,DLMOVNX,CLCMPNX,0FFHJECAUTION;判斷是否該提醒操作人員?MOVBX,OFFSET 8255PORT;無提醒,則點亮綠燈MOVDX,BX+1MOVAL,01HOUTDX,ALCALLCONFIG;調(diào)數(shù)字控制器子程序CALLBIAODU;調(diào)標度變換子程序CALLGCBH;調(diào)工程量變換子程序CALLTEMBC;調(diào)溫度非線性補償子程序MOVBX,OFFSET PORT7218;溫度顯示程序MOVR1,DISPLAY;R1指向顯示緩沖區(qū)MOVR208H;R2作8位顯示計數(shù)器C-LOOP:MOVAL,00H;將8位顯示緩沖區(qū)中的數(shù)據(jù)送ICM7218AMOVDX,BX+1OUTDX,ALINC R1DJNZR2,C-LOOPBIAODUPROCNEAR;標度變換子程序RETBIAODUENDPGCBHPROCNEAR;工程量變換子程序RETGCBHENDPTEMBCPROCNEAR;溫度非線性補償子程序RETTEMBCENDPCONFIGPROCNEAR;數(shù)字控制器子程序PUSHDS XORAX,AX MOVDS,AX MOV AX,2000H+OFFSET IRQ7 MOV SI,003CH MOV SI,AX MOV AX,2000H+OFFSET IRQ6 MOV SI,0038H MOV SI,AX MOV AX,0000H MOV SI,003EH MOV SI,AX MOV SI,003AH MOV SI,AX CLI POPDS MOV AL,90H OUT 63H,AL MOV AL,0A4H OUT 43H,AL MOV AL,2EH OUT 42H,AL IN AL,21H AND AL,3FH OUT 21H,AL MOV SI,OFFSET P3+2 MOV BH,07H MOV DI,OFFSET P3_16+2 CALL CHANGE CALL CLEAR_E MOV AL,80H OUT 00H,AL MOV BL,01H MOV SAVEMARK,00H MOV SAVEADDR,0FFH AGAIN: STI HLT JMP AGAINIRQ6: MOV AL,80H OUT 00H,AL MOV AL,10H OUT 61H,AL MOV CONTROLMARK,AL MOV SAVEMARK,AL CALL CLEAR_E MOV BL,01H MOV AL,20H OUT 20H,AL IRETIRQ7: MOV AL,01H MOV CONTROLMARK,AL DEC BL JNZ FINISH CALL CY MOV EK,DX MOV AX,DX MOV DI,OFFSET K0_16 INC DI MOV DX,DI CALL ML MOV AX,ALLK_ALLP ADD DX,AX CALL OUT_PUT MOV DX,OUTPUT MOV UK,DX MOV SI,OFFSET UK_1 MOV DI,OFFSET UK_2 MOV BL,07H L1: MOV AX,SI MOV DI,AX DEC SI DEC SI DEC DI DECDI DEC BL JNZ L1 MOV AX,0000H MOV ALLK_ALLP,AX MOV SI,OFFSET K1_16 MOV DI,OFFSET EKK MOV CX,0003H CALL L2 MOV SI,OFFSET P1_16 MOV DI,OFFSET UKK MOV CX,0103H CALL L2 MOV BL,TK FINISH: MOV AL,20H OUT 20H,AL IRETL2: INC SI MOV DX,SI MOV AX,DI CALL ML DEC SI TEST BYTE PTRSI,01H JNZ QBLL: INC SI INC SI INC SI INC DI INC DI MOV AX,ALLK_ALLP CMP CH,00H JNZ L3 ADD DX,AX L4: MOV ALLK_ALLP,DX DEC CL JNZ L2 RETL3: XCHG DX,AX SUB DX,AX JMP L4QB: NEG DX JMP LLML: CMP DX,7FFFH JA ML1 IMUL DX RETML1: PUSH BX PUSH CX PUSH AX SUB DX,7FFFH IMUL DX MOV BX,DX MOV CX,AX POP AX MOV DX,7FFFH IMUL DX ADD AX,CX ADC DX,BX POP CX POP BX RETCY: IN AL,60H SUB AL,80H MOV EKB,AL CALL SAVEEK MOV DX,0000H MOV DH,AL MOV CL,03H SAR DX,CL RETSAVEEK: MOV AH,AL MOV DX,OFFSET SAVEBUFF MOV AL,CONTROLMARK CMP AL,00H JZ L5 MOV AL,SAVEMARK CMP AL,01H JZ L5 MOV AL,SAVEADDR CMP AL,0FEH JZ L6 INC AL MOV DL,AL MOV SAVEADDR,AL PUSH DI MOV DI,DX MOV DI,AH POP DIL5: MOV AL,AH RETL6: INC SAVEMARK JMP L5OUT_PUT: MOV OUTPUT,DX TEST DH,80H JZ L7 MOV BX,0F000H SUB DX,BX JG L8 MOV DX,0F000H MOV AL,80H OUT 61H,AL JMP L9L7: MOV BX,0FFFH SUB DX,BX JG L10L8: MOV DX,OUTPUT JMP L11L10: MOV DX,0FFFH MOV AL,80H OUT 61H,ALL9: MOV OUTPUT,DXL11: MOV CL,03H MOV AL,CONTROLMARK CMP AL,00H JZ L12 SHL DX,CL MOV AL,DH ADD AL,80H OUT 00H,ALL12: RETCHANGE: DEC SI MOV CX,SI INC SI AND AL,AL MOV DX,0000H MOV BL,10HGO: MOV AL,SI ADD AL,AL DAA MOV SI,AL DEC SI MOV AL,SI ADC AL,AL DAA RCL DX,0001H MOV SI,AL INC SI DEC BL JNZ GO DEC SI MOV SI,CX DEC SI MOV AL,SI DEC DI MOV DI,DX DEC SI DEC DI MOV DI,AL DEC DI DEC BH JNZ CHANGE RETCLEAR_E: MOV AX,0000H MOV ALLK_ALLP,AX MOV SI,OFFSET EK MOV BL,08H GOON: MOV SI,AX INC SI INC SI DEC BL JNZ GOON RETDELAY: PUSH CX MOV CX,1000HDEL1: PUSH AX POP AX LOOP DEL1 POP CX RETCONFIGENDPKEYCHECK PROCNEAR;檢查是否有鍵按下子程序MOVAL,00HMOVDX,BX+2OUTDX,ALMOVDX,BXINAL,DXCMPAL,1FHRETKEYCHECKEDNPD10MSPROCNEAR;延時子程序PUSHCXWAIT1:MOVCX,2801WAIT2:LOOPWAIT2DECBXJNZWAIT1RETD10MSENDPCAUTION:MOVBX,OFFSET 8255PORT;提醒操作人員MOVDX,BX+1MOVAL,02HOUTDX,AL;提醒燈亮,鳴警報CODEENDSENDSTART六 驗室模擬結(jié)果1.數(shù)字控制器計算G(Z)=Z(1-e-Ts)/s*2/(s(s+1) (串入零階保持器)=(1-z-1)Z 2/(s2(s+1)=(1-z-1)*2z/(z-e-T)-2z(z-T-1)/(z-1)2 =(0.244-0.012z-1)/(1+0.39 z-1)(采樣周期2秒)2.模擬臺硬件連接圖3.實驗室模擬結(jié)果七 芯片資料1 8086CPU 內(nèi)部結(jié)構(gòu)封裝及引腳總線周期2 定時計數(shù)器8253 內(nèi)部結(jié)構(gòu) 封裝及引腳圖3 可編程并行I/O接口芯片82C55A 內(nèi)部結(jié)構(gòu) 封裝及引腳圖4 LED數(shù)碼管驅(qū)動芯片ICM7218A封裝及引腳圖5 420mA變送器XTR101 內(nèi)部結(jié)構(gòu) 封裝及引腳圖5. I/V轉(zhuǎn)換器RCV420 內(nèi)部結(jié)構(gòu) 封裝及引腳圖6.A/D轉(zhuǎn)換器ADC0809 內(nèi)部結(jié)構(gòu) 封裝及引腳圖7. OC門74LS06 內(nèi)部結(jié)構(gòu) 封裝及引腳圖七 計總結(jié)與擴展1 總結(jié)這次課程設(shè)計,遇到了很多方面的問題,在老師的輔導,同學的幫助下,很好的解決了這些問題。第一次把微機原理及接口與微型計算機控制技術(shù)兩門課程綜合起來,學會了很多新的東西。這些東西不僅僅只是知識方面的,也有能力方面的提高了自己查閱各種資料,分析和解決問題的能力以及一種實事求是的精神。這份設(shè)計的優(yōu)點在于:SCR觸發(fā)回路的設(shè)計,很大程度上減少了諧波對系統(tǒng)的干擾;變送器XTR101和I/V轉(zhuǎn)換器RCV420的配合,可以使得最后的信號可遠傳;K型熱電偶鎳絡(luò)-鎳硅的選擇,線性度好,使得測量結(jié)果精確。這份設(shè)計的缺點在于:雖然K型熱電偶的線性度好,但由于測量點,數(shù)據(jù)處理方法的單一化,以及疏失誤差的產(chǎn)生,會對結(jié)果產(chǎn)生不確定的影響;顯示方面過于單一化;沒有對SCR進行有效的保護;最小拍有波紋控制控制方案的粗糙性;系統(tǒng)正常工作保證性不強,在某些重要的生產(chǎn)場合可能造成停產(chǎn)的概率大。針對以上缺點,提出以下解決方案:2 擴展 針對測量點的單一化采用基于多傳感器算術(shù)平均值與分批估計相結(jié)合的爐溫測量方法對有限個溫度傳感器測量結(jié)果中剔除了疏失誤差的一致性測量數(shù)據(jù)進行融合計算,就可以獲得比有限個測量數(shù)據(jù)的算術(shù)平均值更可靠的測量結(jié)果,可以提高測量的準確性。詳見參考資料9 針對顯示的單一化采用無紙記錄儀對參數(shù)進行動態(tài)顯示,畫面直觀,生動,形象。適合于某些比較重要的工控場合。 針對SCR的保護可以在SCR回路加快融,以保護SCR。詳見參考資料8,10。 針對控制方案的粗糙性可以采用Fuzzy+PID控制器結(jié)構(gòu),模糊控制響應(yīng)速度快,過度時間短,魯棒性好。當被控溫區(qū)出現(xiàn)較大溫差時,采用模糊控制以提高控制速度。當被控溫區(qū)溫度與實際溫度相差較小時,切換PID控制。詳見參考資料9 針對系統(tǒng)正常工作的可靠性可以采用冗余系統(tǒng),配備兩個8086CPU,并以相應(yīng)的軟件支持,當一個因以外停止時,另一個自動切換工作;也可以采用自動手動無擾動切換裝置和看門狗電路,當系統(tǒng)出現(xiàn)以外故障時,看門狗重新啟動系統(tǒng)。此時由自動到手動切換,正常時候,再切換到自動;還可以冗余指令,每當CPU受到干擾后,往往把操作數(shù)當作指令代碼來執(zhí)行,程序出現(xiàn)彈飛。為擬制彈飛,可以在程序中加入不可能把操作數(shù)當作指令代碼來執(zhí)行的兩個字節(jié)的空操作指令。此種方法詳見參考資料9九參考資料1. 潘新民,王燕芳編著.微型計算機控制技術(shù).北京:高等教育出版社,20012. 譚浩強編著.C語言程序設(shè)計.北京:清華大學出版社,19993. 段承先編著.微型計算機原理及接口技術(shù).北京:兵器工業(yè)出版社,20004. 黃國建,虞平良,曾芬芳編著.微型機算機應(yīng)用技術(shù).上海:上海交通大學出版社,19955. 楊振江,孫占彪,王曙梅,步線濤編著.智能儀器與數(shù)據(jù)采集系統(tǒng)中的新器件及應(yīng)用.西安:西安電子科技大學出版社,20016. 王俊杰編著.檢測技術(shù)與儀表.武漢:武漢理工大學出版社,20027. 孟華編著.工業(yè)過程檢測與控制.北京:北京航空航天大學出版社,20028. 丁書文,黃訓誠,胡啟宙編著.變電站綜合自動化原理及應(yīng)用.北京:中國電力出版社,20039. 滕召勝,羅隆福,童調(diào)生編著.智能檢測系統(tǒng)與數(shù)據(jù)融合.北京:機械工業(yè)出版社,200010. 王兆安,黃俊.電力電子技術(shù).北京:機械工業(yè)出版社,2001十. 詳細電路原理圖用Protel2000繪制28目錄第一章 設(shè)計背景及設(shè)計意義 2第二章 系統(tǒng)方案設(shè)計 3第三章 硬件.53.1 溫度檢測和變送器53.2 溫度控制電路63.3 A/D轉(zhuǎn)換電路 73.4 報警電路 83.5 看門狗電路 83.6 顯示電路 103.7 電源電路12第四章 軟件設(shè)計 144.1 軟件實現(xiàn)方法 144.2 總體程序流程圖 154.3 程序清單 19第五章 設(shè)計感想 29第六章 參考文獻30第七章 附錄 317.1 硬件清單 317.2 硬件布線圖 31第一章 設(shè)計背景及研究意義機械制造行業(yè)中,用于金屬熱處理的加熱爐,需要消耗大量的電能,而且溫度控制是純滯后的一階慣性環(huán)節(jié)?,F(xiàn)有企業(yè)多采用常規(guī)儀表加接觸器的斷續(xù)控制,隨著科技進步和生產(chǎn)的發(fā)展,這類設(shè)備對溫度的控制要求越來越高,除控溫精度外,對溫度上升速度及下降速度也提出了可控要求,顯而易見常規(guī)控制難于滿足這些工藝要求。隨著微電子技術(shù)及電力電子技術(shù)的發(fā)展,采用功能強、體積小、價格低的智能化溫度控制裝置控制加熱爐已成為現(xiàn)實。自動控制系統(tǒng)在各個領(lǐng)域尤其是工業(yè)領(lǐng)域中有著及其廣泛的應(yīng)用,溫度控制是控制系統(tǒng)中最為常見的控制類型之一。隨著單片機技術(shù)的飛速發(fā)展,通過單片機對被控對象進行控制日益成為今后自動控制領(lǐng)域的一個重要發(fā)展方向。在現(xiàn)代化的工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機械制造和食品加工等諸多領(lǐng)域中,人們都需要對各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進行檢測和控制。對工件的處理溫度要求嚴格控制,計算機溫度控制系統(tǒng)使溫度控制指標得到了大幅度提高。采用MCS-51單片機來對溫度進行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術(shù)指標,從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機對溫度的控制問題是一個工業(yè)生產(chǎn)中經(jīng)常會遇到的問題。, 第二章 系統(tǒng)方案的設(shè)計這次課程設(shè)計題目為熱電偶構(gòu)成的熱處理爐的溫度控制系統(tǒng), 技術(shù)要求:1.設(shè)定溫度范圍為0999 2.溫度顯示為0999 3.到設(shè)定溫度報警熱處理爐爐溫控制系統(tǒng)的控制過程是:單片機定時對爐溫進行檢測,經(jīng)A/D轉(zhuǎn)換芯片得到相應(yīng)的數(shù)字量,經(jīng)過計算機進行數(shù)據(jù)轉(zhuǎn)換,得到應(yīng)有的控制量,去控制加熱功率,從而實現(xiàn)對溫度的控制。如下圖所示:進行系統(tǒng)設(shè)計時應(yīng)考慮如下問題:1.爐溫變化規(guī)律的控制,即爐溫按預定的溫度時間關(guān)系變化。 2.溫度控制范圍:如01000,這就涉及到測溫元件、電爐功率的選擇等。3.控制精度、超調(diào)量等指標,這涉及到A/D轉(zhuǎn)換精度、控制規(guī)律選擇等。溫控系統(tǒng)主要由溫度傳感器、溫度調(diào)節(jié)儀、執(zhí)行裝置、被控對象四個部分組成,其系統(tǒng)結(jié)構(gòu)圖如圖1所示。被控制對象是大容量、大慣性的電熱爐溫度對象,是典型的多階容積遲后特性,在工程上往往近似為包含有純滯后的二階容積遲后;由于被控對象電容量大,通常采用可控硅作調(diào)節(jié)器的執(zhí)行器,其具體的電路圖如圖2所示。 調(diào)節(jié)加熱爐的溫度,在工業(yè)上是通過在設(shè)定周期范圍內(nèi),將電路接通幾個周波,然后斷開幾個周波,改變晶閘管在設(shè)定周期內(nèi)通斷時間的比例,來調(diào)節(jié)負載兩端交流平均電壓即負載功率,這就是通常所說的調(diào)功器或周波控制器;調(diào)功器是在電源電壓過零時觸發(fā)晶閘管導通的,所以負載上得到的是完整的正弦波,調(diào)節(jié)的只是設(shè)定周期Tc內(nèi)導通的電壓周波。如圖3所示,設(shè)周期Tc內(nèi)導通的周期的波數(shù)為n,每個周波的周期為T,則調(diào)功器的輸出功率為P=nTPn/Tc,Pn為設(shè)定周期Tc內(nèi)電壓全通過時裝置的輸出功率。第三章 硬件的設(shè)計3.1 溫度檢測和變送器 溫度檢測元件和變送器的類型選擇與被控溫度的范圍和精度等級有關(guān)。鎳鉻/鎳鋁熱電偶適用于0-1000的溫度檢測范圍,相應(yīng)輸出電壓為0mV-41.32mV。 變送器由毫伏變送器和電流/電壓變送器組成:毫伏變送器用于把熱電偶輸出的0mV-41.32mV變換成4mA-20mA的電流;電流/電壓變送器用于把毫伏變送器輸出的4mA-20mA電流變換成0-5V的電壓。為了提高測量精度,變送器可以進行零點遷移。例如:若溫度測量范圍為500-1000,則熱電偶輸出為20.6mV-41.32mV,毫伏變送器零點遷移后輸出4mA-20mA范圍電流。這樣,采用8位A/D轉(zhuǎn)換器就可使量化溫度達到1.96以內(nèi)。其在控制系統(tǒng)的作用如下圖所示:熱處理爐 圖1:溫度檢測電路3.2 溫度控制電路8051對溫度的控制是通過雙向可控硅實現(xiàn)的。如圖一所示,雙向可控硅管和加熱絲串接在交流220V、50Hz市電回路。在給定周期T內(nèi),8051只要改變可控硅管的接通時間即可改變加熱絲的功率,以達到調(diào)節(jié)溫度的目的??煽毓杞油〞r間可以通過可控硅控制極上觸發(fā)脈沖控制。該觸發(fā)脈沖由8051用軟件在P2.1引腳上產(chǎn)生,在過零同步脈沖同步后經(jīng)光電耦合管和驅(qū)動器輸出送到可控硅的控控制系統(tǒng)的制極上。圖1:調(diào)溫電路3.3 A/D轉(zhuǎn)換電路ADC0809是一種比較典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,CMOS工藝,可實現(xiàn)8路模擬信號的分時采集,片內(nèi)有8路模擬選通開關(guān),以及相應(yīng)的通道地址鎖存用譯碼電路,其轉(zhuǎn)換時間為100s左右,采用雙排28引腳封裝,其主要性能指標如下:1、分辨率為8位二進制數(shù);2、電壓范圍在0+5V,對應(yīng)A/D值00HFFH;3、每路A/D轉(zhuǎn)換完成時間100ms;4、可分時進行8路A/D轉(zhuǎn)換;5、工作頻率500KHz(本電路由8051ALE端輸出經(jīng)4分頻后得到)。引腳功能如下:IN0IN7:8路0+5V模擬電壓輸入(用IN0端);DB7DB0:8位數(shù)字輸出線,輸出8位A/D轉(zhuǎn)換值;STAST:啟動A/D轉(zhuǎn)換端;EOC:A/D轉(zhuǎn)換完成端;OE:允許數(shù)字量輸出信號;CLOCK:時鐘500KHz;ADD A、B、C:IN0IN7地址選擇線;ALE:地址鎖存允許輸入信號。A/D轉(zhuǎn)換器0809與放大電路連接較簡單,運放接成比例放大形式,放大倍數(shù)可調(diào),總體A/D轉(zhuǎn)換與8051接口電路如下:3.4 報警電路 報警電路的作用主要是在溫度超過規(guī)定的溫度或低于下限溫度或達到預定溫度時,報警子程序就會控制報警信號的輸出,溫度低與或高于規(guī)定的溫度范圍以及達到規(guī)定的溫度時,音頻裝置就會發(fā)出不同頻率的告警信號,同時相應(yīng)的LED顯示,到底是高了還是低了,以便與自動調(diào)節(jié)。報警電路如下圖: 圖1:報警電路3.5看門狗電路計算機看門狗控制卡是為了使計算機或工控機在系統(tǒng)出現(xiàn)異常時,能自動控制計算機進行重新啟動,使系統(tǒng)恢復正常運行,保證系統(tǒng)24小時不間斷正常工作。該控制卡可運用于無人職守的場所。像采用計算機作為存儲設(shè)備的數(shù)字硬盤錄像系統(tǒng),公路卡口監(jiān)控記錄設(shè)備等。特點: 可固定在計算機內(nèi)部并且不占用計算機任何插槽。 借電方便,可利用計算機本身的軟驅(qū)電源接口。 通過計算機并口或者串口跟計算機通訊。 計算機操作系統(tǒng)發(fā)生死機后,30秒(時間可設(shè)置)內(nèi)控制卡控制計算機重新啟動。 控制卡內(nèi)有信號燈,在正常工作時有頻率穩(wěn)定持續(xù)的燈光閃動。 提供開發(fā)控件,可啟動看門狗功能、停止看門狗功能、設(shè)置串口還是并口。 有兩種型號的控制卡,有自帶RS232轉(zhuǎn)485的功能的控制卡?,F(xiàn)以MAX706監(jiān)控電路為例(見圖1)來說明“看門狗”硬件電路的工作過程,我們知道,MAX706是一種性能優(yōu)良的低功耗CMOS監(jiān)控電路芯片,其內(nèi)部電路由上電復位、可重觸發(fā)“看門狗”定時器及電壓比較器等組成2。MAX706只要在1.6秒時間內(nèi)檢測到WCI引腳有高低電平跳變信號,則“看門狗”定時器清零并重新開始計時;若超出1.6秒后,WCI引腳仍無高低電平跳變信號,則“看門狗”定時器溢出,WDO引腳輸出低電平,進而觸發(fā)MR手動復位引腳,使MAC706復位,從而使“看門狗”定時器清零并重新開始計時,WDO引腳輸出高電平,MAX706的RST復位輸出引腳輸出大約200毫秒寬度的低電平脈沖,使單片機控制系統(tǒng)可靠復位,重新投入正常運行。圖1:看門狗電路3.6 顯示電路 單片機與顯示器的接口電路圖圖MC14495內(nèi)部邏輯結(jié)構(gòu)及引腳 圖用MC14495組成多位LED靜態(tài)顯示器接口 程序:DIR: SETB RS0 ;保護第0組工作寄存器 PUSH A ;保護現(xiàn)場 MOV R2, #03H ;顯示位數(shù)計數(shù) MOV R1, #00H ;設(shè)位碼初值,初態(tài)從LED7開始 MOV R0, #DIS7 ;顯示緩沖區(qū)末地址送R0DIR0: MOV A, RO ;取待顯示的數(shù)據(jù) AND A, #07H ;屏蔽高3位,保留低4位BCD碼 MOV R3, A ;暫存R3中 MOV A, R1 ;位選碼值送A SWAP A ;位碼交換到高4位 ADD A, R3 ;合并形成輸出的BCD碼和位選碼 MOV P1,A ;輸出到P1口 INC R1 ;位碼加1指向下一位 DJNZ R2, DIR0 ;8個位未顯示完重復 CLR RS0 ;顯示完恢復第0組工作寄存器 POP A RET ;返回主程序 3.7 電源電路 本模塊將交流 220V輸入電壓變?yōu)?組直流電壓,其中5V電壓為CPU等數(shù)字電路提供電源;15V電壓為運放等模擬芯片提供電源;24V電壓為溫度變送器提供電源。 220v市電經(jīng)變壓器輸出兩組獨立的25v交流,橋堆整流,大電容濾波得到 + 35v直流,再加一個0.1uF小電容濾出電源中的高頻分量??紤]到制作過程中電源空載似的電容放電可在輸出電容并上1k大功率電阻。另外這組直流還要給7812、7912來獲得 + 12v。 電源模塊如下圖: 圖1:5V直流穩(wěn)壓源電路圖2: + 12V/24V直流穩(wěn)壓源的原理電路第四章 軟件的設(shè)計4.1 軟件實現(xiàn)方法根據(jù)熱處理爐在上電復位后先處于停止加熱狀態(tài),這時可以用“+1”鍵設(shè)定預置溫度,顯示器顯示預定溫度;溫度設(shè)定好后就可以按啟動鍵啟動系統(tǒng)工作了。溫度檢測系統(tǒng)不斷定時檢測當前溫度,并送往顯示器顯示,達到預定值后停止加熱并顯示當前溫度;當溫度下降到下限(比預定值低3)時再啟動加熱。這樣不斷重復上述過程,使溫度保持在預定溫度范圍之內(nèi)。啟動后不能再修改預置溫度,必須按復位/停止鍵回到停止加熱狀態(tài)再重新設(shè)定預置溫度。爐溫控制是這樣一個反饋調(diào)節(jié)過程,比較實際爐溫和需要爐溫得到偏差,通過對偏差的處理獲得控制信號,去調(diào)節(jié)電阻爐的熱功率,從而實現(xiàn)對爐溫的控制。按照偏差的比例、積分和微分產(chǎn)生控制作用(PID控制),是過程控制中應(yīng)用最廣泛的一種控制形式。系統(tǒng)控制程序采用兩重中斷嵌套方式設(shè)計。首先使T0計數(shù)器產(chǎn)生定時中斷,作為本系統(tǒng)的采樣周期。在中斷服務(wù)程序中啟動A/D,讀入采樣數(shù)據(jù),進行數(shù)字濾波、上下限報警處理,PID計算,然后輸出控制脈沖信號。脈沖寬度由T1計數(shù)器溢出中斷決定。在等待T1中斷時,將本次采樣值轉(zhuǎn)換成對應(yīng)的溫度值放入顯示緩沖區(qū),然后調(diào)用顯示子程序。從T1中斷返回后,再從T0中斷返回主程序并且、繼續(xù)顯示本次采樣溫度,等待下次T0中斷。1)二位式調(diào)節(jié)-它只有開、關(guān)兩種狀態(tài),當爐溫低于限給定值時執(zhí)行器全開;當爐溫高于給定值時執(zhí)行器全閉。(執(zhí)行器一般選用接觸器)2)三位式調(diào)節(jié)-它有上下限兩個給定值,當爐溫低于下限給定值時招待器全開;當爐溫在上、下限給定值之間時執(zhí)行器部分開啟;當爐溫超過上限給定值時執(zhí)行器全閉。3)比例調(diào)節(jié)(P調(diào)節(jié))-調(diào)節(jié)器的輸出信號(M)和偏差輸入(e)成比例。即:M=ke。式中:K-比例系數(shù)比例調(diào)節(jié)器的輸入、輸出量之間任何時刻都存在-對應(yīng)的比例關(guān)系,因此爐溫變化經(jīng)比例調(diào)節(jié)達到平衡時,爐溫不能加復到給定值時的偏差-稱“靜差”4)比例積分(PI)調(diào)節(jié)-為了“靜差”,在比例調(diào)節(jié)中添加積分(I)調(diào)節(jié)積分,調(diào)節(jié)是指調(diào)節(jié)器的輸出信號與偏差存在隨時間的增長而增強,直到偏差消除才無輸出信號,故能消除“靜差”比例調(diào)節(jié)和積分調(diào)節(jié)的組合稱為比例積分調(diào)節(jié).5) 比例積分微分(PID)調(diào)節(jié)-比例積分調(diào)節(jié)會使調(diào)節(jié)過程增長,溫度的波動幅值增大,為此再引入微分(D)調(diào)節(jié)。微分調(diào)節(jié)是指調(diào)節(jié)器的輸出與偏差對時間的微分成比例,微分調(diào)節(jié)器在溫度有變化“苗頭”時就有調(diào)節(jié)信號輸出,變化速度越快、輸出信號越強,故能加快調(diào)節(jié)速度,降低溫度波動幅度,比例調(diào)節(jié)、積分調(diào)節(jié)和微分調(diào)節(jié)的組合稱為比例積分微分調(diào)節(jié)。(一般采用晶閘管調(diào)節(jié)器為執(zhí)行器)。根據(jù)生產(chǎn)現(xiàn)場的運行情況,這種控溫方法,精度比較高,系統(tǒng)性能穩(wěn)定,滿足生產(chǎn)的實際需要。主要設(shè)備:熱電偶或熱電阻,智能PID溫控儀,可控硅觸發(fā)調(diào)功器等。4.2 總體程序流程圖溫度控制程序的設(shè)計應(yīng)考慮如下:1)鍵盤掃描、鍵碼識別和溫度顯示;2)爐溫采樣、數(shù)字濾波;3)數(shù)據(jù)處理;4)越限報警和處理;5)PID計算、溫度標度轉(zhuǎn)換4.2.1主程序框圖主程序包括8051本身的初始化等等。大體說來,本程序包括設(shè)置有關(guān)標志、暫存單元和顯示緩沖區(qū)清零、T0初始化、CPU開中斷、溫度顯示和鍵盤掃描程序 主程序在主程序中首先給定PID算法的參數(shù)值,然后通過循環(huán)顯示當前溫度,并且設(shè)定鍵盤外部中斷為最高優(yōu)先級,以便能實時響應(yīng)鍵盤處理;軟件設(shè)定定時器T0為5秒定時,在無鍵盤響應(yīng)時每隔5秒響應(yīng)一次,以用來采集經(jīng)過AD轉(zhuǎn)換的溫度信號;設(shè)定定時器T1為嵌套在T0之中的定時中斷,初值由PID算法子程序提供。在主程序中必須分配好每一部分子程序的起始地址,形式如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTO ORG 000BH AJMP TT0 ORG 001BH AJMP TT1 4.2.2中斷服務(wù)程序框圖T0中斷服務(wù)程序是溫度控制系統(tǒng)的主體程序,用于啟動數(shù)/模轉(zhuǎn)換器、讀入采樣數(shù)據(jù)、數(shù)字濾波、越限溫度報警和越限處理、PID計算和輸出可控硅的觸發(fā)脈沖等。P1.3引腳上輸出的該同步觸發(fā)脈沖寬度由T1計數(shù)器的溢出中斷控制,8051利用等待T1溢出中斷的空閑時間(形成P1.3輸出脈沖頂寬)完成把本次采樣值轉(zhuǎn)換成顯示值而放入顯示單元緩沖區(qū)和調(diào)用溫度顯示程序。8051從T1中斷服務(wù)程序返回后即可恢復現(xiàn)場和返回主程序。系統(tǒng)軟件采用中斷方式編程,主要部分是時鐘中斷程序,主要由輸入處理程序、控制算法程序、顯示處理、輸出處理和自診斷程序等組成,其流程圖如圖2所示。儀表通電啟動后,初始化程序進行時間給定,每隔500ms時鐘中斷一次,中斷后進入時鐘中斷處理。對于純滯后,大慣性環(huán)節(jié)控制對象,一般采用積分分離PID控制算法。在一般的PID控制中,當系統(tǒng)有較大的擾動或設(shè)定值較大幅度提降時,由于偏差較大及系統(tǒng)存在慣性和滯后,在積分項的作用下,會產(chǎn)生較大的超調(diào)和長時間波動,在溫度緩慢變化過程中這一現(xiàn)象尤為嚴重,為此采用積分分離措施,即在偏差較大時,取消積分作用,偏差較小時,才將積分作用投入。中斷服務(wù)程序框圖 4.3 程序清單4.3.1 報警電路子程序1.子程序框圖 2.報警子程序: FLAGBIT 00HORG 00HSTART:JB P1.7,STARTJNB FLAG,NEXTMOV R2,#200DV:CPL P2.2LCALL DELY500LCALL DELY500DJNZ R2,DVCPL FLAGNEXT:MOV R2,#200DV1:CPL P1.0LCALL DELY500DJNZ R2,DV1CPL FLAGSJMP STARTDELY500: MOV R7,#250LOOP: NOP DJNZ R7,LOOP RET END4.3.2 鍵盤顯示管理程序。為了使8279具有合適的鍵盤、顯示功能,首先要對芯片初始化??蛇m當?shù)靥暨x8279的控制字,例如:使8279具有8位顯示、右端輸入、編碼鍵盤、雙鍵鎖定時可選控制字10H.這時每次按鍵都將產(chǎn)生鍵特征碼,并且存放在FIFOROM中,同時使8279的IRQ引腳變?yōu)楦唠娖?,可作為向CPU申請中斷信號,如果CPU是中斷開放的,則轉(zhuǎn)向中斷服務(wù)程序,可在中斷服務(wù)程序中讀取特征碼。每當CPU讀取FIFOROM中的數(shù)據(jù)后,8279自動撤消IRQ信號,IRQ引腳變?yōu)榈碗娖?。CPU返回主程序后,可由鍵特征碼來決定程序的流向。問題是,當CPU從8279的FIFOROM中讀取鍵特征碼后,IRQ雖然恢復底電平,但FIFOROM中的數(shù)據(jù)并沒有消失,仍保存在里面,這時即使使用對改8279清除的指令D3H,也不能將FIFOROM中的數(shù)改變,只有按其它鍵才能改變FIFOROM中的數(shù)據(jù),因這樣是無法實現(xiàn)按鈕功能的。為了使鍵盤具有按鈕功能,應(yīng)該利用8279的傳感方式功能,在傳感器方式中,8279每當檢測到傳感狀態(tài)變化時,IRQ就變?yōu)楦唠娖?,圖1是以8051CPU構(gòu)成的系統(tǒng)為例,說明IRQ引腳電平的翻新過程。 8279的IRQ端經(jīng)反相器接到8051的INT1端(即P3.3引腳)。先將8279設(shè)置成編碼鍵盤,允許INT1中斷,當鍵按下時,反相器輸出低電平,CPU進入中斷服務(wù)程序,讀取鍵特征碼后,又為高電平。返回主程序后,轉(zhuǎn)向功能程序(例如調(diào)模進)。輸出控制信號(例如P1.0為“1”時調(diào)模進電磁閥得電)后,將8279設(shè)置為傳感器方式,并且不允許INT1中斷,然后調(diào)試P3.3是否為低電平。如果按鍵松開,8279將測出傳感器狀態(tài)發(fā)生變化,而使IRQ由低電平轉(zhuǎn)為高電平。也就是說P3.3腳為低電平時,按鍵已經(jīng)松開,程序重新設(shè)置8279為編碼鍵盤,INT1中斷開放,以便使鍵盤脫離按鈕功能。程序清單如下:ORG 0000H MOV DPTR,#7000H ; 指向8279數(shù)據(jù)口 INC DPTR ; 指向8279控制口 MOV A, #00H ; 設(shè)定8279工作方式 M0VX DPTR,A MOV A , #0GFH ; 清除8279內(nèi)部顯示RAM狀態(tài) MOVX DPTR, A MOV A , #22H MOVX DPTR , A ; 設(shè)定8279分頻系數(shù) LOOP:MOVX A , DPTR JB ACC.7 , LOOP ; 顯示RAM清除完畢嗎? MOV A , 80H ; 指向第一位數(shù)碼管 MOVX DPTR , A MOV A , 9FH ; 輸出1一個字形 MOV DPTR ,#7000H MOVX DPTR , A INC DPTR LOOP1:M0VX A , DPTR AND A , #07H CJNE A , #00H,L00P2 AJMP LOOP1 ; 無鍵按下轉(zhuǎn) LOOP2:MOV DPTR ,#7000H MOVX A , DPTR; 有鍵按下將鍵值送累加器A 鍵值,由8279的行掃描信號(SL0-SL3)與列信號(RL0-RL4)組成,不同組合的矩陣將得到不同鍵,但 在同一矩陣中不會有相同的鍵值,這對初學者編制鍵顯示程序大為方便.下表是通用鍵盤板鍵值: 名稱 0 1 2 3 4 5 6 7 8 9 鍵值 C1 C8 C9 D0 D8 E0 C2 CA D1 D9 名稱 狀態(tài)切換 清除 鍵值 DA C3 4.3.2.1判定有無閉合鍵的子程序: 判定有無閉合鍵的子程序為KSI,供在鍵盤掃描程序中調(diào) 用。程序如下: KSI:MOVDPTR,#0FDF9H;A口地址MOVA, #00HMOVXDPTR,A;A口送00HINCDPTRINCDPTR;C口地址MOVXA,DPTR;讀C口CPLA ANLA,#0FH;屏蔽高四位RET4.3.2.2鍵盤掃描程序 如前所述,在單片機應(yīng)用系統(tǒng)中常常是鍵盤和顯示器同時存在,因此可以把鍵盤掃描程序和顯示程序配合起來使用,即:把顯示程序作為鍵掃描程序的延時子程序。這樣做既省去了一個專門的延時子程序,又能保證顯示器常亮的可觀效果。 假定本系統(tǒng)中顯示程序為DIR,執(zhí)行時間約為6ms。鍵盤掃描程序如下: KEY1:ACALL KSI;檢查是否有鍵閉合JNZ LK1;A非“0”則轉(zhuǎn)移ACALL DIR;顯示一次(“延時6s)AJMP KEY1LK1: ACALL DIR; 有鍵閉合二次延時ACALL DIR; 共12ms去抖動ACALL KSI; 再檢查是否有鍵閉合JNZ LK2; 有鍵閉合轉(zhuǎn)移到LK2ACALL DIRAJMP KEY; 無鍵閉合,延時6ms后轉(zhuǎn)KEY1LK2: MOV R,#0FEH; 掃描初值送R2MOV R,#00H; 掃描列號送R4LK4: MOV DPTR,#0101H; A口地址MOV A,R MOVX DPTR,A; 掃描初值送A口INC DPTR INC DPTR; C口地址MOVX A,DPTR; 讀C口JB ACC.0, LONE;ACC.0=1,第0行無鍵閉合,轉(zhuǎn)LONEMOV A,#00H; 裝第0行值A(chǔ)JMP LKPLONE: JB ACC.1 LTWO;ACC.1=1,第1行無鍵閉合,轉(zhuǎn)LTWOMOV A,#08H; 裝第1行值A(chǔ)JM PLKPLTWO: JB ACC.2,LTHR;ACC.2=1,第2行無鍵閉合,轉(zhuǎn)LTHRMOV A#10HAJMP LKPLTHR: JB ACC.3,NEXT;ACC.3=1,第3行無鍵閉合,轉(zhuǎn)NEXT MOV A,#18H; 裝第3行值LKP: ADD A,R; 計算鍵碼PUSH ACC; 保護鍵碼LK3: ACALL DIR; 延時6msACALL KSI; 檢查是否繼續(xù)閉合,若閉合再延時JNZ LK3POP ACC; 若鍵起,則鍵碼送ARETNEXT: INC R; 掃描列號加1MOV A,RJNB ACC.7,KND;若第7位=0,已掃完最高列則轉(zhuǎn)KNDRL AMOV R,AAJMP LK4; 進行下一行掃描KND: AJMP KEY1; 掃描完畢,開始新一輪4.3.3 A/D轉(zhuǎn)換程序(1)A/D轉(zhuǎn)換子程序。 PUSH A SETB EA; 開中斷SETB IT1; 外中斷1定義為跳變觸發(fā)MOV DPTR,#0BFFFH; 送ADC0809口地址MOV A,#00H; 選通IN0通道MOVX DPTR,A; 啟動A/D轉(zhuǎn)換NOPNOPNOPNOPNOPSETB EX1; 開外中斷1POP ARET(2)A/D轉(zhuǎn)換結(jié)束中斷程序。ADINT1: PUSH PSW ; 保護現(xiàn)場PUSHAPUSH DPH PUSHDPL MOVDPTR,#0BFFFH MOVX A,DPTR; 讀A/D轉(zhuǎn)換結(jié)果MOV 60H,A; 送入內(nèi)部RAM60H中 MOV A,#00H; 再次啟動IN0通道 MOVX DPTR,A POP DPL; 恢復現(xiàn)場 POPA POPPSW RET14.3.4溫度檢測子程序A/D轉(zhuǎn)換采用查詢方式。為提高數(shù)據(jù)采樣的可靠性,對采樣溫度進行數(shù)字濾波。數(shù)字濾波的算法很多,這里采用4次采樣取平均值的方法。如前所述,本系統(tǒng)A/D轉(zhuǎn)換結(jié)果乘2正好是溫度值,因此,4次采樣的數(shù)字量之和除以2就是檢測的當前溫度。檢測結(jié)果高位存入50H,低位存入51H。溫度檢測子程序流程圖如圖1所示。 圖1:溫度檢測子程序流程圖溫度檢測子程序TIN:TIN: MOV TEMP1,#00H; 清檢測溫度緩沖區(qū) MOV TEMP0,#00H MOV R2,#04H; 取樣次數(shù)送R2 MOV DPTR,#7FF8H; 指向A/D轉(zhuǎn)換器0通道 LTIN1:MOVX DPTR,A; 啟動轉(zhuǎn)換HERE:JNB IE1,HERE; 等待轉(zhuǎn)換結(jié)束 MOVX A,DPTR; 讀轉(zhuǎn)換結(jié)果ADDA,TEMP0; 累加(雙字節(jié)加法)MOVTEMP0,AMOVA,#00HADDCA,TEMP1MOVTEMP1,ADJNZR2,LTIN1; 4次采樣完否,未完繼續(xù)CLR C; 累加結(jié)果除2(雙字節(jié)除法)MOVA,TEMP1 RRCAMOV TEMP1,AMOV A,TEMP0 RRC AMOV TEMP0,ARET4.3.5 溫度控制子程序?qū)斍皽囟扰c預置溫度比較,當前溫度小于預置溫度時,繼電器閉合,接通電阻絲加熱;當前溫度大于預置溫度時,繼電器斷開,停止加熱;當二者相等時電爐保持原來狀態(tài);當前溫度降低到比預置溫度低5時,再重新啟動加熱;當前溫度超出報警上下限時將啟動報警,并停止加熱。由于電爐開始加熱時,當前溫度可能低于報警下限,為了防止誤報,在未達到預置溫度時,不允許報警,為此設(shè)置了報警允許標志F0。模塊流程見圖2。 溫度控制流程圖溫度控制子程序CONT: CONT:MOV A,TEMP0; 當前溫度-預置溫度(雙字節(jié)減) CLR C SUBB A,ST0 MOV B,A; 低8位相減的差值暫存B MOV A,TEMP1 SUBB A,ST1JNC LOFF; 無借位,表示當前溫度預置溫度,轉(zhuǎn)LOFF JNB F0,LON;當前溫度預置溫度,判是否達到過預置溫度 MOVA,B ; 若達到過預置溫度,判二者差值是否大于2 CLRC SUBBA,#02H JNC ACC.7,LOFF;差值不大于2,轉(zhuǎn)LOFFLON:CLR P2.1; 開電爐 SJMP EXIT; 返回LOFF: SETBF0; 設(shè)置允許報警標志 SETB P2.1; 關(guān)電爐EXIT:RET4.3.6 看門狗電路子程序: ORG0000HLJMPSTARTORG000BH LJMPINTT0ORG0030HSTART:MOVSP,#30H MAIN:NOPNOPSETBP1.0NOPNOPSETBEANOPSETBET0 LJMPMAININTT0:NOPNOPCLRP1.7NOPNOPRETI這樣,在整個用戶程序中只唯一的一對指令(SETBP1.7及CLR P1.7)能使“看門狗”定時器復位。也就是說不會有任何“非法”的指令能使“看門狗”定時器誤復位,致使系統(tǒng)已經(jīng)“死機”而“看門狗”失效。當然,對對沒有中斷的用戶系統(tǒng),只需將清零指令(CLR P1.7)也插在主程序中就可以了;對于有多種中斷的用戶系統(tǒng),如果沒有中斷嵌套,則清零指令(CLR P1.7)可以插在任一個中斷子程序中,而在主程序中適當加入一些有關(guān)中斷的冗余指令(如SETB ET0等),以免因有關(guān)中斷的特殊功能寄存器數(shù)據(jù)受到干擾時導致中斷功能失效;對于有二級中斷嵌套的用戶系統(tǒng),清零指令(CLR P1.7)可以插在中斷種數(shù)比較多的那一級中的任一個中斷子程序中,插有“喂狗”指令的那一級中斷系統(tǒng)將會受到“看門狗”的保護,而另一級中斷系統(tǒng)如果失效,“看門狗”是“無動于衷”的,這時只能盡量減少這種中斷子程序的執(zhí)行時間以減少受到干擾的可能性。如果二級中斷嵌套系統(tǒng)者受到“看門狗”的保護,就必需設(shè)計一個非常復雜的“看門狗”電路,其“喂狗”指令要由三部分來保證各個部分都能正常工作,需要說明的是,如果主程序運行一次的時間(包括可能被中斷的時間)超過1.6秒,則要適當再插入一條SETB第五章 設(shè)計感想本文的溫度控制系統(tǒng),只是單片機廣泛應(yīng)用于各行各業(yè)中的一例,通過本次設(shè)計,使我進一步熟悉了一個系統(tǒng)的設(shè)計過程,為畢業(yè)設(shè)計打下了堅實的基礎(chǔ),這次設(shè)計屬于理論設(shè)計,沒有得到實踐的檢驗,只有在邏輯上完成了這次設(shè)計。MCS-51單片機,體積小,重量輕,抗干擾能力強,對環(huán)境要求不高,價格低廉,可靠性高,靈活性好,即使是非電子計算機專業(yè)人員,通過學習一些專業(yè)基礎(chǔ)知識以后也能依靠自己的技術(shù)力量,來開發(fā)所希望的單片機應(yīng)用系統(tǒng)。在抗干擾技術(shù)中,為了提高抗干擾技術(shù)中我們應(yīng)盡量做到以下幾點:1. 切斷干擾傳播路徑的常用措施如下:充分考慮電源對單片機的影響,如果單片機的I/O口用來控制電機等噪聲器件,在I/O口與噪聲源之間應(yīng)加隔離(增加形濾波電路)。 控制電機等噪聲器件,在I/O口與噪聲源之間應(yīng)加隔離(增加形濾波 電路),電路板合理分區(qū),如強、弱信號,數(shù)字、模擬信號等。2.抑制干擾源:抑制干擾源就是盡可能的減小干擾源的du/dt,di/dt。這是抗干擾設(shè)計中最優(yōu)先考慮和最重要的原則,常常會起到事半功倍的效果。 減小干擾源的du/dt主要是通過在干擾源兩端并聯(lián)電容來實現(xiàn)。減小干擾源的 di/dt則是在干擾源回路串聯(lián)電感或電阻以及增加續(xù)流二極管來實現(xiàn)3. 提高敏感器件的抗干擾性能:提高敏感器件的抗干擾性能是指從敏感器件這邊考慮盡量減少對干擾噪聲 的拾取,以及從不正常狀態(tài)盡快恢復的方法,例如:布線時盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲?;虿季€時,電源線和地線要盡量粗。除減小壓降外,更重要的是降低耦合噪聲等。由于時間緊迫,我們對針對每個細節(jié)的考慮不是太周到,但我們基本上是實現(xiàn)的溫度控制系統(tǒng)的智能化管理,對我們以后到企業(yè)提供了一定的基礎(chǔ),通過這次單片機課程設(shè)計,我不僅加深了對單片機理論的理解,將理論很好地應(yīng)用到實際當中去,而且我還學會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的基礎(chǔ)上進行改進,使之功能不斷完善,成為真己的東西。設(shè)計結(jié)果能夠符合題意,成功完成了此次實習要求,我們不只在乎這一結(jié)果,更加在乎的是這個過程。這個過程中,我們花費了大量的時間和精力,更重要的是,我們在學會創(chuàng)新的基礎(chǔ)上,同時還懂得合作精神的重要性,學會了與他人合作。第六章 參考文獻1 陳明熒,8051單片機課程設(shè)計實訓教材 北京:清華大學出版社,20042 胡漢才,單片機原理及其接口技術(shù) 北京:清華大學出版社,19953 徐淑華,單片機微型機原理及應(yīng)用 哈爾濱工業(yè)大學出版社,19944 劉復華,8098單片機及其應(yīng)用系統(tǒng)設(shè)計 清華大學出版社,19915 趙文忠、程啟明,微機控制技術(shù) 北京:機械工業(yè)出版社,19936 張友德等,單片微型機原理、應(yīng)用與實踐.上海:復旦大學出版社,19927 李華,MCS-51系列單片機實用接口技術(shù).北京航空航天大學出版社,19938 李秉操等,單片機接口技術(shù)及其在工業(yè)控制中的應(yīng)用 陜西電子編輯部,19919 陳鍵鐸,8098單片機原理及應(yīng)用技術(shù).北京:電子工業(yè)出版社,199510 孫和平等,單片微機原理及接口技術(shù),冶金工業(yè)出版社, 2003第七章 附錄7.1 器件清單IC1 8051 5V 40引腳 微控制器CPU、RAM、ROMIC2 0809 5V、5V基準 28引腳 8路8位A/D轉(zhuǎn)換IC3 74LS373 5V 20引腳 8路鎖存器IC4 LM386 318V 8引腳 功放芯片IC5 MC14495 5V 接顯示器門電路芯片 LED數(shù)碼管鎳鉻/鎳鋁熱電偶 溫度測量范圍:010007.2 總控制電路圖31
收藏