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

📄 vectors08.lis

📁 freescale单片机电子时钟
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module vectors08.c
                        .area text
                ;              j -> 28,X
                ;              i -> 30,X
 0000           _isrTIMER1::
 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 *__rhi
 000F 87                psha
 0010 B600              lda *__rlo
 0012 87                psha
 0013 A7E1              ais #-31
 0015 95                tsx
 0016           ; /*-----------------------------------------------------*
 0016           ; *文件名:vectors08.c                                    *
 0016           ; *功  能:用于定义中断矢量表                             *
 0016           ; *-----------------------------------------------------*/
 0016           ; #include "GP32C.H"
 0016           ; #include "KB.h"
 0016           ; #include "TIME.h"
 0016           ; #include "LCD.h"
 0016           ; /*[相应寄存器定义]*/
 0016           ; #define TSTOPBit   5        //定时器计数停止位
 0016           ; #define TOFBit     7        //定时器溢出标志位
 0016           ; /*isrTIMER1:定时器溢出中断处理函数---------------------*
 0016           ; *功  能:给内存单元Time[0-2](时分秒)赋值                *
 0016           ; *-----------------------------------------------------*/
 0016           ; unsigned char KB_valve;
 0016           ; extern unsigned char time[7];      //H M S
 0016           ; extern unsigned char time1[];
 0016           ; extern unsigned char val;
 0016           ; extern unsigned char val1;
 0016           ; extern unsigned char sign1;
 0016           ; extern unsigned char sign2;
 0016           ; #pragma interrupt_handler isrTIMER1
 0016           ; void isrTIMER1(void)
 0016           ; {
 0016           ;    unsigned char i;
 0016           ;    unsigned int  j;
 0016           ;    val=1;
 0016 A601              lda #1
 0018 B700              sta *_val
 001A           ;    asm("SEI");            //关总中断
 001A 9B                SEI
 001B           ;    //------------------------------
 001B           ;    time[6]++;             //秒数加1
 001B 3C06              inc *_time+6
 001D           ;    if (time[6]!=60) goto isrTIMER1_exit; //秒数未增加到60,转
 001D B606              lda *_time+6
 001F A13C              cmp #60
 0021 2703              beq L3
 0023 CC02AF            jmp L6
 0026           L3:
 0026           ;    time[6]=0; time[5]++;  //秒数增加到60,清0,分钟数加1
 0026 3F06              clr *_time+6
 0028 3C05              inc *_time+5
 002A           ;    if (time[5]!=60) goto isrTIMER1_exit; //分钟数未增到60,转
 002A B605              lda *_time+5
 002C A13C              cmp #60
 002E 2703              beq L9
 0030 CC02AF            jmp L6
 0033           L9:
 0033           ;    time[5]=0; time[4]++;  //分钟数增加到60,清0,小时数加1
 0033 3F05              clr *_time+5
 0035 3C04              inc *_time+4
 0037           ;    if (time[4]!=24) goto isrTIMER1_exit; //小时数未增到24,转
 0037 B604              lda *_time+4
 0039 A118              cmp #24
 003B 2703              beq L14
 003D CC02AF            jmp L6
 0040           L14:
 0040           ;    time[4]=0; time[3]++;            //时数增加到24,清0
 0040 3F04              clr *_time+4
 0042 3C03              inc *_time+3
 0044           ;    i=time[2];
 0044 B602              lda *_time+2
 0046 E71E              sta 30,X
 0048           ;    if((time[2]==1)|(time[2]==3)|(time[2]==5)|(time[2]==7)|(time[2]==8)|(time[2]==10)|(time[2]==12))
 0048 B602              lda *_time+2
 004A A101              cmp #1
 004C 2609              bne L36
 004E 4F                clra
 004F E71A              sta 26,X
 0051 A601              lda #1
 0053 E71B              sta 27,X
 0055 2004              bra L37
 0057           L36:
 0057 6F1B              clr 27,X
 0059 6F1A              clr 26,X
 005B           L37:
 005B B602              lda *_time+2
 005D A103              cmp #3
 005F 2609              bne L38
 0061 4F                clra
 0062 E718              sta 24,X
 0064 A601              lda #1
 0066 E719              sta 25,X
 0068 2004              bra L39
 006A           L38:
 006A 6F19              clr 25,X
 006C 6F18              clr 24,X
 006E           L39:
 006E B602              lda *_time+2
 0070 A105              cmp #5
 0072 2609              bne L40
 0074 4F                clra
 0075 E716              sta 22,X
 0077 A601              lda #1
 0079 E717              sta 23,X
 007B 2004              bra L41
 007D           L40:
 007D 6F17              clr 23,X
 007F 6F16              clr 22,X
 0081           L41:
 0081 B602              lda *_time+2
 0083 A107              cmp #7
 0085 2609              bne L42
 0087 4F                clra
 0088 E714              sta 20,X
 008A A601              lda #1
 008C E715              sta 21,X
 008E 2004              bra L43
 0090           L42:
 0090 6F15              clr 21,X
 0092 6F14              clr 20,X
 0094           L43:
 0094 B602              lda *_time+2
 0096 A108              cmp #8
 0098 2609              bne L44
 009A 4F                clra
 009B E712              sta 18,X
 009D A601              lda #1
 009F E713              sta 19,X
 00A1 2004              bra L45
 00A3           L44:
 00A3 6F13              clr 19,X
 00A5 6F12              clr 18,X
 00A7           L45:
 00A7 B602              lda *_time+2
 00A9 A10A              cmp #10
 00AB 2609              bne L46
 00AD 4F                clra
 00AE E710              sta 16,X
 00B0 A601              lda #1
 00B2 E711              sta 17,X
 00B4 2004              bra L47
 00B6           L46:
 00B6 6F11              clr 17,X
 00B8 6F10              clr 16,X
 00BA           L47:
 00BA B602              lda *_time+2
 00BC A10C              cmp #12
 00BE 2609              bne L48
 00C0 4F                clra
 00C1 E70E              sta 14,X
 00C3 A601              lda #1
 00C5 E70F              sta 15,X
 00C7 2004              bra L49
 00C9           L48:
 00C9 6F0F              clr 15,X
 00CB 6F0E              clr 14,X
 00CD           L49:
 00CD E61B              lda 27,X
 00CF EA19              ora 25,X
 00D1 B700              sta *__r1
 00D3 E61A              lda 26,X
 00D5 EA18              ora 24,X
 00D7 B700              sta *__r0
 00D9 B600              lda *__r1
 00DB EA17              ora 23,X
 00DD B700              sta *__r1
 00DF B600              lda *__r0
 00E1 EA16              ora 22,X
 00E3 B700              sta *__r0
 00E5 B600              lda *__r1
 00E7 EA15              ora 21,X
 00E9 B700              sta *__r1
 00EB B600              lda *__r0
 00ED EA14              ora 20,X
 00EF B700              sta *__r0
 00F1 B600              lda *__r1
 00F3 EA13              ora 19,X
 00F5 B700              sta *__r1
 00F7 B600              lda *__r0
 00F9 EA12              ora 18,X
 00FB B700              sta *__r0
 00FD B600              lda *__r1
 00FF EA11              ora 17,X
 0101 B700              sta *__r1
 0103 B600              lda *__r0
 0105 EA10              ora 16,X
 0107 B700              sta *__r0
 0109 B600              lda *__r1
 010B EA0F              ora 15,X
 010D B700              sta *__r1
 010F B600              lda *__r0
 0111 EA0E              ora 14,X
 0113 B700              sta *__r0
 0115 5500              ldhx *__r0
 0117 650000            cphx #0
 011A 95                tsx
 011B 2710              beq L20
 011D           ;    {
 011D           ;        if(time[3]!=31) goto isrTIMER1_exit;
 011D B603              lda *_time+3
 011F A11F              cmp #31
 0121 2703              beq L50
 0123 CC02AF            jmp L6
 0126           L50:
 0126           ;        time[3]=0; time[2]++;
 0126 3F03              clr *_time+3
 0128 3C02              inc *_time+2
 012A           ;    }
 012A CC0297            jmp L21
 012D           L20:
 012D           ;     else if((time[2]==2)|(time[2]==4)|(time[2]==6)|(time[2]==9)|(time[2]==11))
 012D B602              lda *_time+2
 012F A102              cmp #2
 0131 2609              bne L67
 0133 4F                clra
 0134 E70C              sta 12,X
 0136 A601              lda #1
 0138 E70D              sta 13,X
 013A 2004              bra L68
 013C           L67:
 013C 6F0D              clr 13,X
 013E 6F0C              clr 12,X
 0140           L68:
 0140 B602              lda *_time+2
 0142 A104              cmp #4
 0144 2609              bne L69
 0146 4F                clra
 0147 E70A              sta 10,X
 0149 A601              lda #1
 014B E70B              sta 11,X
 014D 2004              bra L70
 014F           L69:
 014F 6F0B              clr 11,X
 0151 6F0A              clr 10,X
 0153           L70:
 0153 B602              lda *_time+2
 0155 A106              cmp #6
 0157 2609              bne L71
 0159 4F                clra
 015A E708              sta 8,X
 015C A601              lda #1
 015E E709              sta 9,X
 0160 2004              bra L72
 0162           L71:
 0162 6F09              clr 9,X
 0164 6F08              clr 8,X
 0166           L72:
 0166 B602              lda *_time+2
 0168 A109              cmp #9
 016A 2609              bne L73
 016C 4F                clra
 016D E706              sta 6,X
 016F A601              lda #1
 0171 E707              sta 7,X
 0173 2004              bra L74
 0175           L73:
 0175 6F07              clr 7,X
 0177 6F06              clr 6,X
 0179           L74:
 0179 B602              lda *_time+2
 017B A10B              cmp #11
 017D 2609              bne L75
 017F 4F                clra
 0180 E704              sta 4,X
 0182 A601              lda #1
 0184 E705              sta 5,X
 0186 2004              bra L76
 0188           L75:
 0188 6F05              clr 5,X
 018A 6F04              clr 4,X
 018C           L76:
 018C E60D              lda 13,X
 018E EA0B              ora 11,X
 0190 B700              sta *__r1
 0192 E60C              lda 12,X
 0194 EA0A              ora 10,X
 0196 B700              sta *__r0
 0198 B600              lda *__r1
 019A EA09              ora 9,X
 019C B700              sta *__r1
 019E B600              lda *__r0
 01A0 EA08              ora 8,X
 01A2 B700              sta *__r0
 01A4 B600              lda *__r1
 01A6 EA07              ora 7,X
 01A8 B700              sta *__r1
 01AA B600              lda *__r0
 01AC EA06              ora 6,X
 01AE B700              sta *__r0
 01B0 B600              lda *__r1
 01B2 EA05              ora 5,X
 01B4 B700              sta *__r1
 01B6 B600              lda *__r0
 01B8 EA04              ora 4,X
 01BA B700              sta *__r0
 01BC 5500              ldhx *__r0
 01BE 650000            cphx #0
 01C1 95                tsx
 01C2 2710              beq L55
 01C4           ;    {
 01C4           ;        if(time[3]!=30) goto isrTIMER1_exit;
 01C4 B603              lda *_time+3
 01C6 A11E              cmp #30
 01C8 2703              beq L77
 01CA CC02AF            jmp L6
 01CD           L77:
 01CD           ;        time[3]=0; time[2]++;
 01CD 3F03              clr *_time+3
 01CF 3C02              inc *_time+2
 01D1           ;    }
 01D1 CC0297            jmp L56
 01D4           L55:
 01D4           ;    else
 01D4           ;    {
 01D4           ;        j=time[0]*100+time[1];
 01D4 3F00              clr *__r0
 01D6 B601              lda *_time+1
 01D8 B700              sta *__r1
 01DA 3F00              clr *__r2
 01DC B600              lda *_time
 01DE B700              sta *__r3
 01E0 A664              lda #100
 01E2 87                psha
 01E3 4F                clra
 01E4 87                psha
 01E5 B600              lda *__r3
 01E7 87                psha
 01E8 B600              lda *__r2
 01EA 87                psha
 01EB CD0000            jsr __mul16
 01EE A704              ais #4
 01F0 4E0000            mov *__rlo,*__r3
 01F3 4E0000            mov *__rhi,*__r2
 01F6 B600              lda *__r3
 01F8 BB00              add *__r1
 01FA B700              sta *__r1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -