📄 key.lis
字号:
0488 .dbline 159
0488 ; }
0488 ;
0488 ; void decanbixiaoshu(void) //参比的小数减1
0488 ; {
0488 .dbline 161
0488 ;
0488 ; canbi_array[4]--;
0488 80910800 lds R24,_canbi_array+8
048C 90910900 lds R25,_canbi_array+8+1
0490 0197 sbiw R24,1
0492 90930900 sts _canbi_array+8+1,R25
0496 80930800 sts _canbi_array+8,R24
049A .dbline 162
049A ; if((canbi_array[3]==0x00)&&(canbi_array[4]==-1))
049A 20900600 lds R2,_canbi_array+6
049E 30900700 lds R3,_canbi_array+6+1
04A2 2220 tst R2
04A4 A1F4 brne L102
04A6 3320 tst R3
04A8 91F4 brne L102
04AA X4:
04AA 80910800 lds R24,_canbi_array+8
04AE 90910900 lds R25,_canbi_array+8+1
04B2 8F3F cpi R24,255
04B4 EFEF ldi R30,255
04B6 9E07 cpc R25,R30
04B8 51F4 brne L102
04BA .dbline 163
04BA ; {
04BA .dbline 164
04BA ; canbi_array[3]=0x09;
04BA 89E0 ldi R24,9
04BC 90E0 ldi R25,0
04BE 90930700 sts _canbi_array+6+1,R25
04C2 80930600 sts _canbi_array+6,R24
04C6 .dbline 165
04C6 ; canbi_array[4]=0x09;
04C6 90930900 sts _canbi_array+8+1,R25
04CA 80930800 sts _canbi_array+8,R24
04CE .dbline 166
04CE ; }
04CE L102:
04CE .dbline 167
04CE ; if((canbi_array[3]!=0x00)&&(canbi_array[4]==-1))
04CE 20900600 lds R2,_canbi_array+6
04D2 30900700 lds R3,_canbi_array+6+1
04D6 2220 tst R2
04D8 11F4 brne X5
04DA 3320 tst R3
04DC B9F0 breq L108
04DE X5:
04DE 80910800 lds R24,_canbi_array+8
04E2 90910900 lds R25,_canbi_array+8+1
04E6 8F3F cpi R24,255
04E8 EFEF ldi R30,255
04EA 9E07 cpc R25,R30
04EC 79F4 brne L108
04EE .dbline 168
04EE ; {
04EE .dbline 169
04EE ; canbi_array[4]=0x09;
04EE 89E0 ldi R24,9
04F0 90E0 ldi R25,0
04F2 90930900 sts _canbi_array+8+1,R25
04F6 80930800 sts _canbi_array+8,R24
04FA .dbline 170
04FA ; canbi_array[3]--;
04FA 80910600 lds R24,_canbi_array+6
04FE 90910700 lds R25,_canbi_array+6+1
0502 0197 sbiw R24,1
0504 90930700 sts _canbi_array+6+1,R25
0508 80930600 sts _canbi_array+6,R24
050C .dbline 171
050C ; }
050C L108:
050C .dbline 172
050C ; Draw_NtoArab(0x04,0x58,canbi_array[3]);
050C 20900600 lds R2,_canbi_array+6
0510 30900700 lds R3,_canbi_array+6+1
0514 2882 std y+0,R2
0516 28E5 ldi R18,88
0518 04E0 ldi R16,4
051A 0E940000 xcall _Draw_NtoArab
051E .dbline 173
051E ; Draw_NtoArab(0x04,0x60,canbi_array[4]);
051E 20900800 lds R2,_canbi_array+8
0522 30900900 lds R3,_canbi_array+8+1
0526 2882 std y+0,R2
0528 20E6 ldi R18,96
052A 04E0 ldi R16,4
052C 0E940000 xcall _Draw_NtoArab
0530 .dbline -2
0530 L100:
0530 2196 adiw R28,1
0532 .dbline 0 ; func end
0532 0895 ret
0534 .dbend
0534 .dbfunc e getkey _getkey fc
0534 ; keycode -> R20
.even
0534 _getkey::
0534 0E940000 xcall push_gset1
0538 .dbline -1
0538 .dbline 178
0538 ; }
0538 ;
0538 ;
0538 ; unsigned char getkey(void)
0538 ; {
0538 .dbline 180
0538 ; unsigned char keycode;
0538 ; if((PINB&0xbc)!=0xbc)
0538 86B3 in R24,0x16
053A 8C7B andi R24,188
053C 8C3B cpi R24,188
053E 69F0 breq L117
0540 .dbline 181
0540 ; {
0540 .dbline 182
0540 ; Delay10ms(35);
0540 03E2 ldi R16,35
0542 0E940000 xcall _Delay10ms
0546 .dbline 183
0546 ; if((PINB&0Xbc)!=0Xbc)
0546 86B3 in R24,0x16
0548 8C7B andi R24,188
054A 8C3B cpi R24,188
054C 31F0 breq L119
054E .dbline 184
054E ; {
054E .dbline 185
054E ; keycode=PINB&0xbc;
054E 46B3 in R20,0x16
0550 4C7B andi R20,188
0552 L121:
0552 .dbline 186
0552 L122:
0552 .dbline 186
0552 ; while((PINB&0xbc)!=0Xbc);
0552 86B3 in R24,0x16
0554 8C7B andi R24,188
0556 8C3B cpi R24,188
0558 E1F7 brne L121
055A .dbline 187
055A ; }
055A L119:
055A .dbline 188
055A ; }
055A L117:
055A .dbline 189
055A ; return keycode;
055A 042F mov R16,R20
055C .dbline -2
055C L116:
055C 0E940000 xcall pop_gset1
0560 .dbline 0 ; func end
0560 0895 ret
0562 .dbsym r keycode 20 c
0562 .dbend
0562 .dbfunc e getkeylock _getkeylock fc
0562 ; keycode -> R20
.even
0562 _getkeylock::
0562 0E940000 xcall push_gset1
0566 .dbline -1
0566 .dbline 193
0566 ; }
0566 ;
0566 ; unsigned char getkeylock(void)
0566 ; {
0566 L125:
0566 .dbline 195
0566 L126:
0566 .dbline 195
0566 ; unsigned char keycode;
0566 ; while((PINB&0xbc)==0xbc);
0566 86B3 in R24,0x16
0568 8C7B andi R24,188
056A 8C3B cpi R24,188
056C E1F3 breq L125
056E .dbline 196
056E ; Delay10ms(35);
056E 03E2 ldi R16,35
0570 0E940000 xcall _Delay10ms
0574 .dbline 197
0574 ; if((PINB&0xbc)!=0xbc)
0574 86B3 in R24,0x16
0576 8C7B andi R24,188
0578 8C3B cpi R24,188
057A 31F0 breq L128
057C .dbline 198
057C ; {
057C .dbline 199
057C ; keycode=PINB&0xbc;
057C 46B3 in R20,0x16
057E 4C7B andi R20,188
0580 L130:
0580 .dbline 200
0580 L131:
0580 .dbline 200
0580 ; while((PINB&0Xbc)!=0Xbc);
0580 86B3 in R24,0x16
0582 8C7B andi R24,188
0584 8C3B cpi R24,188
0586 E1F7 brne L130
0588 .dbline 201
0588 ; }
0588 L128:
0588 .dbline 202
0588 ; return keycode;
0588 042F mov R16,R20
058A .dbline -2
058A L124:
058A 0E940000 xcall pop_gset1
058E .dbline 0 ; func end
058E 0895 ret
0590 .dbsym r keycode 20 c
0590 .dbend
0590 .dbfunc e checkkey _checkkey fV
0590 ; key -> R20
.even
0590 _checkkey::
0590 0E940000 xcall push_gset1
0594 2197 sbiw R28,1
0596 .dbline -1
0596 .dbline 206
0596 ; }
0596 ;
0596 ; void checkkey(void)
0596 ; {
0596 .dbline 210
0596 ; //unsigned char i,hour,min,sec;
0596 ; unsigned char key;
0596 ;
0596 ; key=getkey();
0596 CEDF xcall _getkey
0598 402F mov R20,R16
059A .dbline 211
059A ; if(key==enter)
059A 0437 cpi R16,116
059C 09F0 breq X7
059E 94C1 xjmp L134
05A0 X7:
05A0 .dbline 212
05A0 ; {
05A0 .dbline 213
05A0 ; if(entercount==0)
05A0 20900000 lds R2,_entercount
05A4 2220 tst R2
05A6 09F0 breq X8
05A8 C3C0 xjmp L136
05AA X8:
05AA .dbline 214
05AA ; {
05AA .dbline 215
05AA ; Draw_NtoArab_rev(0x00,0x28,time_array[0]);
05AA 20900000 lds R2,_time_array
05AE 30900100 lds R3,_time_array+1
05B2 2882 std y+0,R2
05B4 28E2 ldi R18,40
05B6 0027 clr R16
05B8 0E940000 xcall _Draw_NtoArab_rev
05BC .dbline 216
05BC ; Draw_NtoArab_rev(0x00,0x30,time_array[1]);
05BC 20900200 lds R2,_time_array+2
05C0 30900300 lds R3,_time_array+2+1
05C4 2882 std y+0,R2
05C6 20E3 ldi R18,48
05C8 0027 clr R16
05CA 0E940000 xcall _Draw_NtoArab_rev
05CE AEC0 xjmp L140
05D0 L139:
05D0 .dbline 218
05D0 ; while(1)
05D0 ; {
05D0 .dbline 219
05D0 ; key=getkeylock();
05D0 C8DF xcall _getkeylock
05D2 402F mov R20,R16
05D4 .dbline 220
05D4 ; if(key==enter)
05D4 0437 cpi R16,116
05D6 09F0 breq X9
05D8 44C0 xjmp L142
05DA X9:
05DA .dbline 221
05DA ; {
05DA .dbline 222
05DA ; hh=(time_array[0]<<4)|time_array[1];
05DA 20900200 lds R2,_time_array+2
05DE 30900300 lds R3,_time_array+2+1
05E2 40900000 lds R4,_time_array
05E6 50900100 lds R5,_time_array+1
05EA 440C lsl R4
05EC 551C rol R5
05EE 440C lsl R4
05F0 551C rol R5
05F2 440C lsl R4
05F4 551C rol R5
05F6 440C lsl R4
05F8 551C rol R5
05FA 4228 or R4,R2
05FC 5328 or R5,R3
05FE 40920000 sts _hh,R4
0602 .dbline 223
0602 ; mm=(time_array[2]<<4)|time_array[3];
0602 20900600 lds R2,_time_array+6
0606 30900700 lds R3,_time_array+6+1
060A 40900400 lds R4,_time_array+4
060E 50900500 lds R5,_time_array+4+1
0612 440C lsl R4
0614 551C rol R5
0616 440C lsl R4
0618 551C rol R5
061A 440C lsl R4
061C 551C rol R5
061E 440C lsl R4
0620 551C rol R5
0622 4228 or R4,R2
0624 5328 or R5,R3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -