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

📄 rtc.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 040A 7D2F              mov R23,R29
 040C 605F              subi R22,240  ; offset = 16
 040E 7F4F              sbci R23,255
 0410                   .dbline 259
 0410           ;                                        (*Flag)|=0x80;} 
 0410 E62F              mov R30,R22
 0412 F72F              mov R31,R23
 0414 8081              ldd R24,z+0
 0416 8068              ori R24,128
 0418 8083              std z+0,R24
 041A                   .dbline 259
 041A 02C0              rjmp L117
 041C           L116:
 041C                   .dbline 260
 041C           ;                               else Flag--;           
 041C 6150              subi R22,1
 041E 7040              sbci R23,0
 0420           L117:
 0420                   .dbline 261
 0420           ;                               (*Flag)|=0x80;         //当前位加上小数点显示
 0420 E62F              mov R30,R22
 0422 F72F              mov R31,R23
 0424 8081              ldd R24,z+0
 0426 8068              ori R24,128
 0428 8083              std z+0,R24
 042A                   .dbline 262
 042A           ;                               (*(Flag+1))&=0x7f;     //下一位去掉点小数点显示
 042A 3196              adiw R30,1
 042C 8081              ldd R24,z+0
 042E 8F77              andi R24,127
 0430 8083              std z+0,R24
 0432                   .dbline 263
 0432           ;                               break;
 0432 03C0              rjmp L103
 0434           L119:
 0434                   .dbline 264
 0434           ;                 case 0x40:Enter_Flag=1;break;//"确定"键处理
 0434 81E0              ldi R24,1
 0436 80930100          sts _Enter_Flag,R24
 043A                   .dbline 264
 043A                   .dbline 266
 043A           ;       //        case 0x80:Enter_Flag=1;break;  //测试用
 043A           ;                 default:break;}
 043A           L103:
 043A                   .dbline 268
 043A           L96:
 043A                   .dbline 233
 043A 20900100          lds R2,_Enter_Flag
 043E 2220              tst R2
 0440 09F4              brne X11
 0442 5BCF              rjmp L95
 0444           X11:
 0444                   .dbline 269
 0444           ;           
 0444           ;          }
 0444           ;        Enter_Flag=0;                     //按键状态恢复
 0444 2224              clr R2
 0446 20920100          sts _Enter_Flag,R2
 044A                   .dbline 270
 044A           ;      temp2[0]=0x00;                    //秒,默认从00开始计时
 044A 2C8A              std y+20,R2
 044C                   .dbline 271
 044C           ;        temp2[1]=(temp1[11]<<4)|temp1[12];//分
 044C 2F84              ldd R2,y+15
 044E 8E85              ldd R24,y+14
 0450 8F70              andi R24,#0x0F
 0452 8295              swap R24
 0454 8229              or R24,R2
 0456 8D8B              std y+21,R24
 0458                   .dbline 272
 0458           ;        temp2[2]=(temp1[9]<<4)|temp1[10]; //时
 0458 2D84              ldd R2,y+13
 045A 8C85              ldd R24,y+12
 045C 8F70              andi R24,#0x0F
 045E 8295              swap R24
 0460 8229              or R24,R2
 0462 8E8B              std y+22,R24
 0464                   .dbline 273
 0464           ;        temp2[3]=temp1[8];                //周
 0464 2B84              ldd R2,y+11
 0466 2F8A              std y+23,R2
 0468                   .dbline 274
 0468           ;        temp2[4]=(temp1[6]<<4)|temp1[7];  //日
 0468 2A84              ldd R2,y+10
 046A 8985              ldd R24,y+9
 046C 8F70              andi R24,#0x0F
 046E 8295              swap R24
 0470 8229              or R24,R2
 0472 888F              std y+24,R24
 0474                   .dbline 275
 0474           ;        temp2[5]=(temp1[4]<<4)|temp1[5];  //月
 0474 2884              ldd R2,y+8
 0476 8F81              ldd R24,y+7
 0478 8F70              andi R24,#0x0F
 047A 8295              swap R24
 047C 8229              or R24,R2
 047E 898F              std y+25,R24
 0480                   .dbline 276
 0480           ;        temp2[6]=(temp1[2]<<4)|temp1[3];  //年
 0480 2E80              ldd R2,y+6
 0482 8D81              ldd R24,y+5
 0484 8F70              andi R24,#0x0F
 0486 8295              swap R24
 0488 8229              or R24,R2
 048A 8A8F              std y+26,R24
 048C                   .dbline 277
 048C           ;        Write_Nbyte(SD2303,0x00,temp2,7); //初始化设定时间
 048C 87E0              ldi R24,7
 048E 8A83              std y+2,R24
 0490 8C2F              mov R24,R28
 0492 9D2F              mov R25,R29
 0494 4496              adiw R24,20
 0496 9983              std y+1,R25
 0498 8883              std y+0,R24
 049A 2227              clr R18
 049C 04E6              ldi R16,100
 049E 74DE              rcall _Write_Nbyte
 04A0                   .dbline 278
 04A0           ;     }
 04A0           L93:
 04A0                   .dbline 279
 04A0           ;    if(Key==0xfd)                       //"闹铃设置"键按下
 04A0 8A2D              mov R24,R10
 04A2 8D3F              cpi R24,253
 04A4 09F0              breq X12
 04A6 DDC0              rjmp L141
 04A8           X12:
 04A8                   .dbline 280
 04A8           ;     {temp1[9]|=0x80;
 04A8                   .dbline 280
 04A8 8C85              ldd R24,y+12
 04AA 8068              ori R24,128
 04AC 8C87              std y+12,R24
 04AE                   .dbline 281
 04AE           ;        Flag=temp1+9;                     //定时小时高位设置提示
 04AE 6C2F              mov R22,R28
 04B0 7D2F              mov R23,R29
 04B2 645F              subi R22,244  ; offset = 12
 04B4 7F4F              sbci R23,255
 04B6 9FC0              rjmp L146
 04B8           L145:
 04B8                   .dbline 283
 04B8           ;        while(!Enter_Flag)                //直到按下确定键方停止
 04B8           ;        {for(i=0;i<50;i++)
 04B8                   .dbline 283
 04B8 4427              clr R20
 04BA 06C0              rjmp L151
 04BC           L148:
 04BC                   .dbline 284
 04BC 0C2F              mov R16,R28
 04BE 1D2F              mov R17,R29
 04C0 0D5F              subi R16,253  ; offset = 3
 04C2 1F4F              sbci R17,255
 04C4 A9DD              rcall _Display
 04C6           L149:
 04C6                   .dbline 283
 04C6 4395              inc R20
 04C8           L151:
 04C8                   .dbline 283
 04C8 4233              cpi R20,50
 04CA C0F3              brlo L148
 04CC                   .dbline 285
 04CC           ;             Display(temp1);
 04CC           ;               Key=~PINB;
 04CC A6B2              in R10,0x16
 04CE A094              com R10
 04D0                   .dbline 286
 04D0           ;               switch(Key)
 04D0 CA2C              mov R12,R10
 04D2 DD24              clr R13
 04D4 8C2D              mov R24,R12
 04D6 9D2D              mov R25,R13
 04D8 8031              cpi R24,16
 04DA E0E0              ldi R30,0
 04DC 9E07              cpc R25,R30
 04DE 09F4              brne X13
 04E0 43C0              rjmp L161
 04E2           X13:
 04E2 80E1              ldi R24,16
 04E4 8C15              cp R24,R12
 04E6 9D05              cpc R25,R13
 04E8 94F0              brlt L173
 04EA           L172:
 04EA 8C2D              mov R24,R12
 04EC 9D2D              mov R25,R13
 04EE 8430              cpi R24,4
 04F0 E0E0              ldi R30,0
 04F2 9E07              cpc R25,R30
 04F4 01F1              breq L155
 04F6 8430              cpi R24,4
 04F8 E0E0              ldi R30,0
 04FA 9E07              cpc R25,R30
 04FC 0CF4              brge X14
 04FE 7BC0              rjmp L153
 0500           X14:
 0500           L174:
 0500 8C2D              mov R24,R12
 0502 9D2D              mov R25,R13
 0504 8830              cpi R24,8
 0506 E0E0              ldi R30,0
 0508 9E07              cpc R25,R30
 050A 09F1              breq L158
 050C 74C0              rjmp L153
 050E           L173:
 050E 8C2D              mov R24,R12
 0510 9D2D              mov R25,R13
 0512 8032              cpi R24,32
 0514 E0E0              ldi R30,0
 0516 9E07              cpc R25,R30
 0518 09F4              brne X15
 051A 49C0              rjmp L166
 051C           X15:
 051C 8032              cpi R24,32
 051E E0E0              ldi R30,0
 0520 9E07              cpc R25,R30
 0522 0CF4              brge X16
 0524 68C0              rjmp L153
 0526           X16:
 0526           L175:
 0526 8C2D              mov R24,R12
 0528 9D2D              mov R25,R13
 052A 8034              cpi R24,64
 052C E0E0              ldi R30,0
 052E 9E07              cpc R25,R30
 0530 09F4              brne X17
 0532 5EC0              rjmp L171
 0534           X17:
 0534 60C0              rjmp L153
 0536           X1:
 0536                   .dbline 287
 0536           ;                {case 0x04:                   //"+"按键处理
 0536           L155:
 0536                   .dbline 288
 0536           ;                      (*Flag)++;
 0536 E62F              mov R30,R22
 0538 F72F              mov R31,R23
 053A 8081              ldd R24,z+0
 053C 8F5F              subi R24,255    ; addi 1
 053E 8083              std z+0,R24
 0540                   .dbline 289
 0540           ;                          if(((*Flag)&0x7f)==10) *Flag=0|0x80;
 0540 8F77              andi R24,127
 0542 8A30              cpi R24,10
 0544 09F0              breq X18
 0546 57C0              rjmp L153
 0548           X18:
 0548                   .dbline 289
 0548 80E8              ldi R24,128
 054A 8083              std z+0,R24
 054C                   .dbline 290
 054C           ;                      break;
 054C 54C0              rjmp L153
 054E           L158:
 054E                   .dbline 292
 054E           ;                 case 0x08:                   //"-"按键处理
 054E           ;                       if(((*Flag)&0x7f)==0)   *Flag=10|0x80; 
 054E E62F              mov R30,R22
 0550 F72F              mov R31,R23
 0552 8081              ldd R24,z+0
 0554 8F77              andi R24,127
 0556 11F4              brne L159
 0558                   .dbline 292
 0558 8AE8              ldi R24,138
 055A 8083              std z+0,R24
 055C           L159:
 055C                   .dbline 293
 055C           ;                               (*Flag)--;
 055C E62F              mov R30,R22
 055E F72F              mov R31,R23
 0560 8081              ldd R24,z+0
 0562 8150              subi R24,1
 0564 8083              std z+0,R24
 0566                   .dbline 294
 0566           ;                               break;
 0566 47C0              rjmp L153
 0568           L161:
 0568                   .dbline 296
 0568           ;                 case 0x10:                   //"下一位"按键处理
 0568           ;                       Flag++;
 0568 6F5F              subi R22,255  ; offset = 1
 056A 7F4F              sbci R23,255
 056C                   .dbline 297
 056C           ;                               (*(Flag-1))&=0x7f;     //上一位去掉小数点显示
 056C 862F              mov R24,R22
 056E 972F              mov R25,R23
 0570 0197              sbiw R24,1
 0572 E82F              mov R30,R24
 0574 F92F              mov R31,R25
 0576 8081              ldd R24,z+0
 0578 8F77              andi R24,127
 057A 8083              std z+0,R24
 057C                   .dbline 298
 057C           ;                               (*Flag)|=0x80;         //当前位加上小数点显示
 057C E62F              mov R30,R22
 057E F72F              mov R31,R23
 0580 8081              ldd R24,z+0
 0582 8068              ori R24,128
 0584 8083              std z+0,R24
 0586                   .dbline 299
 0586           ;                               if(Flag==temp1+13) 
 0586 8C2F              mov R24,R28
 0588 9D2F              mov R25,R29
 058A 4096              adiw R24,16
 058C E817              cp R30,R24
 058E F907              cpc R31,R25
 0590 09F0              breq X19
 0592 31C0              rjmp L153
 0594           X19:
 0594                   .dbline 300
 0594           ;                                {(*Flag)&=0x7f;
 0594                   .dbline 300
 0594 8081              ldd R24,z+0
 0596 8F77              andi R24,127
 0598 8083              std z+0,R24
 059A                   .dbline 301
 059A           ;                                 Flag=temp1+9;
 059A 6C2F              mov R22,R28
 059C 7D2F              mov R23,R29
 059E 645F              subi R22,244  ; offset = 12
 05A0 7F4F              sbci R23,255
 05A2                   .dbline 302
 05A2           ;                                 (*Flag)|=0x80;}
 05A2 E62F              mov R30,R22
 05A4 F72F              mov R31,R23
 05A6 8081              ldd R24,z+0
 05A8 8068              ori R24,128
 05AA 8083              std z+0,R24
 05AC                   .dbline 302
 05AC                   .dbline 303
 05AC           ;                               break;
 05AC 24C0              rjmp L153
 05AE           L166:
 05AE                   .dbline 305
 05AE           ;                 case 0x20:                   //"上一位"按

⌨️ 快捷键说明

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