📄 music.lis
字号:
.module music.c
.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 BB01 .word 443
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 E:\ICCAVR-M16学习板\基础实验\模拟音乐\卡秋莎\music.c
00E8 .dbsym e music_data _music_data A[232:58:2]ki
.area data(ram, con, rel)
0000 .dbfile E:\ICCAVR-M16学习板\基础实验\模拟音乐\卡秋莎\music.c
.area text(rom, con, rel)
0000 .dbfile E:\ICCAVR-M16学习板\基础实验\模拟音乐\卡秋莎\music.c
0000 .dbfunc e delay_ms _delay_ms fV
0000 ; a -> R20
0000 ; i -> R16,R17
.even
0000 _delay_ms::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 46
0004 ; /*****************************************
0004 ; * 用M16单片机I/O口生成模拟音乐 *
0004 ; * 功 能:用I/O口生成模拟音乐 *
0004 ; * 时钟频率:内部1M *
0004 ; * 设 计:tonghe *
0004 ; * 修改日期:2007年04月13日 *
0004 ; * 编译环境:ICC-AVR6.31 *
0004 ; * 实验环境:本站M16学习板 *
0004 ; * 发 声:无源蜂鸣器 *
0004 ; * 结 果:试验通过 *
0004 ; * 要 求:插上JP1、JP2、LED_EN短路块 *
0004 ; *****************************************/
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ;
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ;
0004 ; /****************************************
0004 ; * 定义音乐数据二维数组{x,y} *
0004 ; * x:对应音符音阶(频率),0表示休止符 *
0004 ; * y:对应音符节拍,0表示音乐结束 *
0004 ; * 此数据取自《ICC AVR应用实例》 *
0004 ; ****************************************/
0004 ; //以下音乐数据为《卡秋莎》,位于程序区
0004 ; flash uint music_data[][2]=
0004 ; {
0004 ; {440,600},{494,200},{523,600},{443,200},{523,400},{494,200},
0004 ; {440,200},{494,400},{330,400},{494,600},{523,200},{578,600},
0004 ; {494,200},{578,400},{523,200},{494,200},{440,800},{659,400},
0004 ; {880,400},{784,400},{880,200},{784,200},{698,400},{659,200},
0004 ; {578,200},{659,400},{440,400},{ 0,200},{698,400},{578,200},
0004 ; {659,600},{523,200},{494,200},{330,200},{523,200},{494,200},
0004 ; {440,800},{659,400},{880,400},{784,400},{880,200},{784,200},
0004 ; {698,400},{659,200},{578,200},{659,400},{440,400},{ 0,200},
0004 ; {698,400},{578,200},{659,600},{523,200},{494,200},{330,200},
0004 ; {523,200},{494,200},{440,800},{ 0, 0}
0004 ; };
0004 ;
0004 ; #pragma data:data //设置回到数据存储器区
0004 ;
0004 ; /************************************
0004 ; * 延时函数:1M时钟时为MS *
0004 ; ************************************/
0004 ; void delay_ms(uint i)
0004 ; {
0004 .dbline 48
0004 ; uchar a;
0004 ; for(;i;i--)
0004 07C0 xjmp L5
0006 L2:
0006 .dbline 49
0006 ; {
0006 .dbline 50
0006 ; for (a = 220; a; a--)
0006 4CED ldi R20,220
0008 01C0 xjmp L9
000A L6:
000A .dbline 51
000A .dbline 52
000A .dbline 53
000A L7:
000A .dbline 50
000A 4A95 dec R20
000C L9:
000C .dbline 50
000C 4423 tst R20
000E E9F7 brne L6
0010 .dbline 54
0010 L3:
0010 .dbline 48
0010 0150 subi R16,1
0012 1040 sbci R17,0
0014 L5:
0014 .dbline 48
0014 0030 cpi R16,0
0016 0107 cpc R16,R17
0018 B1F7 brne L2
001A X0:
001A .dbline -2
001A L1:
001A 0E940000 xcall pop_gset1
001E .dbline 0 ; func end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -