版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用系统的软件设计
通常单片机应用系统的系统软件由主程序、定时中
断服务程序和若干个子程序构成。根据系统各操作的
性质,指定哪些操作由中断服务程序完成,哪些操作
由主程序完成。通常主程序完成显示及键盘处理,实现人机对话功
能。其现场参数采样、控制输出等则由定时中断完
成。下面以微电脑温度控制器为例,介绍单片机应用系
统的软件设计流程。一、温度控制器技术要求:
1、控温范围:0ºc~125ºc
2、控温精度:±1ºc3、控温工艺曲线:
工艺分4步 第1步:全速升温 第2步:速率升温 第3步:保温 第4步:全速降温二、软件设计的有关参数1、键盘及显示安排:命令键:输入(0AH)、工作(0BH)、确认(0CH) 继续(0DH)、显示(0EH)、退出(0FH)数字键: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数入标志0CH 04H修改标志0DH升温标志 05H报警标志0EH降温标志 06H半秒标志0FH保温标志 07H1秒标志 08H8秒标志
显缓区:40H---47H 显示指针:22H 计时单元:24H(100ms)25H(0.5s)26H(1s)
ΔU单元:35H实时时钟:31H(秒)32H(分) 工艺参数:50H---5FH 工艺步号:23H 采样值:60H-65H 实测值:38H-3AH
误差值:3BH-3FH(ei-2,ei-1,ei) 控制输出:36H(加热)37H(冷却) 堆栈区:68H-7FH三、微电脑温度控制器软件框图键扫入口:0000H初始化.Pgood-显缓区显示有键按下否键数-【显针】修改显针显针限值输入符-显区建立数入标志建立输入标志建立显针工作符-显区建立数入标志建立工作标志建立显针键处理1、开机引导程序允许数入否散转到输入或工作程序入口传送工艺数键输入工作YNNY确认初始化设置栈底(SP)置P口初值I/O口初始化关输出置“0”工作单元及标志退出转0000H退出取工艺.送步号初值.设置初值.初始化T0.开中断显示处理、灯处理、更新显示(0.5S)有键按下否键处理键扫3、工作主程序关中断返回0000HYN退出显示处理按标志不同,将不同参数送至显缓区报警处理入口:0800H更换显示方式显示确认建立退出标志4、中断服务程序入口:000BH保护现场(A、B、DPH、DPL、PSW等)选另一工作寄存器区、重新置定时初值步时钟计数、建立时间标志、温度采样(传送、滤波)计算差值按控制算法计算输出参数控制输出步号加1、取工艺设置初值(步时钟、输出)工艺结束建立结束标志关输出恢复现场中断返回本工艺步结束否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(开机符-显缓区) AJMPMAIN-2
a.SKEY:(数键处理)
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数键
SJMPSR-1S-3:CJNEA,#0CH,S-4ACALLSKEY-2确认SJMPSR-1S-4:CJNEA,#0DH,S-5ACALLSKEY-3继续SJMPSR-1
a.SKEY-1:(数键处理)
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(实测值-显缓区)SJMPG2G1:LCALLXS-1(理论值-显缓区) 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设置输出参数
SJMPIT-4
IT-2:MOV36H,#00H设全速升降L2:JNB0DH,IT-4MOV37H,#00H温输出参数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.发送一字节子程序:(发送数存于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.接收一字节子程序:(接收字符存于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,余数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,余数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、计算输出参数子程序a.计算公式:
采用数字PID增量式控制算法计算输出参数Δ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.设置输出参数: 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、设置工艺参数初值子程序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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论