📄 keyled.lis
字号:
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 + -