📄 inter2-0.sdi
字号:
,,, ORG 00H
0000,02 00 30,, JMP MAIN
,,, ORG 03H ;INT0中断子程序起始地址
0003,02 00 45,, JMP EXT0 ;中断子程序
,,, ORG 13H ;INT1中断子程序起始地址
0013,02 00 55,, JMP EXT1 ;中断子程序
,,, ORG 30H
0030,75 A8 85,MAIN,MAIN: MOV IE,#10000101B ;INT0,INT1中断使能
0033,75 B8 02,, MOV IP,#00000010B ;INT1中断优先
0036,75 88 01,, MOV TCON,#00000001B ;INTO为下降沿触发
0039,75 81 70,, MOV SP,#70H ;设定堆栈指针
003C,7A 00,, MOV R2,#00 ;设置记数初值
003E,C2 97,, CLR P1.7 ;
,,,;--------------------------------------------------
0040,EA,LOOP,LOOP: MOV A,R2 ;读取十进制记数值
0041,F5 A0,, MOV P2,A ;显示
0043,80 FB,, JMP LOOP ;循环
0045,C0 E0,EXT0,EXT0: PUSH ACC ;压入堆栈
0047,C0 D0,, PUSH PSW ;
0049,EA,, MOV A,R2 ;
004A,24 01,, ADD A,#01H ;计数指针加1
004C,D4,, DA A ;做十进制调整
004D,FA,, MOV R2,A ;存入R2
004E,F5 A0,, MOV P2,A ;
,,,; CALL DELAY1 ;延时
0050,D0 D0,, POP PSW ;出栈
0052,D0 E0,, POP ACC ;
0054,32,, RETI ;中断返回
,,,;-----------------------------------------------
0055,C0 E0,EXT1,EXT1: PUSH ACC ;压入堆栈
0057,C0 D0,, PUSH PSW ;
0059,D2 97,, SETB P1.7 ;
005B,12 00 72,, CALL DELAY2 ;延时
005E,C2 97,, CLR P1.7 ;
0060,D0 D0,, POP PSW ;出栈
0062,D0 E0,, POP ACC ;
0064,32,, RETI ;中断返回
,,,
,,,;-----------------------------------------------
0065,7D C8,DELAY1,DELAY1: MOV R5,#200 ;延时程序
0067,7E 64,D11,D11: MOV R6,#100 ;
0069,7F F8,D21,D21: MOV R7,#248 ;
006B,DF FE,, DJNZ R7,$ ;
006D,DE FA,, DJNZ R6,D21 ;
006F,DD F6,, DJNZ R5,D11 ;
0071,22,, RET
,,,;------------------------------------------------
0072,7D C8,DELAY2,DELAY2: MOV R5,#200 ;延时程序
0074,7E C8,D12,D12: MOV R6,#200 ;
0076,7F F8,D22,D22: MOV R7,#248 ;
0078,DF FE,, DJNZ R7,$ ;
007A,DE FA,, DJNZ R6,D22 ;
007C,DD F6,, DJNZ R5,D12 ;
007E,22,, RET
000E,,, END
,,,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -