📄 music.lst
字号:
C51 COMPILER V8.02 MUSIC 10/01/2008 00:06:24 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MUSIC
OBJECT MODULE PLACED IN .\MUSIC.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\MUSIC\MUSIC.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\MUSIC.lst) OBJECT(
-.\MUSIC.obj)
line level source
1 /********************************************************************************/
2 /* filename : MUSIC.c */
3 /* created : xillinx */
4 /* descript : 用来实现电子琴功能 */
5 /********************************************************************************/
6 #include "../CPU/CPU.h"
7 #include "../CFG/CFG.h"
8 #include "../UART/UART.h"
9 #include "../MUSIC/MUSIC.h"
10
11
12 /********************************************************************************/
13 /* 音调频率 */
14 /********************************************************************************/
15 /* | 1 | <--> | C | 262 | 0x5b1e | */ //* 低音
16 /* | 2 | <--> | D | 294 | 0x6d10 | */
17 /* | 3 | <--> | E | 330 | 0x7d18 | */
18 /* | 4 | <--> | F | 349 | 0x8438 | */
19 /* | 5 | <--> | G | 392 | 0x91cc | */
20 /* | 6 | <--> | A | 440 | 0x9dd2 | */
21 /* | 7 | <--> | B | 494 | 0xa88d | */
22 /* | 1 | <--> | C | 523 | 0xad67 | */ //* 中音
23 /* | 2 | <--> | D | 587 | 0xb668 | */
24 /* | 3 | <--> | E | 659 | 0xbe73 | */
25 /* | 4 | <--> | F | 698 | 0xc21c | */
26 /* | 5 | <--> | G | 784 | 0xc8e6 | */
27 /* | 6 | <--> | A | 880 | 0xcee9 | */
28 /* | 7 | <--> | B | 988 | 0xd447 | */
29 /* | 1 | <--> | C | 1047 | 0xd6be | */ //* 高音
30 /* | 2 | <--> | D | 1175 | 0xdb3c | */
31 /* | 3 | <--> | E | 1319 | 0xdf40 | */
32 /* | 4 | <--> | F | 1397 | 0xe114 | */
33 /* | 5 | <--> | G | 1568 | 0xe473 | */
34 /* | 6 | <--> | A | 1760 | 0xe775 | */
35 /* | 7 | <--> | B | 1976 | 0xea24 | */
36 /********************************************************************************/
37 unsigned char code music_table_hi[]=
38 { 0x5b,
39 0x6d,
40 0x7d,
41 0x84,
42 0x91,
43 0x9d,
44 0xa8,
45 0xad,
46 0xb6,
47 0xbe,
48 0xc2,
49 0xc8,
50 0xce,
51 0xd4,
52 0xd6,
53 0xdb,
54 0xdf,
C51 COMPILER V8.02 MUSIC 10/01/2008 00:06:24 PAGE 2
55 0xe1,
56 0xe4,
57 0xe7,
58 0xea,
59 };
60 unsigned char code music_table_lo[]=
61 { 0x1e,
62 0x10,
63 0x18,
64 0x38,
65 0xcc,
66 0xd2,
67 0x8d,
68 0x67,
69 0x68,
70 0x73,
71 0x1c,
72 0xe6,
73 0xe9,
74 0x47,
75 0xbe,
76 0x3c,
77 0x40,
78 0x14,
79 0x73,
80 0x75,
81 0x24,
82 };
83
84 /********************************************************************************/
85 /* function : MUSIC_initialize() */
86 /* recension: xillinx */
87 /* descript : MUSIC的定时器初始化 */
88 /* Fosc */
89 /* 时钟输出频率: ---------------------------------- */
90 /* N x [65536 -(RCAP2H,RCAP2L)] */
91 /*------------------------------------------------------------------------------*/
92 /* Fosc */
93 /* THTL加载数据: 65536 - ------------------------ */
94 /* N x 时钟输出频率 */
95 /********************************************************************************/
96 void MUSIC_initialize(void)
97 { T2CON = 0x0; //* 16位自动重装模式,禁止T2EX功能
98 1 T2MOD = 0x2; //* T2OE=1;允许T2引脚输出
99 1 TR2 = 0x0; //* 把定时器的溢出信号输出
100 1 }
101
102 /********************************************************************************/
103 /* function : MUSIC_start_tone() */
104 /* recension: xillinx */
105 /* descript : MUSIC输出启动和控制 */
106 /********************************************************************************/
107 void MUSIC_start_tone(unsigned char tone)
108 { unsigned char index;
109 1 TR2=0x0;
110 1
111 1 switch(tone)
112 1 {
113 2 case 0x1:
114 2 index=0x0;
115 2 break;
116 2 case 0x2:
C51 COMPILER V8.02 MUSIC 10/01/2008 00:06:24 PAGE 3
117 2 index=0x1;
118 2 break;
119 2 case 0x3:
120 2 index=0x2;
121 2 break;
122 2 case 0x4:
123 2 index=0x3;
124 2 break;
125 2 case 0x31:
126 2 index=0x4;
127 2 break;
128 2 case 0x32:
129 2 index=0x5;
130 2 break;
131 2 case 0x33:
132 2 index=0x6;
133 2 break;
134 2 case 0x34:
135 2 index=0x7;
136 2 break;
137 2 case 0x35:
138 2 index=0x8;
139 2 break;
140 2 case 0x36:
141 2 index=0x9;
142 2 break;
143 2 case 0x37:
144 2 index=0xA;
145 2 break;
146 2 case 0x38:
147 2 index=0xB;
148 2 break;
149 2 case 0x39:
150 2 index=0xC;
151 2 break;
152 2 case 0x30:
153 2 index=0xD;
154 2 break;
155 2 case 0x41:
156 2 index=0xE;
157 2 break;
158 2 case 0x42:
159 2 index=0xF;
160 2 break;
161 2 case 0x43:
162 2 index=0x10;
163 2 break;
164 2 case 0x44:
165 2 index=0x11;
166 2 break;
167 2 case 0x45:
168 2 index=0x12;
169 2 break;
170 2 case 0x46:
171 2 index=0x13;
172 2 break;
173 2 case 0x2A:
174 2 index=0x14;
175 2 break;
176 2 case 0x23:
177 2 index=0x15;
178 2 TR2 =0x0;
C51 COMPILER V8.02 MUSIC 10/01/2008 00:06:24 PAGE 4
179 2 return;
180 2 }
181 1 RCAP2H=music_table_hi[index];
182 1 RCAP2L=music_table_lo[index];
183 1 TH2 =music_table_hi[index];
184 1 TL2 =music_table_lo[index];
185 1 TR2 =0x1;
186 1 }
187
188 /********************************************************************************/
189 /* function : MUSIC_stop_tone() */
190 /* recension: xillinx */
191 /* descript : MUSIC输出停止 */
192 /********************************************************************************/
193 void MUSIC_stop_tone(void)
194 { TR2=0x0;
195 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 296 ----
CONSTANT SIZE = 42 ----
XDATA SIZE = ---- 1
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -