版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機應用系統(tǒng)的軟件設計
通常單片機應用系統(tǒng)的系統(tǒng)軟件由主程序、定時中
斷服務程序和若干個子程序構成。根據(jù)系統(tǒng)各操作的
性質,指定哪些操作由中斷服務程序完成,哪些操作
由主程序完成。通常主程序完成顯示及鍵盤處理,實現(xiàn)人機對話功
能。其現(xiàn)場參數(shù)采樣、控制輸出等則由定時中斷完
成。下面以微電腦溫度控制器為例,介紹單片機應用系
統(tǒng)的軟件設計流程。一、溫度控制器技術要求:
1、控溫范圍:0oc~125oc
2、控溫精度:±1oc3、控溫工藝曲線:
工藝分4步 第1步:全速升溫 第2步:速率升溫 第3步:保溫 第4步:全速降溫二、軟件設計的有關參數(shù)1、鍵盤及顯示安排:命令鍵:輸入(0AH)、工作(0BH)、確認(0CH) 繼續(xù)(0DH)、顯示(0EH)、退出(0FH)數(shù)字鍵:0-9個顯示管:8個顯示符:開機符:PGood輸入符:In工作符:BE
輸入顯示:步號(2)、時間(3)、溫度(3)
設定值
工作顯示:步號(2)、時間(3)、溫度(3)顯標0:
實測值
1:PL(2)、時間(3)、溫度(3) 設定值
5、內存單元安排:
標志位:00H鍵標志09H顯示標志01H輸入標志0AH結束標志02H工作標志0BH退出標志 03H數(shù)入標志0CH 04H修改標志0DH升溫標志 05H報警標志0EH降溫標志 06H半秒標志0FH保溫標志 07H1秒標志 08H8秒標志
顯緩區(qū):40H---47H 顯示指針:22H 計時單元:24H(100ms)25H(0.5s)26H(1s)
ΔU單元:35H實時時鐘:31H(秒)32H(分) 工藝參數(shù):50H---5FH 工藝步號:23H 采樣值:60H-65H 實測值:38H-3AH
誤差值:3BH-3FH(ei-2,ei-1,ei) 控制輸出:36H(加熱)37H(冷卻) 堆棧區(qū):68H-7FH三、微電腦溫度控制器軟件框圖鍵掃入口:0000H初始化.Pgood-顯緩區(qū)顯示有鍵按下否鍵數(shù)-【顯針】修改顯針顯針限值輸入符-顯區(qū)建立數(shù)入標志建立輸入標志建立顯針工作符-顯區(qū)建立數(shù)入標志建立工作標志建立顯針鍵處理1、開機引導程序允許數(shù)入否散轉到輸入或工作程序入口傳送工藝數(shù)鍵輸入工作YNNY確認初始化設置棧底(SP)置P口初值I/O口初始化關輸出置“0”工作單元及標志退出轉0000H退出取工藝.送步號初值.設置初值.初始化T0.開中斷顯示處理、燈處理、更新顯示(0.5S)有鍵按下否鍵處理鍵掃3、工作主程序關中斷返回0000HYN退出顯示處理按標志不同,將不同參數(shù)送至顯緩區(qū)報警處理入口:0800H更換顯示方式顯示確認建立退出標志4、中斷服務程序入口:000BH保護現(xiàn)場(A、B、DPH、DPL、PSW等)選另一工作寄存器區(qū)、重新置定時初值步時鐘計數(shù)、建立時間標志、溫度采樣(傳送、濾波)計算差值按控制算法計算輸出參數(shù)控制輸出步號加1、取工藝設置初值(步時鐘、輸出)工藝結束建立結束標志關輸出恢復現(xiàn)場中斷返回本工藝步結束否YN四、微電腦溫度控制器軟件清單1、開機引導程序:
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(開機符-顯緩區(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(確認鍵處理)
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確認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(確認鍵處理)
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(建立結束標志)LCALLMOV-2(保存工藝)AJMPMAIN-1
3、工作主程序:
GZ-0:LCALLMOV-3(取工藝) MOV23H,#01H LCALLSBZ-0(設置升降保標志) LCALLSCZ-0(設置步工藝初值) MOVTMOD,#01H MOVTH0,#3CH MOVTL0,#B0H SETBTR0 MOVIE,#82H SETB06H CLRP1.4
GZ-1:JNB06H,G2 CLR06H LCALLDL-0(燈顯示)
JB09H,G1LCALLXS-0(實測值-顯緩區(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(確認鍵) JNB0BH,G6 SETB0AH G6:LCALLBJ-0(報警處理) SJMPGZ-1
IT-1:JNB07H,IT-3(控制處理)CLR07HLCALLAD-0采樣
LCALLLB-0濾波LCALLCZ-0計差值e(i)
JNB08H,IT-4CLR08H MOVA,52HJZIT-2LCALLJSC計ΔU
LCALLSZC-0設置輸出參數(shù)
SJMPIT-4
IT-2:MOV36H,#00H設全速升降L2:JNB0DH,IT-4MOV37H,#00H溫輸出參數(shù)MOV36H,#7FHJNB0EH,L2SJMPIT-4MOV37H,#7FHSJMPIT-4
IT-3:INC23H(步結束處理)
LCALLMOV-4步工藝傳送MOVA,52HCJNEA,#FFH,L6 SETB0AH L6:JB0AH,IT-5轉工藝結束處理LCALLSBZ-0設置升降保標志 LCALLSCZ-0設置步工藝初值
IT-4:JB0AH,IT-5退出轉結束處理LCALLKSC-0控制輸出 POPDPL POPDPH POPDPB POPDPA RETI
工藝結束處理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設: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位取補子程序:(R2R3取補) NEG-0:CLRC CLRA SUBBA,R3 CLRA SUBBA,R2 MOVR2,A RETd.8位乘法子程序:(R4*R3→R2R3)MUL-0:MOVA,R4(8位無符號乘)MOVB,R3 MULAB MOVR3,A MOVR2,B RET
MUL-1:MOVA,R4(帶符號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(無符號除) 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(帶符號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、計算輸出參數(shù)子程序a.計算公式:
采用數(shù)字PID增量式控制算法計算輸出參數(shù)ΔU.
ΔU=A*e(i)-B*e(i-1)+C*e(i-2)設:A=18,B=3,C=1b.計算程序: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ù): 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、計算差值子程序a.計算差值:CZ-0:ACALLMOV-5(傳送差值) MOVA,53H CJNEA,51H,L1 MOVA,3AH(保溫) CLRC SUBBA,53H ACALLXZ-1(限值為10H-F0H) MOV3FH,A RETL1:ACALLJTL-0(計算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.計算升降溫T理:T理=T初+【(T終-T初)*C實】÷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ù)初值子程序a.設置升降保標志 SBZ-0:MOVA,21H ANLA,#1FH MOV21H,A MOVA,53H CLRC SUBBA,51H JNZL1 SETB0FH RET L1:JCL2 SETB0DH RET L2:SETB0EH RETb.設置步工藝初值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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服務協(xié)議解除:2024年詳細條款
- 2024年度商業(yè)標牌供應及維護協(xié)議
- 房產(chǎn)行紀銷售協(xié)議(2024年)
- 二手車交易協(xié)議模板2024年
- 瓷磚銷售及服務協(xié)議樣本2024適用
- 2024年度三方股權轉讓協(xié)議
- 型空調設備租賃協(xié)議2024年
- 2024年適用擋土墻工程承包規(guī)范協(xié)議
- 房產(chǎn)證代辦服務協(xié)議模板2024
- 2024年高爐制造行業(yè)協(xié)議
- 蜜雪冰城營銷案例分析總結
- 交換機CPU使用率過高的原因分析及探討
- 住宿服務免責聲明
- 2023年醫(yī)療機構消毒技術規(guī)范醫(yī)療機構消毒技術規(guī)范
- MOOC 家庭與社區(qū)教育-南京師范大學 中國大學慕課答案
- 構造法與數(shù)列課件高三數(shù)學二輪復習
- 2024年四川省自然資源投資集團有限責任公司招聘筆試參考題庫附帶答案詳解
- 《現(xiàn)代教育原理》課件
- 卷煙物流安全規(guī)范培訓課件
- 基礎知識疏散逃生
- 煤炭行業(yè)碳排放與減排技術
評論
0/150
提交評論