📄 sl3010_1.s
字号:
lds R2,_pa
com R2
out 0x1b,R2
.dbline 126
lds R16,_led_delayms
lds R17,_led_delayms+1
lsr R17
ror R16
rcall _delay_ms
.dbline 127
lds R2,_pa
lsr R2
lsr R2
sts _pa,R2
.dbline 128
L100:
.dbline 123
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
L102:
.dbline 123
lds R24,_timers
cpi R24,4
brlo L99
.dbline 130
ldi R24,3
sts _pa,R24
.dbline 131
clr R2
sts _timers,R2
rjmp L106
L103:
.dbline 132
.dbline 133
lds R2,_pa
com R2
out 0x1b,R2
.dbline 134
lds R16,_led_delayms
lds R17,_led_delayms+1
lsr R17
ror R16
rcall _delay_ms
.dbline 135
lds R2,_pa
lsl R2
lsl R2
lds R3,_pa
or R3,R2
sts _pa,R3
.dbline 136
L104:
.dbline 131
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
L106:
.dbline 131
lds R24,_timers
cpi R24,4
brlo L103
.dbline 138
ldi R24,63
sts _pa,R24
.dbline 139
clr R2
sts _timers,R2
rjmp L110
L107:
.dbline 140
.dbline 141
lds R2,_pa
com R2
out 0x1b,R2
.dbline 142
lds R16,_led_delayms
lds R17,_led_delayms+1
lsr R17
ror R16
rcall _delay_ms
.dbline 143
lds R2,_pa
lsr R2
lsr R2
lds R3,_pa
and R3,R2
sts _pa,R3
.dbline 144
L108:
.dbline 139
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
L110:
.dbline 139
lds R24,_timers
cpi R24,4
brlo L107
.dbline 146
ldi R24,192
sts _pa,R24
.dbline 147
clr R2
sts _timers,R2
rjmp L114
L111:
.dbline 148
.dbline 149
lds R2,_pa
com R2
out 0x1b,R2
.dbline 150
lds R16,_led_delayms
lds R17,_led_delayms+1
lsr R17
ror R16
rcall _delay_ms
.dbline 151
lds R2,_pa
lsr R2
lsr R2
lds R3,_pa
or R3,R2
sts _pa,R3
.dbline 152
L112:
.dbline 147
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
L114:
.dbline 147
lds R24,_timers
cpi R24,4
brlo L111
.dbline 154
ldi R24,252
sts _pa,R24
.dbline 155
clr R2
sts _timers,R2
rjmp L118
L115:
.dbline 156
.dbline 157
lds R2,_pa
com R2
out 0x1b,R2
.dbline 158
lds R16,_led_delayms
lds R17,_led_delayms+1
lsr R17
ror R16
rcall _delay_ms
.dbline 159
lds R2,_pa
lsl R2
lsl R2
lds R3,_pa
and R3,R2
sts _pa,R3
.dbline 160
L116:
.dbline 155
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
L118:
.dbline 155
lds R24,_timers
cpi R24,4
brlo L115
.dbline 162
clr R2
sts _timers,R2
L119:
.dbline 163
.dbline 164
ldi R24,<_led_data
ldi R25,>_led_data
lds R30,_timers
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
sts _pa,R2
.dbline 165
mov R24,R2
cpi R24,10
brne L123
.dbline 165
.dbline 165
rjmp L121
L123:
.dbline 166
lds R2,_pa
out 0x1b,R2
.dbline 167
lds R16,_led_delayms
lds R17,_led_delayms+1
lsr R17
ror R16
rcall _delay_ms
.dbline 168
L120:
.dbline 162
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
.dbline 162
rjmp L119
L121:
.dbline 170
ldi R24,85
sts _pa,R24
.dbline 171
clr R2
sts _timers,R2
rjmp L128
L125:
.dbline 172
.dbline 173
lds R2,_pa
out 0x1b,R2
.dbline 174
lds R16,_led_delayms
lds R17,_led_delayms+1
rcall _delay_ms
.dbline 175
lds R2,_pa
com R2
sts _pa,R2
.dbline 176
L126:
.dbline 171
lds R24,_timers
subi R24,255 ; addi 1
sts _timers,R24
L128:
.dbline 171
lds R24,_timers
cpi R24,16
brlo L125
.dbline 178
lds R24,_led_delayms
lds R25,_led_delayms+1
subi R24,200
sbci R25,0
sts _led_delayms+1,R25
sts _led_delayms,R24
.dbline 179
cpi R24,200
ldi R30,0
cpc R25,R30
brne L129
.dbline 180
.dbline 181
ldi R24,800
ldi R25,3
sts _led_delayms+1,R25
sts _led_delayms,R24
.dbline 182
L129:
.dbline 183
L65:
.dbline 56
rjmp L64
X7:
.dbline -2
.dbline 184
L63:
.dbline 0 ; func end
ret
.dbend
.area eeprom(rom, con, rel)
.dbfile E:\icc\iccavr\sl3010\sl3010_1\sl3010_1.c
_sound::
.byte 42,42
.byte 'J,42
.byte 42,'J
.byte 42,44
.byte 40,41
.byte 'J,'J
.byte 43,43
.byte 43,43
.byte 43,42
.byte 42,42
.byte 42,41
.byte 41,40
.byte 'I,'L
.byte 42,42
.byte 'J,42
.byte 42,'J
.byte 42,44
.byte 40,41
.byte 'J,'J
.byte 43,43
.byte 43,43
.byte 43,42
.byte 42,42
.byte 44,44
.byte 43,41
.byte 'H,'H
.byte 'J,42
.byte 41,40
.byte 41,40
.byte 39,'F
.byte 'F,'F
.byte 'F,'K
.byte 43,42
.byte 41,40
.byte 41,43
.byte 'J,'J
.byte 'J,'K
.byte 43,42
.byte 'I,41
.byte 43,'J
.byte 42,40
.byte 'F,'H
.byte 'G,'J
.byte 41,40
.byte 39,40
.byte 'F,'F
.byte 'F,'F
.byte 'J,42
.byte 41,40
.byte 41,40
.byte 39,'F
.byte 'F,'F
.byte 'F,'K
.byte 43,42
.byte 41,40
.byte 41,43
.byte 'J,'J
.byte 'J,'K
.byte 43,42
.byte 'I,41
.byte 43,'J
.byte 42,40
.byte 'F,'H
.byte 'G,'J
.byte 41,40
.byte 39,40
.byte 'F,'F
.byte 'F,'F
.byte 0
.dbsym e sound _sound A[137:137]c
.area data(ram, con, rel)
.dbfile E:\icc\iccavr\sl3010\sl3010_1\sl3010_1.c
.area lit(rom, con, rel)
_TONETABLE::
.word 64580
.word 64684
.word 64777
.word 64820
.word 64898
.word 64968
.word 65030
.word 65058
.word 65110
.word 65157
.word 65178
.word 65217
.word 65252
.word 65283
.word 65297
.dbsym e TONETABLE _TONETABLE A[30:15]ki
.area vector(rom, abs)
.org 12
rjmp _timer1_ovf_isr
.area lit(rom, con, rel)
.area text(rom, con, rel)
.dbfile E:\icc\iccavr\sl3010\sl3010_1\sl3010_1.c
.dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
_timer1_ovf_isr::
st -y,R2
st -y,R3
st -y,R24
in R2,0x3f
st -y,R2
.dbline -1
.dbline 228
.dbline 229
lds R2,_toneconst
lds R3,_toneconst+1
out 0x2d,R3
out 0x2c,R2
.dbline 230
ldi R24,1
in R2,0x15
eor R2,R24
out 0x15,R2
.dbline -2
.dbline 231
L131:
ld R2,y+
out 0x3f,R2
ld R24,y+
ld R3,y+
ld R2,y+
.dbline 0 ; func end
reti
.dbend
.dbfunc e music_car _music_car fV
; sound_add -> R20,R21
; temp1 -> R22
; temp -> R10
.even
_music_car::
rcall push_gset3
.dbline -1
.dbline 234
.dbline 236
clr R20
clr R21
.dbline 238
ldi R24,24
out 0x1b,R24
.dbline 240
ldi R24,48
sts _work_status,R24
.dbline 242
sei
.dbline 244
rcall _mic_startup
.dbline 246
clr R2
out 0x2f,R2
.dbline 247
ldi R24,2
out 0x2e,R24
.dbline 248
ldi R24,<_sound
ldi R25,>_sound
mov R16,R20
mov R17,R21
add R16,R24
adc R17,R25
rcall _EEPROMread
mov R22,R16
rjmp L134
L133:
.dbline 250
.dbline 251
mov R10,R22
.dbline 252
mov R24,R10
andi R24,15
mov R10,R24
.dbline 254
cpi R24,1
breq L140
cpi R24,2
breq L140
cpi R24,3
breq L140
cpi R24,4
brne L136
L140:
.dbline 254
.dbline 254
ldi R24,254
out 0x1b,R24
.dbline 254
L136:
.dbline 255
mov R24,R10
cpi R24,5
breq L143
cpi R24,6
brne L141
L143:
.dbline 255
.dbline 255
ldi R24,252
out 0x1b,R24
.dbline 255
L141:
.dbline 256
mov R24,R10
cpi R24,7
breq L146
cpi R24,8
brne L144
L146:
.dbline 256
.dbline 256
ldi R24,248
out 0x1b,R24
.dbline 256
L144:
.dbline 257
mov R24,R10
cpi R24,9
brne L147
.dbline 257
.dbline 257
ldi R24,240
out 0x1b,R24
.dbline 257
L147:
.dbline 258
mov R24,R10
cpi R24,10
brne L149
.dbline 258
.dbline 258
ldi R24,224
out 0x1b,R24
.dbline 258
L149:
.dbline 259
mov R24,R10
cpi R24,11
brne L151
.dbline 259
.dbline 259
ldi R24,192
out 0x1b,R24
.dbline 259
L151:
.dbline 260
mov R24,R10
cpi R24,12
brne L153
.dbline 260
.dbline 260
ldi R24,128
out 0x1b,R24
.dbline 260
L153:
.dbline 261
mov R24,R10
cpi R24,13
breq L158
cpi R24,14
breq L158
cpi R24,15
brne L155
L158:
.dbline 261
.dbline 261
clr R2
out 0x1b,R2
.dbline 261
L155:
.dbline 263
tst R10
breq L159
.dbline 264
.dbline 265
in R24,0x39
ori R24,128
out 0x39,R24
.dbline 266
dec R10
.dbline 267
ldi R24,<_TONETABLE
ldi R25,>_TONETABLE
mov R16,R10
clr R17
lsl R16
rol R17
add R16,R24
adc R17,R25
rcall lpm16
sts _toneconst+1,R17
sts _toneconst,R16
.dbline 268
out 0x2d,R17
out 0x2c,R16
.dbline 269
L159:
.dbline 270
mov R10,R22
.dbline 271
mov R24,R10
swap R24
andi R24,#0x0F
.dbline 272
andi R24,15
mov R10,R24
.dbline 273
mov R18,R24
clr R19
ldi R16,129
ldi R17,0
rcall mpy16s
rcall _delay_ms
.dbline 274
in R24,0x39
andi R24,127
out 0x39,R24
.dbline 275
subi R20,255 ; offset = 1
sbci R21,255
.dbline 276
ldi R24,<_sound
ldi R25,>_sound
mov R16,R20
mov R17,R21
add R16,R24
adc R17,R25
rcall _EEPROMread
mov R22,R16
.dbline 277
L134:
.dbline 249
tst R22
breq X8
rjmp L133
X8:
.dbline 278
ldi R16,1000
ldi R17,3
rcall _delay_ms
.dbline -2
.dbline 279
L132:
rcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r sound_add 20 i
.dbsym r temp1 22 c
.dbsym r temp 10 c
.dbend
.dbfunc e xuanya_car _xuanya_car fV
.even
_xuanya_car::
.dbline -1
.dbline 296
; //PORTD = 0x90;//左转//1001 0000快速左转//PORTA = 0x33;//0011,0011
; //PORTD = 0x80;//左转//1000 0000慢速左转//PORTA = 0xF3;//1111,0011
; //PORTD = 0x60;//右转//0110 0000快速右转//PORTA = 0xCC;//1100,1100
; //PORTD = 0x20;//右转//0010 0000慢速右转//PORTA = 0xCF;//1100,1111
; //PORTD = 0x50;//后退//0101 0000 //PORTA = 0x3C;//0011,1100
;
; //PC3声控启动
; // 用PD7~PD4来作为电机驱动端
;
; #define xuanya_delayms 300
;
; unsigned char pa,pb,pc,pd;
;
; void xuanya_car(void)
; {
.dbline 297
; PORTA = 0x1f;
ldi R24,31
out 0x1b,R24
.dbline 299
;
; work_status = 0x20;//置对应的工作状态标志
ldi R24,32
sts _work_status,R24
.dbline 301
;
; mic_startup(); //等待声控启动
rcall _mic_startup
rjmp L163
L162:
.dbline 304
;
; while(1)
; {//左(pc7) 中(pc6) 右(pc5)
.dbline 306
;
; sw_touch(); //检测轻触开关
rcall _sw_touch
.dbline 308
;
; pc = PINC & 0x10;
in R24,0x13
andi R24,16
sts _pc,R24
.dbline 309
; if(pc == 0x00)
tst R24
brne L165
.dbline 310
; {//后退//左转
.dbline 311
; backward();//后退
rcall _backward
.dbline 312
; delay_ms(xuanya_delayms);
ldi R16,300
ldi R17,1
rcall _delay_ms
.dbline 313
; turn_right();//左转
rcall _turn_right
.dbline 314
; delay_ms(xuanya_delayms/2);
ldi R16,150
ldi R17,0
rcall _delay_ms
.dbline 315
; }
L165:
.dbline 316
; pc = PINC & 0xE0;
in R24,0x13
andi R24,224
sts _pc,R24
.dbline 317
; if(pc == 0x40)
cpi R24,64
brne L167
.dbline 318
; {//后退//左转
.dbline 319
; backward();//后退
rcall _backward
.dbline 320
; delay_ms(xuanya_delayms);
ldi R16,300
ldi R17,1
rcall _delay_ms
.dbline 321
; turn_right();//左转
rcall _turn_right
.dbline 322
; delay_ms(xuanya_delayms/2);
ldi R16,150
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -