📄 music_car.lis
字号:
007E ; 0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,0x2d,0x4f,0x2d,
007E ; 0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x29,0x2a,0x4c,0x4c,0x4c,
007E ; 0x29,0x2a,0x29,0x26,0x4d,0x4d,0x4d,0x26,0x28,0x39,0x1a,0x29,
007E .dbline 139
007E ; 0x27,0x26,0x25,0x48,0x48,0x20,0x2f,0x2f,0x2d,0x4f,0x4f,0x20,
007E 80EA ldi R24,160
0080 82BB out 0x12,R24
0082 .dbline 140
0082 ; 0x2d,0x2f,0x2d,0x4c,0x4c,0x4c,0x2c,0x2a,0x6d,0x2c,0x48,0x19,
0082 83EC ldi R24,195
0084 8BBB out 0x1b,R24
0086 .dbline -2
0086 .dbline 141
0086 ; 0x18,0x28,0x4a,0x4a,0x20,0x2a,0x2a,0x29,0x4a,0x4a,0x20,0x2f,
0086 L15:
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbend
0088 .dbfunc e stop _stop fV
.even
0088 _stop::
0088 .dbline -1
0088 .dbline 144
0088 ; 0x2f,0x2e,0x4d,0x4d,0x4d,0x2a,0x2a,0x69,0x2a,0x2f,0x2e,0x2d,
0088 ; 0x2a,0x4c,0x4c,0x4c,
0088 ; 0x00,0x00
0088 .dbline 145
0088 ; };
0088 8FEF ldi R24,255
008A 82BB out 0x12,R24
008C .dbline 146
008C ;
008C 8BBB out 0x1b,R24
008E .dbline -2
008E .dbline 147
008E ; //TIMER0 initialisation - prescale:1024
008E L16:
008E .dbline 0 ; func end
008E 0895 ret
0090 .dbend
0090 .dbfunc e sw_touch _sw_touch fV
.even
0090 _sw_touch::
0090 .dbline -1
0090 .dbline 163
0090 ; // desired value: 25mSec
0090 ; // actual value: 24.960mSec (0.2%)
0090 ; void timer0_init(void)
0090 ; {
0090 ; TCCR0 = 0x00; //stop timer
0090 ; TCNT0 = 0x3D; //set count value
0090 ; TCCR0 = 0x05; //start timer
0090 ; }
0090 ;
0090 ; #pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVF
0090 ; void timer0_ovf_isr(void)
0090 ; {
0090 ; TCNT0 = 0x3D; //reload counter value
0090 ; t0_times++;
0090 ; if(gzsl == 0x88)
0090 ; {
0090 .dbline 164
0090 ; if(t0_times == 10)
0090 83B3 in R24,0x13
0092 8071 andi R24,16
0094 80931A00 sts _sw_in,R24
0098 .dbline 165
0098 ; {
0098 8823 tst R24
009A C9F4 brne L18
009C .dbline 166
009C ; timers++;
009C .dbline 167
009C ; t0_times = 0;
009C EBDF rcall _backward
009E .dbline 168
009E ; pa = led_data[timers];
009E 0AEF ldi R16,250
00A0 10E0 ldi R17,0
00A2 C6DF rcall _delay_ms
00A4 .dbline 170
00A4 ; if(pa==0x0a){timers=0;}
00A4 ; PORTA = pa;
00A4 80911B00 lds R24,_work_status
00A8 8037 cpi R24,112
00AA 69F4 brne L20
00AC .dbline 171
00AC ; }
00AC .dbline 172
00AC ; }
00AC EDDF rcall _stop
00AE 0AC0 rjmp L23
00B0 L22:
00B0 .dbline 174
00B0 .dbline 175
00B0 85E5 ldi R24,85
00B2 8BBB out 0x1b,R24
00B4 .dbline 176
00B4 0AEF ldi R16,250
00B6 10E0 ldi R17,0
00B8 BBDF rcall _delay_ms
00BA .dbline 177
00BA 8AEA ldi R24,170
00BC 8BBB out 0x1b,R24
00BE .dbline 178
00BE 0AEF ldi R16,250
00C0 10E0 ldi R17,0
00C2 B6DF rcall _delay_ms
00C4 .dbline 179
00C4 L23:
00C4 .dbline 173
00C4 ; if(gzsl == 0x55)
00C4 F5CF rjmp L22
00C6 X1:
00C6 .dbline 180
00C6 ; {
00C6 ; if(t0_times == 4) //4*25ms=100ms 扫描一次
00C6 ; {
00C6 ; t0_times = 0;
00C6 ; remote_in = PINB & 0x0F;
00C6 ; switch (remote_in)
00C6 ; {//检测遥控器是否有键按下
00C6 L20:
00C6 .dbline 182
00C6 ; case 0x04: // < A >
00C6 ; rst_time=0;
00C6 C7DF rcall _turn_left
00C8 .dbline 183
00C8 ; sound_add=0;
00C8 0AEF ldi R16,250
00CA 10E0 ldi R17,0
00CC B1DF rcall _delay_ms
00CE .dbline 184
00CE ; sound_1 = 0x11;
00CE L18:
00CE .dbline 186
00CE ; break;
00CE ; case 0x02: // < B >
00CE 86B3 in R24,0x16
00D0 8077 andi R24,112
00D2 80931A00 sts _sw_in,R24
00D6 .dbline 187
00D6 ; rst_time=0;
00D6 8035 cpi R24,80
00D8 41F4 brne L25
00DA .dbline 188
00DA ; sound_add=0;
00DA .dbline 189
00DA ; sound_1 = 0x22;
00DA D1DF rcall _forward
00DC .dbline 190
00DC ; break;
00DC 0AEF ldi R16,250
00DE 10E0 ldi R17,0
00E0 A7DF rcall _delay_ms
00E2 .dbline 192
00E2 ; case 0x08: // < C >
00E2 ; rst_time++;
00E2 B9DF rcall _turn_left
00E4 .dbline 193
00E4 ; sound_add=0;
00E4 0AEF ldi R16,250
00E6 10E0 ldi R17,0
00E8 A3DF rcall _delay_ms
00EA .dbline 194
00EA ; sound_1 = 0x33;
00EA L25:
00EA .dbline 195
00EA ; break;
00EA 80911A00 lds R24,_sw_in
00EE 8033 cpi R24,48
00F0 41F4 brne L27
00F2 .dbline 196
00F2 ; case 0x01: // < D >
00F2 .dbline 197
00F2 ; rst_time=0;
00F2 C0DF rcall _backward
00F4 .dbline 198
00F4 ; sound_add=0;
00F4 0AEF ldi R16,250
00F6 10E0 ldi R17,0
00F8 9BDF rcall _delay_ms
00FA .dbline 200
00FA ; sound_1 = 0x44;
00FA ; break;
00FA ADDF rcall _turn_left
00FC .dbline 201
00FC ; }
00FC 0AEF ldi R16,250
00FE 10E0 ldi R17,0
0100 97DF rcall _delay_ms
0102 .dbline 202
0102 ; if(sound_1 == 0x11)
0102 L27:
0102 .dbline 203
0102 ; {
0102 80911A00 lds R24,_sw_in
0106 8036 cpi R24,96
0108 41F4 brne L29
010A .dbline 204
010A ; temp1 = music_11[sound_add];
010A .dbline 205
010A ; }
010A B4DF rcall _backward
010C .dbline 206
010C ; if(sound_1 == 0x22)
010C 0AEF ldi R16,250
010E 10E0 ldi R17,0
0110 8FDF rcall _delay_ms
0112 .dbline 208
0112 ; {
0112 ; temp1 = music_22[sound_add];
0112 A1DF rcall _turn_left
0114 .dbline 209
0114 ; }
0114 0AEF ldi R16,250
0116 10E0 ldi R17,0
0118 8BDF rcall _delay_ms
011A .dbline 210
011A ; if(sound_1 == 0x33)
011A L29:
011A .dbline 211
011A ; {
011A 80911A00 lds R24,_sw_in
011E 8032 cpi R24,32
0120 F1F4 brne L31
0122 .dbline 212
0122 ; temp1 = music_33[sound_add];
0122 .dbline 213
0122 ; }
0122 B2DF rcall _stop
0124 .dbline 214
0124 ; if(sound_1 == 0x44)
0124 08EE ldi R16,1000
0126 13E0 ldi R17,3
0128 83DF rcall _delay_ms
012A 18C0 rjmp L34
012C L33:
012C .dbline 216
012C ; {
012C ; temp1 = music_44[sound_add];
012C .dbline 217
012C ; }
012C 83B3 in R24,0x13
012E 8071 andi R24,16
0130 80931A00 sts _sw_in,R24
0134 .dbline 218
0134 ; if(sound_1 == 0x88)
0134 8823 tst R24
0136 09F4 brne L36
0138 .dbline 219
0138 ; {
0138 .dbline 219
0138 12C0 rjmp L35
013A L36:
013A .dbline 220
013A ; temp1=EEPROMread((int)&sound[sound_add]);
013A 85E5 ldi R24,85
013C 8BBB out 0x1b,R24
013E .dbline 221
013E ; }
013E 0AEF ldi R16,250
0140 10E0 ldi R17,0
0142 76DF rcall _delay_ms
0144 .dbline 222
0144 ; }
0144 8AEA ldi R24,170
0146 8BBB out 0x1b,R24
0148 .dbline 223
0148 ; }
0148 0AEF ldi R16,250
014A 10E0 ldi R17,0
014C 71DF rcall _delay_ms
014E .dbline 224
014E ; }
014E 86B3 in R24,0x16
0150 8F70 andi R24,15
0152 80931900 sts _remote_in,R24
0156 .dbline 225
0156 ;
0156 8823 tst R24
0158 09F0 breq L38
015A .dbline 226
015A ; void stop_timer0()
015A .dbline 226
015A 01C0 rjmp L35
015C L38:
015C .dbline 227
015C L34:
015C .dbline 215
015C E7CF rjmp L33
015E L35:
015E .dbline 228
015E L31:
015E .dbline -2
015E .dbline 229
015E ; {
015E ; CLI();
015E ; TCCR0 = 0x00;//停止timer0
015E L17:
015E .dbline 0 ; func end
015E 0895 ret
0160 .dbend
0160 .dbfunc e mic_startup _mic_startup fV
.even
0160 _mic_startup::
0160 .dbline -1
0160 .dbline 232
0160 ; MCUCR = 0x00;
0160 ; GIMSK = 0x00;
0160 ; TIMSK = 0x00;
0160 07C0 rjmp L42
0162 L41:
0162 .dbline 235
0162 ; SEI();
0162 ; }
0162 ;
0162 .dbline 236
0162 ; #pragma interrupt_handler timer1_ovf_isr:iv_TIMER1_OVF
0162 83B3 in R24,0x13
0164 8870 andi R24,8
0166 80931800 sts _mic_in,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -