📄 sound.lis
字号:
.module sound.c
.area vector(rom, abs)
.org 18
0012 0EC0 rjmp _timer0
.org 12
000C 22C0 rjmp _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 D:\ICC-AVR\examples.sl\music_8535\sound.c
00E8 .dbsym s music_data _music_data A[232:58:2]i
.area data(ram, con, rel)
0000 .dbfile D:\ICC-AVR\examples.sl\music_8535\sound.c
0000 _delay::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile D:\ICC-AVR\examples.sl\music_8535\sound.c
0002 .dbsym s delay _delay i
.area text(rom, con, rel)
0000 .dbfile D:\ICC-AVR\examples.sl\music_8535\sound.c
0000 .dbfunc s music_init _music_init fI
.even
0000 _music_init::
0000 .dbline -1
0000 .dbline 42
; /**********************************************
; http://www.sl.com.cn
; 双龙电子公司----电脑音乐演示程序(ICCAVR)
; 作者:詹卫前
; 1、学习定时器T0溢出中断的使用
; 2、学习定时器T1比较中断的使用
; 3、学习电脑音乐的产生
; **********************************************/
; #include <io8535.h>
; #include <macros.h>
; #pragma interrupt_handler timer0:IT_TIMER0_OVF0
; #pragma interrupt_handler timer1:IT_TIMER1_COMPA
; const unsigned int music_data[][2]=
; /*******************************************
; 卡秋莎音乐数据{x,y}
; x:对应音符音阶(频率),0表示休止符
; y:对应音符节拍
; ********************************************/
; {
; {440,600} ,{494,200} ,{523,600} ,{440,200},
; {523,400} ,{494,200} ,{440,200} ,{494,400},
; {330,400} ,{494,600} ,{523,200} ,{578,600},
; {494,200} ,{578,400} ,{523,200} ,{494,200},
; {440,800} ,{659,400} ,{880,400} ,{784,400},
; {880,200} ,{784,200} ,{698,400} ,{659,200},
; {578,200} ,{659,400} ,{440,400} ,{ 0,200},//休止符
; {698,400} ,{578,200} ,{659,600} ,{523,200},
; {494,200} ,{330,200} ,{523,200} ,{494,200},
; {440,800} ,{659,400} ,{880,400} ,{784,400},
; {880,200} ,{784,200} ,{698,400} ,{659,200},
; {578,200} ,{659,400} ,{440,400} ,{ 0,200},//休止符
; {698,400} ,{578,200}, {659,600} ,{523,200},
; {494,200} ,{330,200}, {523,200} ,{494,200},
; {440,800} ,
; {0,0}};
; #pragma data:data
; unsigned int delay=0;
; /*******************************
; MCU初始化
; *******************************/
; void music_init(void)
; {
0000 .dbline 43
; MCUCR=0x00;
0000 2224 clr R2
0002 25BE out 0x35,R2
0004 .dbline 44
; DDRC=0x01;
0004 81E0 ldi R24,1
0006 84BB out 0x14,R24
0008 .dbline 45
; TCCR1A=0x00;
0008 2FBC out 0x2f,R2
000A .dbline 46
; TCCR1B=0x09;
000A 89E0 ldi R24,9
000C 8EBD out 0x2e,R24
000E .dbline 47
; TCCR0=0x03;
000E 83E0 ldi R24,3
0010 83BF out 0x33,R24
0012 .dbline 48
; TCNT0=0x19;
0012 89E1 ldi R24,25
0014 82BF out 0x32,R24
0016 .dbline 49
; TIMSK=(1<<OCIE1A)|(1<<TOIE0);
0016 81E1 ldi R24,17
0018 89BF out 0x39,R24
001A .dbline -2
001A .dbline 50
; }
001A L1:
001A .dbline 0 ; func end
001A 0895 ret
001C .dbfunc s timer0 _timer0 fI
.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
; /**************************************************
; T0中断程序,产生音乐节拍
; **************************************************/
; void timer0(void)
; {
0024 .dbline 56
; 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
; TCNT0=0x19;
0036 89E1 ldi R24,25
0038 82BF out 0x32,R24
003A .dbline -2
003A .dbline 58
; }
003A L2:
003A 8991 ld R24,y+
003C 8FBF out 0x3f,R24
003E 9991 ld R25,y+
0040 8991 ld R24,y+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -