📄 music.lst
字号:
C51 COMPILER V7.20 MUSIC 02/26/2006 14:24:25 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE MUSIC
OBJECT MODULE PLACED IN Music.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Music.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*-----------------------------------------------
2 Virtual51 Music Demo
3 Oscilator:12Mhz
4 ------------------------------------------------*/
5
6 #include <Virtual51.h>
7 #define uint unsigned int
8 #define uchar unsigned char
9
10 #define MHD 0x55AA
11 #define MREP 0xAA00
12 #define MEND 0x0000
13
14 uchar code pic[]=
15 {
16 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
17 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x78,0x88,0x00,0x88,0x78,0x08,
18 0x00,0x00,0x40,0x40,0xC8,0x00,0x00,0x00,0x00,0x40,0x40,0xC0,0x80,0x40,0x40,0x80,
19 0x00,0x00,0x40,0xF0,0x40,0x40,0x00,0x00,0x00,0x40,0xC0,0x00,0x00,0x40,0xC0,0x00,
20 0x00,0x00,0x40,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x08,0xF8,0x00,0x00,0x00,
21 0x00,0x00,0xF8,0x88,0x88,0x88,0x08,0x00,0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,
22 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
23 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
24 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
25 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x00,0x00,
26 0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,0x00,
27 0x00,0x00,0x00,0x07,0x08,0x08,0x04,0x00,0x00,0x00,0x07,0x08,0x08,0x04,0x0F,0x08,
28 0x00,0x06,0x09,0x09,0x09,0x09,0x07,0x08,0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,
29 0x00,0x00,0x04,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,
30 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
31 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x0C,0x30,0x0C,0xFF,0x01,
34 0x00,0x08,0xF8,0x00,0x00,0x88,0xF8,0x00,0x00,0x90,0x28,0x28,0x28,0x48,0x48,0x90,
35 0x00,0x00,0x08,0x08,0xF9,0x00,0x00,0x00,0x00,0xF0,0x08,0x08,0x08,0x08,0x08,0x90,
36 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x01,0x01,0x01,0x82,0x7C,
37 0x00,0xF0,0x28,0x28,0x28,0x28,0x28,0xB0,0x00,0x08,0xF8,0x08,0xF0,0x08,0xF0,0x00,
38 0x00,0xF0,0x08,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
39 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
40 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
41 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x81,0x81,0x80,0x81,0x81,0x81,
42 0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,
43 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,
44 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,
45 0x00,0x00,0x01,0x01,0x01,0xE1,0x01,0x00,0x00,0x01,0x81,0x00,0x01,0x00,0x21,0x41,
46 0x00,0x00,0xE1,0x01,0x01,0xC1,0x41,0xC0,0x00,0x00,0x00,0xC0,0x40,0x60,0xC0,0x00,
47 0xC0,0x40,0x40,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
48 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x81,0xFF,0x80,0x80,0x00,
49 0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0xFF,0x80,0x00,0x01,
50 0x00,0x78,0x84,0x84,0x84,0x84,0x84,0x78,0x00,0x84,0xFC,0x88,0x04,0x84,0xF8,0x80,
51 0x00,0x78,0x94,0x94,0x94,0x94,0x94,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
52 0x00,0x00,0xC1,0xA0,0x90,0x88,0x87,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
53 0x01,0x81,0x41,0x21,0x19,0x27,0xC9,0x11,0x21,0x41,0x81,0x81,0x00,0x21,0xF2,0x08,
54 0x01,0xF9,0x4F,0x79,0x81,0x7F,0x0A,0xFF,0x00,0x00,0x84,0x7F,0x15,0x24,0xFF,0x04,
55 0xF3,0x90,0x90,0x93,0xF4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
C51 COMPILER V7.20 MUSIC 02/26/2006 14:24:25 PAGE 2
56 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
57 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x80,0x80,0x80,
58 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,
59 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
60 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
61 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,
62 0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x01,0x00,
63 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
64 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x01,0x11,0x11,0xEE,0x00,
65 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0xFF,0xAA,0xAA,0xBE,0xAB,0xAA,
66 0xEA,0x3E,0x20,0x20,0x00,0x20,0xF0,0x09,0x80,0x62,0x1E,0x00,0xFF,0x14,0x22,0x41,
67 0x80,0x00,0x41,0x21,0xF1,0x0D,0x03,0x41,0x41,0xFB,0x21,0x11,0x09,0x81,0x00,0x00,
68 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
69 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
70 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
71 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
72 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,
73 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x02,
74 0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,
75 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x02,0x03,0x00,0x00,
76 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
77 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
78 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
80 };
81
82 struct
83 {uint Tone;
84 uchar Duration; //Delay Time=Duration*10ms
85 } code music[]={
86 {MHD,0}, //Tone
87 {500,4},{1000,4},{1500,4},{2000,4},{2500,4},{3000,4},{3500,4},{4000,4},{4500,4},{5000,4},{5500,4},{6000,4}
-,{6500,4},
88 {6000,4},{5500,4},{5000,4},{4500,4},{4000,4},{3500,4},{3000,4},{2500,4},{2000,4},{1500,4},{1000,4},
89 {MREP+24,2},{MEND,50},
90 {MHD,1}, //"太湖船"
91 {1323,50},{1572,50},{1323,50},{1176,26},{1323,26},{1572,50},{1323,26},{1176,26},{1323,100},
92 {1323,50},{1572,50},{1323,26},{1176,26},{1048,50},{1176,50},{1323,26},{1572,26},{1176,100},
93 {1048,50},{1048,26},{882,26},{785,50},{785,26},{882,26},{1048,50},{1176,26},{1323,26},
94 {1048,100},{MEND,100},
95 {MHD,2}, //"鲁冰花"
96 {2269,140},{1864,46}, {1661,186},{2269,93},{2269,24}, {2506,24}, {2269,24}, {1864,24},
97 {1661,186},{1864,93}, {2269,46}, {1864,46},{1661,70}, {1397,24}, {1661,70}, {1397,24},
98 {1244,70}, {1397,24}, {1244,93}, {1046,24},{932,24}, {830,24}, {1046,24}, {932,93},
99 {1864,93}, {1397,46}, {1864,46}, {1480,24},{1397,24}, {1244,24}, {1480,24}, {1397,93},
100 {1109,70}, {1244,24}, {1397,46}, {1661,46},{1864,70}, {1480,24}, {1397,93}, {1864,93},
101 {2269,46}, {1864,46}, {1661,70}, {1397,24},{1661,70}, {1397,24}, {1244,70}, {1397,24},
102 {1244,93}, {1046,24}, {932,24}, {830,24}, {1046,24}, {932,93}, {2269,186}, {1864,46},
103 {1661,186},{2269,116},{2506,24}, {2269,24},{1864,24}, {1661,186},{1864,93}, {2269,46},
104 {1864,46}, {1661,70}, {1397,24}, {1661,70},{1397,24}, {1244,70}, {1397,24}, {1244,93},
105 {1046,24}, {932,24}, {830,24}, {1046,24},{932,93}, {MEND,100},
106 {MHD,255},
107 };
108
109 uint ATone;
110 uchar ADuration,mrepcnt;
111 uchar Tick=0,keycnt=0;
112 uchar bdata Flags=0,keycon=0;
113
114 sbit To_10ms=Flags^0;
115 sbit Isrep =Flags^1;
116
C51 COMPILER V7.20 MUSIC 02/26/2006 14:24:25 PAGE 3
117 void ShowPicture(uchar byPicID)
118 {
119 1 uchar col,pg;
120 1 uchar code *pC;
121 1 pC = pic + (byPicID&0x03)*128*8;
122 1 for(pg = 0; pg < 8; pg++)
123 1 {
124 2 LCDCMR = SET_PAGE | pg;
125 2 LCDCMR = SET_COL | 0;
126 2 for(col = 0; col < 128; col++)
127 2 LCDDR = *pC++;
128 2 }
129 1 }
130
131 void main()
132 {uint p=0;
133 1 TMOD=0x01;
134 1 LCDCMR=Cls;
135 1 LCDCMR=LCD_on;
136 1 LCDCMR=INC_enb;
137 1 EA=1;ET0=1;TR0=1;
138 1 ShowPicture(0);
139 1 while (1)
140 1 {ATone=music[p].Tone;
141 2 ADuration=music[p].Duration;
142 2 if (ATone>0x3FFF)
143 2 {if ((ATone>>8)==0xAA)
144 3 {if (Isrep)
145 4 {if (--mrepcnt!=0) p=p-(ATone &0xff);
146 5 else
147 5 {
148 6 p++;
149 6 Isrep=0;
150 6 }
151 5 }
152 4 else
153 4 {
154 5 mrepcnt=ADuration;
155 5 p=p-(ATone &0xff);
156 5 Isrep=1;
157 5 }
158 4 continue;
159 4 }
160 3 if (ATone==MHD)
161 3 {
162 4 if (ADuration!=255) {p++;continue;}
163 4 }
164 3 p=0;Isrep=0;
165 3 continue;
166 3 }
167 2 TFR=ATone;
168 2 TGCON=(ATone>>8)| 0x80;
169 2 while (ADuration>0)
170 2 {while (~To_10ms) {}
171 3 To_10ms=0;
172 3 ADuration--;
173 3 }
174 2 TGCON=0;
175 2 p++;
176 2 }
177 1 }
178
C51 COMPILER V7.20 MUSIC 02/26/2006 14:24:25 PAGE 4
179 void timer0() interrupt 1
180 {
181 1 TL0=0xF4; //10ms Interval,XTAL=12Mhz
182 1 TH0=0xD8;
183 1 To_10ms=1;
184 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 304 ----
CONSTANT SIZE = 1435 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -