版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計(jì)
通常單片機(jī)應(yīng)用系統(tǒng)的系統(tǒng)軟件由主程序、定時(shí)中
斷服務(wù)程序和若干個(gè)子程序構(gòu)成。根據(jù)系統(tǒng)各操作的
性質(zhì),指定哪些操作由中斷服務(wù)程序完成,哪些操作
由主程序完成。通常主程序完成顯示及鍵盤處理,實(shí)現(xiàn)人機(jī)對(duì)話功
能。其現(xiàn)場(chǎng)參數(shù)采樣、控制輸出等則由定時(shí)中斷完
成。下面以微電腦溫度控制器為例,介紹單片機(jī)應(yīng)用系
統(tǒng)的軟件設(shè)計(jì)流程。一、溫度控制器技術(shù)要求:
1、控溫范圍:0oc~125oc
2、控溫精度:±1oc3、控溫工藝曲線:
工藝分4步 第1步:全速升溫 第2步:速率升溫 第3步:保溫 第4步:全速降溫二、軟件設(shè)計(jì)的有關(guān)參數(shù)1、鍵盤及顯示安排:命令鍵:輸入(0AH)、工作(0BH)、確認(rèn)(0CH) 繼續(xù)(0DH)、顯示(0EH)、退出(0FH)數(shù)字鍵:0-9個(gè)顯示管:8個(gè)顯示符:開機(jī)符:PGood輸入符:In工作符:BE
輸入顯示:步號(hào)(2)、時(shí)間(3)、溫度(3)
設(shè)定值
工作顯示:步號(hào)(2)、時(shí)間(3)、溫度(3)顯標(biāo)0:
實(shí)測(cè)值
1:PL(2)、時(shí)間(3)、溫度(3) 設(shè)定值
5、內(nèi)存單元安排:
標(biāo)志位:00H鍵標(biāo)志09H顯示標(biāo)志01H輸入標(biāo)志0AH結(jié)束標(biāo)志02H工作標(biāo)志0BH退出標(biāo)志 03H數(shù)入標(biāo)志0CH 04H修改標(biāo)志0DH升溫標(biāo)志 05H報(bào)警標(biāo)志0EH降溫標(biāo)志 06H半秒標(biāo)志0FH保溫標(biāo)志 07H1秒標(biāo)志 08H8秒標(biāo)志
顯緩區(qū):40H---47H 顯示指針:22H 計(jì)時(shí)單元:24H(100ms)25H(0.5s)26H(1s)
ΔU單元:35H實(shí)時(shí)時(shí)鐘:31H(秒)32H(分) 工藝參數(shù):50H---5FH 工藝步號(hào):23H 采樣值:60H-65H 實(shí)測(cè)值:38H-3AH
誤差值:3BH-3FH(ei-2,ei-1,ei) 控制輸出:36H(加熱)37H(冷卻) 堆棧區(qū):68H-7FH三、微電腦溫度控制器軟件框圖鍵掃入口:0000H初始化.Pgood-顯緩區(qū)顯示有鍵按下否鍵數(shù)-【顯針】修改顯針顯針限值輸入符-顯區(qū)建立數(shù)入標(biāo)志建立輸入標(biāo)志建立顯針工作符-顯區(qū)建立數(shù)入標(biāo)志建立工作標(biāo)志建立顯針鍵處理1、開機(jī)引導(dǎo)程序允許數(shù)入否散轉(zhuǎn)到輸入或工作程序入口傳送工藝數(shù)鍵輸入工作YNNY確認(rèn)初始化設(shè)置棧底(SP)置P口初值I/O口初始化關(guān)輸出置“0”工作單元及標(biāo)志退出轉(zhuǎn)0000H退出取工藝.送步號(hào)初值.設(shè)置初值.初始化T0.開中斷顯示處理、燈處理、更新顯示(0.5S)有鍵按下否鍵處理鍵掃3、工作主程序關(guān)中斷返回0000HYN退出顯示處理按標(biāo)志不同,將不同參數(shù)送至顯緩區(qū)報(bào)警處理入口:0800H更換顯示方式顯示確認(rèn)建立退出標(biāo)志4、中斷服務(wù)程序入口:000BH保護(hù)現(xiàn)場(chǎng)(A、B、DPH、DPL、PSW等)選另一工作寄存器區(qū)、重新置定時(shí)初值步時(shí)鐘計(jì)數(shù)、建立時(shí)間標(biāo)志、溫度采樣(傳送、濾波)計(jì)算差值按控制算法計(jì)算輸出參數(shù)控制輸出步號(hào)加1、取工藝設(shè)置初值(步時(shí)鐘、輸出)工藝結(jié)束建立結(jié)束標(biāo)志關(guān)輸出恢復(fù)現(xiàn)場(chǎng)中斷返回本工藝步結(jié)束否YN四、微電腦溫度控制器軟件清單1、開機(jī)引導(dǎo)程序:
A、MAIN-1:
ORG0000HORG000BHLJMPMAIN-1LJMPIT-O
MAIN-1:MOVSP,#67HMOVP1,#FDHACALLINT-7279 MOVR7,#48H(清工作單元) MOVR0,#20H M-0:CLRA MOV@R0,A INCR0 DJNZR7,M-0 ACALLMOV-0(開機(jī)符-顯緩區(qū)) AJMPMAIN-2
a.SKEY:(數(shù)鍵處理)
SKEY:JNB03H,S-2MOVR0,22HMOV@R0,AINC22HMOVA,22HCJNEA,#48H,S-1S-1:JCS-2MOV22H,#46HS-2:RET
b.MKEY-1(輸入鍵處理)
MKEY-1:SETB01HSETB03HMOV22H,#46HMOVDPTR,#TAB-1ACALLMOV-1RETc.MKEY-2(工作鍵處理)
MKEY-1:SETB02HSETB03HMOV22H,#46HMOVDPTR,#TAB-2ACALLMOV-1RET
d.MKEY-3(確認(rèn)鍵處理)
MKEY-3:JNB01H,MK-0LJMPSR-0MK-0:JNB02H,MK-1LJMPGZ-0MK-1:RET
B、SR-1:
SR-1:ACALLDIRACALLKEYCJNEA,#FFH,S-1S-5:CJNEA,#0FH,SR-1SJMPSR-1ACALLSKEY-4退出S-1:CJNEA,#0AH,S-2SJMPSR-1S-2:JNCS-3ACALLSKEY-1數(shù)鍵
SJMPSR-1S-3:CJNEA,#0CH,S-4ACALLSKEY-2確認(rèn)SJMPSR-1S-4:CJNEA,#0DH,S-5ACALLSKEY-3繼續(xù)SJMPSR-1
a.SKEY-1:(數(shù)鍵處理)
SKEY-1:JNB03H,S-2MOVR0,22HMOV@R0,AINC22HMOVA,22HCJNEA,#48H,S-1S-1:JCS-2MOV22H,#42HS-2:RET
b.SKEY-2(確認(rèn)鍵處理)
SKEY-2:MOVA,23HADDA,23HADDA,#50HMOVR1,AMOVR0,#42H ACALLZ10-2 MOV@R1,AINCR1MOVR0,#45HACALLZ10-2MOV@R1,AMOV22H,#42HRET
d.SKEY-4(退出鍵處理)
SKEY-4:INC23HMOVA,23H ADDA,23HADDA,#50HMOVR1,AMOV@R1,#FFH(建立結(jié)束標(biāo)志)LCALLMOV-2(保存工藝)AJMPMAIN-1
3、工作主程序:
GZ-0:LCALLMOV-3(取工藝) MOV23H,#01H LCALLSBZ-0(設(shè)置升降保標(biāo)志) LCALLSCZ-0(設(shè)置步工藝初值) MOVTMOD,#01H MOVTH0,#3CH MOVTL0,#B0H SETBTR0 MOVIE,#82H SETB06H CLRP1.4
GZ-1:JNB06H,G2 CLR06H LCALLDL-0(燈顯示)
JB09H,G1LCALLXS-0(實(shí)測(cè)值-顯緩區(qū))SJMPG2G1:LCALLXS-1(理論值-顯緩區(qū)) G2:LCALLDTR(顯示) LCALLKEY(鍵掃) CJNEA,#FFH,G3 SJMPG6 G3:CJNEA,#0EH,G4(顯示鍵) CPL09H SJMPG6 G4:CJNEA,#0FH,G5(退出鍵) SETB0BH SJMPG6 G5:CJNEA,#0CH,G6(確認(rèn)鍵) JNB0BH,G6 SETB0AH G6:LCALLBJ-0(報(bào)警處理) SJMPGZ-1
IT-1:JNB07H,IT-3(控制處理)CLR07HLCALLAD-0采樣
LCALLLB-0濾波LCALLCZ-0計(jì)差值e(i)
JNB08H,IT-4CLR08H MOVA,52HJZIT-2LCALLJSC計(jì)ΔU
LCALLSZC-0設(shè)置輸出參數(shù)
SJMPIT-4
IT-2:MOV36H,#00H設(shè)全速升降L2:JNB0DH,IT-4MOV37H,#00H溫輸出參數(shù)MOV36H,#7FHJNB0EH,L2SJMPIT-4MOV37H,#7FHSJMPIT-4
IT-3:INC23H(步結(jié)束處理)
LCALLMOV-4步工藝傳送MOVA,52HCJNEA,#FFH,L6 SETB0AH L6:JB0AH,IT-5轉(zhuǎn)工藝結(jié)束處理LCALLSBZ-0設(shè)置升降保標(biāo)志 LCALLSCZ-0設(shè)置步工藝初值
IT-4:JB0AH,IT-5退出轉(zhuǎn)結(jié)束處理LCALLKSC-0控制輸出 POPDPL POPDPH POPDPB POPDPA RETI
工藝結(jié)束處理IT-5:POPDPLCLRP3.3POPDPHMOVR5,#C8H POPDPBL7:MOVR6,#C8H POPDPAL8:MOVR7,#F0HPOPAL9:DJNZR7,L9POPADJNZR6,L8MOVA,#00HDJNZR5,L7PUSHALJMP0000HMOVA,#10HPUSHARETI
ORG1000HJSCL:MOVIE,#00HMOVP1,#FDHSETBP3.2
MOVA,R1SETBP1.0ACALLSTFSINCR0
MOVR6,#04HDECR1L3:DJNZR6,L3DJNZR5,L1
MOVA,@R0RETADDA,#0DH
MOVCA,@A+PC
ACALLSTFS MOVR6,#02H
L4:DJNZR6,L4
TABDB7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH
DB7BH,77H,1FH,4EH,3DH,4FH,47H,00H,67Hc.鍵掃程序:
KEY:ACALLKEY1L3:INCR2
CJNEA,#0FFH,L1DJNZR7,L2
CLR00HL4:MOVA,R2
RETRET
L1:JB00H,L5L5:MOVA,#FFHSETB00HRETMOVB,ATABDBXXH,XXH,…MOVR2,#00H
MOVR7,#0FH
L2:MOVA,R2
ADDA,#0AH
MOVCA,@A+PC
CJNEA,B,L3
SJMPL4
d.讀鍵值子程序:所讀的鍵值保存在A中
KEY1:CLRP1.0
MOVR6,#0CH
L1:DJNZR6,L1
MOVA,#15H
ACALLSTFS MOVR6,#06H
L2:DJNZR6,L2
ACALLSTJS
SETBP1.0 RET
e.發(fā)送一字節(jié)子程序:(發(fā)送數(shù)存于A中)
STFS:MOVR7,#08H設(shè):P1.0CS
L1:RLCAP1.1CLK
MOVP1.2,CP1.2DATA
SETBP1.1P1.3KEY
MOVR6,#02H
L2:DJNZR6,L2
CLRP1.1
MOVR6,#02H
L3:DJNZR6,L3
DJNZR7,L1
RETf.接收一字節(jié)子程序:(接收字符存于A中)
STJS:MOVR7,#08H
L1:SETBP1.1
SETBP1.2
MOVR6,#02H
L2:DJNZR6,L2
MOVC,P1.2
RLCA
CLRP1.1
MOVR6,#01H
L3:DJNZR6,L3
DJNZR7,L1
RET
B、通用子程序
a.A-@R與@R-A:A-@R:MOVR4,A@R-A:MOVA,@R0 SAWPASAWPA ANLA,#0FHINCR0 MOV@R0,AORLA,@R0 INCR0 RET MOVA,R4 ANLA,#0FH MOV@R0,A RET
b.2-10與10-2子程序:
Z2-10-0:MOVR7,#02HZ10-2:MOVR7,#02HSJMPZ1MOVA,@R0
Z2-10-1:MOVR7,#03HZ2:MOVB,#0AHZ1:MOVB,#0AHMULABDIVA,BINCR0XCHA,BADDA,@R0MOV@R0,ADJNZD7,Z2XCHA,BRETDECR0DJNZR7,Z1RETc.16位取補(bǔ)子程序:(R2R3取補(bǔ)) NEG-0:CLRC CLRA SUBBA,R3 CLRA SUBBA,R2 MOVR2,A RETd.8位乘法子程序:(R4*R3→R2R3)MUL-0:MOVA,R4(8位無(wú)符號(hào)乘)MOVB,R3 MULAB MOVR3,A MOVR2,B RET
MUL-1:MOVA,R4(帶符號(hào)R4*R3→R2R3) MOVR5,A JNBACC.7,L1 CPLA INCA L1:ACALLMUL-0 MOVA,R5 JNBACC.7,L2 ACALLNEG-0 L2:RETe.8位除法子程序:(R2R3÷R4→R3,余數(shù)R2) DIV-0:MOVR7,#08H(無(wú)符號(hào)除) L0:CLRC MOVA,R3 RLCA MOVR3,A MOVA,R2 RLCA MOVR2,A CLRC SUBBA,R4 JCL1 MOVR2,A INCR3 L1:DJNZR7,L0 RET
DIV-1:MOVA,R2(帶符號(hào)R2R3÷R4→R3,余數(shù)R2) MOVR5,A JNBACC.7,L1 ACALLNEG-0 L1:ACALLDIV-0 MOVA,R5 JNBACC.7,L2 MOVA,R3 CPLA INCAMOVR3,A L2:RETC、傳送子程序a.傳送顯示符子程序:
MOV-0:MOVDPTR,#TAB_0
MOV-1:MOVR7,#08HMOVR0,#40HMK_0:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR7,MK_0RETORG07E0HTAB_0DBPGOOdTAB_1DBIN__TAB_2DBBE__TAB_3DBPL__
b.傳送工藝子程序:
MOV-2:MOVR7,#0EH(存工藝)MOVR0,#52H MOVDPTR,#0400HL1:MOVA,@R0 MOVX@DPTR,A INCR0 INCDPTR DJNZR7,L1 RET
MOV-3:MOVR7,#0EH(取工藝)
MOVR0,#52H MOVDPTR,#0400HL2:MOVXA,@DPTR MOV@R0,A INCR0 INCDPTR DJNZR7,L2MOV51H,#00H RET
MOV-4:MOVR7,#0EH(步工藝傳送)MOVR0,#52H MOVR1,#50HL1:MOVA,@R0 MOVX@R1,A INCR0 INCR1 DJNZR7,L1 RETD、溫度采樣濾波子程序a.采樣子程序:
AD-0:MOVDPTR,2000H MOVR6,#06H MOVR0,#60H L0:MOVX@DPTR,A MOVR7,#1EH L1:DJNZR7,L1 MOVXA,@DPTR MOV@R0,A INCR0 DJNZR6,L0 RETb.濾波子程序: FMAX:MOVR7,#05HLB-0:CALLFMAX MOVR0,#60H
CALLFMINL1:MOVA,@R0HCALLAVEINCR0
RET CLRC SUBBA,@R0
JCl2
MOVA,@R0
DECR0 XCHA,@R0 INCR0 MOV@R0,A l2:DJNZR7,L1 RET
FMIN:MOVR7,#04H
MOVR0,#60H
L1:MOVA,@R0
INCR0
CLRC
SUBBA,@R0
JNCl2
MOVA,@R0
DECR0
XCHA,@R0
INCR0
MOV@R0,A
l2:DJNZR7,L1
RET
AVE:MOVR7,#04HMOVR0,#60
MOVR3,#00MOVR4,#00
L1:MOVA,@R0
ADDA,R4
MOVR4,A
MOVA,R3
ADDCA,#00
MOVR3,AINCR0
DJNZR7,L1MOVA,R4MOVR7,#03HRRCAL2:CLRCMOVR4,AMOVA,R3DJNZR7,L2RRCAMOV67H,R4MOVR3,ARET
E、計(jì)算輸出參數(shù)子程序a.計(jì)算公式:
采用數(shù)字PID增量式控制算法計(jì)算輸出參數(shù)ΔU.
ΔU=A*e(i)-B*e(i-1)+C*e(i-2)設(shè):A=18,B=3,C=1b.計(jì)算程序:JSC:MOVR4,3FHACALLADD-0 MOVR3,#12HACALLXZ-0(限值) ACALLMUL-1RET MOV28H,R2 MOV29H,R3 MOVR4,3DH MOVR3,#03H ACALLMUL-1 ACALLSUB-0 MOVR4,3BH MOVR3,#01H ACALLMUL-1
c.16位加減子程序:SUB-0:CLRC(28H,29H-R2,R3→28H,29H) MOVA,29H SUBBA,R3 MOV29H,A MOVA,28H SUBBA,R2 MOV28H,A RETADD-0:MOVA,29H(28H,29H+R2,R3→28H,29H) ADDA,R3 MOV29H,A MOVA,28H ADDA,R2 MOV28H,A RETd.限值子程序:XZ-0:MOVA,28H(限值為60H-A0H) JBACC.7,L4 JNZL2 MOVA,29H CJNEA,#60H,L1 L1:JCL3 L2:MOVA,#60H L3:MOV35H,A RETL4:CJNEA,#FFH,L6 MOVA,29H CJNEA,#A0H,L5 L5:JNCL7 L6:MOVA,#A0H L7:MOV35H,A RETF、控制輸出子程序a.設(shè)置輸出參數(shù): SZC-0:MOVA,35H JBACC.7,L1 MOV36H,A MOV37H,#00H RET L1:CPLA INCA MOV37H,A MOV36H#00H RETb.控制輸出:KSC-0:MOVA,36H JZL1 DEC36H CLRP1.4 SETBP1.5 RET L1:SETBP1.4 MOVA,37H JZL2 DEC37H CLRP1.5 RET L2:SETBP1.5 RETG、計(jì)算差值子程序a.計(jì)算差值:CZ-0:ACALLMOV-5(傳送差值) MOVA,53H CJNEA,51H,L1 MOVA,3AH(保溫) CLRC SUBBA,53H ACALLXZ-1(限值為10H-F0H) MOV3FH,A RETL1:ACALLJTL-0(計(jì)算T理) MOVA,3AH(升降溫) CLRC SUBBA,R3 ACALLXZ-1(限值為10H-F0H) MOV3FH,A RET
b.傳送差值:
MOV-5:MOVR7,#04H MOVR0,#3CH L1:MOVA,@R0 DECR0 MOV@R0,A INCR0 INCR0 DJNZR7,L1 RET
c.計(jì)算升降溫T理:T理=T初+【(T終-T初)*C實(shí)】÷C總
JTL-0:MOVA,53H CLRC SUBBA,51H MOVR4,A MOVR3,32H INCR3 ACALLMUL-1 MOVR4,52H ACALLDIV-1 MOVA,51H ADDA,R3 MOVR3,A RET
d.限值:
XZ-1:JBACC.7,L3 CJNEA,#10H,L1 L1:JCL2 MOVA,#10H L2:RET L3:CJNEA,#F0H,L4 L4:JNCL5 MOVA,#F0H L5:RET
H、設(shè)置工藝參數(shù)初值子程序a.設(shè)置升降保標(biāo)志 SBZ-0:MOVA,21H ANLA,#1FH MOV21H,A MOVA,53H CLRC SUBBA,51H JNZL1 SETB0FH RET L1:JCL2 SETB0DH RET L2:SETB0EH RETb.設(shè)置步工藝初值SCZ-0:MOV31H,#00H MOV32H,#00H SETBP1.4 SETBP1.5 SETB07H SETB08H MOV25H,#00H MOV26H,#00H JNB0FH,L1(保溫) RET L1:JNB0EH,L2(降溫)CLRP1.5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省蘇州市吳江區(qū)實(shí)驗(yàn)初級(jí)中學(xué)教育集團(tuán)2024-2025學(xué)年八年上學(xué)期11月期中聯(lián)考生物試卷
- 上海市四校2024-2025學(xué)年高一上學(xué)期期中聯(lián)考英語(yǔ)試卷(含答案無(wú)聽力原文及音頻)
- 北京市宣武外國(guó)語(yǔ)實(shí)驗(yàn)學(xué)校2024-2025學(xué)年高二上學(xué)期10月月考英語(yǔ)試卷(含答案無(wú)聽力原文及音頻)
- 2024-2025學(xué)年江蘇省徐州市邳州市博育學(xué)校七年級(jí)(上)第一次月考數(shù)學(xué)試卷(含答案)
- 人工智能項(xiàng)目策劃書
- 2013年6月26日下午廣州市公務(wù)員面試真題
- 第四章第四節(jié)幼兒的同伴關(guān)系(教案)-《幼兒心理學(xué)》(人教版第二版)
- 四川省公務(wù)員面試模擬2
- 七年級(jí)思想品德上冊(cè)知識(shí)點(diǎn)歸納
- 簡(jiǎn)單裝修合同范本22篇
- 酶工程習(xí)題答案
- 偏頭痛ppt課件
- 肺脹病(慢性阻塞性肺疾病)中醫(yī)臨床路徑
- 基坑蓋挖逆作法及主體結(jié)構(gòu)施工方案
- 國(guó)際多中心臨床試驗(yàn)指引試行
- 資產(chǎn)負(fù)債表表格WORD
- 如何上好一堂課PPT課件
- 中國(guó)書法簡(jiǎn)史
- 血透病人心力衰竭護(hù)理查房PPT
- 《數(shù)據(jù)圖表與分析》教學(xué)設(shè)計(jì)及反思
- 磷石膏綜合利用調(diào)查報(bào)告
評(píng)論
0/150
提交評(píng)論