⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vectors08.lis

📁 飞思卡尔的电子钟和电子琴的课程设计,包括源代码
💻 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 + -