📄 main.lis
字号:
01A2 .dbline 48
01A2 .dbline 48
01A2 0196 adiw R24,1
01A4 90930100 sts _ticnt+1,R25
01A8 80930000 sts _ticnt,R24
01AC .dbline 48
01AC 80910200 lds R24,_keytime
01B0 90910300 lds R25,_keytime+1
01B4 0196 adiw R24,1
01B6 90930300 sts _keytime+1,R25
01BA 80930200 sts _keytime,R24
01BE .dbline 48
01BE 06C0 rjmp L21
01C0 L20:
01C0 .dbline 49
01C0 ; else ticnt=0;
01C0 2224 clr R2
01C2 3324 clr R3
01C4 30920100 sts _ticnt+1,R3
01C8 20920000 sts _ticnt,R2
01CC L21:
01CC .dbline 50
01CC ; if(keytime>1000) keybit=0xf7;
01CC 88EE ldi R24,1000
01CE 93E0 ldi R25,3
01D0 20900200 lds R2,_keytime
01D4 30900300 lds R3,_keytime+1
01D8 8215 cp R24,R2
01DA 9305 cpc R25,R3
01DC 18F4 brsh L22
01DE .dbline 50
01DE 87EF ldi R24,247
01E0 80930000 sts _keybit,R24
01E4 L22:
01E4 .dbline 51
01E4 83B1 in R24,0x3
01E6 8F70 andi R24,15
01E8 8F30 cpi R24,15
01EA 31F0 breq L24
01EC .dbline 51
01EC 2224 clr R2
01EE 3324 clr R3
01F0 30920300 sts _keytime+1,R3
01F4 20920200 sts _keytime,R2
01F8 L24:
01F8 .dbline -2
01F8 L19:
01F8 2990 ld R2,y+
01FA 2FBE out 0x3f,R2
01FC E991 ld R30,y+
01FE 9991 ld R25,y+
0200 8991 ld R24,y+
0202 3990 ld R3,y+
0204 2990 ld R2,y+
0206 .dbline 0 ; func end
0206 1895 reti
0208 .dbend
.area vector(rom, abs)
.org 6
0006 04C1 rjmp _int_clr
.area text(rom, con, rel)
0208 .dbfile E:\NumberDisplay\cfile\main.c
0208 .dbfunc e int_clr _int_clr fV
0208 ; m -> R10
.even
0208 _int_clr::
0208 0A92 st -y,R0
020A 1A92 st -y,R1
020C 2A92 st -y,R2
020E 3A92 st -y,R3
0210 0A93 st -y,R16
0212 1A93 st -y,R17
0214 2A93 st -y,R18
0216 8A93 st -y,R24
0218 9A93 st -y,R25
021A EA93 st -y,R30
021C FA93 st -y,R31
021E 0FB6 in R0,0x3f
0220 0A92 st -y,R0
0222 00D0 rcall push_gset3
0224 .dbline -1
0224 .dbline 56
0224 ; if((PINB&0X0f)!=0x0f) keytime=0;
0224 ; }
0224 ; //-----------------------------------------------------------------------
0224 ; #pragma interrupt_handler int_clr:4
0224 ; void int_clr(void)
0224 ; {
0224 .dbline 58
0224 ; unsigned char m;
0224 ; CLI( );
0224 F894 cli
0226 .dbline 59
0226 ; Contdata=0;
0226 40E0 ldi R20,0
0228 50E0 ldi R21,0
022A 60E0 ldi R22,0
022C 70E0 ldi R23,0
022E 50931700 sts _Contdata+1,R21
0232 40931600 sts _Contdata,R20
0236 70931900 sts _Contdata+2+1,R23
023A 60931800 sts _Contdata+2,R22
023E .dbline 60
023E ; tempcnt=0;
023E 40E0 ldi R20,0
0240 50E0 ldi R21,0
0242 60E0 ldi R22,0
0244 70E0 ldi R23,0
0246 50930100 sts _tempcnt+1,R21
024A 40930000 sts _tempcnt,R20
024E 70930300 sts _tempcnt+2+1,R23
0252 60930200 sts _tempcnt+2,R22
0256 .dbline 61
0256 ; for (m=0; m<3;m++)
0256 AA24 clr R10
0258 1CC0 rjmp L30
025A L27:
025A .dbline 62
025A .dbline 63
025A 1A2D mov R17,R10
025C 1D5F subi R17,253 ; addi 3
025E 01E0 ldi R16,1
0260 00D0 rcall lsl8
0262 202E mov R2,R16
0264 2094 com R2
0266 38B0 in R3,0x8
0268 3220 and R3,R2
026A 38B8 out 0x8,R3
026C .dbline 64
026C 82E0 ldi R24,2
026E 8A9D mul R24,R10
0270 F001 movw R30,R0
0272 80E0 ldi R24,<_ti
0274 90E0 ldi R25,>_ti
0276 E80F add R30,R24
0278 F91F adc R31,R25
027A 2224 clr R2
027C 3324 clr R3
027E 3182 std z+1,R3
0280 2082 std z+0,R2
0282 .dbline 65
0282 80E0 ldi R24,<_kt
0284 90E0 ldi R25,>_kt
0286 EA2D mov R30,R10
0288 FF27 clr R31
028A E80F add R30,R24
028C F91F adc R31,R25
028E 2082 std z+0,R2
0290 .dbline 66
0290 L28:
0290 .dbline 61
0290 A394 inc R10
0292 L30:
0292 .dbline 61
0292 8A2D mov R24,R10
0294 8330 cpi R24,3
0296 08F3 brlo L27
0298 .dbline 67
0298 ; {
0298 ; PORTC&=~BIT(m+3);
0298 ; ti[m]=0;
0298 ; kt[m]=0;
0298 ; }
0298 ; SEI( );
0298 7894 sei
029A .dbline -2
029A L26:
029A 00D0 rcall pop_gset3
029C 0990 ld R0,y+
029E 0FBE out 0x3f,R0
02A0 F991 ld R31,y+
02A2 E991 ld R30,y+
02A4 9991 ld R25,y+
02A6 8991 ld R24,y+
02A8 2991 ld R18,y+
02AA 1991 ld R17,y+
02AC 0991 ld R16,y+
02AE 3990 ld R3,y+
02B0 2990 ld R2,y+
02B2 1990 ld R1,y+
02B4 0990 ld R0,y+
02B6 .dbline 0 ; func end
02B6 1895 reti
02B8 .dbsym r m 10 c
02B8 .dbend
02B8 .dbfunc e powersave _powersave fV
02B8 ; m -> R20
.even
02B8 _powersave::
02B8 00D0 rcall push_gset1
02BA 2297 sbiw R28,2
02BC .dbline -1
02BC .dbline 71
02BC ; }
02BC ; //------
02BC ; void powersave(void)
02BC ; {
02BC .dbline 72
02BC ; unsigned char m=0;
02BC 4427 clr R20
02BE .dbline 73
02BE ; WDR();
02BE A895 wdr
02C0 .dbline 74
02C0 ; PORTC&=~BIT(cp);
02C0 4198 cbi 0x8,1
02C2 .dbline 75
02C2 ; for(m=0;m<24;m++)
02C2 04C0 rjmp L35
02C4 L32:
02C4 .dbline 76
02C4 .dbline 77
02C4 4298 cbi 0x8,2
02C6 .dbline 78
02C6 409A sbi 0x8,0
02C8 .dbline 79
02C8 429A sbi 0x8,2
02CA .dbline 80
02CA L33:
02CA .dbline 75
02CA 4395 inc R20
02CC L35:
02CC .dbline 75
02CC 4831 cpi R20,24
02CE D0F3 brlo L32
02D0 .dbline 81
02D0 ; {
02D0 ; PORTC&=~BIT(sh_cp);
02D0 ; PORTC|=BIT(ds);
02D0 ; PORTC|= BIT(sh_cp);
02D0 ; }
02D0 ; PORTC|=BIT(cp);
02D0 419A sbi 0x8,1
02D2 .dbline 82
02D2 ; DDRC=0x00;
02D2 2224 clr R2
02D4 27B8 out 0x7,R2
02D6 .dbline 83
02D6 ; EEPROMwrite(0xb0,kt[0]);
02D6 20910100 lds R18,_kt
02DA 00EB ldi R16,176
02DC 10E0 ldi R17,0
02DE 00D0 rcall _EEPROMwrite_extIO
02E0 .dbline 84
02E0 ; EEPROM_WRITE(0x93, Contdata);
02E0 84E0 ldi R24,4
02E2 90E0 ldi R25,0
02E4 9983 std y+1,R25
02E6 8883 std y+0,R24
02E8 20E0 ldi R18,<_Contdata
02EA 30E0 ldi R19,>_Contdata
02EC 03E9 ldi R16,147
02EE 10E0 ldi R17,0
02F0 00D0 rcall _EEPROMWriteBytes_extIO
02F2 L36:
02F2 .dbline 85
02F2 L37:
02F2 .dbline 85
02F2 FFCF rjmp L36
02F4 X2:
02F4 .dbline -2
02F4 L31:
02F4 2296 adiw R28,2
02F6 00D0 rcall pop_gset1
02F8 .dbline 0 ; func end
02F8 0895 ret
02FA .dbsym r m 20 c
02FA .dbend
02FA .dbfunc e main _main fV
.even
02FA _main::
02FA .dbline -1
02FA .dbline 89
02FA ; while(1);
02FA ; }
02FA ; //------------------------------------------------------------------------
02FA ; void main(void)
02FA ; {
02FA .dbline 90
02FA ; InitIo();
02FA 00D0 rcall _InitIo
02FC 0CC0 rjmp L41
02FE L40:
02FE .dbline 92
02FE ; while(1)
02FE ; {
02FE .dbline 93
02FE ; menu();
02FE 00D0 rcall _menu
0300 L43:
0300 .dbline 95
0300 ; loop:
0300 ; if((PINB&0X0f)==0x07) goto loop;
0300 83B1 in R24,0x3
0302 8F70 andi R24,15
0304 8730 cpi R24,7
0306 09F4 brne L44
0308 .dbline 95
0308 FBCF rjmp L43
030A L44:
030A .dbline 96
030A ; if((PINB&0X0f)==0x17) goto loop;
030A 83B1 in R24,0x3
030C 8F70 andi R24,15
030E 8731 cpi R24,23
0310 09F4 brne L46
0312 .dbline 96
0312 F6CF rjmp L43
0314 L46:
0314 .dbline 97
0314 00D0 rcall _cntplay
0316 .dbline 98
0316 L41:
0316 .dbline 91
0316 F3CF rjmp L40
0318 X3:
0318 .dbline -2
0318 L39:
0318 .dbline 0 ; func end
0318 0895 ret
031A .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\NumberDisplay\cfile\main.c
0000 _keybit::
0000 .blkb 1
0001 .dbsym e keybit _keybit c
0001 _kt::
0001 .blkb 3
0004 .dbsym e kt _kt A[3:3]c
0004 _ti::
0004 .blkb 6
000A .dbsym e ti _ti A[6:3]i
000A _timeset::
000A .blkb 12
0016 .dbsym e timeset _timeset A[12:3]L
0016 _Contdata::
0016 .blkb 4
001A .dbsym e Contdata _Contdata L
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -