单板机监控主程序清单与分析
扫描二维码
随时随地手机看文章
图片1
ORG0000H
000000NOP
00010130AJMPSTART
0003C2A8CLREX0;INT0入口,用于单步执行。
000502039CLJMPPUSH_REG;转去单步现场保护。
ORG000BH;T0中断入口
000B02200BLJMP200BH;转至200BH,向用户开放。
ORG0013H;INT1入口
0013022013LJMP2013H;转至2013H,向用户开放。
ORG001BH;T1中断入口
001B020BB2LJMP0BB2H;监控占用,转去打印控制。
ORG0023H;串行口中断入口
0023022023LJMP2023H;转至2023H,向用户开放。
;
;*****************监控程序初始化*********************
ORG0030H
00307879START:MOVR0,#79H;监控初始化程序段
00327601MOV@R0,#01H;送“CPU-51”显示代码。
003408INCR0
00357605MOV@R0,#05H
003708INCR0
00387614MOV@R0,#14H
003A08INCR0
003B761CMOV@R0,#1CH
003D08INCR0
003E7610MOV@R0,#10H
004008INCR0
0041760CMOV@R0,#0CH
0043758140MOVSP,#40H;堆栈指针初值设为40H。
00467400MOVA,#00H;监控用的存储单元清零。
0048F52FMOV2FH,A;状态标志单元2FH清零。
004A7830MOVR0,#30H;30H—3FH单元清零。
004C7910MOVR1,#10H
004EF6START0:MOV@R0,A
004F08INCR0
0050D9FCDJNZR1,START0
;****************监控开始,等待键命令*******************
00521204AFMONITOR:LCALLKEY_SCAN;扫描键盘。
00557005JNZKEY_PROC;有键则转键处理。
00571204D0LCALLDISPLAY;维持显示。
005A0152AJMPMONITOR
005C120340KEY_PROC:LCALLOFF_DISP;键命令处理程序。
005F120460K_P1:LCALLKEY_GET
006220E40DJB ACC.4,COMMAND;功能键,转命令处理。
0065857D7EMOV7EH,7DH;数字键,送显示。
0068857C7DMOV7DH,7CH
006B857B7CMOV7CH,7BH
006EF57BMOV7BH,A
0070015FAJMPK_P1
00725407COMMAND:ANLA,#07H;命令分析。
0074F8MOVR0,A;命令功能参见附录五。
007523RLA
007628ADDA,R0
007790007BMOVDPTR,#FUNCTION
007A73JMP@A+DPTR;用散转指令转相应分支。
007B02024EFUNCTION:LJMPMOV;转MOV命令分支。
007E0200A0LJMPDOWN;转MON命令分支。
00810201B1LJMPWRIT;转WRI命令分支。
0084020161LJMPREAD;转RDS命令分支。
00870200AFLJMPEXEC;转EXE命令分支。
008A0200E6LJMPEXAM;转EXA命令分支。
008D020209LJMPF;转[F]命令分支。
0090 0201FB