📄 d matrix.lst
字号:
unsigned char Ch_lock; C:\MCC18\example\AV MATRIX\D MATRIX.c
static unsigned char RC_Count;//232接受字节记计数 C:\MCC18\example\AV MATRIX\D MATRIX.c
unsigned char byte_Count;//字符数组的长度数 C:\MCC18\example\AV MATRIX\D MATRIX.c
static unsigned char TX_Count;//232发送字节记计数 C:\MCC18\example\AV MATRIX\D MATRIX.c
static unsigned char RC_Over;//232接受超时 C:\MCC18\example\AV MATRIX\D MATRIX.c
static unsigned int delay_count;//定时计数 C:\MCC18\example\AV MATRIX\D MATRIX.c
/* C:\MCC18\example\AV MATRIX\D MATRIX.c
* For PIC18xxxx devices, the low interrupt vector is found at 000000018h. C:\MCC18\example\AV MATRIX\D MATRIX.c
* Change the default code section to the absolute code section named C:\MCC18\example\AV MATRIX\D MATRIX.c
* low_vector located at address 0x18. C:\MCC18\example\AV MATRIX\D MATRIX.c
*/ C:\MCC18\example\AV MATRIX\D MATRIX.c
//底优先级中断向量 C:\MCC18\example\AV MATRIX\D MATRIX.c
#pragma code low_vector=0x18 C:\MCC18\example\AV MATRIX\D MATRIX.c
void low_interrupt (void) C:\MCC18\example\AV MATRIX\D MATRIX.c
{ C:\MCC18\example\AV MATRIX\D MATRIX.c
/* C:\MCC18\example\AV MATRIX\D MATRIX.c
* Inline assembly that will jump to the ISR. C:\MCC18\example\AV MATRIX\D MATRIX.c
*/ C:\MCC18\example\AV MATRIX\D MATRIX.c
000018 ef1c GOTO 0x38 _asm GOTO timer_isr _endasm //跳到低优先级中断程序 C:\MCC18\example\AV MATRIX\D MATRIX.c
00001a f000
00001c 0012 RETURN 0x0 } C:\MCC18\example\AV MATRIX\D MATRIX.c
C:\MCC18\example\AV MATRIX\D MATRIX.c
/* C:\MCC18\example\AV MATRIX\D MATRIX.c
* Returns the compiler to the default code section. C:\MCC18\example\AV MATRIX\D MATRIX.c
*/ C:\MCC18\example\AV MATRIX\D MATRIX.c
#pragma code C:\MCC18\example\AV MATRIX\D MATRIX.c
C:\MCC18\example\AV MATRIX\D MATRIX.c
/* C:\MCC18\example\AV MATRIX\D MATRIX.c
* Specifies the function timer_isr as a low-priority interrupt service C:\MCC18\example\AV MATRIX\D MATRIX.c
* routine. This is required in order for the compiler to generate a C:\MCC18\example\AV MATRIX\D MATRIX.c
* RETFIE instruction instead of a RETURN instruction for the timer_isr C:\MCC18\example\AV MATRIX\D MATRIX.c
* function. C:\MCC18\example\AV MATRIX\D MATRIX.c
*/ C:\MCC18\example\AV MATRIX\D MATRIX.c
#pragma interruptlow timer_isr C:\MCC18\example\AV MATRIX\D MATRIX.c
C:\MCC18\example\AV MATRIX\D MATRIX.c
/* C:\MCC18\example\AV MATRIX\D MATRIX.c
* Define the timer_isr function. Notice that it does not take any C:\MCC18\example\AV MATRIX\D MATRIX.c
* parameters, and does not return anything (as required by ISRs). C:\MCC18\example\AV MATRIX\D MATRIX.c
*/ C:\MCC18\example\AV MATRIX\D MATRIX.c
C:\MCC18\example\AV MATRIX\D MATRIX.c
void C:\MCC18\example\AV MATRIX\D MATRIX.c
000038 cfd8 MOVFF 0xfd8,0xfe4 timer_isr (void) C:\MCC18\example\AV MATRIX\D MATRIX.c
00003a ffe4
00003c cfe0 MOVFF 0xfe0,0xfe4
00003e ffe4
000040 6ee4 MOVWF 0xe4,0x0
000042 cfda MOVFF 0xfda,0xfe4
000044 ffe4
000046 cfe2 MOVFF 0xfe2,0xfda
000048 ffda
00004a 52e6 MOVF 0xe6,0x1,0x0
{ C:\MCC18\example\AV MATRIX\D MATRIX.c
/* C:\MCC18\example\AV MATRIX\D MATRIX.c
* Clears the TMR0 interrupt flag to stop the program from processing the C:\MCC18\example\AV MATRIX\D MATRIX.c
* same interrupt multiple times. C:\MCC18\example\AV MATRIX\D MATRIX.c
*/ C:\MCC18\example\AV MATRIX\D MATRIX.c
00004c 94f2 BCF 0xf2,0x2,0x0 INTCONbits.TMR0IF = 0; //Clear Timer0 overflow flag C:\MCC18\example\AV MATRIX\D MATRIX.c
00004e 9ed5 BCF 0xd5,0x7,0x0 T0CONbits.TMR0ON = 0; //8ms超时,停止TMR0,停止限时监控 C:\MCC18\example\AV MATRIX\D MATRIX.c
//下面写用户程序 C:\MCC18\example\AV MATRIX\D MATRIX.c
000050 0100 MOVLB 0x0 RC_Over = 1; //产生超时事件 C:\MCC18\example\AV MATRIX\D MATRIX.c
000052 0e01 MOVLW 0x1
000054 6f70 MOVWF 0x70,0x1
000056 c06d MOVFF 0x6d,0x6e byte_Count = RC_Count; //保存接受字符数 C:\MCC18\example\AV MATRIX\D MATRIX.c
000058 f06e
00005a 6b6d CLRF 0x6d,0x1 RC_Count = 0; //准备再次接受串行口信号 C:\MCC18\example\AV MATRIX\D MATRIX.c
00005c 52e5 MOVF 0xe5,0x1,0x0 } C:\MCC18\example\AV MATRIX\D MATRIX.c
00005e cfe5 MOVFF 0xfe5,0xfda
000060 ffda
000062 50e5 MOVF 0xe5,0x0,0x0
000064 cfe5 MOVFF 0xfe5,0xfe0
000066 ffe0
000068 cfe5 MOVFF 0xfe5,0xfd8
00006a ffd8
00006c 0010 RETFIE 0x0
C:\MCC18\example\AV MATRIX\D MATRIX.c
C:\MCC18\example\AV MATRIX\D MATRIX.c
//高优先级中断向量 C:\MCC18\example\AV MATRIX\D MATRIX.c
#pragma code InterruptVectorHigh=0x08 C:\MCC18\example\AV MATRIX\D MATRIX.c
void InterruptVectorHigh (void) C:\MCC18\example\AV MATRIX\D MATRIX.c
{ C:\MCC18\example\AV MATRIX\D MATRIX.c
_asm C:\MCC18\example\AV MATRIX\D MATRIX.c
000008 ef37 GOTO 0x6e goto InterruptHandlerHigh //跳到高优先级中断程序 C:\MCC18\example\AV MATRIX\D MATRIX.c
00000a f000
_endasm C:\MCC18\example\AV MATRIX\D MATRIX.c
00000c 0012 RETURN 0x0 } C:\MCC18\example\AV MATRIX\D MATRIX.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -