📄 vectors08.lis
字号:
.module vectors08.c
.area text
0000 _isrDummy::
0000 8B pshh
0001 L1:
0001 .dbline 0 ; func end
0001 8A pulh
0002 80 rti
0003 _isrTIMER1::
0003 8B pshh
0004 B600 lda *__r0
0006 87 psha
0007 B600 lda *__r1
0009 87 psha
000A B600 lda *__r2
000C 87 psha
000D B600 lda *__r3
000F 87 psha
0010 B600 lda *__r4
0012 87 psha
0013 B600 lda *__r5
0015 87 psha
0016 B600 lda *__r6
0018 87 psha
0019 B600 lda *__r7
001B 87 psha
001C B600 lda *__r8
001E 87 psha
001F B600 lda *__r9
0021 87 psha
0022 B600 lda *__r10
0024 87 psha
0025 B600 lda *__r11
0027 87 psha
0028 B600 lda *__rhi
002A 87 psha
002B B600 lda *__rlo
002D 87 psha
002E ; /*-----------------------------------------------------*
002E ; *文件名:vectors08.c *
002E ; *功 能:用于定义中断矢量表 *
002E ; *-----------------------------------------------------*/
002E ; //[头文件]
002E ; #include "GP32C.H"
002E ; #include "clock.h"
002E ; extern unsigned char out;
002E ;
002E ; //未定义的中断处理函数,本函数不能删除
002E ; #pragma interrupt_handler isrDummy
002E ; void isrDummy(void){
002E ; }
002E ;
002E ; #pragma interrupt_handler isrTIMER1
002E ; void isrTIMER1(void){
002E ; asm("SEI"); //关总中断
002E 9B SEI
002F ; T1SC&=~(1<<TOFBit); //重新开始计数
002F 1F20 bclr #7,0x20
0031 ; addtime(); //日期,时间累加
0031 CD0000 jsr _addtime
0034 ; displaytime(); //显示时间
0034 CD0000 jsr _displaytime
0037 95 tsx
0038 ; asm("CLI"); //开总中断
0038 9A CLI
0039 L2:
0039 .dbline 0 ; func end
0039 86 pula
003A B700 sta *__rlo
003C 86 pula
003D B700 sta *__rhi
003F 86 pula
0040 B700 sta *__r11
0042 86 pula
0043 B700 sta *__r10
0045 86 pula
0046 B700 sta *__r9
0048 86 pula
0049 B700 sta *__r8
004B 86 pula
004C B700 sta *__r7
004E 86 pula
004F B700 sta *__r6
0051 86 pula
0052 B700 sta *__r5
0054 86 pula
0055 B700 sta *__r4
0057 86 pula
0058 B700 sta *__r3
005A 86 pula
005B B700 sta *__r2
005D 86 pula
005E B700 sta *__r1
0060 86 pula
0061 B700 sta *__r0
0063 8A pulh
0064 80 rti
0065 _isrTIMER2::
0065 ; }
0065 ;
0065 ; #pragma interrupt_handler isrTIMER1
0065 ; void isrTIMER2(void){
0065 ; out=~out; //输出取反
0065 3300 com *_out
0067 ; PTD=out; //输出
0067 4E0003 mov *_out,0x3
006A L3:
006A .dbline 0 ; func end
006A 81 rts
006B ; KB_valve -> 0,X
006B _isrKBI::
006B 8B pshh
006C B600 lda *__r0
006E 87 psha
006F B600 lda *__r1
0071 87 psha
0072 B600 lda *__r2
0074 87 psha
0075 B600 lda *__r3
0077 87 psha
0078 B600 lda *__r4
007A 87 psha
007B B600 lda *__r5
007D 87 psha
007E B600 lda *__r6
0080 87 psha
0081 B600 lda *__r7
0083 87 psha
0084 B600 lda *__r8
0086 87 psha
0087 B600 lda *__r9
0089 87 psha
008A B600 lda *__r10
008C 87 psha
008D B600 lda *__r11
008F 87 psha
0090 B600 lda *__rhi
0092 87 psha
0093 B600 lda *__rlo
0095 87 psha
0096 A7FF ais #-1
0098 95 tsx
0099 ; }
0099 ; /*键盘中断处理函数------------------------------------*/
0099 ; #pragma interrupt_handler isrKBI
0099 ; void isrKBI(void){
0099 ; unsigned char KB_valve;
0099 ; asm("SEI");
0099 9B SEI
009A ; INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
009A 121A bset #1,0x1a
009C ; KB_valve=KB_Scan(); //扫描键值
009C CD0000 jsr _KB_Scan
009F 95 tsx
00A0 B700 sta *__r1
00A2 F7 sta ,X
00A3 ; KB_valve=KB_Def(KB_valve); //键值转化为定义值
00A3 87 psha
00A4 CD0000 jsr _KB_Def
00A7 A701 ais #1
00A9 95 tsx
00AA B700 sta *__r1
00AC F7 sta ,X
00AD ; set(KB_valve);
00AD 87 psha
00AE CD0000 jsr _set
00B1 A701 ais #1
00B3 ; asm("CLI");
00B3 9A CLI
00B4 ; KB_Init(); //重新初始化键盘
00B4 CD0000 jsr _KB_Init
00B7 95 tsx
00B8 ; INTKBSCR&= ~(1<<IntBit); //开放键盘中断(IMASKk=1)
00B8 131A bclr #1,0x1a
00BA L4:
00BA A701 ais #1
00BC .dbline 0 ; func end
00BC 86 pula
00BD B700 sta *__rlo
00BF 86 pula
00C0 B700 sta *__rhi
00C2 86 pula
00C3 B700 sta *__r11
00C5 86 pula
00C6 B700 sta *__r10
00C8 86 pula
00C9 B700 sta *__r9
00CB 86 pula
00CC B700 sta *__r8
00CE 86 pula
00CF B700 sta *__r7
00D1 86 pula
00D2 B700 sta *__r6
00D4 86 pula
00D5 B700 sta *__r5
00D7 86 pula
00D8 B700 sta *__r4
00DA 86 pula
00DB B700 sta *__r3
00DD 86 pula
00DE B700 sta *__r2
00E0 86 pula
00E1 B700 sta *__r1
00E3 86 pula
00E4 B700 sta *__r0
00E6 8A pulh
00E7 80 rti
.area memory(abs)
.org 0xffdc
FFDC __vectab::
FFDC 0000 .word _isrDummy
FFDE 0000 .word _isrDummy
FFE0 006B .word _isrKBI
FFE2 0000 .word _isrDummy
FFE4 0000 .word _isrDummy
FFE6 0000 .word _isrDummy
FFE8 0000 .word _isrDummy
FFEA 0000 .word _isrDummy
FFEC 0000 .word PL_isrTIMER2
FFEE 0000 .word _isrDummy
FFF0 0000 .word _isrDummy
FFF2 0003 .word _isrTIMER1
FFF4 0000 .word _isrDummy
FFF6 0000 .word _isrDummy
FFF8 0000 .word _isrDummy
FFFA 0000 .word _isrDummy
FFFC 0000 .word _isrDummy
.area lit
.area func_lit
0000 0065 PL_isrTIMER2: .word _isrTIMER2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -