📄 main.lis
字号:
05BC C701 movw R24,R14
05BE 0196 adiw R24,1
05C0 7C01 movw R14,R24
05C2 L48:
05C2 .dbline 135
05C2 C701 movw R24,R14
05C4 8430 cpi R24,4
05C6 E0E0 ldi R30,0
05C8 9E07 cpc R25,R30
05CA 08F4 brsh X4
05CC 95CF rjmp L45
05CE X4:
05CE .dbline -2
05CE L24:
05CE 2C96 adiw R28,12
05D0 00D0 rcall pop_gset5
05D2 2296 adiw R28,2
05D4 .dbline 0 ; func end
05D4 0895 ret
05D6 .dbsym r k 10 i
05D6 .dbsym l temp 4 D
05D6 .dbsym l intA 0 D
05D6 .dbsym r n 12 i
05D6 .dbsym r i 14 i
05D6 .dbsym l pch 22 pc
05D6 .dbend
05D6 .dbfunc e SET_A _SET_A fV
05D6 ; intA -> R20,R21
05D6 ; i -> R22,R23
05D6 ; pch -> R10,R11
.even
05D6 _SET_A::
05D6 00D0 rcall push_gset3
05D8 5801 movw R10,R16
05DA .dbline -1
05DA .dbline 143
05DA ; }
05DA ; }
05DA ;
05DA ; void SET_A( unsigned char* pch )
05DA ; {
05DA .dbline 145
05DA ; unsigned int intA,i;
05DA ; intA = MAX_A[0] ;
05DA 40910000 lds R20,_MAX_A
05DE 50910100 lds R21,_MAX_A+1
05E2 .dbline 146
05E2 ; for ( i = 0; i < 4; i++ )
05E2 6627 clr R22
05E4 7727 clr R23
05E6 0FC0 rjmp L57
05E8 L54:
05E8 .dbline 147
05E8 .dbline 148
05E8 2AE0 ldi R18,10
05EA 30E0 ldi R19,0
05EC 8A01 movw R16,R20
05EE 00D0 rcall mod16u
05F0 FB01 movw R30,R22
05F2 EA0D add R30,R10
05F4 FB1D adc R31,R11
05F6 0083 std z+0,R16
05F8 .dbline 149
05F8 2AE0 ldi R18,10
05FA 30E0 ldi R19,0
05FC 8A01 movw R16,R20
05FE 00D0 rcall div16u
0600 A801 movw R20,R16
0602 .dbline 150
0602 L55:
0602 .dbline 146
0602 6F5F subi R22,255 ; offset = 1
0604 7F4F sbci R23,255
0606 L57:
0606 .dbline 146
0606 6430 cpi R22,4
0608 E0E0 ldi R30,0
060A 7E07 cpc R23,R30
060C 68F3 brlo L54
060E .dbline 151
060E ; {
060E ; pch[i] = intA % 10;
060E ; intA /= 10;
060E ; }
060E ; if ( pch[3] == 0 )
060E F501 movw R30,R10
0610 2380 ldd R2,z+3
0612 2220 tst R2
0614 79F4 brne L58
0616 .dbline 152
0616 ; {
0616 .dbline 153
0616 ; pch[3] = 0x0a;
0616 8AE0 ldi R24,10
0618 F501 movw R30,R10
061A 8383 std z+3,R24
061C .dbline 154
061C ; if ( pch[2] == 0 )
061C F501 movw R30,R10
061E 2280 ldd R2,z+2
0620 2220 tst R2
0622 41F4 brne L60
0624 .dbline 155
0624 ; {
0624 .dbline 156
0624 ; pch[2] = 0x0a;
0624 F501 movw R30,R10
0626 8283 std z+2,R24
0628 .dbline 157
0628 ; if ( pch[1] == 0 )
0628 F501 movw R30,R10
062A 2180 ldd R2,z+1
062C 2220 tst R2
062E 11F4 brne L62
0630 .dbline 158
0630 ; {
0630 .dbline 159
0630 ; pch[1] = 0x0a;
0630 F501 movw R30,R10
0632 8183 std z+1,R24
0634 .dbline 160
0634 ; }
0634 L62:
0634 .dbline 161
0634 ; }
0634 L60:
0634 .dbline 162
0634 L58:
0634 .dbline -2
0634 L53:
0634 00D0 rcall pop_gset3
0636 .dbline 0 ; func end
0636 0895 ret
0638 .dbsym r intA 20 i
0638 .dbsym r i 22 i
0638 .dbsym r pch 10 pc
0638 .dbend
0638 .dbfunc e CHECK_EDATA_A _CHECK_EDATA_A fV
.even
0638 _CHECK_EDATA_A::
0638 2297 sbiw R28,2
063A .dbline -1
063A .dbline 166
063A ; }
063A ; }
063A ;
063A ; void CHECK_EDATA_A(void)
063A ; {
063A .dbline 167
063A ; if ( MAX_A[1] == MAX_A[2] )
063A 20900400 lds R2,_MAX_A+4
063E 30900500 lds R3,_MAX_A+4+1
0642 40900200 lds R4,_MAX_A+2
0646 50900300 lds R5,_MAX_A+2+1
064A 4214 cp R4,R2
064C 5304 cpc R5,R3
064E 01F5 brne L65
0650 .dbline 168
0650 ; {
0650 .dbline 169
0650 ; if ( MAX_A[0] != MAX_A[1] )
0650 20900200 lds R2,_MAX_A+2
0654 30900300 lds R3,_MAX_A+2+1
0658 40900000 lds R4,_MAX_A
065C 50900100 lds R5,_MAX_A+1
0660 4214 cp R4,R2
0662 5304 cpc R5,R3
0664 69F1 breq L66
0666 .dbline 170
0666 ; {
0666 .dbline 171
0666 ; MAX_A[0] = MAX_A[1];
0666 20900200 lds R2,_MAX_A+2
066A 30900300 lds R3,_MAX_A+2+1
066E 30920100 sts _MAX_A+1,R3
0672 20920000 sts _MAX_A,R2
0676 .dbline 172
0676 ; eeprom_busy_wait();
0676 00D0 rcall _eeprom_busy_wait
0678 .dbline 173
0678 ; cli();
0678 00D0 rcall _cli
067A .dbline 174
067A ; eeprom_write_block((char*)MAX_A,(char*)0x20,6 );
067A 86E0 ldi R24,6
067C 90E0 ldi R25,0
067E 9983 std y+1,R25
0680 8883 std y+0,R24
0682 20E2 ldi R18,32
0684 30E0 ldi R19,0
0686 00E0 ldi R16,<_MAX_A
0688 10E0 ldi R17,>_MAX_A
068A 00D0 rcall _eeprom_write_block
068C .dbline 175
068C ; sei();
068C 00D0 rcall _sei
068E .dbline 176
068E ; }
068E .dbline 177
068E ; }
068E 18C0 rjmp L66
0690 L65:
0690 .dbline 179
0690 .dbline 180
0690 20900000 lds R2,_MAX_A
0694 30900100 lds R3,_MAX_A+1
0698 30920300 sts _MAX_A+2+1,R3
069C 20920200 sts _MAX_A+2,R2
06A0 30920500 sts _MAX_A+4+1,R3
06A4 20920400 sts _MAX_A+4,R2
06A8 .dbline 181
06A8 00D0 rcall _eeprom_busy_wait
06AA .dbline 182
06AA 00D0 rcall _cli
06AC .dbline 183
06AC 86E0 ldi R24,6
06AE 90E0 ldi R25,0
06B0 9983 std y+1,R25
06B2 8883 std y+0,R24
06B4 20E2 ldi R18,32
06B6 30E0 ldi R19,0
06B8 00E0 ldi R16,<_MAX_A
06BA 10E0 ldi R17,>_MAX_A
06BC 00D0 rcall _eeprom_write_block
06BE .dbline 184
06BE 00D0 rcall _sei
06C0 .dbline 185
06C0 L66:
06C0 .dbline -2
06C0 L64:
06C0 2296 adiw R28,2
06C2 .dbline 0 ; func end
06C2 0895 ret
06C4 .dbend
06C4 .dbfunc e SIGNAL _SIGNAL fI
06C4 ; SIG_ADC -> R16,R17
.even
06C4 _SIGNAL::
06C4 .dbline -1
06C4 .dbline 190
06C4 ; else
06C4 ; {
06C4 ; MAX_A[2] = MAX_A[1] = MAX_A[0];
06C4 ; eeprom_busy_wait();
06C4 ; cli();
06C4 ; eeprom_write_block((char*)MAX_A,(char*)0x20,6 );
06C4 ; sei();
06C4 ; }
06C4 ; }
06C4 ;
06C4 ; //#pragma interrupt_handler adc_isr:15
06C4 ; SIGNAL(SIG_ADC)
06C4 ; {
06C4 .dbline 191
06C4 ; adc_data_temp = ADC & 0x3FF;
06C4 84B1 in R24,0x4
06C6 95B1 in R25,0x5
06C8 9370 andi R25,3
06CA 90930D00 sts _adc_data_temp+1,R25
06CE 80930C00 sts _adc_data_temp,R24
06D2 .dbline -2
06D2 L75:
06D2 .dbline 0 ; func end
06D2 0895 ret
06D4 .dbsym r SIG_ADC 16 I
06D4 .dbend
.area bss(ram, con, rel)
0001 .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\main.c
0001 _UP_DOWN_POWER::
0001 .blkb 1
0002 .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF/init.h
0002 .dbsym e UP_DOWN_POWER _UP_DOWN_POWER c
0002 _KEY_AUTO_MAN_STATE::
0002 .blkb 1
0003 .dbsym e KEY_AUTO_MAN_STATE _KEY_AUTO_MAN_STATE c
0003 _KEY_CC_CV_STATE::
0003 .blkb 1
0004 .dbsym e KEY_CC_CV_STATE _KEY_CC_CV_STATE c
0004 _POWER_STATE::
0004 .blkb 1
0005 .dbsym e POWER_STATE _POWER_STATE c
0005 _KEY_A_V_STATE::
0005 .blkb 1
0006 .dbsym e KEY_A_V_STATE _KEY_A_V_STATE c
0006 _KEY_INPUT::
0006 .blkb 1
0007 .dbsym e KEY_INPUT _KEY_INPUT c
0007 _KEY_TEMP::
0007 .blkb 1
0008 .dbsym e KEY_TEMP _KEY_TEMP c
0008 _SET_STATU::
0008 .blkb 1
0009 .dbsym e SET_STATU _SET_STATU c
0009 _TIMER_EN::
0009 .blkb 1
000A .dbsym e TIMER_EN _TIMER_EN c
000A _TIMER_NUM::
000A .blkb 2
000C .dbsym e TIMER_NUM _TIMER_NUM i
000C _adc_data_temp::
000C .blkb 2
000E .dbsym e adc_data_temp _adc_data_temp i
.area lit(rom, con, rel)
0008 L52:
0008 00000047 .word 0x0,0x4700
000C L51:
000C 00002041 .word 0x0,0x4120
0010 L44:
0010 00001644 .word 0x0,0x4416
0014 L43:
0014 00000843 .word 0x0,0x4308
0018 L39:
0018 0080BB43 .word 0x8000,0x43bb
001C L38:
001C 00000442 .word 0x0,0x4204
0020 L32:
0020 0000C842 .word 0x0,0x42c8
0024 L31:
0024 8FC2FD40 .word 0xc28f,0x40fd
0028 L30:
0028 00000040 .word 0x0,0x4000
002C L29:
002C 00000040 .word 0x0,0x4000
0030 L25:
0030 00000000 .word 0x0,0x0
0034 L17:
0034 00008044 .word 0x0,0x4480
0038 L16:
0038 0000FA44 .word 0x0,0x44fa
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -