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

📄 vectors08.lis

📁 freescale单片机电子时钟
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 01FC B600              lda *__r2
 01FE B900              adc *__r0
 0200 E71C              sta 28,X
 0202 B600              lda *__r1
 0204 E71D              sta 29,X
 0206           ;        if(((j%4==0)&&(j%100!=0))|(j%400==0))
 0206 A403              and #3
 0208 B700              sta *__r1
 020A 4F                clra
 020B B700              sta *__r0
 020D 5500              ldhx *__r0
 020F 650000            cphx #0
 0212 95                tsx
 0213 2627              bne L87
 0215 E61D              lda 29,X
 0217 B700              sta *__rlo
 0219 E61C              lda 28,X
 021B B700              sta *__rhi
 021D A664              lda #100
 021F 87                psha
 0220 4F                clra
 0221 87                psha
 0222 CD0000            jsr __divmod16u
 0225 86                pula
 0226 B700              sta *__r0
 0228 86                pula
 0229 B700              sta *__r1
 022B 5500              ldhx *__r0
 022D 650000            cphx #0
 0230 95                tsx
 0231 2709              beq L87
 0233 4F                clra
 0234 E702              sta 2,X
 0236 A601              lda #1
 0238 E703              sta 3,X
 023A 2004              bra L88
 023C           L87:
 023C 6F03              clr 3,X
 023E 6F02              clr 2,X
 0240           L88:
 0240 E61D              lda 29,X
 0242 B700              sta *__rlo
 0244 E61C              lda 28,X
 0246 B700              sta *__rhi
 0248 A690              lda #-112
 024A 87                psha
 024B A601              lda #1
 024D 87                psha
 024E CD0000            jsr __divmod16u
 0251 86                pula
 0252 B700              sta *__r0
 0254 86                pula
 0255 B700              sta *__r1
 0257 5500              ldhx *__r0
 0259 650000            cphx #0
 025C 95                tsx
 025D 2608              bne L89
 025F 4F                clra
 0260 F7                sta ,X
 0261 A601              lda #1
 0263 E701              sta 1,X
 0265 2003              bra L90
 0267           L89:
 0267 6F01              clr 1,X
 0269 7F                clr ,X
 026A           L90:
 026A E603              lda 3,X
 026C EA01              ora 1,X
 026E B700              sta *__r1
 0270 E602              lda 2,X
 0272 FA                ora ,X
 0273 B700              sta *__r0
 0275 5500              ldhx *__r0
 0277 650000            cphx #0
 027A 95                tsx
 027B 270E              beq L83
 027D           ;        {
 027D           ;          if (time[3]!=29) goto isrTIMER1_exit; 
 027D B603              lda *_time+3
 027F A11D              cmp #29
 0281 2702              beq L91
 0283 202A              bra L6
 0285           L91:
 0285           ;          time[3]=0; time[2]++;
 0285 3F03              clr *_time+3
 0287 3C02              inc *_time+2
 0289           ;        }
 0289 200C              bra L84
 028B           L83:
 028B           ;        else
 028B           ;        {
 028B           ;          if (time[3]!=28) goto isrTIMER1_exit; 
 028B B603              lda *_time+3
 028D A11C              cmp #28
 028F 2702              beq L96
 0291 201C              bra L6
 0293           L96:
 0293           ;          time[3]=0; time[2]++;
 0293 3F03              clr *_time+3
 0295 3C02              inc *_time+2
 0297           ;        }
 0297           L84:
 0297           ;    }
 0297           L56:
 0297           L21:
 0297           ;    /*switch(i)
 0297           ;    { 
 0297           ;       case 2:
 0297           ;        j=time[0]*100+time[1];
 0297           ;        if(((j%4==0)&&(j%100!=0))|(j%400==0))
 0297           ;        {
 0297           ;          if (time[3]!=29) goto isrTIMER1_exit; 
 0297           ;          time[3]=0;
 0297           ;          time[2]++;
 0297           ;        }
 0297           ;        else
 0297           ;        {
 0297           ;          if (time[3]!=28) goto isrTIMER1_exit; 
 0297           ;          time[3]=0;
 0297           ;          time[2]++;
 0297           ;        }
 0297           ;      case 4:case 6:case 9:case 11:
 0297           ;        if(time[3]!=30)
 0297           ;        {
 0297           ;          goto isrTIMER1_exit; 
 0297           ;        }
 0297           ;        time[3]=0;
 0297           ;        time[2]++;
 0297           ;        break;
 0297           ;      case 1:case 3:case 5:case 7:case 8:case 10:case 12:
 0297           ;      {
 0297           ;        if(time[3]!=31)
 0297           ;        {
 0297           ;          goto isrTIMER1_exit; 
 0297           ;        }
 0297           ;        time[3]=0;
 0297           ;        time[2]++;
 0297           ;        break;
 0297           ;      }
 0297           ;      default: break;
 0297           ;    }
 0297           ;    */
 0297           ;    if (time[2]!=12) goto isrTIMER1_exit;
 0297 B602              lda *_time+2
 0299 A10C              cmp #12
 029B 2702              beq L101
 029D 2010              bra L6
 029F           L101:
 029F           ;    time[2]=0; time[1]++;
 029F 3F02              clr *_time+2
 02A1 3C01              inc *_time+1
 02A3           ;    if (time[1]!=99) goto isrTIMER1_exit;
 02A3 B601              lda *_time+1
 02A5 A163              cmp #99
 02A7 2702              beq L106
 02A9 2004              bra L6
 02AB           L106:
 02AB           ;    time[1]=0; time[0]++;
 02AB 3F01              clr *_time+1
 02AD 3C00              inc *_time
 02AF           L6:
 02AF           ;    isrTIMER1_exit:
 02AF           ;    T1SC&=~(1<<TOFBit);
 02AF 1F20              bclr #7,0x20
 02B1           ;    asm("CLI");            //开总中断
 02B1 9A                CLI
 02B2           L1:
 02B2 A71F              ais #31
 02B4                   .dbline 0 ; func end
 02B4 86                pula
 02B5 B700              sta *__rlo
 02B7 86                pula
 02B8 B700              sta *__rhi
 02BA 86                pula
 02BB B700              sta *__r3
 02BD 86                pula
 02BE B700              sta *__r2
 02C0 86                pula
 02C1 B700              sta *__r1
 02C3 86                pula
 02C4 B700              sta *__r0
 02C6 8A                pulh
 02C7 80                rti
 02C8           _isrKBI::
 02C8 8B                pshh
 02C9 B600              lda *__r0
 02CB 87                psha
 02CC B600              lda *__r1
 02CE 87                psha
 02CF B600              lda *__r2
 02D1 87                psha
 02D2 B600              lda *__r3
 02D4 87                psha
 02D5 B600              lda *__r4
 02D7 87                psha
 02D8 B600              lda *__r5
 02DA 87                psha
 02DB B600              lda *__r6
 02DD 87                psha
 02DE B600              lda *__r7
 02E0 87                psha
 02E1 B600              lda *__r8
 02E3 87                psha
 02E4 B600              lda *__r9
 02E6 87                psha
 02E7 B600              lda *__r10
 02E9 87                psha
 02EA B600              lda *__r11
 02EC 87                psha
 02ED B600              lda *__rhi
 02EF 87                psha
 02F0 B600              lda *__rlo
 02F2 87                psha
 02F3           ; }
 02F3           ; 
 02F3           ; /*键盘中断处理函数------------------------------------*/
 02F3           ; #pragma interrupt_handler isrKBI
 02F3           ; void isrKBI(void) 
 02F3           ; {
 02F3           ;        
 02F3           ;         asm("SEI");                   //关总中断
 02F3 9B                SEI
 02F4           ;         INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
 02F4 121A              bset #1,0x1a
 02F6           ;         //val1=1;     
 02F6           ;         KB_valve=KB_Scan();  //扫描键值
 02F6 CD0000            jsr _KB_Scan
 02F9 B700              sta *__r1
 02FB B700              sta *_KB_valve
 02FD           ;      // SCISend1(KB_valve);
 02FD           ;       KB_valve=KB_Def(KB_valve);  //键值转化为定义值
 02FD B600              lda *_KB_valve
 02FF 87                psha
 0300 CD0000            jsr _KB_Def
 0303 A701              ais #1
 0305 95                tsx
 0306 B700              sta *__r1
 0308 B700              sta *_KB_valve
 030A           ;       if(KB_valve=='A')
 030A B600              lda *_KB_valve
 030C A141              cmp #65
 030E 2604              bne L111
 0310           ;       {
 0310           ;        sign1=1;
 0310 A601              lda #1
 0312 B700              sta *_sign1
 0314           ;         //SetTime();
 0314           ;       }  
 0314           L111:
 0314           ;       if(KB_valve=='B')
 0314 B600              lda *_KB_valve
 0316 A142              cmp #66
 0318 2604              bne L113
 031A           ;       {
 031A           ;         //SetAlarmClock();
 031A           ;         sign2=1;
 031A A601              lda #1
 031C B700              sta *_sign2
 031E           ;       }  
 031E           L113:
 031E           ;   
 031E           ; 	  KB_Init();			     //重新初始化键盘
 031E CD0000            jsr _KB_Init
 0321 95                tsx
 0322           ;         INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
 0322 131A              bclr #1,0x1a
 0324           ;         asm("CLI");                        //开总中断
 0324 9A                CLI
 0325           L110:
 0325                   .dbline 0 ; func end
 0325 86                pula
 0326 B700              sta *__rlo
 0328 86                pula
 0329 B700              sta *__rhi
 032B 86                pula
 032C B700              sta *__r11
 032E 86                pula
 032F B700              sta *__r10
 0331 86                pula
 0332 B700              sta *__r9
 0334 86                pula
 0335 B700              sta *__r8
 0337 86                pula
 0338 B700              sta *__r7
 033A 86                pula
 033B B700              sta *__r6
 033D 86                pula
 033E B700              sta *__r5
 0340 86                pula
 0341 B700              sta *__r4
 0343 86                pula
 0344 B700              sta *__r3
 0346 86                pula
 0347 B700              sta *__r2
 0349 86                pula
 034A B700              sta *__r1
 034C 86                pula
 034D B700              sta *__r0
 034F 8A                pulh
 0350 80                rti
 0351           _isrDummy::
 0351 8B                pshh
 0352           ; }
 0352           ; /*isrRe:接收中断处理函数-------------------------------*
 0352           ; *功  能:接收3字节基准时分秒放入内存单元Time[0-2]       *
 0352           ; *-----------------------------------------------------*/
 0352           ; /*#pragma interrupt_handler isrRe  
 0352           ; void isrRe(void) 
 0352           ;   {
 0352           ;       asm("SEI");            //禁止所有中断
 0352           ;         //接收数据
 0352           ;     SCIReN(3,time);
 0352           ;       asm("CLI");        //开放总中断 
 0352           ;   }
 0352           ; //未定义的中断处理函数,本函数不能删除*/
 0352           ; #pragma interrupt_handler isrDummy  
 0352           ; void isrDummy(void) 
 0352           ; {
 0352           L115:
 0352                   .dbline 0 ; func end
 0352 8A                pulh
 0353 80                rti
                        .area memory(abs)
                        .org 0xffdc
 FFDC           __vectab::
 FFDC 0351              .word _isrDummy
 FFDE 0351              .word _isrDummy
 FFE0 02C8              .word _isrKBI
 FFE2 0351              .word _isrDummy
 FFE4 0351              .word _isrDummy
 FFE6 0351              .word _isrDummy
 FFE8 0351              .word _isrDummy
 FFEA 0351              .word _isrDummy
 FFEC 0351              .word _isrDummy
 FFEE 0351              .word _isrDummy
 FFF0 0351              .word _isrDummy
 FFF2 0000              .word _isrTIMER1
 FFF4 0351              .word _isrDummy
 FFF6 0351              .word _isrDummy
 FFF8 0351              .word _isrDummy
 FFFA 0351              .word _isrDummy
 FFFC 0351              .word _isrDummy
                        .area lit
                        .area bss
 0000           _KB_valve::
 0000                   .blkb 1

⌨️ 快捷键说明

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