看下面一段程序:
0111 05ED 9DEB 1 1 1 1 1 1 1 1 BC $-2 0112 05EB FFFF 1 1 1 1 1 1 1 1 NOP 0113 05EB FFFF 1 1 1 1 1 1 1 1 NOP 0114 0002 E005 1 1 1 1 1 1 1 1 JMP TIMER_IN 0115 0005 3C31 1 1 1 1 1 1 1 1 STA ACC_B,00H 0116 0006 7801 1 1 1 1 1 1 1 1 LDI IRQX,0000B 0117 0007 7800 1 1 1 1 1 1 1 1 LDI IEX,0000B 0118 0008 3808 1 1 1 1 1 1 1 1 LDA PORTA,00H 0119 0009 3C4A 1 1 1 1 1 1 1 1 STA PA_BACK,00H 0120 000A 6BCA 1 1 1 1 1 1 1 1 ORIM PA_BACK,0111B 0121 000B 3C08 1 1 1 1 1 1 1 1 STA PORTA,00H 0122 000C 3808 1 1 1 1 1 1 1 1 LDA PORTA,00H 0123 000D A01E 1 1 1 1 1 1 1 1 BA0 DOWN_KEY ;判断加键是否按下,没有去判断减键 0124 000E 7936 1 1 1 1 1 1 1 1 LDI NOW_KEY,2 0125 000F 1835 1 1 1 1 1 1 1 1 SUB NEX_KEY,00H ;去抖 0126 0010 801B 1 1 1 1 1 1 1 1 BNZ SCAN_KEY_1 0127 0011 3834 1 1 1 1 1 1 1 1 LDA FL_KEY,00H ;判断是否响应,响应过则跳出去 0128 0012 A046 1 1 1 1 1 1 1 1 BA0 OVER_1 0129 0046 58C9 1 1 1 1 1 1 1 1 SBIM OPEN_ON,01 0130 0047 804A 1 1 1 1 1 1 1 1 BNZ TIMER_IN_END 0131 004A 3808 1 1 1 1 1 1 1 1 LDA PORTA,00H 0132 004B 3C4A 1 1 1 1 1 1 1 1 STA PA_BACK,00H 0133 004C 6BCA 1 1 1 1 1 1 1 1 ORIM PA_BACK,0111B 0134 004D 3C08 1 1 1 1 1 1 1 1 STA PORTA,00H 0135 004E 7A00 1 1 1 1 1 1 1 1 LDI IEX,0100B 0136 004F 3831 1 1 1 1 1 1 1 1 LDA ACC_B,00H 0137 0050 D400 1 1 1 1 1 1 1 1 RTNI 0138 05EB FFFF 1 1 1 1 1 1 1 1 NOP
0112和0113和0138这三条就是一条 0112是进入中断前执行的一条,0113你们说是等待进入中断,只显示不执行 但为什么出来还有0138呢,应该出中断后直接执行 SBIM DELAY_0,01而不是0138的NOP指令 这是为什么呢 |