27# virtualtryon
测试中的一段程序:
这是采用LAT寄存器的反汇编(两个端口正常拉高):
10: INTCONbits.GIE = 0; // 关闭全局中断和外设中断
00B6 9EF2 BCF 0xff2, 0x7, ACCESS
11: INTCONbits.PEIE = 0;
00B8 9CF2 BCF 0xff2, 0x6, ACCESS
12:
13: LATAbits.LATA0 = 1; // 电源控制端口
00BA 8089 BSF 0xf89, 0, ACCESS
14: TRISAbits.TRISA0 = 0;
00BC 9092 BCF 0xf92, 0, ACCESS
15:
16: Delay1KTCYx(100); // 25ms延时
00BE 0E64 MOVLW 0x64
00C0 6EE6 MOVWF 0xfe6, ACCESS
00C2 EC6C CALL 0xd8, 0
00C4 F000 NOP
00C6 52E5 MOVF 0xfe5, F, ACCESS
17:
18: LATAbits.LATA1 = 1; // IGT控制端口
00C8 8289 BSF 0xf89, 0x1, ACCESS
19: TRISAbits.TRISA1 = 0;
00CA 9292 BCF 0xf92, 0x1, ACCESS
20:
21: while(1);
这是RA1端口采用PORT寄存器的反汇编(RA1置为高电平,但RA0为低电平):
10: INTCONbits.GIE = 0; // 关闭全局中断和外设中断
00B6 9EF2 BCF 0xff2, 0x7, ACCESS
11: INTCONbits.PEIE = 0;
00B8 9CF2 BCF 0xff2, 0x6, ACCESS
12:
13: LATAbits.LATA0 = 1; // 电源控制端口
00BA 8089 BSF 0xf89, 0, ACCESS
14: TRISAbits.TRISA0 = 0;
00BC 9092 BCF 0xf92, 0, ACCESS
15:
16: Delay1KTCYx(100); // 25ms延时
00BE 0E64 MOVLW 0x64
00C0 6EE6 MOVWF 0xfe6, ACCESS
00C2 EC6C CALL 0xd8, 0
00C4 F000 NOP
00C6 52E5 MOVF 0xfe5, F, ACCESS
17:
18: PORTAbits.RA1 = 1; // IGT控制端口
00C8 8280 BSF 0xf80, 0x1, ACCESS
19: TRISAbits.TRISA1 = 0;
00CA 9292 BCF 0xf92, 0x1, ACCESS
20:
21: while(1);
两种情况都是在端口悬空的状态下测得的。 |