📄 vectors08.lis
字号:
.module vectors08.c
.area text
0000 .dbfile vectors08.c
0000 .dbfunc e isrRe _isrRe fV
0000 ; no -> 0,X
0000 ; j -> 1,X
0000 ; i -> 2,X
0000 _isrRe::
0000 .dbline -1
0000 8B pshh
0001 B600 lda *__r0
0003 87 psha
0004 B600 lda *__r1
0006 87 psha
0007 B600 lda *__r2
0009 87 psha
000A B600 lda *__r3
000C 87 psha
000D B600 lda *__r4
000F 87 psha
0010 B600 lda *__r5
0012 87 psha
0013 B600 lda *__r6
0015 87 psha
0016 B600 lda *__r7
0018 87 psha
0019 B600 lda *__r8
001B 87 psha
001C B600 lda *__r9
001E 87 psha
001F B600 lda *__r10
0021 87 psha
0022 B600 lda *__r11
0024 87 psha
0025 B600 lda *__rhi
0027 87 psha
0028 B600 lda *__rlo
002A 87 psha
002B A7FD ais #-3
002D 95 tsx
002E .dbline 10
002E ; /*-----------------------------------------------------*
002E ; *文件名:vectors08.c *
002E ; *功 能:用于定义中断矢量表 *
002E ; *-----------------------------------------------------*/
002E ; //[头文件]
002E ; #include "Includes.h"
002E ; /*中断接受处理函数------------------------------------*/
002E ; #pragma interrupt_handler isrRe
002E ; void isrRe(void)
002E ; {
002E .dbline 12
002E ; INT8U i,j,no;
002E ; asm("SEI"); //禁止所有中断
002E 9B SEI
002F .dbline 14
002F ; //1:接收数据
002F ; for(i=0;i<15;i++)
002F 6F02 clr 2,X
0031 202A bra L5
0033 L2:
0033 .dbline 15
0033 ; {ReBuf[i]=SCIRe1(&j);
0033 .dbline 15
0033 AF01 aix #1
0035 89 pshx
0036 8B pshh
0037 CD0000 jsr _SCIRe1
003A A702 ais #2
003C 95 tsx
003D B700 sta *__r1
003F 3F00 clr *__r2
0041 E602 lda 2,X
0043 AB00 add #<_ReBuf
0045 B700 sta *__r3
0047 B600 lda *__r2
0049 A900 adc #>_ReBuf
004B B700 sta *__r2
004D B600 lda *__r1
004F 5500 ldhx *__r2
0051 F7 sta ,x
0052 95 tsx
0053 .dbline 16
0053 E601 lda 1,X
0055 A101 cmp #1
0057 2602 bne L6
0059 .dbline 16
0059 201C bra L8
005B L6:
005B .dbline 16
005B L3:
005B .dbline 14
005B 6C02 inc 2,X
005D L5:
005D .dbline 14
005D E602 lda 2,X
005F A10F cmp #15
0061 25D0 blo L2
0063 .dbline 18
0063 ; if(j == 1) goto isrRe_Exit;}
0063 ; //2:解包接收到的数据
0063 ; no=DePackReBuf(ReBuf);
0063 450000 ldhx #_ReBuf
0066 89 pshx
0067 8B pshh
0068 CD0000 jsr _DePackReBuf
006B A702 ais #2
006D 95 tsx
006E B700 sta *__r1
0070 F7 sta ,X
0071 .dbline 19
0071 ; if(no==0) ReSendFlag=1; //时间接收成功
0071 2604 bne L9
0073 .dbline 19
0073 A601 lda #1
0075 B700 sta *_ReSendFlag
0077 L9:
0077 L8:
0077 .dbline 21
0077 ; isrRe_Exit:
0077 ; asm("CLI"); //开放总中断
0077 9A CLI
0078 .dbline -2
0078 L1:
0078 A703 ais #3
007A .dbline 0 ; func end
007A 86 pula
007B B700 sta *__rlo
007D 86 pula
007E B700 sta *__rhi
0080 86 pula
0081 B700 sta *__r11
0083 86 pula
0084 B700 sta *__r10
0086 86 pula
0087 B700 sta *__r9
0089 86 pula
008A B700 sta *__r8
008C 86 pula
008D B700 sta *__r7
008F 86 pula
0090 B700 sta *__r6
0092 86 pula
0093 B700 sta *__r5
0095 86 pula
0096 B700 sta *__r4
0098 86 pula
0099 B700 sta *__r3
009B 86 pula
009C B700 sta *__r2
009E 86 pula
009F B700 sta *__r1
00A1 86 pula
00A2 B700 sta *__r0
00A4 8A pulh
00A5 80 rti
00A6 .dbsym l no 0 c
00A6 .dbsym l j 1 c
00A6 .dbsym l i 2 c
00A6 .dbend
00A6 .dbfunc e isrKBI _isrKBI fV
00A6 ; key_num -> 0,X
00A6 ; key1 -> 1,X
00A6 ; key2 -> 2,X
00A6 ; i -> 3,X
00A6 _isrKBI::
00A6 .dbline -1
00A6 8B pshh
00A7 B600 lda *__r0
00A9 87 psha
00AA B600 lda *__r1
00AC 87 psha
00AD B600 lda *__r2
00AF 87 psha
00B0 B600 lda *__r3
00B2 87 psha
00B3 B600 lda *__r4
00B5 87 psha
00B6 B600 lda *__r5
00B8 87 psha
00B9 B600 lda *__r6
00BB 87 psha
00BC B600 lda *__r7
00BE 87 psha
00BF B600 lda *__r8
00C1 87 psha
00C2 B600 lda *__r9
00C4 87 psha
00C5 B600 lda *__r10
00C7 87 psha
00C8 B600 lda *__r11
00CA 87 psha
00CB B600 lda *__rhi
00CD 87 psha
00CE B600 lda *__rlo
00D0 87 psha
00D1 A7FC ais #-4
00D3 95 tsx
00D4 .dbline 26
00D4 ; }
00D4 ; /*键盘中断处理函数------------------------------------*/
00D4 ; #pragma interrupt_handler isrKBI
00D4 ; void isrKBI(void)
00D4 ; {
00D4 .dbline 27
00D4 ; INT8U i,key1,key2,key_num=0;
00D4 7F clr ,X
00D5 .dbline 28
00D5 ; asm("SEI"); //关总中断
00D5 9B SEI
00D6 .dbline 30
00D6 ; //开关量输入------------------------
00D6 ; INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
00D6 121A bset #1,0x1a
00D8 .dbline 31
00D8 ; KeyInput_Judge(&key1);
00D8 AF01 aix #1
00DA 89 pshx
00DB 8B pshh
00DC CD0000 jsr _KeyInput_Judge
00DF A702 ais #2
00E1 .dbline 32
00E1 ; KeyInput_Init(); //重新初始化键盘
00E1 CD0000 jsr _KeyInput_Init
00E4 95 tsx
00E5 .dbline 33
00E5 ; INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
00E5 131A bclr #1,0x1a
00E7 .dbline 35
00E7 ; //---------------------------------------
00E7 ; for(i=0;i<5;i++)
00E7 6F03 clr 3,X
00E9 2013 bra L15
00EB L12:
00EB .dbline 36
00EB ; {
00EB .dbline 37
00EB ; KeyInput_Judge(&key2);
00EB AF02 aix #2
00ED 89 pshx
00EE 8B pshh
00EF CD0000 jsr _KeyInput_Judge
00F2 A702 ais #2
00F4 95 tsx
00F5 .dbline 38
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -