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

📄 keyled.lis

📁 avr单片机入门小程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 047A           ;                 break;
 047A A9C0              xjmp L117
 047C           L126:
 047C                   .dbline 221
 047C           ;       case 0xd0:  //key 1
 047C           ;            if(work_state==0x00)
 047C 20900A00          lds R2,_work_state
 0480 2220              tst R2
 0482 B9F4              brne L127
 0484           X43:
 0484                   .dbline 222
 0484           ;                {
 0484                   .dbline 223
 0484           ;                 if(time_change==0x00)
 0484 20900900          lds R2,_time_change
 0488 2220              tst R2
 048A 21F4              brne L129
 048C           X44:
 048C                   .dbline 224
 048C           ;                   time_change=0x01;
 048C 81E0              ldi R24,1
 048E 80930900          sts _time_change,R24
 0492 0FC0              xjmp L130
 0494           L129:
 0494                   .dbline 225
 0494           ;                 else if(time_change==0x01)
 0494 80910900          lds R24,_time_change
 0498 8130              cpi R24,1
 049A 21F4              brne L131
 049C           X45:
 049C                   .dbline 226
 049C           ;                   time_change=0x02;
 049C 82E0              ldi R24,2
 049E 80930900          sts _time_change,R24
 04A2 07C0              xjmp L132
 04A4           L131:
 04A4                   .dbline 227
 04A4           ;                 else if(time_change==0x02)
 04A4 80910900          lds R24,_time_change
 04A8 8230              cpi R24,2
 04AA 19F4              brne L133
 04AC           X46:
 04AC                   .dbline 228
 04AC           ;                   time_change=0x00;
 04AC 2224              clr R2
 04AE 20920900          sts _time_change,R2
 04B2           L133:
 04B2           L132:
 04B2           L130:
 04B2                   .dbline 229
 04B2           ;               }
 04B2           L127:
 04B2                   .dbline 231
 04B2           ;               
 04B2           ;                if(work_state==0x01)  //跑表
 04B2 80910A00          lds R24,_work_state
 04B6 8130              cpi R24,1
 04B8 89F4              brne L135
 04BA           X47:
 04BA                   .dbline 232
 04BA           ;                   {if(clock_start==0x0) //跑表已启动
 04BA                   .dbline 232
 04BA 20900800          lds R2,_clock_start
 04BE 2220              tst R2
 04C0 69F4              brne L137
 04C2           X48:
 04C2                   .dbline 233
 04C2           ;                    {
 04C2                   .dbline 234
 04C2           ;                         for(i=0;i<4;i++)
 04C2 4427              clr R20
 04C4 09C0              xjmp L142
 04C6           L139:
 04C6                   .dbline 235
 04C6           ;                         clock[i]=0;
 04C6 80E0              ldi R24,<_clock
 04C8 90E0              ldi R25,>_clock
 04CA E42F              mov R30,R20
 04CC FF27              clr R31
 04CE E80F              add R30,R24
 04D0 F91F              adc R31,R25
 04D2 2224              clr R2
 04D4 2082              std z+0,R2
 04D6           L140:
 04D6                   .dbline 234
 04D6 4395              inc R20
 04D8           L142:
 04D8                   .dbline 234
 04D8 4430              cpi R20,4
 04DA A8F3              brlo L139
 04DC           X49:
 04DC                   .dbline 236
 04DC           ;                        }
 04DC           L137:
 04DC                   .dbline 237
 04DC           ;                        }
 04DC           L135:
 04DC                   .dbline 239
 04DC           ;               
 04DC           ;               wait();              
 04DC 45DF              xcall _wait
 04DE                   .dbline 240
 04DE           ;                 break;
 04DE 77C0              xjmp L117
 04E0           L143:
 04E0                   .dbline 242
 04E0           ;        case 0xb0:  //key 2
 04E0           ;           if(work_state==0x0) // 计时模式
 04E0 20900A00          lds R2,_work_state
 04E4 2220              tst R2
 04E6 81F5              brne L144
 04E8           X50:
 04E8                   .dbline 243
 04E8           ;                 {if(time_change==0x1) //change second
 04E8                   .dbline 243
 04E8 80910900          lds R24,_time_change
 04EC 8130              cpi R24,1
 04EE A1F4              brne L146
 04F0           X51:
 04F0                   .dbline 244
 04F0           ;                  {time[0]++;
 04F0                   .dbline 244
 04F0 80910400          lds R24,_time
 04F4 8F5F              subi R24,255    ; addi 1
 04F6 80930400          sts _time,R24
 04FA                   .dbline 245
 04FA           ;                  if(time[0]==0xa)
 04FA 8A30              cpi R24,10
 04FC 81F5              brne L145
 04FE           X52:
 04FE                   .dbline 246
 04FE           ;                   {time[0]=0;
 04FE                   .dbline 246
 04FE 2224              clr R2
 0500 20920400          sts _time,R2
 0504                   .dbline 247
 0504           ;                    time[1]++;
 0504 80910500          lds R24,_time+1
 0508 8F5F              subi R24,255    ; addi 1
 050A 80930500          sts _time+1,R24
 050E                   .dbline 248
 050E           ;                    if(time[1]==0x6)
 050E 8630              cpi R24,6
 0510 31F5              brne L145
 0512           X53:
 0512                   .dbline 249
 0512           ;                    time[1]=0;
 0512 20920500          sts _time+1,R2
 0516                   .dbline 250
 0516           ;                       }
 0516                   .dbline 251
 0516           ;                  }
 0516 23C0              xjmp L145
 0518           L146:
 0518                   .dbline 252
 0518           ;                  else if(time_change==0x02)  //change minute
 0518 80910900          lds R24,_time_change
 051C 8230              cpi R24,2
 051E F9F4              brne L145
 0520           X54:
 0520                   .dbline 253
 0520           ;                  {
 0520                   .dbline 254
 0520           ;                   time[2]++;
 0520 80910600          lds R24,_time+2
 0524 8F5F              subi R24,255    ; addi 1
 0526 80930600          sts _time+2,R24
 052A                   .dbline 255
 052A           ;                       if(time[2]==0xa)
 052A 8A30              cpi R24,10
 052C C1F4              brne L145
 052E           X55:
 052E                   .dbline 256
 052E           ;                       {time[2]=0;
 052E                   .dbline 256
 052E 2224              clr R2
 0530 20920600          sts _time+2,R2
 0534                   .dbline 257
 0534           ;                        time[3]++;
 0534 80910700          lds R24,_time+3
 0538 8F5F              subi R24,255    ; addi 1
 053A 80930700          sts _time+3,R24
 053E                   .dbline 258
 053E           ;                        if(time[3]==0x6)
 053E 8630              cpi R24,6
 0540 71F4              brne L145
 0542           X56:
 0542                   .dbline 259
 0542           ;                        time[3]=0;
 0542 20920700          sts _time+3,R2
 0546                   .dbline 260
 0546           ;                        }
 0546                   .dbline 261
 0546           ;                  }
 0546                   .dbline 262
 0546           ;                 }
 0546 0BC0              xjmp L145
 0548           L144:
 0548                   .dbline 263
 0548           ;                else if(clock_start==0x00)   //跑表模式,已经启动
 0548 20900800          lds R2,_clock_start
 054C 2220              tst R2
 054E 21F4              brne L167
 0550           X57:
 0550                   .dbline 264
 0550           ;                clock_start=1;     //暂停
 0550 81E0              ldi R24,1
 0552 80930800          sts _clock_start,R24
 0556 03C0              xjmp L168
 0558           L167:
 0558                   .dbline 266
 0558           ;                else
 0558           ;                 clock_start=0;
 0558 2224              clr R2
 055A 20920800          sts _clock_start,R2
 055E           L168:
 055E           L145:
 055E                   .dbline 267
 055E           ;                wait();
 055E 04DF              xcall _wait
 0560                   .dbline 268
 0560           ;                 break;
 0560 36C0              xjmp L117
 0562           L169:
 0562                   .dbline 270
 0562           ;        case 0x70:  //key 3
 0562           ;                 if(work_state==0x00)  // 计时模式
 0562 20900A00          lds R2,_work_state
 0566 2220              tst R2
 0568 89F5              brne L170
 056A           X58:
 056A                   .dbline 271
 056A           ;                  {
 056A                   .dbline 272
 056A           ;                       if(time_change==0x01) // 秒
 056A 80910900          lds R24,_time_change
 056E 8130              cpi R24,1
 0570 A9F4              brne L172
 0572           X59:
 0572                   .dbline 273
 0572           ;                       {
 0572                   .dbline 274
 0572           ;                        time[0]--;
 0572 80910400          lds R24,_time
 0576 8150              subi R24,1
 0578 80930400          sts _time,R24
 057C                   .dbline 275
 057C           ;                        if(time[0]==0xff)
 057C 8F3F              cpi R24,255
 057E 31F5              brne L173
 0580           X60:
 0580                   .dbline 276
 0580           ;                        {
 0580                   .dbline 277
 0580           ;                         time[0]=9;
 0580 89E0              ldi R24,9
 0582 80930400          sts _time,R24
 0586                   .dbline 278
 0586           ;                         time[1]--;
 0586 80910500          lds R24,_time+1
 058A 8150              subi R24,1
 058C 80930500          sts _time+1,R24
 0590                   .dbline 279
 0590           ;                         if(time[1]==0xff)
 0590 8F3F              cpi R24,255
 0592 E1F4              brne L173
 0594           X61:
 0594                   .dbline 280
 0594           ;                         time[1]=5;
 0594 85E0              ldi R24,5
 0596 80930500          sts _time+1,R24
 059A                   .dbline 281
 059A           ;                        }
 059A                   .dbline 282
 059A           ;                       }
 059A 18C0              xjmp L173
 059C           L172:
 059C                   .dbline 283
 059C           ;                  else if(time_change==0x02)  //decrease minute
 059C 80910900          lds R24,_time_change
 05A0 8230              cpi R24,2
 05A2 A1F4              brne L181
 05A4           X62:
 05A4                   .dbline 284
 05A4           ;                  {
 05A4                   .dbline 285
 05A4           ;                       time[2]--;
 05A4 80910600          lds R24,_time+2
 05A8 8150              subi R24,1
 05AA 80930600          sts _time+2,R24
 05AE                   .dbline 286
 05AE           ;                       if(time[2]==0xff)
 05AE 8F3F              cpi R24,255
 05B0 69F4              brne L184
 05B2           X63:
 05B2                   .dbline 287
 05B2           ;                       {
 05B2                   .dbline 288
 05B2           ;                        time[2]=9;
 05B2 89E0              ldi R24,9
 05B4 80930600          sts _time+2,R24
 05B8                   .dbline 289
 05B8           ;                        time[3]--;
 05B8 80910700          lds R24,_time+3
 05BC 8150              subi R24,1
 05BE 80930700          sts _time+3,R24
 05C2                   .dbline 290
 05C2           ;                        if(time[3]==0xff)
 05C2 8F3F              cpi R24,255
 05C4 19F4              brne L189
 05C6           X64:
 05C6                   .dbline 291
 05C6           ;                        time[3]=5;
 05C6 85E0              ldi R24,5
 05C8 80930700          sts _time+3,R24
 05CC           L189:
 05CC                   .dbline 292
 05CC           ;                       }
 05CC           L184:
 05CC                   .dbline 293
 05CC           ;                  }
 05CC           L181:
 05CC           L173:
 05CC                   .dbline 294
 05CC           ;                  }
 05CC           L170:
 05CC                   .dbline 295
 05CC           ;                 wait();
 05CC CDDE              xcall _wait
 05CE                   .dbline 296
 05CE           ;                 break;
 05CE                   .dbline 298
 05CE           ;       default:
 05CE           ;            break;
 05CE           L117:
 05CE                   .dbline 301
 05CE           ;             
 05CE           ;       }
 05CE           ;   }
 05CE           L108:
 05CE                   .dbline 195
 05CE 0FCF              xjmp L111
 05D0           X65:
 05D0                   .dbline -2
 05D0           L102:
 05D0                   .dbline 0 ; func end
 05D0 0895              ret
 05D2                   .dbsym r i 20 c
 05D2                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\按键显示\keyled.c
 0000           _clock::
 0000                   .blkb 4
 0004                   .dbsym e clock _clock A[4:4]c
 0004           _time::
 0004                   .blkb 4
 0008                   .dbsym e time _time A[4:4]c
 0008           _clock_start::
 0008                   .blkb 1
 0009                   .dbsym e clock_start _clock_start c
 0009           _time_change::
 0009                   .blkb 1
 000A                   .dbsym e time_change _time_change c
 000A           _work_state::
 000A                   .blkb 1
 000B                   .dbsym e work_state _work_state c
 000B           _timer200::
 000B                   .blkb 2
 000D                   .dbsym e timer200 _timer200 i
 000D           _timer2::
 000D                   .blkb 1
 000E                   .dbsym e timer2 _timer2 c
 000E           _temp::
 000E                   .blkb 1
 000F                   .dbsym e temp _temp c
 000F           ; 
 000F           ; }

⌨️ 快捷键说明

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