📄 main.s
字号:
; data_init(changK1());
rcall _changK1
rcall _data_init
rjmp L42
L41:
.dbline 92
; while(flag)
; {
.dbline 93
; key_temp=keypad();
rcall _keypad
mov R10,R16
.dbline 94
; switch(key_temp)
mov R12,R10
clr R13
mov R24,R12
mov R25,R13
cpi R24,1
ldi R30,0
cpc R25,R30
brne X4
rjmp L56
X4:
cpi R24,2
ldi R30,0
cpc R25,R30
breq L47
cpi R24,3
ldi R30,0
cpc R25,R30
breq L50
cpi R24,4
ldi R30,0
cpc R25,R30
brne X5
rjmp L53
X5:
rjmp L44
X1:
.dbline 95
; {
L47:
.dbline 97
; case KEY_CU:
; LCD_write(j,1,' ');
ldi R24,32
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,1
lds R16,_j
rcall _LCD_write
.dbline 98
; j++;
lds R24,_j
subi R24,255 ; addi 1
sts _j,R24
.dbline 99
; if(j>4) j=0;
ldi R24,4
lds R2,_j
cp R24,R2
brsh L48
.dbline 99
clr R2
sts _j,R2
L48:
.dbline 100
; LCD_write(j,1,'^');
ldi R24,94
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,1
lds R16,_j
rcall _LCD_write
.dbline 101
; break;
rjmp L45
L50:
.dbline 103
; case KEY_INC:
; value_table[j]++;
ldi R24,<_value_table
ldi R25,>_value_table
lds R2,_j
clr R3
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
ldd R24,z+0
subi R24,255 ; addi 1
std z+0,R24
.dbline 104
; if(value_table[j]>9) value_table[j]=0;
ldi R24,<_value_table
ldi R25,>_value_table
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,9
cp R24,R2
brsh L51
.dbline 104
ldi R24,<_value_table
ldi R25,>_value_table
lds R30,_j
clr R31
add R30,R24
adc R31,R25
clr R2
std z+0,R2
L51:
.dbline 105
; LCD_write(j,0,value_table[j]+'0');
ldi R24,<_value_table
ldi R25,>_value_table
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
clr R25
adiw R24,48
std y+1,R25
std y+0,R24
clr R18
lds R16,_j
rcall _LCD_write
.dbline 106
; break;
rjmp L45
L53:
.dbline 108
; case KEY_DEC:
; value_table[j]--;
ldi R24,<_value_table
ldi R25,>_value_table
lds R2,_j
clr R3
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
ldd R24,z+0
subi R24,1
std z+0,R24
.dbline 109
; if(value_table[j]==255) value_table[j]=9;
ldi R24,<_value_table
ldi R25,>_value_table
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
brne L54
.dbline 109
ldi R24,<_value_table
ldi R25,>_value_table
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldi R24,9
std z+0,R24
L54:
.dbline 110
; LCD_write(j,0,value_table[j]+'0');
ldi R24,<_value_table
ldi R25,>_value_table
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
clr R25
adiw R24,48
std y+1,R25
std y+0,R24
clr R18
lds R16,_j
rcall _LCD_write
.dbline 111
; break;
rjmp L45
L56:
.dbline 113
; case KEY_FN:
; K1=value_table[0]+ value_table[1]*0.1+value_table[2]*0.01+value_table[3]*0.001+value_table[4]*0.0001;
lds R16,_value_table
clr R17
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
ldi R16,<L20
ldi R17,>L20
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
lds R16,_value_table+1
clr R17
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall mpy32fs
rcall add32fs
ldi R16,<L21
ldi R17,>L21
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
lds R16,_value_table+2
clr R17
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall mpy32fs
rcall add32fs
ldi R16,<L22
ldi R17,>L22
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
lds R16,_value_table+3
clr R17
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall mpy32fs
rcall add32fs
ldi R16,<L23
ldi R17,>L23
rcall lpm32
st -y,R19
st -y,R18
st -y,R17
st -y,R16
lds R16,_value_table+4
clr R17
rcall int2fp
st -y,R19
st -y,R18
st -y,R17
st -y,R16
rcall mpy32fs
rcall add32f
sts _K1+1,R17
sts _K1,R16
sts _K1+2+1,R19
sts _K1+2,R18
.dbline 114
; data_init(changK1());
rcall _changK1
rcall _data_init
.dbline 115
; SaveToEEPROM(0,5,0);
clr R2
clr R3
std y+1,R3
std y+0,R2
ldi R18,5
clr R16
rcall _SaveToEEPROM
.dbline 116
; LCD_clr();
rcall _LCD_clr
.dbline 117
; LCD_display(0,0,4,Time1);
lds R2,_Time1
lds R3,_Time1+1
clr R4
clr R5
std y+2,R2
std y+3,R3
std y+4,R4
std y+5,R5
ldi R24,4
std y+0,R24
clr R18
clr R16
rcall _LCD_display
.dbline 118
; LCD_write_string(0,1,"^ Set T");
ldi R24,<L61
ldi R25,>L61
std y+1,R25
std y+0,R24
ldi R18,1
clr R16
rcall _LCD_write_string
.dbline 119
; j=0;
clr R2
sts _j,R2
.dbline 120
; data_init(Time1);
lds R16,_Time1
lds R17,_Time1+1
rcall _data_init
.dbline 121
; flag=0;
clr R20
.dbline 122
; break;
L44:
L45:
.dbline 124
L42:
.dbline 91
tst R20
breq X6
rjmp L41
X6:
.dbline 125
; }
; }
; flag=1;
ldi R20,1
rjmp L63
L62:
.dbline 127
; while(flag)
; {
.dbline 128
; key_temp=keypad();
rcall _keypad
mov R10,R16
.dbline 129
; switch(key_temp)
mov R22,R10
clr R23
cpi R22,1
ldi R30,0
cpc R23,R30
brne X7
rjmp L85
X7:
cpi R22,2
ldi R30,0
cpc R23,R30
breq L68
cpi R22,3
ldi R30,0
cpc R23,R30
breq L71
cpi R22,4
ldi R30,0
cpc R23,R30
brne X8
rjmp L78
X8:
rjmp L65
X2:
.dbline 130
; {
L68:
.dbline 132
; case KEY_CU:
; LCD_write(j,1,' ');
ldi R24,32
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,1
lds R16,_j
rcall _LCD_write
.dbline 133
; j++;
lds R24,_j
subi R24,255 ; addi 1
sts _j,R24
.dbline 134
; if(j>3) j=0;
ldi R24,3
lds R2,_j
cp R24,R2
brsh L69
.dbline 134
clr R2
sts _j,R2
L69:
.dbline 135
; LCD_write(j,1,'^');
ldi R24,94
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,1
lds R16,_j
rcall _LCD_write
.dbline 136
; break;
rjmp L66
L71:
.dbline 138
; case KEY_INC:
; value_table[j+1]++;
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R2,_j
clr R3
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
ldd R24,z+0
subi R24,255 ; addi 1
std z+0,R24
.dbline 139
; if(value_table[j+1]>9) value_table[j+1]=0;
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,9
cp R24,R2
brsh L73
.dbline 139
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R30,_j
clr R31
add R30,R24
adc R31,R25
clr R2
std z+0,R2
L73:
.dbline 140
; LCD_write(j,0,value_table[j+1]+'0');
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
clr R25
adiw R24,48
std y+1,R25
std y+0,R24
clr R18
lds R16,_j
rcall _LCD_write
.dbline 141
; break;
rjmp L66
L78:
.dbline 143
; case KEY_DEC:
; value_table[j+1]--;
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R2,_j
clr R3
add R2,R24
adc R3,R25
mov R30,R2
mov R31,R3
ldd R24,z+0
subi R24,1
std z+0,R24
.dbline 144
; if(value_table[j+1]==255) value_table[j+1]=9;
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
brne L80
.dbline 144
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldi R24,9
std z+0,R24
L80:
.dbline 145
; LCD_write(j,0,value_table[j+1]+'0');
ldi R24,<_value_table+1
ldi R25,>_value_table+1
lds R30,_j
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
clr R25
adiw R24,48
std y+1,R25
std y+0,R24
clr R18
lds R16,_j
rcall _LCD_write
.dbline 146
; break;
rjmp L66
L85:
.dbline 148
; case KEY_FN:
; Time1=value_table[1]*1000+ value_table[2]*100+value_table[3]*10+value_table[4];
lds R18,_value_table+2
clr R19
ldi R16,100
ldi R17,0
rcall mpy16s
mov R2,R16
mov R3,R17
lds R18,_value_table+1
clr R19
ldi R16,1000
ldi R17,3
rcall mpy16s
mov R4,R16
mov R5,R17
add R4,R2
adc R5,R3
lds R18,_value_table+3
clr R19
ldi R16,10
ldi R17,0
rcall mpy16s
add R4,R16
adc R5,R17
lds R2,_value_table+4
clr R3
add R4,R2
adc R5,R3
sts _Time1+1,R5
sts _Time1,R4
.dbline 149
; if(Time1<MIN_T) Time1=MIN_T;
mov R24,R4
mov R25,R5
cpi R24,50
ldi R30,0
cpc R25,R30
brsh L90
.dbline 149
ldi R24,50
ldi R25,0
sts _Time1+1,R25
sts _Time1,R24
L90:
.dbline 150
; data_init(Time1);
lds R16,_Time1
lds R17,_Time1+1
rcall _data_init
.dbline 151
; SaveToEEPROM(1,4,5);
ldi R24,5
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,4
ldi R16,1
rcall _SaveToEEPROM
.dbline 152
; goto mode_again;
rjmp L26
L65:
L66:
.dbline 154
L63:
.dbline 126
tst R20
breq X9
rjmp L62
X9:
.dbline 155
; }
; }
; }
L37:
.dbline 156
L30:
.dbline 63
tst R20
breq X10
rjmp L29
X10:
L31:
.dbline -2
.dbline 157
; }
; }
L19:
adiw R28,6
rcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r flag 20 c
.dbsym r key_temp 10 c
.dbend
.area bss(ram, con, rel)
.dbfile D:\hujie\main.c
_Time1::
.blkb 2
.dbsym e Time1 _Time1 i
_j::
.blkb 1
.dbsym e j _j c
_value_temp::
.blkb 2
.dbsym e value_temp _value_temp i
_value_table::
.blkb 5
.dbsym e value_table _value_table A[5:5]c
_POUNT::
.blkb 4
.dbsym e POUNT _POUNT D
_time_count::
.blkb 1
.dbsym e time_count _time_count c
_DAC::
.blkb 2
.dbsym e DAC _DAC i
_ADC_GD::
.blkb 2
.dbsym e ADC_GD _ADC_GD i
_ADC::
.blkb 2
.dbsym e ADC _ADC i
_value::
.blkb 2
.dbsym e value _value i
.area data(ram, con, rel)
.dbfile D:\hujie\main.c
L61:
.blkb 17
.area idata
.byte 94,32,32,32,32,32,32,32,32,32,32,'S,'e,'t,32,'T
.byte 0
.area data(ram, con, rel)
.dbfile D:\hujie\main.c
L40:
.blkb 17
.area idata
.byte 94,32,32,32,32,32,32,32,32,32,32,'S,'e,'t,32,'K
.byte 0
.area data(ram, con, rel)
.dbfile D:\hujie\main.c
L39:
.blkb 6
.area idata
.byte 45,49,48,'e,52,0
.area data(ram, con, rel)
.dbfile D:\hujie\main.c
.area lit(rom, con, rel)
L36:
.word 0x26e9,0x3fc1
.area data(ram, con, rel)
.dbfile D:\hujie\main.c
L28:
.blkb 13
.area idata
.byte 'F,'n,58,'M,'o,'d,32,'C,58,'D,'e,'f,0
.area data(ram, con, rel)
.dbfile D:\hujie\main.c
L27:
.blkb 15
.area idata
.byte 'K,61,32,32,32,32,32,44,'T,61,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\hujie\main.c
.area lit(rom, con, rel)
L23:
.word 0xb717,0x38d1
L22:
.word 0x126f,0x3a83
L21:
.word 0xd70a,0x3c23
L20:
.word 0xcccd,0x3dcc
L18:
.word 0x0,0x4700
L17:
.word 0x4000,0x461c
L14:
.word 0x0,0x40d0
L13:
.word 0x0,0x40d0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -