📄 music_car.lis
字号:
.module music_car.c
.area text(rom, con, rel)
0000 .dbfile e:/ICC/include/sl3010.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 83
0000 ; /*******************************************/
0000 ; /* 广州天河双龙电子公司 */
0000 ; /* http://www.sl.com.cn */
0000 ; /* 电子音乐演示程序 */
0000 ; /*******************************************/
0000 ; // 在 icc avr 所在目录的 <include>文件夹中有 "sl3010.c" 文件
0000 ; //使用说明:音乐输出端口:PORTC.0,音乐数据存放
0000 ; //于AT90S8515 的EEPROM存贮器中。
0000 ; // 可以用并口下载软件写入新的音乐文件
0000 ;
0000 ; //PA口为音乐灯,当不同的音乐节奏,点亮不同的灯。
0000 ; //声控起动音乐机器人程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
0000 ; //声控起动后,机器人开始演奏音乐,同时PA口LED灯根据音乐节拍闪烁
0000 ; //按遥控器上不同的键后可改变机器人演奏的乐曲。
0000 ; //连续 按住 < C > 键时间超过 10s,音乐声停止,等待声控重新起动演奏
0000 ;
0000 ; #include <io8515v.h>
0000 ; #include <macros.h>
0000 ; #include <eeprom.h>
0000 ; #include <sl3010.c>
0000 ;
0000 ; /* 音乐数据 */
0000 ; /* 四分之一拍为0x10, 二分之一拍为0x20, 一拍为0x40 */
0000 ; /* 低1-1 2-2 3-3 4-4 5-5 6-6 7-7 */
0000 ; /* 中1-8 2-9 3-A 4-B 5-C 6-D 7-E */
0000 ; /* 高1-F */
0000 ; #pragma data:eeprom
0000 ; unsigned char sound[]={ //乐曲数据表
0000 ; //情非得以
0000 ; 0x20,0x1c,0x1d,0x4c,0x4c,0x4c,0x4c,0x20,0x2d,0x19,0x1a,0x19,0x18,0x48,0x48,0x48,
0000 ; 0x48,0x47,0x47,0x46,0x46,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
0000 ;
0000 ; 0x23,0x24,0x25,0x44,0x45,0x24,0x23,0x22,0x42,0x40,0x40,0x23,0x22,0x21,0x41,0x28,
0000 ; 0x48,0x23,0x25,0x45,0x40,0x40,0x21,0x21,0x42,0x21,0x21,0x41,0x20,0x28,0x47,0x26,
0000 ; 0x17,0x16,0x15,0x45,0x40,0x31,0x11,0x21,0x21,0x21,0x22,0x42,0x40,0x20,0x23,0x23,
0000 ; 0x24,0x25,0x24,0x23,0x24,0x25,0x26,0x23,0x23,0x42,0x42,0x40,0x23,0x22,0x21,0x41,
0000 ; 0x28,0x28,0x28,0x23,0x25,0x45,0x45,0x40,0x20,0x25,0x46,0x28,0x28,0x48,0x20,0x29,
0000 ; 0x47,0x26,0x17,0x16,0x15,0x45,0x25,0x25,0x26,0x28,0x18,0x16,0x26,0x28,0x26,0x28,
0000 ; 0x19,0x19,0x49,0x49,0x20,0x25,0x2a,0x18,0x19,0x29,0x28,0x16,0x17,0x16,0x15,0x25,
0000 ; 0x25,0x28,0x29,0x2a,0x29,0x48,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,0x2c,0x1c,0x1a,
0000 ; 0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,0x28,0x26,0x48,
0000 ; 0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x21,0x18,0x16,0x26,0x28,0x26,0x28,0x29,
0000 ; 0x49,0x49,0x20,0x25,0x28,0x29,0x2a,0x29,0x49,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,
0000 ; 0x2c,0x15,0x1a,0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,
0000 ; 0x28,0x26,0x28,0x28,0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x28,0x28,0x26,0x2a,
0000 ; 0x19,0x18,0x28,0x18,0x19,0x48,0x48,0x40,0x40,0x40,0x40,0x28,0x48,0x29,0x28,0x28,
0000 ; 0x2a,0x1a,0x1a,0x1a,0x18,0x40,0x20,0x26,0x28,0x28,0x28,0x26,0x28,0x48,0x26,0x25,
0000 ; 0x45,0x45,0x40,0x40,0x40,0x28,0x48,0x28,0x28,0x1c,0x1d,0x2d,0x2c,0x28,0x28,0x28,
0000 ; 0x20,0x26,0x19,0x1a,0x29,0x19,0x18,0x28,0x28,0x26,0x21,0x29,0x49,0x49,0x40,0x20,
0000 ; 0x28,0x29,0x2a,0x4a,0x4a,0x20,0x25,0x28,0x29,0x48,0x48,0x48,0x25,0x25,0x26,0x28,
0000 ; 0x28,0x26,0x2a,0x19,0x18,0x28,0x18,0x19,0x49,0x49,0x40,0x40,
0000 ;
0000 ; 0x00,0x00
0000 ; };
0000 ; #pragma data:data
0000 ; /* 音阶表 */
0000 ; const unsigned int TONETABLE[15]={DO,RE,MI,FA,SO,LA,TI,DO_H,
0000 ; RE_H,MI_H,FA_H,SO_H,LA_H,TI_H,DO_HH};
0000 ; /* 音阶重装常数 */
0000 ; unsigned int toneconst;
0000 ; unsigned int sound_add=0;
0000 ; unsigned int rst_time,delay_time1,delay_time2,led_delayms=600;
0000 ; unsigned char temp,temp1;
0000 ; unsigned char pa,pb,pc,pd,remote_in,timers,cny_in,cny_times,cds,pd_select,remote_select;
0000 ; unsigned char gzsl,t0_times;
0000 ; unsigned char sound_1,sound_2;
0000 ;
0000 ; const unsigned char led_data[]=
0000 ; {//设置LED广告灯数据表
0000 ; 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
0000 ; 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
0000 ; 0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
0000 ; 0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
0000 ; 0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
0000 ; 0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
0000 ; 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
0000 ; 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
0000 ; 0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
0000 ; 0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
0000 ; 0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,
0000 ;
0000 ; 0x0a,0x0a
0000 ; };
0000 .dbline 84
0000 ;
0000 8FEF ldi R24,255
0002 8ABB out 0x1a,R24
0004 .dbline 84
0004 8BBB out 0x1b,R24
0006 .dbline 85
0006 ; const unsigned char music_11[]=
0006 80E8 ldi R24,128
0008 87BB out 0x17,R24
000A .dbline 85
000A 8FEF ldi R24,255
000C 88BB out 0x18,R24
000E .dbline 86
000E ; {//七子之歌
000E 81E0 ldi R24,1
0010 84BB out 0x14,R24
0012 .dbline 86
0012 8FEF ldi R24,255
0014 85BB out 0x15,R24
0016 .dbline 87
0016 ; 0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,0x45,0x41,
0016 80EF ldi R24,240
0018 81BB out 0x11,R24
001A .dbline 87
001A 8FEF ldi R24,255
001C 82BB out 0x12,R24
001E .dbline -2
001E .dbline 88
001E ; 0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,0x25,0x25,
001E L1:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e delay_us _delay_us fV
0020 ; time -> R16,R17
.even
0020 _delay_us::
0020 .dbline -1
0020 .dbline 91
0020 ; 0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,0x45,0x41,
0020 ; 0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,0x41,0x41,
0020 ; 0x41,0x41,0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,
0020 L3:
0020 .dbline 93
0020 ; 0x45,0x41,0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,
0020 ; 0x25,0x25,0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,
0020 .dbline 94
0020 ; 0x45,0x41,0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,
0020 0150 subi R16,1
0022 1040 sbci R17,0
0024 .dbline 95
0024 ; 0x41,0x41,0x41,0x20,0x25,0x4a,0x29,0x28,0x26,0x25,0x45,0x26,
0024 L4:
0024 .dbline 96
0024 ; 0x46,0x25,0x36,0x18,0x2a,0x28,0x49,0x49,0x49,0x20,0x25,0x4a,
0024 81E0 ldi R24,1
0026 90E0 ldi R25,0
0028 8017 cp R24,R16
002A 9107 cpc R25,R17
002C CCF3 brlt L3
002E .dbline -2
002E .dbline 97
002E ; 0x39,0x18,0x26,0x25,0x45,0x26,0x46,0x25,0x46,0x2a,0x29,0x49,
002E L2:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbsym r time 16 I
0030 .dbend
0030 .dbfunc e delay_ms _delay_ms fV
0030 ; time -> R20,R21
.even
0030 _delay_ms::
0030 00D0 rcall push_gset1
0032 402F mov R20,R16
0034 512F mov R21,R17
0036 .dbline -1
0036 .dbline 100
0036 ; 0x49,0x49,0x49,0x4a,0x39,0x18,0x26,0x25,0x45,0x48,0x26,0x25,
0036 ; 0x23,0x22,0x41,0x40,0x22,0x23,0x45,0x45,0x45,0x45,0x40,0x25,
0036 ; 0x26,0x48,0x48,0x48,
0036 05C0 rjmp L8
0038 L7:
0038 .dbline 102
0038 .dbline 103
0038 08EE ldi R16,1000
003A 13E0 ldi R17,3
003C F1DF rcall _delay_us
003E .dbline 104
003E 4150 subi R20,1
0040 5040 sbci R21,0
0042 .dbline 105
0042 L8:
0042 .dbline 101
0042 ; 0x00,0x00
0042 4030 cpi R20,0
0044 4507 cpc R20,R21
0046 C1F7 brne L7
0048 X0:
0048 .dbline -2
0048 .dbline 106
0048 ; };
0048 ; const unsigned char music_22[]=
0048 ; {//走进新时代
0048 ; 0x68,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x23,0x25,
0048 ; 0x28,0x48,0x28,0x29,0x2a,0x29,0x26,0x45,0x45,0x45,0x45,0x68,
0048 L6:
0048 00D0 rcall pop_gset1
004A .dbline 0 ; func end
004A 0895 ret
004C .dbsym r time 20 i
004C .dbend
004C .dbfunc e turn_right _turn_right fV
.even
004C _turn_right::
004C .dbline -1
004C .dbline 109
004C ; 0x29,0x29,0x28,0x26,0x25,0x46,0x46,0x46,0x25,0x26,
004C ; 0x29,0x43,0x25,0x22,0x23,0x22,0x21,0x42,0x42,0x42,0x42,0x63,
004C ; 0x25,0x26,0x25,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x23,0x25,
004C .dbline 110
004C ; 0x28,0x28,0x28,0x28,0x29,0x2a,0x2a,0x29,0x46,0x46,0x46,0x46,
004C 80E6 ldi R24,96
004E 82BB out 0x12,R24
0050 .dbline 111
0050 ; 0x46,0x29,0x2a,0x28,0x28,0x26,0x25,0x26,0x26,0x25,0x43,0x43,
0050 8CEC ldi R24,204
0052 8BBB out 0x1b,R24
0054 .dbline -2
0054 .dbline 112
0054 ; 0x22,0x42,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x41,
0054 L10:
0054 .dbline 0 ; func end
0054 0895 ret
0056 .dbend
0056 .dbfunc e turn_left _turn_left fV
.even
0056 _turn_left::
0056 .dbline -1
0056 .dbline 115
0056 ; 0x00,0x00
0056 ; };
0056 ; const unsigned char music_33[]=
0056 .dbline 116
0056 ; {
0056 80E9 ldi R24,144
0058 82BB out 0x12,R24
005A .dbline 117
005A ; //星语心愿
005A 83E3 ldi R24,51
005C 8BBB out 0x1b,R24
005E .dbline -2
005E .dbline 118
005E ; 0x36,0x18,0x27,0x26,0x25,0x26,0x43,0x43,0x43,0x26,0x25,0x36,0x18,0x27,0x18,0x17,
005E L11:
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbend
0060 .dbfunc e turn_right_s _turn_right_s fV
.even
0060 _turn_right_s::
0060 .dbline -1
0060 .dbline 120
0060 ; 0x26,0x27,0x48,0x48,0x48,0x28,0x29,0x2a,0x2a,0x2a,0x2a,0x49,0x49,0x28,0x27,0x26,
0060 ; 0x27,0x45,0x45,0x46,0x48,0x47,0x26,0x25,0x46,0x46,0x46,0x40,0x40,0x40,0x40,0x40,
0060 .dbline 121
0060 ; 0x36,0x18,0x27,0x26,0x25,0x26,0x26,0x26,0x46,0x46,0x26,0x25,0x36,0x18,0x27,0x18,
0060 80E2 ldi R24,32
0062 82BB out 0x12,R24
0064 .dbline 122
0064 ; 0x17,0x26,0x27,0x48,0x48,0x48,0x28,0x29,0x2a,0x2a,0x2a,0x2a,0x49,0x49,0x28,0x27,
0064 8FEC ldi R24,207
0066 8BBB out 0x1b,R24
0068 .dbline -2
0068 .dbline 123
0068 ; 0x26,0x27,0x45,0x45,0x46,0x26,0x28,0x47,0x45,0x40,0x26,0x28,0x47,0x45,0x46,0x46,
0068 L12:
0068 .dbline 0 ; func end
0068 0895 ret
006A .dbend
006A .dbfunc e turn_left_s _turn_left_s fV
.even
006A _turn_left_s::
006A .dbline -1
006A .dbline 126
006A ; 0x46,0x46,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,0x28,0x48,0x48,0x48,
006A ; 0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,
006A ; 0x28,0x48,0x48,0x28,0x27,0x36,0x16,0x45,0x27,0x26,0x46,0x46,0x46,0x46,0x46,0x46,
006A .dbline 127
006A ; 0x00,0x00
006A 80E8 ldi R24,128
006C 82BB out 0x12,R24
006E .dbline 128
006E ; };
006E 83EF ldi R24,243
0070 8BBB out 0x1b,R24
0072 .dbline -2
0072 .dbline 129
0072 ; const unsigned char music_44[]=
0072 L13:
0072 .dbline 0 ; func end
0072 0895 ret
0074 .dbend
0074 .dbfunc e backward _backward fV
.even
0074 _backward::
0074 .dbline -1
0074 .dbline 132
0074 ; {
0074 ; //上海滩
0074 ; 0x2a,0x2c,0x4d,0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,
0074 .dbline 133
0074 ; 0x2d,0x4f,0x2d,0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x29,0x2a,
0074 80E5 ldi R24,80
0076 82BB out 0x12,R24
0078 .dbline 134
0078 ; 0x4c,0x4c,0x4c,0x29,0x2a,0x29,0x26,0x4d,0x4d,0x4d,0x26,0x28,
0078 8CE3 ldi R24,60
007A 8BBB out 0x1b,R24
007C .dbline -2
007C .dbline 135
007C ; 0x39,0x1a,0x29,0x27,0x26,0x28,0x45,0x45,0x45,0x2a,0x2c,0x4d,
007C L14:
007C .dbline 0 ; func end
007C 0895 ret
007E .dbend
007E .dbfunc e forward _forward fV
.even
007E _forward::
007E .dbline -1
007E .dbline 138
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -