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

📄 2.lis

📁 万年历 megal128 iccavr开发平台
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04A8 30E0              ldi R19,0
 04AA 00910500          lds R16,_month
 04AE 1127              clr R17
 04B0 0E940000          xcall div16s
 04B4 F801              movw R30,R16
 04B6 80E0              ldi R24,<_table
 04B8 90E0              ldi R25,>_table
 04BA E80F              add R30,R24
 04BC F91F              adc R31,R25
 04BE 2490              lpm R2,Z
 04C0 3324              clr R3
 04C2 3B82              std y+3,R3
 04C4 2A82              std y+2,R2
 04C6 80E1              ldi R24,16
 04C8 90E0              ldi R25,0
 04CA 9983              std y+1,R25
 04CC 8883              std y+0,R24
 04CE 2AE0              ldi R18,10
 04D0 30E0              ldi R19,0
 04D2 09EF              ldi R16,249
 04D4 10E0              ldi R17,0
 04D6 C0DD              xcall _write_ASCII
 04D8                   .dbline 142
 04D8           ;    write_ASCII(0xf9,11,16,table[month%10]);//月份低位
 04D8 2AE0              ldi R18,10
 04DA 30E0              ldi R19,0
 04DC 00910500          lds R16,_month
 04E0 1127              clr R17
 04E2 0E940000          xcall mod16s
 04E6 F801              movw R30,R16
 04E8 80E0              ldi R24,<_table
 04EA 90E0              ldi R25,>_table
 04EC E80F              add R30,R24
 04EE F91F              adc R31,R25
 04F0 2490              lpm R2,Z
 04F2 3324              clr R3
 04F4 3B82              std y+3,R3
 04F6 2A82              std y+2,R2
 04F8 80E1              ldi R24,16
 04FA 90E0              ldi R25,0
 04FC 9983              std y+1,R25
 04FE 8883              std y+0,R24
 0500 2BE0              ldi R18,11
 0502 30E0              ldi R19,0
 0504 09EF              ldi R16,249
 0506 10E0              ldi R17,0
 0508 A7DD              xcall _write_ASCII
 050A                   .dbline 143
 050A           ;    write_ASCII(0xf9,14,16,table[days/10]);//日期高位
 050A 2AE0              ldi R18,10
 050C 30E0              ldi R19,0
 050E 00910400          lds R16,_days
 0512 1127              clr R17
 0514 0E940000          xcall div16s
 0518 F801              movw R30,R16
 051A 80E0              ldi R24,<_table
 051C 90E0              ldi R25,>_table
 051E E80F              add R30,R24
 0520 F91F              adc R31,R25
 0522 2490              lpm R2,Z
 0524 3324              clr R3
 0526 3B82              std y+3,R3
 0528 2A82              std y+2,R2
 052A 80E1              ldi R24,16
 052C 90E0              ldi R25,0
 052E 9983              std y+1,R25
 0530 8883              std y+0,R24
 0532 2EE0              ldi R18,14
 0534 30E0              ldi R19,0
 0536 09EF              ldi R16,249
 0538 10E0              ldi R17,0
 053A 8EDD              xcall _write_ASCII
 053C                   .dbline 144
 053C           ;    write_ASCII(0xf9,15,16,table[days%10]);//日期低位
 053C 2AE0              ldi R18,10
 053E 30E0              ldi R19,0
 0540 00910400          lds R16,_days
 0544 1127              clr R17
 0546 0E940000          xcall mod16s
 054A F801              movw R30,R16
 054C 80E0              ldi R24,<_table
 054E 90E0              ldi R25,>_table
 0550 E80F              add R30,R24
 0552 F91F              adc R31,R25
 0554 2490              lpm R2,Z
 0556 3324              clr R3
 0558 3B82              std y+3,R3
 055A 2A82              std y+2,R2
 055C 80E1              ldi R24,16
 055E 90E0              ldi R25,0
 0560 9983              std y+1,R25
 0562 8883              std y+0,R24
 0564 2FE0              ldi R18,15
 0566 30E0              ldi R19,0
 0568 09EF              ldi R16,249
 056A 10E0              ldi R17,0
 056C 75DD              xcall _write_ASCII
 056E                   .dbline -2
 056E           L36:
 056E 2496              adiw R28,4
 0570                   .dbline 0 ; func end
 0570 0895              ret
 0572                   .dbend
 0572                   .dbfunc e get_days _get_days fc
 0572           ;           tian -> R20
 0572           ;            yue -> R20
                        .even
 0572           _get_days::
 0572 0E940000          xcall push_gset1
 0576 402F              mov R20,R16
 0578                   .dbline -1
 0578                   .dbline 150
 0578           ; }
 0578           ; /**********************************************/
 0578           ;        /* 确定天数*/
 0578           ; /**********************************************/
 0578           ; unsigned char get_days(unsigned char yue)
 0578           ; {
 0578                   .dbline 152
 0578           ;     unsigned char tian;
 0578           ;     switch(yue)
 0578 5527              clr R21
 057A 4130              cpi R20,1
 057C E0E0              ldi R30,0
 057E 5E07              cpc R21,R30
 0580 69F1              breq L53
 0582 4230              cpi R20,2
 0584 E0E0              ldi R30,0
 0586 5E07              cpc R21,R30
 0588 69F1              breq L55
 058A 4330              cpi R20,3
 058C E0E0              ldi R30,0
 058E 5E07              cpc R21,R30
 0590 29F1              breq L53
 0592 4430              cpi R20,4
 0594 E0E0              ldi R30,0
 0596 5E07              cpc R21,R30
 0598 19F1              breq L54
 059A 4530              cpi R20,5
 059C E0E0              ldi R30,0
 059E 5E07              cpc R21,R30
 05A0 E9F0              breq L53
 05A2 4630              cpi R20,6
 05A4 E0E0              ldi R30,0
 05A6 5E07              cpc R21,R30
 05A8 D9F0              breq L54
 05AA 4730              cpi R20,7
 05AC E0E0              ldi R30,0
 05AE 5E07              cpc R21,R30
 05B0 A9F0              breq L53
 05B2 4830              cpi R20,8
 05B4 E0E0              ldi R30,0
 05B6 5E07              cpc R21,R30
 05B8 89F0              breq L53
 05BA 4930              cpi R20,9
 05BC E0E0              ldi R30,0
 05BE 5E07              cpc R21,R30
 05C0 79F0              breq L54
 05C2 4A30              cpi R20,10
 05C4 E0E0              ldi R30,0
 05C6 5E07              cpc R21,R30
 05C8 49F0              breq L53
 05CA 4B30              cpi R20,11
 05CC E0E0              ldi R30,0
 05CE 5E07              cpc R21,R30
 05D0 39F0              breq L54
 05D2 4C30              cpi R20,12
 05D4 E0E0              ldi R30,0
 05D6 5E07              cpc R21,R30
 05D8 09F0              breq L53
 05DA 26C0              xjmp L51
 05DC           X4:
 05DC                   .dbline 153
 05DC           ;     {
 05DC           L53:
 05DC                   .dbline 160
 05DC           ;       case 1:
 05DC           ;       case 3:
 05DC           ;       case 5:
 05DC           ;       case 7:
 05DC           ;       case 8:
 05DC           ;       case 10:
 05DC           ;       case 12:tian=31;break;
 05DC 4FE1              ldi R20,31
 05DE                   .dbline 160
 05DE 24C0              xjmp L51
 05E0           L54:
 05E0                   .dbline 164
 05E0           ;       case 4:
 05E0           ;       case 6:
 05E0           ;       case 9:
 05E0           ;       case 11:tian=30;break;
 05E0 4EE1              ldi R20,30
 05E2                   .dbline 164
 05E2 22C0              xjmp L51
 05E4           L55:
 05E4                   .dbline 165
 05E4           ;       case 2: if((year%4==0&&year%100!=0)||(year%400==0))tian=29;else tian=28;break;
 05E4 80910600          lds R24,_year
 05E8 90910700          lds R25,_year+1
 05EC 8370              andi R24,3
 05EE 9070              andi R25,0
 05F0 8030              cpi R24,0
 05F2 8907              cpc R24,R25
 05F4 59F4              brne L59
 05F6           X5:
 05F6 24E6              ldi R18,100
 05F8 30E0              ldi R19,0
 05FA 00910600          lds R16,_year
 05FE 10910700          lds R17,_year+1
 0602 0E940000          xcall mod16u
 0606 0030              cpi R16,0
 0608 0107              cpc R16,R17
 060A 59F4              brne L58
 060C           X6:
 060C           L59:
 060C 20E9              ldi R18,400
 060E 31E0              ldi R19,1
 0610 00910600          lds R16,_year
 0614 10910700          lds R17,_year+1
 0618 0E940000          xcall mod16u
 061C 0030              cpi R16,0
 061E 0107              cpc R16,R17
 0620 11F4              brne L56
 0622           X7:
 0622           L58:
 0622                   .dbline 165
 0622 4DE1              ldi R20,29
 0624 01C0              xjmp L51
 0626           L56:
 0626                   .dbline 165
 0626 4CE1              ldi R20,28
 0628                   .dbline 165
 0628                   .dbline 166
 0628           ;       default:break;
 0628           L51:
 0628                   .dbline 168
 0628           ;      }
 0628           ;      return  tian;
 0628 042F              mov R16,R20
 062A                   .dbline -2
 062A           L49:
 062A 0E940000          xcall pop_gset1
 062E                   .dbline 0 ; func end
 062E 0895              ret
 0630                   .dbsym r tian 20 c
 0630                   .dbsym r yue 20 c
 0630                   .dbend
 0630                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0630           _timer0_init::
 0630                   .dbline -1
 0630                   .dbline 174
 0630           ; }
 0630           ; /**********************************************/
 0630           ;        /* 定时器初始化 1秒*/
 0630           ; /**********************************************/
 0630           ; void timer0_init(void)
 0630           ; {
 0630                   .dbline 175
 0630           ;  TCCR0 = 0x00; //stop
 0630 2224              clr R2
 0632 23BE              out 0x33,R2
 0634                   .dbline 176
 0634           ;  ASSR = 0x08; //set async mode
 0634 88E0              ldi R24,8
 0636 80BF              out 0x30,R24
 0638                   .dbline 177
 0638           ;  TCNT0 = 0x00; //set count
 0638 22BE              out 0x32,R2
 063A                   .dbline 178
 063A           ;  TCCR0 = 0x05; //start timer
 063A 85E0              ldi R24,5
 063C 83BF              out 0x33,R24
 063E                   .dbline -2
 063E           L60:
 063E                   .dbline 0 ; func end
 063E 0895              ret
 0640                   .dbend
                        .area vector(rom, abs)
                        .org 64
 0040 0C942003          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 0640                   .dbfile E:\ATMEGA~1\万年历实验\2.c
 0640                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 0640           _timer0_ovf_isr::
 0640 0E940000          xcall push_lset
 0644                   .dbline -1
 0644                   .dbline 185
 0644           ; }
 0644           ; /**********************************************/
 0644           ;        /* 定时器中断服务程序*/
 0644           ; /**********************************************/
 0644           ; #pragma interrupt_handler timer0_ovf_isr:17
 0644           ; void timer0_ovf_isr(void)
 0644           ; {
 0644                   .dbline 186
 0644           ;  second=second+1;
 0644 80910000          lds R24,_second
 0648 8F5F              subi R24,255    ; addi 1
 064A 80930000          sts _second,R24
 064E                   .dbline 187
 064E           ;  if(second==60)
 064E 8C33              cpi R24,60
 0650 09F0              breq X8
 0652 48C0              xjmp L62
 0654           X8:
 0654                   .dbline 188
 0654           ;  {
 0654                   .dbline 189
 0654           ;     second=0;
 0654 2224              clr R2
 0656 20920000          sts _second,R2
 065A                   .dbline 190
 065A           ;       minute=minute+1;
 065A 80910100          lds R24,_minute
 065E 8F5F              subi R24,255    ; addi 1
 0660 80930100          sts _minute,R24
 0664                   .dbline 191
 0664           ;       if(minute==60)
 0664 8C33              cpi R24,60
 0666 09F0              breq X9
 0668 3DC0              xjmp L64
 066A           X9:
 066A                   .dbline 192
 066A           ;       {
 066A                   .dbline 193
 066A           ;          minute=0;
 066A 20920100          sts _minute,R2
 066E                   .dbline 194
 066E           ;          hour=hour+1;
 066E 80910200          lds R24,_hour
 0672 8F5F              subi R24,255    ; addi 1
 0674 80930200          sts _hour,R24
 0678                   .dbline 195
 0678           ;          if(hour==24)
 0678 8831              cpi R24,24
 067A A1F5              brne L66
 067C                   .dbline 196
 067C           ;          {

⌨️ 快捷键说明

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