📄 time.lis
字号:
0158 0E940000 xcall mod8u
015C 802F mov R24,R16
015E 805D subi R24,208 ; addi 48
0160 8083 std z+0,R24
0162 .dbline 85
0162 1AE0 ldi R17,10
0164 042F mov R16,R20
0166 0E940000 xcall div8u
016A 402F mov R20,R16
016C .dbline 86
016C L27:
016C .dbline 82
016C 6395 inc R22
016E L29:
016E .dbline 82
016E 6230 cpi R22,2
0170 38F3 brlo L26
0172 .dbline 87
0172 ; {
0172 ; time[7-i]=temp%10+0x30;
0172 ; temp=temp/10;
0172 ; }
0172 ; time[8]=0;
0172 2224 clr R2
0174 20920A00 sts _time+8,R2
0178 .dbline 88
0178 ; cls(0,3,1,8);
0178 88E0 ldi R24,8
017A 8A83 std y+2,R24
017C 81E0 ldi R24,1
017E 8883 std y+0,R24
0180 23E0 ldi R18,3
0182 30E0 ldi R19,0
0184 0027 clr R16
0186 1127 clr R17
0188 0E940000 xcall _cls
018C .dbline 89
018C ; asc_tran(4,52,time);
018C 80E0 ldi R24,<_time
018E 90E0 ldi R25,>_time
0190 8883 std y+0,R24
0192 9983 std y+1,R25
0194 24E3 ldi R18,52
0196 04E0 ldi R16,4
0198 0E940000 xcall _asc_tran
019C .dbline -2
019C .dbline 90
019C ; }
019C L15:
019C 2396 adiw R28,3
019E 0E940000 xcall pop_gset2
01A2 .dbline 0 ; func end
01A2 0895 ret
01A4 .dbsym r temp 20 c
01A4 .dbsym r i 22 c
01A4 .dbend
01A4 .dbfunc e timer2_init _timer2_init fV
.even
01A4 _timer2_init::
01A4 .dbline -1
01A4 .dbline 92
01A4 ; void timer2_init(void)
01A4 ; {
01A4 .dbline 93
01A4 ; TCCR2 = 0x00;
01A4 2224 clr R2
01A6 25BC out 0x25,R2
01A8 .dbline 94
01A8 ; TCNT2 = 0xe1;
01A8 81EE ldi R24,225
01AA 84BD out 0x24,R24
01AC .dbline 95
01AC ; TCCR2 = 0x03;
01AC 83E0 ldi R24,3
01AE 85BD out 0x25,R24
01B0 .dbline -2
01B0 .dbline 96
01B0 ; }
01B0 L31:
01B0 .dbline 0 ; func end
01B0 0895 ret
01B2 .dbend
.area vector(rom, abs)
.org 40
0028 0C94D900 jmp _timer2_ovf_isr
.area text(rom, con, rel)
01B2 .dbfile C:\work\mega128\mix_exp\time.c
.area bss(ram, con, rel)
0000 .dbfile C:\work\mega128\mix_exp\time.c
0000 L33:
0000 .blkb 2
.area text(rom, con, rel)
01B2 .dbfile C:\work\mega128\mix_exp\time.c
01B2 .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
01B2 .dbsym s i L33 i
.even
01B2 _timer2_ovf_isr::
01B2 2A92 st -y,R2
01B4 3A92 st -y,R3
01B6 8A93 st -y,R24
01B8 9A93 st -y,R25
01BA EA93 st -y,R30
01BC 2FB6 in R2,0x3f
01BE 2A92 st -y,R2
01C0 .dbline -1
01C0 .dbline 99
01C0 ; #pragma interrupt_handler timer2_ovf_isr:11
01C0 ; void timer2_ovf_isr(void)
01C0 ; {
01C0 .dbline 101
01C0 ; static unsigned int i;
01C0 ; TCNT2 = 0xe1; //reload counter value
01C0 81EE ldi R24,225
01C2 84BD out 0x24,R24
01C4 .dbline 102
01C4 ; i++;
01C4 80910000 lds R24,L33
01C8 90910100 lds R25,L33+1
01CC 0196 adiw R24,1
01CE 90930100 sts L33+1,R25
01D2 80930000 sts L33,R24
01D6 .dbline 103
01D6 ; if(i<800)
01D6 8032 cpi R24,32
01D8 E3E0 ldi R30,3
01DA 9E07 cpc R25,R30
01DC 38F4 brsh L34
01DE .dbline 104
01DE ; {
01DE .dbline 105
01DE ; PORTB^=0x80;
01DE 80E8 ldi R24,128
01E0 90E0 ldi R25,0
01E2 28B2 in R2,0x18
01E4 3324 clr R3
01E6 2826 eor R2,R24
01E8 3926 eor R3,R25
01EA 28BA out 0x18,R2
01EC .dbline 106
01EC ; }
01EC L34:
01EC .dbline 107
01EC 80E4 ldi R24,1600
01EE 96E0 ldi R25,6
01F0 20900000 lds R2,L33
01F4 30900100 lds R3,L33+1
01F8 8215 cp R24,R2
01FA 9305 cpc R25,R3
01FC 30F4 brsh L36
01FE .dbline 108
01FE 2224 clr R2
0200 3324 clr R3
0202 30920100 sts L33+1,R3
0206 20920000 sts L33,R2
020A L36:
020A .dbline -2
020A .dbline 109
020A ; if(i>1600)
020A ; i=0;
020A ; }
020A L32:
020A 2990 ld R2,y+
020C 2FBE out 0x3f,R2
020E E991 ld R30,y+
0210 9991 ld R25,y+
0212 8991 ld R24,y+
0214 3990 ld R3,y+
0216 2990 ld R2,y+
0218 .dbline 0 ; func end
0218 1895 reti
021A .dbend
021A .dbfunc e timecal _timecal fV
021A ; step -> R10
021A ; temp -> R22
.even
021A _timecal::
021A 0E940000 xcall push_gset5
021E 2397 sbiw R28,3
0220 .dbline -1
0220 .dbline 111
0220 ; void timecal(void)
0220 ; {
0220 .dbline 113
0220 ; unsigned char temp,step;
0220 ; ocmj_write(0xf4);
0220 04EF ldi R16,244
0222 0E940000 xcall _ocmj_write
0226 .dbline 114
0226 ; hz_tran(2,1,"输入时间");
0226 80E0 ldi R24,<L39
0228 90E0 ldi R25,>L39
022A 8883 std y+0,R24
022C 9983 std y+1,R25
022E 21E0 ldi R18,1
0230 02E0 ldi R16,2
0232 0E940000 xcall _hz_tran
0236 .dbline 115
0236 ; hz_tran(1,2,"按");
0236 80E0 ldi R24,<L40
0238 90E0 ldi R25,>L40
023A 8883 std y+0,R24
023C 9983 std y+1,R25
023E 22E0 ldi R18,2
0240 01E0 ldi R16,1
0242 0E940000 xcall _hz_tran
0246 .dbline 116
0246 ; asc_tran(4,36,"SHIFT");
0246 80E0 ldi R24,<L41
0248 90E0 ldi R25,>L41
024A 8883 std y+0,R24
024C 9983 std y+1,R25
024E 24E2 ldi R18,36
0250 04E0 ldi R16,4
0252 0E940000 xcall _asc_tran
0256 .dbline 117
0256 ; hz_tran(5,2,"确定");
0256 80E0 ldi R24,<L42
0258 90E0 ldi R25,>L42
025A 8883 std y+0,R24
025C 9983 std y+1,R25
025E 22E0 ldi R18,2
0260 05E0 ldi R16,5
0262 0E940000 xcall _hz_tran
0266 .dbline 118
0266 ; asc_tran(4,52,"__:__:__");
0266 80E0 ldi R24,<L43
0268 90E0 ldi R25,>L43
026A 8883 std y+0,R24
026C 9983 std y+1,R25
026E 24E3 ldi R18,52
0270 04E0 ldi R16,4
0272 0E940000 xcall _asc_tran
0276 .dbline 119
0276 ; for(temp=0;temp<9;temp++)
0276 6627 clr R22
0278 09C0 xjmp L47
027A L44:
027A .dbline 120
027A .dbline 121
027A 80E0 ldi R24,<_time
027C 90E0 ldi R25,>_time
027E E62F mov R30,R22
0280 FF27 clr R31
0282 E80F add R30,R24
0284 F91F adc R31,R25
0286 8FE5 ldi R24,95
0288 8083 std z+0,R24
028A .dbline 122
028A L45:
028A .dbline 119
028A 6395 inc R22
028C L47:
028C .dbline 119
028C 6930 cpi R22,9
028E A8F3 brlo L44
0290 .dbline 123
0290 ; {
0290 ; time[temp]='_';
0290 ; }
0290 ; time[2]=':';
0290 8AE3 ldi R24,58
0292 80930400 sts _time+2,R24
0296 .dbline 124
0296 ; time[5]=':';
0296 80930700 sts _time+5,R24
029A .dbline 125
029A ; time[8]=0;
029A 2224 clr R2
029C 20920A00 sts _time+8,R2
02A0 .dbline 126
02A0 ; step=0;
02A0 AA24 clr R10
02A2 L51:
02A2 .dbline 128
02A2 ; do
02A2 ; {
02A2 .dbline 129
02A2 ; temp=keypad();
02A2 0E940000 xcall _keypad
02A6 602F mov R22,R16
02A8 .dbline 130
02A8 ; if(((temp&0x7f)!=0x7f)&((temp&0x7f)<0x0a))
02A8 862F mov R24,R22
02AA 8F77 andi R24,127
02AC 8F37 cpi R24,127
02AE 21F0 breq L56
02B0 81E0 ldi R24,1
02B2 90E0 ldi R25,0
02B4 7C01 movw R14,R24
02B6 02C0 xjmp L57
02B8 L56:
02B8 EE24 clr R14
02BA FF24 clr R15
02BC L57:
02BC 862F mov R24,R22
02BE 8F77 andi R24,127
02C0 8A30 cpi R24,10
02C2 20F4 brsh L58
02C4 81E0 ldi R24,1
02C6 90E0 ldi R25,0
02C8 6C01 movw R12,R24
02CA 02C0 xjmp L59
02CC L58:
02CC CC24 clr R12
02CE DD24 clr R13
02D0 L59:
02D0 1701 movw R2,R14
02D2 2C20 and R2,R12
02D4 3D20 and R3,R13
02D6 2220 tst R2
02D8 19F4 brne X0
02DA 3320 tst R3
02DC 09F4 brne X3
02DE A1C0 xjmp L54
02E0 X3:
02E0 X0:
02E0 .dbline 131
02E0 ; {
02E0 .dbline 132
02E0 ; switch (step)
02E0 4A2D mov R20,R10
02E2 5527 clr R21
02E4 4030 cpi R20,0
02E6 4507 cpc R20,R21
02E8 C9F0 breq L63
02EA X1:
02EA 4130 cpi R20,1
02EC E0E0 ldi R30,0
02EE 5E07 cpc R21,R30
02F0 11F1 breq L66
02F2 4230 cpi R20,2
02F4 E0E0 ldi R30,0
02F6 5E07 cpc R21,R30
02F8 09F4 brne X4
02FA 39C0 xjmp L73
02FC X4:
02FC 4330 cpi R20,3
02FE E0E0 ldi R30,0
0300 5E07 cpc R21,R30
0302 09F4 brne X5
0304 41C0 xjmp L77
0306 X5:
0306 4430 cpi R20,4
0308 E0E0 ldi R30,0
030A 5E07 cpc R21,R30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -