📄 vectors08.lis
字号:
013A B602 lda *_data+2
013C A900 adc #0
013E B702 sta *_data+2
0140 ; if(data[1]!=13)goto isrTIMER1_exit; //月数增加未增加到12,转
0140 5502 ldhx *_data+2
0142 65000D cphx #13
0145 95 tsx
0146 2702 beq L37
0148 2010 bra L21
014A L37:
014A ; data[1]=0;data[2]++; //月数增加到12,清0,年数加1
014A 3F03 clr *_data+2+1
014C 3F02 clr *_data+2
014E B605 lda *_data+4+1
0150 AB01 add #1
0152 B705 sta *_data+4+1
0154 B604 lda *_data+4
0156 A900 adc #0
0158 B704 sta *_data+4
015A L21:
015A ; isrTIMER1_exit:
015A ; //------------------------------
015A ; //清除定时器溢出标志位
015A ; T1SC&=~(1<<TOFBit);
015A 1F20 bclr #7,0x20
015C ; asm("CLI"); //开总中断
015C 9A CLI
015D L11:
015D A701 ais #1
015F .dbline 0 ; func end
015F 86 pula
0160 B700 sta *__rlo
0162 86 pula
0163 B700 sta *__rhi
0165 86 pula
0166 B700 sta *__r11
0168 86 pula
0169 B700 sta *__r10
016B 86 pula
016C B700 sta *__r9
016E 86 pula
016F B700 sta *__r8
0171 86 pula
0172 B700 sta *__r7
0174 86 pula
0175 B700 sta *__r6
0177 86 pula
0178 B700 sta *__r5
017A 86 pula
017B B700 sta *__r4
017D 86 pula
017E B700 sta *__r3
0180 86 pula
0181 B700 sta *__r2
0183 86 pula
0184 B700 sta *__r1
0186 86 pula
0187 B700 sta *__r0
0189 8A pulh
018A 80 rti
018B _isrRe::
018B 8B pshh
018C B600 lda *__r0
018E 87 psha
018F B600 lda *__r1
0191 87 psha
0192 B600 lda *__r2
0194 87 psha
0195 B600 lda *__r3
0197 87 psha
0198 B600 lda *__r4
019A 87 psha
019B B600 lda *__r5
019D 87 psha
019E B600 lda *__r6
01A0 87 psha
01A1 B600 lda *__r7
01A3 87 psha
01A4 B600 lda *__r8
01A6 87 psha
01A7 B600 lda *__r9
01A9 87 psha
01AA B600 lda *__r10
01AC 87 psha
01AD B600 lda *__r11
01AF 87 psha
01B0 B600 lda *__rhi
01B2 87 psha
01B3 B600 lda *__rlo
01B5 87 psha
01B6 ; }
01B6 ; /*isrRe:接收中断处理函数-------------------------------*
01B6 ; *功 能:接收3字节基准时分秒放入内存单元Time[0-2] *
01B6 ; *-----------------------------------------------------*/
01B6 ; #pragma interrupt_handler isrRe
01B6 ; void isrRe(void)
01B6 ; {
01B6 ; asm("SEI"); //禁止所有中断
01B6 9B SEI
01B7 ; //接收数据
01B7 ; SCIReN(3,time);
01B7 450000 ldhx #_time
01BA 89 pshx
01BB 8B pshh
01BC A603 lda #3
01BE 87 psha
01BF CD0000 jsr _SCIReN
01C2 A703 ais #3
01C4 95 tsx
01C5 ; asm("CLI"); //开放总中断
01C5 9A CLI
01C6 L42:
01C6 .dbline 0 ; func end
01C6 86 pula
01C7 B700 sta *__rlo
01C9 86 pula
01CA B700 sta *__rhi
01CC 86 pula
01CD B700 sta *__r11
01CF 86 pula
01D0 B700 sta *__r10
01D2 86 pula
01D3 B700 sta *__r9
01D5 86 pula
01D6 B700 sta *__r8
01D8 86 pula
01D9 B700 sta *__r7
01DB 86 pula
01DC B700 sta *__r6
01DE 86 pula
01DF B700 sta *__r5
01E1 86 pula
01E2 B700 sta *__r4
01E4 86 pula
01E5 B700 sta *__r3
01E7 86 pula
01E8 B700 sta *__r2
01EA 86 pula
01EB B700 sta *__r1
01ED 86 pula
01EE B700 sta *__r0
01F0 8A pulh
01F1 80 rti
01F2 _isrKBI::
01F2 8B pshh
01F3 B600 lda *__r0
01F5 87 psha
01F6 B600 lda *__r1
01F8 87 psha
01F9 B600 lda *__r2
01FB 87 psha
01FC B600 lda *__r3
01FE 87 psha
01FF B600 lda *__r4
0201 87 psha
0202 B600 lda *__r5
0204 87 psha
0205 B600 lda *__r6
0207 87 psha
0208 B600 lda *__r7
020A 87 psha
020B B600 lda *__r8
020D 87 psha
020E B600 lda *__r9
0210 87 psha
0211 B600 lda *__r10
0213 87 psha
0214 B600 lda *__r11
0216 87 psha
0217 B600 lda *__rhi
0219 87 psha
021A B600 lda *__rlo
021C 87 psha
021D ; }
021D ; /*键盘中断处理函数------------------------------------*/
021D ; #pragma interrupt_handler isrKBI
021D ; void isrKBI(void)
021D ; {
021D ;
021D ; asm("SEI"); //关总中断
021D 9B SEI
021E ; INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
021E 121A bset #1,0x1a
0220 ; KB_valve=KB_Scan(); //扫描键值
0220 CD0000 jsr _KB_Scan
0223 B700 sta *__r1
0225 B700 sta *_KB_valve
0227 ; KB_valve=KB_Def(KB_valve); //键值转化为
0227 B600 lda *_KB_valve
0229 87 psha
022A CD0000 jsr _KB_Def
022D A701 ais #1
022F 95 tsx
0230 B700 sta *__r1
0232 B700 sta *_KB_valve
0234 L44:
0234 ; isrKBI_exit:
0234 ; KB_Init(); //重新初始化键盘
0234 CD0000 jsr _KB_Init
0237 95 tsx
0238 ; INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
0238 131A bclr #1,0x1a
023A ; asm("CLI"); //开总中断
023A 9A CLI
023B L43:
023B .dbline 0 ; func end
023B 86 pula
023C B700 sta *__rlo
023E 86 pula
023F B700 sta *__rhi
0241 86 pula
0242 B700 sta *__r11
0244 86 pula
0245 B700 sta *__r10
0247 86 pula
0248 B700 sta *__r9
024A 86 pula
024B B700 sta *__r8
024D 86 pula
024E B700 sta *__r7
0250 86 pula
0251 B700 sta *__r6
0253 86 pula
0254 B700 sta *__r5
0256 86 pula
0257 B700 sta *__r4
0259 86 pula
025A B700 sta *__r3
025C 86 pula
025D B700 sta *__r2
025F 86 pula
0260 B700 sta *__r1
0262 86 pula
0263 B700 sta *__r0
0265 8A pulh
0266 80 rti
0267 _isrDummy::
0267 8B pshh
0268 ;
0268 ;
0268 ; }
0268 ; //未定义的中断处理函数,本函数不能删除
0268 ; #pragma interrupt_handler isrDummy
0268 ; void isrDummy(void)
0268 ; {
0268 L45:
0268 .dbline 0 ; func end
0268 8A pulh
0269 80 rti
.area memory(abs)
.org 0xffdc
FFDC __vectab::
FFDC 0267 .word _isrDummy
FFDE 0267 .word _isrDummy
FFE0 01F2 .word _isrKBI
FFE2 0267 .word _isrDummy
FFE4 018B .word _isrRe
FFE6 0267 .word _isrDummy
FFE8 0267 .word _isrDummy
FFEA 0267 .word _isrDummy
FFEC 0267 .word _isrDummy
FFEE 0267 .word _isrDummy
FFF0 0267 .word _isrDummy
FFF2 00A0 .word _isrTIMER1
FFF4 0267 .word _isrDummy
FFF6 0267 .word _isrDummy
FFF8 0267 .word _isrDummy
FFFA 0267 .word _isrDummy
FFFC 0267 .word _isrDummy
.area lit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -