📄 vectors08.lis
字号:
.module vectors08.c
.area text
; KB_valve -> 0,X
0000 _isrKBI::
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 A7FF ais #-1
002D 95 tsx
002E ; /*-----------------------------------------------------*
002E ; *文件名:vectors08.c *
002E ; *功 能:用于定义中断矢量表 *
002E ; *-----------------------------------------------------*/
002E ; /*[头文件]*/
002E ; #include "GP32C.H"
002E ; #include "KB.h"
002E ; //#include "SCI.h"
002E ; extern void PWMInit(unsigned int ); //PWM初始化
002E ; unsigned int Period;
002E ; extern void Delay_ms(unsigned char i);
002E ;
002E ;
002E ;
002E ; /*键盘中断处理函数------------------------------------*/
002E ; #pragma interrupt_handler isrKBI
002E ; void isrKBI(void)
002E ; {
002E ; unsigned char KB_valve;
002E ; asm("SEI"); //关总中断
002E 9B SEI
002F ; KB_Init();
002F CD0000 jsr _KB_Init
0032 ; INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
0032 121A bset #1,0x1a
0034 ;
0034 ; KB_valve=KB_Scan(); //扫描键值
0034 CD0000 jsr _KB_Scan
0037 95 tsx
0038 B700 sta *__r1
003A F7 sta ,X
003B ; KB_valve=KB_Def(KB_valve); //键值转化为定义值
003B 87 psha
003C CD0000 jsr _KB_Def
003F A701 ais #1
0041 95 tsx
0042 B700 sta *__r1
0044 F7 sta ,X
0045 ; if(KB_valve=='1')
0045 A131 cmp #49
0047 260A bne L2
0049 ; {
0049 ; PWMInit(Period);
0049 5500 ldhx *_Period
004B 89 pshx
004C 8B pshh
004D CD0000 jsr _PWMInit
0050 A702 ais #2
0052 95 tsx
0053 ; // Delay_ms(200);
0053 ; }
0053 L2:
0053 ; KB_Init(); //重新初始化键盘
0053 CD0000 jsr _KB_Init
0056 95 tsx
0057 ; INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
0057 131A bclr #1,0x1a
0059 ; asm("CLI"); //开总中断
0059 9A CLI
005A L1:
005A A701 ais #1
005C .dbline 0 ; func end
005C 86 pula
005D B700 sta *__rlo
005F 86 pula
0060 B700 sta *__rhi
0062 86 pula
0063 B700 sta *__r11
0065 86 pula
0066 B700 sta *__r10
0068 86 pula
0069 B700 sta *__r9
006B 86 pula
006C B700 sta *__r8
006E 86 pula
006F B700 sta *__r7
0071 86 pula
0072 B700 sta *__r6
0074 86 pula
0075 B700 sta *__r5
0077 86 pula
0078 B700 sta *__r4
007A 86 pula
007B B700 sta *__r3
007D 86 pula
007E B700 sta *__r2
0080 86 pula
0081 B700 sta *__r1
0083 86 pula
0084 B700 sta *__r0
0086 8A pulh
0087 80 rti
0088 _isrDummy::
0088 8B pshh
0089 ; }
0089 ; //未定义的中断处理函数,本函数不能删除
0089 ; #pragma interrupt_handler isrDummy
0089 ; void isrDummy(void)
0089 ; {
0089 L4:
0089 .dbline 0 ; func end
0089 8A pulh
008A 80 rti
.area memory(abs)
.org 0xffdc
FFDC __vectab::
FFDC 0088 .word _isrDummy
FFDE 0088 .word _isrDummy
FFE0 0000 .word _isrKBI
FFE2 0088 .word _isrDummy
FFE4 0088 .word _isrDummy
FFE6 0088 .word _isrDummy
FFE8 0088 .word _isrDummy
FFEA 0088 .word _isrDummy
FFEC 0088 .word _isrDummy
FFEE 0088 .word _isrDummy
FFF0 0088 .word _isrDummy
FFF2 0088 .word _isrDummy
FFF4 0088 .word _isrDummy
FFF6 0088 .word _isrDummy
FFF8 0088 .word _isrDummy
FFFA 0088 .word _isrDummy
FFFC 0088 .word _isrDummy
.area lit
.area bss
0000 _Period::
0000 .blkb 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -