📄 music.lis
字号:
.module music.c
.area vector(rom, abs)
.org 36
0024 0C940E00 jmp _timer0
.org 24
0018 0C942200 jmp _timer1
.area lit(rom, con, rel)
0000 _music_data::
0000 B801 .word 440
0002 5802 .word 600
0004 EE01 .word 494
0006 C800 .word 200
0008 0B02 .word 523
000A 5802 .word 600
000C B801 .word 440
000E C800 .word 200
0010 0B02 .word 523
0012 9001 .word 400
0014 EE01 .word 494
0016 C800 .word 200
0018 B801 .word 440
001A C800 .word 200
001C EE01 .word 494
001E 9001 .word 400
0020 4A01 .word 330
0022 9001 .word 400
0024 EE01 .word 494
0026 5802 .word 600
0028 0B02 .word 523
002A C800 .word 200
002C 4202 .word 578
002E 5802 .word 600
0030 EE01 .word 494
0032 C800 .word 200
0034 4202 .word 578
0036 9001 .word 400
0038 0B02 .word 523
003A C800 .word 200
003C EE01 .word 494
003E C800 .word 200
0040 B801 .word 440
0042 2003 .word 800
0044 9302 .word 659
0046 9001 .word 400
0048 7003 .word 880
004A 9001 .word 400
004C 1003 .word 784
004E 9001 .word 400
0050 7003 .word 880
0052 C800 .word 200
0054 1003 .word 784
0056 C800 .word 200
0058 BA02 .word 698
005A 9001 .word 400
005C 9302 .word 659
005E C800 .word 200
0060 4202 .word 578
0062 C800 .word 200
0064 9302 .word 659
0066 9001 .word 400
0068 B801 .word 440
006A 9001 .word 400
006C 0000 .word 0
006E C800 .word 200
0070 BA02 .word 698
0072 9001 .word 400
0074 4202 .word 578
0076 C800 .word 200
0078 9302 .word 659
007A 5802 .word 600
007C 0B02 .word 523
007E C800 .word 200
0080 EE01 .word 494
0082 C800 .word 200
0084 4A01 .word 330
0086 C800 .word 200
0088 0B02 .word 523
008A C800 .word 200
008C EE01 .word 494
008E C800 .word 200
0090 B801 .word 440
0092 2003 .word 800
0094 9302 .word 659
0096 9001 .word 400
0098 7003 .word 880
009A 9001 .word 400
009C 1003 .word 784
009E 9001 .word 400
00A0 7003 .word 880
00A2 C800 .word 200
00A4 1003 .word 784
00A6 C800 .word 200
00A8 BA02 .word 698
00AA 9001 .word 400
00AC 9302 .word 659
00AE C800 .word 200
00B0 4202 .word 578
00B2 C800 .word 200
00B4 9302 .word 659
00B6 9001 .word 400
00B8 B801 .word 440
00BA 9001 .word 400
00BC 0000 .word 0
00BE C800 .word 200
00C0 BA02 .word 698
00C2 9001 .word 400
00C4 4202 .word 578
00C6 C800 .word 200
00C8 9302 .word 659
00CA 5802 .word 600
00CC 0B02 .word 523
00CE C800 .word 200
00D0 EE01 .word 494
00D2 C800 .word 200
00D4 4A01 .word 330
00D6 C800 .word 200
00D8 0B02 .word 523
00DA C800 .word 200
00DC EE01 .word 494
00DE C800 .word 200
00E0 B801 .word 440
00E2 2003 .word 800
00E4 0000 .word 0
00E6 0000 .word 0
00E8 .dbfile F:\李鹏飞\sl-avrad-m16\music\music.c
00E8 .dbsym e music_data _music_data A[232:58:2]ki
.area data(ram, con, rel)
0000 .dbfile F:\李鹏飞\sl-avrad-m16\music\music.c
0000 _delay::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile F:\李鹏飞\sl-avrad-m16\music\music.c
0002 .dbsym e delay _delay i
.area text(rom, con, rel)
0000 .dbfile F:\李鹏飞\sl-avrad-m16\music\music.c
0000 .dbfunc e music_init _music_init fV
.even
0000 _music_init::
0000 .dbline -1
0000 .dbline 42
0000 ; /**********************************************
0000 ; http://www.sl.com.cn
0000 ; 双龙电子公司----电脑音乐演示程序(ICCAVR)
0000 ; 作者:詹卫前
0000 ; 1、学习定时器T0溢出中断的使用
0000 ; 2、学习定时器T1比较中断的使用
0000 ; 3、学习电脑音乐的产生
0000 ; **********************************************/
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #pragma interrupt_handler timer0:10
0000 ; #pragma interrupt_handler timer1:7
0000 ; const unsigned int music_data[][2]=
0000 ; /*******************************************
0000 ; 卡秋莎音乐数据{x,y}
0000 ; x:对应音符音阶(频率),0表示休止符
0000 ; y:对应音符节拍
0000 ; ********************************************/
0000 ; {
0000 ; {440,600} ,{494,200} ,{523,600} ,{440,200},
0000 ; {523,400} ,{494,200} ,{440,200} ,{494,400},
0000 ; {330,400} ,{494,600} ,{523,200} ,{578,600},
0000 ; {494,200} ,{578,400} ,{523,200} ,{494,200},
0000 ; {440,800} ,{659,400} ,{880,400} ,{784,400},
0000 ; {880,200} ,{784,200} ,{698,400} ,{659,200},
0000 ; {578,200} ,{659,400} ,{440,400} ,{ 0,200},//休止符
0000 ; {698,400} ,{578,200} ,{659,600} ,{523,200},
0000 ; {494,200} ,{330,200} ,{523,200} ,{494,200},
0000 ; {440,800} ,{659,400} ,{880,400} ,{784,400},
0000 ; {880,200} ,{784,200} ,{698,400} ,{659,200},
0000 ; {578,200} ,{659,400} ,{440,400} ,{ 0,200},//休止符
0000 ; {698,400} ,{578,200}, {659,600} ,{523,200},
0000 ; {494,200} ,{330,200}, {523,200} ,{494,200},
0000 ; {440,800} ,
0000 ; {0,0}};
0000 ; #pragma data:data
0000 ; unsigned int delay=0;
0000 ; /*******************************
0000 ; MCU初始化
0000 ; *******************************/
0000 ; void music_init(void)
0000 ; {
0000 .dbline 43
0000 ; MCUCR=0x00;
0000 2224 clr R2
0002 25BE out 0x35,R2
0004 .dbline 44
0004 ; DDRC=0x01;
0004 81E0 ldi R24,1
0006 84BB out 0x14,R24
0008 .dbline 45
0008 ; TCCR1A=0x00;
0008 2FBC out 0x2f,R2
000A .dbline 46
000A ; TCCR1B=0x09;
000A 89E0 ldi R24,9
000C 8EBD out 0x2e,R24
000E .dbline 47
000E ; TCCR0=0x03;
000E 83E0 ldi R24,3
0010 83BF out 0x33,R24
0012 .dbline 48
0012 ; TCNT0=0x19;
0012 89E1 ldi R24,25
0014 82BF out 0x32,R24
0016 .dbline 49
0016 ; TIMSK=(1<<OCIE1A)|(1<<TOIE0);
0016 81E1 ldi R24,17
0018 89BF out 0x39,R24
001A .dbline -2
001A .dbline 50
001A ; }
001A L1:
001A .dbline 0 ; func end
001A 0895 ret
001C .dbend
001C .dbfunc e timer0 _timer0 fV
.even
001C _timer0::
001C 8A93 st -y,R24
001E 9A93 st -y,R25
0020 8FB7 in R24,0x3f
0022 8A93 st -y,R24
0024 .dbline -1
0024 .dbline 55
0024 ; /**************************************************
0024 ; T0中断程序,产生音乐节拍
0024 ; **************************************************/
0024 ; void timer0(void)
0024 ; {
0024 .dbline 56
0024 ; delay++;
0024 80910000 lds R24,_delay
0028 90910100 lds R25,_delay+1
002C 0196 adiw R24,1
002E 90930100 sts _delay+1,R25
0032 80930000 sts _delay,R24
0036 .dbline 57
0036 ; TCNT0=0x19;
0036 89E1 ldi R24,25
0038 82BF out 0x32,R24
003A .dbline -2
003A .dbline 58
003A ; }
003A L2:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -