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

📄 vectors08.lis

📁 这是我自己在做实验设计时做的,用摩托罗拉飞思卡尔做的一个多功能电子钟
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0192 A10B              cmp #11
 0194 2627              bne L57
 0196           L67:
 0196           ; 		{
 0196           ; 			if(Time.day!=30) goto isrTIMER1_exit;
 0196 B603              lda *_Time+3
 0198 A11E              cmp #30
 019A 2703              beq L68
 019C CC029E            jmp L16
 019F           L68:
 019F           ; 			Time.day=0;
 019F 3F03              clr *_Time+3
 01A1           ;                       Time.month++;
 01A1 3C02              inc *_Time+2
 01A3           ;                       if(Time.month!=12) goto isrTIMER1_exit;
 01A3 B602              lda *_Time+2
 01A5 A10C              cmp #12
 01A7 2703              beq L73
 01A9 CC029E            jmp L16
 01AC           L73:
 01AC           ; 			Time.month=0;
 01AC 3F02              clr *_Time+2
 01AE           ;                       Time.year++;
 01AE B601              lda *_Time+1
 01B0 AB01              add #1
 01B2 B701              sta *_Time+1
 01B4 B600              lda *_Time
 01B6 A900              adc #0
 01B8 B700              sta *_Time
 01BA           ;               }
 01BA CC029E            jmp L30
 01BD           L57:
 01BD           ; 		else
 01BD           ; 		{
 01BD           ; 			if(Time.day!=28) goto isrTIMER1_exit;
 01BD B603              lda *_Time+3
 01BF A11C              cmp #28
 01C1 2703              beq L77
 01C3 CC029E            jmp L16
 01C6           L77:
 01C6           ; 			Time.day=0;
 01C6 3F03              clr *_Time+3
 01C8           ;                       Time.month++;
 01C8 3C02              inc *_Time+2
 01CA           ;                       if(Time.month!=12) goto isrTIMER1_exit;
 01CA B602              lda *_Time+2
 01CC A10C              cmp #12
 01CE 2703              beq L82
 01D0 CC029E            jmp L16
 01D3           L82:
 01D3           ; 			Time.month=0;
 01D3 3F02              clr *_Time+2
 01D5           ;                       Time.year++;
 01D5 B601              lda *_Time+1
 01D7 AB01              add #1
 01D9 B701              sta *_Time+1
 01DB B600              lda *_Time
 01DD A900              adc #0
 01DF B700              sta *_Time
 01E1           ;               }
 01E1           ;    }
 01E1 CC029E            jmp L30
 01E4           L29:
 01E4           ;    else        //否则为闰年
 01E4           ;    {
 01E4           ;    		if((Time.month!=2)&&(Time.month==1)||(Time.month==3)||(Time.month==5)||(Time.month==7)||(Time.month==8)||(Time.month==10||(Time.month==12)))
 01E4 B602              lda *_Time+2
 01E6 A102              cmp #2
 01E8 2706              beq L97
 01EA B602              lda *_Time+2
 01EC A101              cmp #1
 01EE 2724              beq L102
 01F0           L97:
 01F0 B602              lda *_Time+2
 01F2 A103              cmp #3
 01F4 271E              beq L102
 01F6 B602              lda *_Time+2
 01F8 A105              cmp #5
 01FA 2718              beq L102
 01FC B602              lda *_Time+2
 01FE A107              cmp #7
 0200 2712              beq L102
 0202 B602              lda *_Time+2
 0204 A108              cmp #8
 0206 270C              beq L102
 0208 B602              lda *_Time+2
 020A A10A              cmp #10
 020C 2706              beq L102
 020E B602              lda *_Time+2
 0210 A10C              cmp #12
 0212 2626              bne L86
 0214           L102:
 0214           ; 		{
 0214           ; 			if(Time.day!=31) goto isrTIMER1_exit;
 0214 B603              lda *_Time+3
 0216 A11F              cmp #31
 0218 2703              beq L103
 021A CC029E            jmp L16
 021D           L103:
 021D           ; 			Time.day=0;
 021D 3F03              clr *_Time+3
 021F           ;                       Time.month++;
 021F 3C02              inc *_Time+2
 0221           ;                       if(Time.month!=12) goto isrTIMER1_exit;
 0221 B602              lda *_Time+2
 0223 A10C              cmp #12
 0225 2703              beq L108
 0227 CC029E            jmp L16
 022A           L108:
 022A           ; 			Time.month=0;
 022A 3F02              clr *_Time+2
 022C           ;                       Time.year++;
 022C B601              lda *_Time+1
 022E AB01              add #1
 0230 B701              sta *_Time+1
 0232 B600              lda *_Time
 0234 A900              adc #0
 0236 B700              sta *_Time
 0238           ;               }
 0238 2064              bra L87
 023A           L86:
 023A           ; 		else if((Time.month!=2)&&(Time.month==4)||(Time.month==6)||(Time.month==9)||(Time.month==11))
 023A B602              lda *_Time+2
 023C A102              cmp #2
 023E 2706              beq L120
 0240 B602              lda *_Time+2
 0242 A104              cmp #4
 0244 2712              beq L122
 0246           L120:
 0246 B602              lda *_Time+2
 0248 A106              cmp #6
 024A 270C              beq L122
 024C B602              lda *_Time+2
 024E A109              cmp #9
 0250 2706              beq L122
 0252 B602              lda *_Time+2
 0254 A10B              cmp #11
 0256 2624              bne L112
 0258           L122:
 0258           ; 		{
 0258           ; 			if(Time.day!=30) goto isrTIMER1_exit;
 0258 B603              lda *_Time+3
 025A A11E              cmp #30
 025C 2702              beq L123
 025E 203E              bra L16
 0260           L123:
 0260           ; 			Time.day=0;
 0260 3F03              clr *_Time+3
 0262           ;                       Time.month++;
 0262 3C02              inc *_Time+2
 0264           ;                       if(Time.month!=12) goto isrTIMER1_exit;
 0264 B602              lda *_Time+2
 0266 A10C              cmp #12
 0268 2702              beq L128
 026A 2032              bra L16
 026C           L128:
 026C           ; 			Time.month=0;
 026C 3F02              clr *_Time+2
 026E           ;                       Time.year++;
 026E B601              lda *_Time+1
 0270 AB01              add #1
 0272 B701              sta *_Time+1
 0274 B600              lda *_Time
 0276 A900              adc #0
 0278 B700              sta *_Time
 027A           ;               }
 027A 2022              bra L113
 027C           L112:
 027C           ; 		else
 027C           ; 		{
 027C           ; 			if(Time.day!=29) goto isrTIMER1_exit;
 027C B603              lda *_Time+3
 027E A11D              cmp #29
 0280 2702              beq L132
 0282 201A              bra L16
 0284           L132:
 0284           ; 			Time.day=0;
 0284 3F03              clr *_Time+3
 0286           ;                       Time.month++;
 0286 3C02              inc *_Time+2
 0288           ;                       if(Time.month!=12) goto isrTIMER1_exit;
 0288 B602              lda *_Time+2
 028A A10C              cmp #12
 028C 2702              beq L137
 028E 200E              bra L16
 0290           L137:
 0290           ; 			Time.month=0;
 0290 3F02              clr *_Time+2
 0292           ;                       Time.year++;
 0292 B601              lda *_Time+1
 0294 AB01              add #1
 0296 B701              sta *_Time+1
 0298 B600              lda *_Time
 029A A900              adc #0
 029C B700              sta *_Time
 029E           ;               }
 029E           L113:
 029E           L87:
 029E           ;    }
 029E           L30:
 029E           L16:
 029E           ;    isrTIMER1_exit:	 
 029E           ;    if(Timer_5sec_trigger)
 029E B600              lda *_Timer_5sec_trigger
 02A0 2702              beq L141
 02A2           ;    {
 02A2           ;               Timer_5sec_counter++;
 02A2 3C00              inc *_Timer_5sec_counter
 02A4           ;    }
 02A4           L141:
 02A4           ;    if(Alarm_enable_flag&&(Time.year==Alarm.year)&&(Time.month==Alarm.month)&&(Time.day==Alarm.day)&&(Time.hour==Alarm.hour)&&(Time.min==Alarm.min))
 02A4 B600              lda *_Alarm_enable_flag
 02A6 2725              beq L143
 02A8 5500              ldhx *_Time
 02AA 7500              cphx *_Alarm
 02AC 95                tsx
 02AD 261E              bne L143
 02AF B602              lda *_Time+2
 02B1 B102              cmp *_Alarm+2
 02B3 2618              bne L143
 02B5 B603              lda *_Time+3
 02B7 B103              cmp *_Alarm+3
 02B9 2612              bne L143
 02BB B604              lda *_Time+4
 02BD B104              cmp *_Alarm+4
 02BF 260C              bne L143
 02C1 B605              lda *_Time+5
 02C3 B105              cmp *_Alarm+5
 02C5 2606              bne L143
 02C7           ;    {
 02C7           ;           Alarm_trigger=1;
 02C7 A601              lda #1
 02C9 B700              sta *_Alarm_trigger
 02CB           ;               Alarm_counter++;        
 02CB 3C00              inc *_Alarm_counter
 02CD           ;    }
 02CD           L143:
 02CD           ;    if((Time.min==0)&&(Time.sec==0))
 02CD B605              lda *_Time+5
 02CF 2608              bne L153
 02D1 B606              lda *_Time+6
 02D3 2604              bne L153
 02D5           ;    {
 02D5           ;               Minute_second_integral_flag=1;
 02D5 A601              lda #1
 02D7 B700              sta *_Minute_second_integral_flag
 02D9           ;    }
 02D9           L153:
 02D9           ;    if(Minute_second_integral_flag) 
 02D9 B600              lda *_Minute_second_integral_flag
 02DB 2702              beq L157
 02DD           ;        Integral_counter++;
 02DD 3C00              inc *_Integral_counter
 02DF           L157:
 02DF           ;    	  	
 02DF           ; 	     	
 02DF           ;    //------------------------------
 02DF           ;    //清除定时器溢出标志位
 02DF           ;    Time_fresh=1;             //置时间更新位!
 02DF A601              lda #1
 02E1 B700              sta *_Time_fresh
 02E3           ;    Alarm_fresh=1;
 02E3 A601              lda #1
 02E5 B700              sta *_Alarm_fresh
 02E7           ;    T1SC&=~(1<<TOFBit);
 02E7 1F20              bclr #7,0x20
 02E9           ;    asm("CLI");            //开总中断
 02E9 9A                CLI
 02EA           L11:
 02EA A702              ais #2
 02EC                   .dbline 0 ; func end
 02EC 86                pula
 02ED B700              sta *__rlo
 02EF 86                pula
 02F0 B700              sta *__rhi
 02F2 86                pula
 02F3 B700              sta *__r11
 02F5 86                pula
 02F6 B700              sta *__r10
 02F8 86                pula
 02F9 B700              sta *__r9
 02FB 86                pula
 02FC B700              sta *__r8
 02FE 86                pula
 02FF B700              sta *__r7
 0301 86                pula
 0302 B700              sta *__r6
 0304 86                pula
 0305 B700              sta *__r5
 0307 86                pula
 0308 B700              sta *__r4
 030A 86                pula
 030B B700              sta *__r3
 030D 86                pula
 030E B700              sta *__r2
 0310 86                pula
 0311 B700              sta *__r1
 0313 86                pula
 0314 B700              sta *__r0
 0316 8A                pulh
 0317 80                rti
 0318           _isrDummy::
 0318 8B                pshh
 0319           ; }
 0319           ; 
 0319           ; #pragma interrupt_handler isrDummy  
 0319           ; void isrDummy(void) 
 0319           ;   {
 0319           L159:
 0319                   .dbline 0 ; func end
 0319 8A                pulh
 031A 80                rti
                        .area memory(abs)
                        .org 0xffdc
 FFDC           __vectab::
 FFDC 0318              .word _isrDummy
 FFDE 0318              .word _isrDummy
 FFE0 0000              .word _isrKBI
 FFE2 0318              .word _isrDummy
 FFE4 0318              .word _isrDummy
 FFE6 0318              .word _isrDummy
 FFE8 0318              .word _isrDummy
 FFEA 0318              .word _isrDummy
 FFEC 0318              .word _isrDummy
 FFEE 0318              .word _isrDummy
 FFF0 0318              .word _isrDummy
 FFF2 00B8              .word _isrTIMER1
 FFF4 0318              .word _isrDummy
 FFF6 0318              .word _isrDummy
 FFF8 0318              .word _isrDummy
 FFFA 0318              .word _isrDummy
 FFFC 0318              .word _isrDummy
                        .area lit

⌨️ 快捷键说明

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