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

📄 main.lis

📁 这是我自己在做实验设计时做的,用摩托罗拉飞思卡尔做的一个多功能电子钟
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04ED 87                psha
 04EE CD0000            jsr __divmod16u
 04F1 86                pula
 04F2 B700              sta *__r0
 04F4 86                pula
 04F5 B700              sta *__r1
 04F7 5500              ldhx *__r0
 04F9 650000            cphx #0
 04FC 95                tsx
 04FD 2704              beq L85
 04FF           L87:
 04FF           ; 	return 1;
 04FF A601              lda #1
 0501 2001              bra L84
 0503           L85:
 0503           ; 	else return 0;
 0503 4F                clra
 0504           L84:
 0504                   .dbline 0 ; func end
 0504 81                rts
 0505           _Timer1init::
 0505           ; }
 0505           ; 
 0505           ;     
 0505           ; /*Timer1init:定时器1初始化子程序-----------------------*
 0505           ; *功能:对定时器1初始化                                  *
 0505           ; *参数:无                                               *
 0505           ; *返回:无                                               *
 0505           ; *-----------------------------------------------------*/
 0505           ; void Timer1init(void)
 0505           ;  {
 0505           ;      //允许溢出中断、不启动计数、分频因子=64
 0505           ;      T1SC=0b01100110;
 0505 A666              lda #102
 0507 B720              sta 0x20
 0509           ;      //计数寄存器初值=0x0000
 0509           ;      T1CNTH=0x00; T1CNTL=0x00;           
 0509 3F21              clr 0x21
 050B 3F22              clr 0x22
 050D           ;      //1秒产生1次溢出中断,计数寄存器=1×(2457600/64)=9600
 050D           ;      T1MODH=0x96; T1MODL=0x00;
 050D A696              lda #-106
 050F B723              sta 0x23
 0511 3F24              clr 0x24
 0513           ;      //允许定时器1计数寄存器计数
 0513           ;      T1SC&=~(1<<TSTOPBit);
 0513 1B20              bclr #5,0x20
 0515           L88:
 0515                   .dbline 0 ; func end
 0515 81                rts
 0516           _Year_adjust::
 0516           ;  }
 0516           ; 
 0516           ; void Year_adjust(void)
 0516           ; {
 0516           ; 	Normal_show_time=1;
 0516 A601              lda #1
 0518 B736              sta *_Normal_show_time
 051A           ;       Lcd_show_cursor(0,3);
 051A A603              lda #3
 051C 87                psha
 051D 4F                clra
 051E 87                psha
 051F CD0000            jsr _Lcd_show_cursor
 0522 A702              ais #2
 0524 95                tsx
 0525           ;       if(Up_Modify_key_is_pressed_flag)
 0525 B634              lda *_Up_Modify_key_is_pressed_flag
 0527 270E              beq L90
 0529           ;       {
 0529           ;               Time.year++;
 0529 B601              lda *_Time+1
 052B AB01              add #1
 052D B701              sta *_Time+1
 052F B600              lda *_Time
 0531 A900              adc #0
 0533 B700              sta *_Time
 0535           ;               Up_Modify_key_is_pressed_flag=0;
 0535 3F34              clr *_Up_Modify_key_is_pressed_flag
 0537           ;       }
 0537           L90:
 0537           ; 	
 0537           ; 	if(Down_Modify_key_is_pressed_flag)
 0537 B635              lda *_Down_Modify_key_is_pressed_flag
 0539 270E              beq L92
 053B           ;       {
 053B           ;               Time.year--;
 053B B601              lda *_Time+1
 053D A001              sub #1
 053F B701              sta *_Time+1
 0541 B600              lda *_Time
 0543 A200              sbc #0
 0545 B700              sta *_Time
 0547           ;               Down_Modify_key_is_pressed_flag=0;
 0547 3F35              clr *_Down_Modify_key_is_pressed_flag
 0549           ;       }
 0549           L92:
 0549           L89:
 0549                   .dbline 0 ; func end
 0549 81                rts
 054A           _Month_adjust::
 054A           ; 	
 054A           ; }
 054A           ; 
 054A           ; void Month_adjust(void)
 054A           ; {
 054A           ; 	Normal_show_time=1;
 054A A601              lda #1
 054C B736              sta *_Normal_show_time
 054E           ;       Lcd_show_cursor(0,6);
 054E A606              lda #6
 0550 87                psha
 0551 4F                clra
 0552 87                psha
 0553 CD0000            jsr _Lcd_show_cursor
 0556 A702              ais #2
 0558 95                tsx
 0559           ;       if(Up_Modify_key_is_pressed_flag)
 0559 B634              lda *_Up_Modify_key_is_pressed_flag
 055B 2710              beq L95
 055D           ;       {
 055D           ;               if(Time.month<12)
 055D B602              lda *_Time+2
 055F A10C              cmp #12
 0561 2404              bhs L97
 0563           ;               Time.month++;
 0563 3C02              inc *_Time+2
 0565 2004              bra L98
 0567           L97:
 0567           ; 		else
 0567           ; 			Time.month=1;
 0567 A601              lda #1
 0569 B702              sta *_Time+2
 056B           L98:
 056B           ; 		Up_Modify_key_is_pressed_flag=0;
 056B 3F34              clr *_Up_Modify_key_is_pressed_flag
 056D           ;       }
 056D           L95:
 056D           ; 	
 056D           ; 	if(Down_Modify_key_is_pressed_flag)
 056D B635              lda *_Down_Modify_key_is_pressed_flag
 056F 2710              beq L102
 0571           ;       {
 0571           ;               if(Time.month>1)
 0571 B602              lda *_Time+2
 0573 A101              cmp #1
 0575 2304              bls L104
 0577           ;                       Time.month--;
 0577 3A02              dec *_Time+2
 0579 2004              bra L105
 057B           L104:
 057B           ; 		else
 057B           ; 			Time.month=12;
 057B A60C              lda #12
 057D B702              sta *_Time+2
 057F           L105:
 057F           ; 		Down_Modify_key_is_pressed_flag=0;
 057F 3F35              clr *_Down_Modify_key_is_pressed_flag
 0581           ;       }
 0581           L102:
 0581           L94:
 0581                   .dbline 0 ; func end
 0581 81                rts
 0582           _Day_adjust::
 0582           ; 	
 0582           ; }
 0582           ; 
 0582           ; void Day_adjust(void)
 0582           ; {
 0582           ; 	Normal_show_time=1;
 0582 A601              lda #1
 0584 B736              sta *_Normal_show_time
 0586           ;       Lcd_show_cursor(0,9);
 0586 A609              lda #9
 0588 87                psha
 0589 4F                clra
 058A 87                psha
 058B CD0000            jsr _Lcd_show_cursor
 058E A702              ais #2
 0590 95                tsx
 0591           ;       if(Up_Modify_key_is_pressed_flag)
 0591 B634              lda *_Up_Modify_key_is_pressed_flag
 0593 2603              bne X14
 0595 CC0634            jmp L110
 0598           X14:
 0598           ; 	{
 0598           ; 		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)))
 0598 B602              lda *_Time+2
 059A A102              cmp #2
 059C 2706              beq L123
 059E B602              lda *_Time+2
 05A0 A101              cmp #1
 05A2 2724              beq L128
 05A4           L123:
 05A4 B602              lda *_Time+2
 05A6 A103              cmp #3
 05A8 271E              beq L128
 05AA B602              lda *_Time+2
 05AC A105              cmp #5
 05AE 2718              beq L128
 05B0 B602              lda *_Time+2
 05B2 A107              cmp #7
 05B4 2712              beq L128
 05B6 B602              lda *_Time+2
 05B8 A108              cmp #8
 05BA 270C              beq L128
 05BC B602              lda *_Time+2
 05BE A10A              cmp #10
 05C0 2706              beq L128
 05C2 B602              lda *_Time+2
 05C4 A10C              cmp #12
 05C6 2610              bne L112
 05C8           L128:
 05C8           ; 		{
 05C8           ; 			if(Time.day<31)
 05C8 B603              lda *_Time+3
 05CA A11F              cmp #31
 05CC 2404              bhs L129
 05CE           ;                               Time.day++;
 05CE 3C03              inc *_Time+3
 05D0 2060              bra L113
 05D2           L129:
 05D2           ; 			else
 05D2           ; 				Time.day=1;
 05D2 A601              lda #1
 05D4 B703              sta *_Time+3
 05D6           ;               }
 05D6 205A              bra L113
 05D8           L112:
 05D8           ; 		else if((Time.month!=2)&&(Time.month==4)||(Time.month==6)||(Time.month==9)||(Time.month==11))
 05D8 B602              lda *_Time+2
 05DA A102              cmp #2
 05DC 2706              beq L142
 05DE B602              lda *_Time+2
 05E0 A104              cmp #4
 05E2 2712              beq L144
 05E4           L142:
 05E4 B602              lda *_Time+2
 05E6 A106              cmp #6
 05E8 270C              beq L144
 05EA B602              lda *_Time+2
 05EC A109              cmp #9
 05EE 2706              beq L144
 05F0 B602              lda *_Time+2
 05F2 A10B              cmp #11
 05F4 2610              bne L134
 05F6           L144:
 05F6           ; 		{
 05F6           ; 			if(Time.day<30)
 05F6 B603              lda *_Time+3
 05F8 A11E              cmp #30
 05FA 2404              bhs L145
 05FC           ;                               Time.day++;
 05FC 3C03              inc *_Time+3
 05FE 2032              bra L135
 0600           L145:
 0600           ; 			else
 0600           ; 				Time.day=1;
 0600 A601              lda #1
 0602 B703              sta *_Time+3
 0604           ;               }
 0604 202C              bra L135
 0606           L134:
 0606           ; 		else
 0606           ; 		{
 0606           ; 			if(!Is_yunnian(Time.year))       //如果不是闰年
 0606 5500              ldhx *_Time
 0608 89                pshx
 0609 8B                pshh
 060A CD04B0            jsr _Is_yunnian
 060D A702              ais #2
 060F 95                tsx
 0610 B700              sta *__r1
 0612 2610              bne L150
 0614           ;                       {
 0614           ;                               if(Time.day<28)
 0614 B603              lda *_Time+3
 0616 A11C              cmp #28
 0618 2404              bhs L152
 061A           ;                                       Time.day++;
 061A 3C03              inc *_Time+3
 061C 2014              bra L151
 061E           L152:
 061E           ; 			    else
 061E           ; 					Time.day=1;
 061E A601              lda #1
 0620 B703              sta *_Time+3
 0622           ;                       }
 0622 200E              bra L151
 0624           L150:
 0624           ; 			else
 0624           ; 			{
 0624           ; 				if(Time.day<29)
 0624 B603              lda *_Time+3
 0626 A11D              cmp #29
 0628 2404              bhs L157
 062A           ;                                       Time.day++;
 062A 3C03              inc *_Time+3
 062C 2004              bra L158
 062E           L157:
 062E           ; 			    else
 062E           ; 					Time.day=1;
 062E A601              lda #1
 0630 B703              sta *_Time+3
 0632           L158:
 0632           ; 			}
 0632           L151:
 0632           ; 		}
 0632           L135:
 0632           L113:
 0632           ; 		Up_Modify_key_is_pressed_flag=0;
 0632 3F34              clr *_Up_Modify_key_is_pressed_flag
 0634           ;       }
 0634           L110:
 0634           ; 	
 0634           ; 	if(Down_Modify_key_is_pressed_flag)
 0634 B635              lda *_Down_Modify_key_is_pressed_flag
 0636 2603              bne X15
 0638 CC06D7            jmp L162
 063B           X15:
 063B           ; 	{
 063B           ; 		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)))
 063B B602              lda *_Time+2
 063D A102              cmp #2
 063F 2706              beq L175
 0641 B602              lda *_Time+2
 0643 A101              cmp #1
 0645 2724              beq L180
 0647           L175:
 0647 B602              lda *_Time+2
 0649 A103              cmp #3
 064B 271E              beq L180
 064D B602              lda *_Time+2
 064F A105              cmp #5
 0651 2718              beq L180
 0653 B602              lda *_Time+2
 0655 A107              cmp #7
 0657 2712              beq L180
 0659 B602              lda *_Time+2
 065B A108              cmp #8
 065D 270C              beq L180
 065F B602              lda *_Time+2
 0661 A10A              cmp #10
 0663 2706              beq L180
 0665 B602              lda *_Time+2
 0667 A10C              cmp #12
 0669 2610              bne L164
 066B           L180:
 066B           ; 		{
 066B           ; 			if(Time.day>1)
 066B B603              lda *_Time+3
 066D A101              cmp #1
 066F 2304              bls L181
 0671           ;                               Time.day--;
 0671 3A03              dec *_Time+3
 0673 2060              bra L165
 0675           L181:
 0675           ; 			else
 0675           ; 				Time.day=31;

⌨️ 快捷键说明

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