write(tab[display_buffer[i]&0x0f]); 使用时再处理是一样的,
40: void Ext_INT2 (void) interrupt INT2_VECTOR //
41: {
C:0x0415 C0E0 PUSH ACC(0xE0)
C:0x0417 C0D0 PUSH PSW(0xD0)
C:0x0419 75D000 MOV PSW(0xD0),#0x00
C:0x041C C000 PUSH 0x00
C:0x041E C007 PUSH 0x07
42: unsigned char pos=5-(P3&0x07);
C:0x0420 E5B0 MOV A,P3(0xB0)
C:0x0422 5407 ANL A,#0x07
C:0x0424 FF MOV R7,A
C:0x0425 C3 CLR C
C:0x0426 7405 MOV A,#0x05
C:0x0428 9F SUBB A,R7
43: display_buffer[pos]=(P1);
C:0x0429 2431 ADD A,#display_buffer(0x31)
C:0x042B F8 MOV R0,A
C:0x042C A690 MOV @R0,P1(0x90)
44: }
C:0x042E D007 POP 0x07
C:0x0430 D000 POP 0x00
C:0x0432 D0D0 POP PSW(0xD0)
C:0x0434 D0E0 POP ACC(0xE0)
C:0x0436 32 RETI
47: void Ext_INT3 (void) interrupt INT3_VECTOR
48: {
C:0x001E C0E0 PUSH ACC(0xE0)
C:0x0020 C0D0 PUSH PSW(0xD0)
C:0x0022 75D000 MOV PSW(0xD0),#0x00
C:0x0025 C000 PUSH 0x00
C:0x0027 C006 PUSH 0x06
C:0x0029 C007 PUSH 0x07
49: unsigned char pos=11-(P3&0x07);
C:0x002B E5B0 MOV A,P3(0xB0)
C:0x002D 5407 ANL A,#0x07
C:0x002F FF MOV R7,A
C:0x0030 C3 CLR C
C:0x0031 740B MOV A,#0x0B
C:0x0033 9F SUBB A,R7
C:0x0034 FF MOV R7,A
50: display_buffer[pos]=(P1&0x0f);//display_buffer[pos]=P1不稳定,加上&0x0f后数据稳定
51: //P55 = ~P55;
52:
C:0x0035 E590 MOV A,P1(0x90)
C:0x0037 540F ANL A,#0x0F
C:0x0039 FE MOV R6,A
C:0x003A 7431 MOV A,#display_buffer(0x31)
C:0x003C 2F ADD A,R7
C:0x003D F8 MOV R0,A
C:0x003E A606 MOV @R0,0x06
}
C:0x0040 D007 POP 0x07
C:0x0042 D006 POP 0x06
C:0x0044 D000 POP 0x00
C:0x0046 D0D0 POP PSW(0xD0)
C:0x0048 D0E0 POP ACC(0xE0)
C:0x004A 32 RETI