📄 function.s
字号:
.dbline 125
; led7_display(12,3,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,3
ldi R16,12
xcall _led7_display
.dbline 126
; led7_display(0,4,1,1);
ldi R24,1
std y+2,R24
std y+0,R24
ldi R18,4
clr R16
xcall _led7_display
.dbline 127
; led7_display(t4,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
mov R16,R22
xcall _led7_display
.dbline 128
; }
xjmp L51
L50:
.dbline 130
; else
; {
.dbline 131
; led7_display(12,2,0,1); // t1=0,t2=0,t3=0,t4=0
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
ldi R16,12
xcall _led7_display
.dbline 132
; led7_display(12,3,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,3
ldi R16,12
xcall _led7_display
.dbline 133
; led7_display(12,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
ldi R16,12
xcall _led7_display
.dbline 134
; led7_display(0,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
clr R16
xcall _led7_display
.dbline 135
; }
L51:
.dbline 136
; }
L49:
.dbline 137
; }
L47:
.dbline 138
; }
L45:
.dbline 140
;
; SEI();
sei
.dbline 141
; }
xjmp L38
L42:
.dbline 143
;
; else if(point_flag == 2)
ldd R24,y+13
cpi R24,2
breq X5
xjmp L38
X5:
.dbline 144
; {
.dbline 145
; CLI();
cli
.dbline 146
; WDR();
wdr
.dbline 147
; t5 = data;
ldd R20,y+15
ldd R21,y+16
.dbline 148
; t1 = t5/1000;
ldi R18,1000
ldi R19,3
movw R16,R20
xcall div16u
mov R14,R16
.dbline 149
; t2 = (t5%1000)/100;
ldi R18,1000
ldi R19,3
movw R16,R20
xcall mod16u
ldi R18,100
ldi R19,0
xcall div16u
mov R10,R16
.dbline 150
; t3 = ((t5%1000)%100)/10;
ldi R18,1000
ldi R19,3
movw R16,R20
xcall mod16u
ldi R18,100
ldi R19,0
xcall mod16u
ldi R18,10
ldi R19,0
xcall div16u
mov R12,R16
.dbline 151
; t4 = ((t5%1000)%100)%10;
ldi R18,1000
ldi R19,3
movw R16,R20
xcall mod16u
ldi R18,100
ldi R19,0
xcall mod16u
ldi R18,10
ldi R19,0
xcall mod16u
mov R22,R16
.dbline 152
; if(t1)
tst R14
breq L54
.dbline 153
; {
.dbline 154
; led7_display(t1,2,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
mov R16,R14
xcall _led7_display
.dbline 155
; led7_display(t2,3,1,1);
ldi R24,1
std y+2,R24
std y+0,R24
ldi R18,3
mov R16,R10
xcall _led7_display
.dbline 156
; led7_display(t3,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
mov R16,R12
xcall _led7_display
.dbline 157
; led7_display(t4,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
mov R16,R22
xcall _led7_display
.dbline 158
; }
xjmp L55
L54:
.dbline 160
; else
; {
.dbline 161
; if(t2)
tst R10
breq L56
.dbline 162
; {
.dbline 163
; led7_display(12,2,0,1); // t1=0
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
ldi R16,12
xcall _led7_display
.dbline 164
; led7_display(t2,3,1,1);
ldi R24,1
std y+2,R24
std y+0,R24
ldi R18,3
mov R16,R10
xcall _led7_display
.dbline 165
; led7_display(t3,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
mov R16,R12
xcall _led7_display
.dbline 166
; led7_display(t4,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
mov R16,R22
xcall _led7_display
.dbline 167
; }
xjmp L57
L56:
.dbline 169
; else
; { // t1=0,t2=0
.dbline 170
; if(t3)
tst R12
breq L58
.dbline 171
; {
.dbline 172
; led7_display(12,2,0,1); // t3!=0
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
ldi R16,12
xcall _led7_display
.dbline 173
; led7_display(t2,3,1,1);
ldi R24,1
std y+2,R24
std y+0,R24
ldi R18,3
mov R16,R10
xcall _led7_display
.dbline 174
; led7_display(t3,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
mov R16,R12
xcall _led7_display
.dbline 175
; led7_display(t4,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
mov R16,R22
xcall _led7_display
.dbline 176
; }
xjmp L59
L58:
.dbline 178
; else
; { // t1=0,t2=0,t3=0
.dbline 179
; if(t4)
tst R22
breq L60
.dbline 180
; {
.dbline 181
; led7_display(12,2,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
ldi R16,12
xcall _led7_display
.dbline 182
; led7_display(t2,3,1,1);
ldi R24,1
std y+2,R24
std y+0,R24
ldi R18,3
mov R16,R10
xcall _led7_display
.dbline 183
; led7_display(0,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
clr R16
xcall _led7_display
.dbline 184
; led7_display(t4,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
mov R16,R22
xcall _led7_display
.dbline 185
; }
xjmp L61
L60:
.dbline 187
; else
; {
.dbline 188
; led7_display(12,2,0,1); // t1=0,t2=0,t3=0,t4=0
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
ldi R16,12
xcall _led7_display
.dbline 189
; led7_display(12,3,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,3
ldi R16,12
xcall _led7_display
.dbline 190
; led7_display(12,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
ldi R16,12
xcall _led7_display
.dbline 191
; led7_display(0,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
clr R16
xcall _led7_display
.dbline 192
; }
L61:
.dbline 193
; }
L59:
.dbline 194
; }
L57:
.dbline 195
; }
L55:
.dbline 196
; SEI();
sei
.dbline 197
; }
.dbline 198
; }
xjmp L38
L40:
.dbline 199
; else if(data==0x5a)
ldd R24,y+15
ldd R25,y+16
cpi R24,90
ldi R30,0
cpc R25,R30
brne L62
.dbline 200
; {
.dbline 201
; WDR();
wdr
.dbline 202
; led7_display(0,2,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
clr R16
xcall _led7_display
.dbline 203
; led7_display(13,3,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,3
ldi R16,13
xcall _led7_display
.dbline 204
; led7_display(12,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
ldi R16,12
xcall _led7_display
.dbline 205
; led7_display(12,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
ldi R16,12
xcall _led7_display
.dbline 206
; }
xjmp L38
L62:
.dbline 207
; else if(data== 0xa5)
ldd R24,y+15
ldd R25,y+16
cpi R24,165
ldi R30,0
cpc R25,R30
breq X6
xjmp L38
X6:
.dbline 208
; {WDR();
.dbline 208
wdr
.dbline 209
; led7_display(0,2,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
clr R16
xcall _led7_display
.dbline 210
; led7_display(14,3,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,3
ldi R16,14
xcall _led7_display
.dbline 211
; led7_display(14,4,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
ldi R16,14
xcall _led7_display
.dbline 212
; led7_display(12,5,0,1);
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
ldi R16,12
xcall _led7_display
.dbline 213
; }
.dbline 214
; }
xjmp L38
L37:
.dbline 217
.dbline 217
wdr
.dbline 218
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
ldi R16,15
xcall _led7_display
.dbline 219
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,3
ldi R16,17
xcall _led7_display
.dbline 220
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
ldi R16,16
xcall _led7_display
.dbline 221
ldi R24,1
std y+2,R24
clr R2
std y+0,R2
ldi R18,5
ldi R16,16
xcall _led7_display
.dbline 222
L38:
.dbline -2
L10:
adiw R28,3
xcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r t4 22 c
.dbsym r t3 12 c
.dbsym r t5 20 i
.dbsym r t2 10 c
.dbsym r t1 14 c
.dbsym l data 15 i
.dbsym l point_flag 13 c
.dbsym r channel 20 c
.dbend
.dbfunc e delay_1us _delay_1us fV
.even
_delay_1us::
.dbline -1
.dbline 226
;
; else
; {WDR();
; led7_display(15,2,0,1);
; led7_display(17,3,0,1);
; led7_display(16,4,0,1);
; led7_display(16,5,0,1);
; }
; }
;
; void delay_1us(void)
; {asm("nop");}
.dbline 226
nop
.dbline -2
L66:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_us _delay_us fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_us::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 229
;
; void delay_us(uint n)
; {
.dbline 230
; uint i=0;
clr R20
clr R21
.dbline 231
; for(i=0;i<n;i++)
xjmp L71
L68:
.dbline 232
xcall _delay_1us
L69:
.dbline 231
subi R20,255 ; offset = 1
sbci R21,255
L71:
.dbline 231
cp R20,R22
cpc R21,R23
brlo L68
.dbline -2
L67:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 236
; delay_1us();
; }
;
; void delay_1ms(void)
; {
.dbline 238
; uint i;
; for(i=1;i<(uint)(xtal*143-2);i++)
ldi R16,1
ldi R17,0
xjmp L76
L73:
.dbline 239
L74:
.dbline 238
subi R16,255 ; offset = 1
sbci R17,255
L76:
.dbline 238
ldi R24,2286
ldi R25,8
cp R16,R24
cpc R17,R25
brlo L73
.dbline -2
L72:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_ms _delay_ms fV
; i -> R20,R21
; n -> R22,R23
.even
_delay_ms::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 242
; ;
; }
; void delay_ms(uint n)
; {
.dbline 243
; uint i=0;
clr R20
clr R21
.dbline 244
; for(i=0;i<n;i++)
xjmp L81
L78:
.dbline 245
xcall _delay_1ms
L79:
.dbline 244
subi R20,255 ; offset = 1
sbci R21,255
L81:
.dbline 244
cp R20,R22
cpc R21,R23
brlo L78
.dbline -2
L77:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r n 22 i
.dbend
.dbfunc e get_id _get_id fc
; temp -> R16
.even
_get_id::
.dbline -1
.dbline 248
; delay_1ms();
; }
; unsigned char get_id(void) //读取拨码开关
; {
.dbline 250
; unsigned char temp;
; PORTC = addr_id;
ldi R24,240
out 0x8,R24
.dbline 251
; WDR();
wdr
.dbline 252
; asm("nop");
nop
.dbline 253
; asm("nop");
nop
.dbline 254
; asm("nop");
nop
.dbline 255
; asm("nop");
nop
.dbline 256
; asm("nop");
nop
.dbline 257
; asm("nop");
nop
.dbline 258
; temp = PINB;
in R16,0x3
.dbline 259
; temp = ~(temp);
com R16
.dbline 260
; temp = temp&0x7f;
andi R16,127
.dbline 261
; return temp;
.dbline -2
L82:
.dbline 0 ; func end
ret
.dbsym r temp 16 c
.dbend
.dbfunc e buzzer_on _buzzer_on fV
; temp -> <dead>
.even
_buzzer_on::
.dbline -1
.dbline 265
; }
;
; void buzzer_on(void)
; {
.dbline 267
; unsigned char temp;
; WDR();
wdr
.dbline 268
; out_state|=0x01;
lds R24,_out_state
ori R24,1
sts _out_state,R24
.dbline 269
; PORTC&=0xef;
in R24,0x8
andi R24,239
out 0x8,R24
.dbline 271
;
; PORTE = (out_state<<2);
lds R2,_out_state
lsl R2
lsl R2
out 0xe,R2
.dbline 272
; PORTD |= 0x80;
sbi 0xb,7
.dbline 273
; asm("nop");
nop
.dbline 274
; asm("nop");
nop
.dbline 275
; PORTD &= 0x7f;
in R24,0xb
andi R24,127
out 0xb,R24
.dbline -2
L83:
.dbline 0 ; func end
ret
.dbsym l temp 1 c
.dbend
.dbfunc e buzzer_off _buzzer_off fV
; temp -> <dead>
.even
_buzzer_off::
.dbline -1
.dbline 279
; }
;
; void buzzer_off(void)
; {
.dbline 281
; unsigned char temp;
; WDR();
wdr
.dbline 282
; PORTC&=0xef;
in R24,0x8
andi R24,239
out 0x8,R24
.dbline 283
; out_state&=0xfe;
lds R24,_out_state
andi R24,254
sts _out_state,R24
.dbline 284
; PORTE = (out_state<<2);
mov R2,R24
lsl R2
lsl R2
out 0xe,R2
.dbline 285
; PORTD |= 0x80;
sbi 0xb,7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -