📄 sound5008.lst
字号:
C51 COMPILER V7.50 SOUND5008 09/20/2008 15:21:11 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SOUND5008
OBJECT MODULE PLACED IN sound5008.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sound5008.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************************************************/
2 /* 程序说明 */
3 /* */
4 /* BMP5008语音芯片播音程序 */
5 /* 该程序很奇怪,不用送使能信号就能播放声音 */
6 /* */
7 /* 日期:2008,9,14 */
8 /****************************************************************/
9
10 #include "sound5008.h"
11
12
13 unsigned char xdata soundNumPos=0x00;
14 unsigned char xdata soundNumList[10]={0xee};//0xee为结束标志
15
16
17
18 void Sound5008Play(unsigned char num)
19 {
20 1 if(num==0||num==0xff)
21 1 {
22 2 SOUND5008_DATA=num;
23 2 return;
24 2 }
25 1 SOUND5008_DATA=~(num&0x1f);
26 1 Delayms(400);
27 1 // SOUND5008_PLAY=0;
28 1 SOUND5008_DATA=0xff;
29 1 }
30
31
32 /****************************************************************************/
33 //该函数的使用方法:
34 //将该函数放在while主循环中即可,如果有需要播放的声音,将他们的组合序号放在
35 //soundNumList数组中,该数组最大容量为10,初始化该数组时,一定要将其最后一个数
36 //置成0xee做为结束标记
37 /****************************************************************************/
38 void Sound5008PlaySome()// using 0
39 {
40 1 char i=0;
41 1 while(i++<10)
42 1 {
43 2 if(soundNumList[soundNumPos]!=0xee) //不是结束标志
44 2 {
45 3 while(!SOUND5008_TEST_BUSY);//如果空闲
46 3 Sound5008Play(soundNumList[soundNumPos]);
47 3 soundNumPos++;
48 3 }
49 2 else
50 2 {
51 3 soundNumPos=0;
52 3 soundNumList[0]=0xee;//如果你需要将同样的播放声音列表播放两遍,可以将该句注释掉,
53 3 //但以后每次播放完声音列表之后需要手动清空列表或在下一次播放之前清空列表
54 3 break;
55 3 }
C51 COMPILER V7.50 SOUND5008 09/20/2008 15:21:11 PAGE 2
56 2 }
57 1 }
58
59
60 /*
61 unsigned char soundMakeUpList[5];//255以内的数,最大是五个的组合.不够五个的,以0xee结尾
62
63 void ComListMakeUP(unsigned char i)//根据数字(最大255)组合出声音列表,如:35,组合成声音列表就是:三 十
-五
64 {
65 if(i<=10)// <=10的数
66 {
67 soundMakeUpList[0]=i;
68 soundMakeUpList[1]=0xee;
69 }
70 else if((i>=11&&i<=20)||(i<100&&i%10==0)) // >=11并<=20的数 和 20,30,40,50,...,90,100
71 {
72 if(i/10==1)
73 {
74 soundMakeUpList[0]=shi;
75 soundMakeUpList[1]=i%10;
76 }
77 else
78 {
79 soundMakeUpList[0]=i/10;
80 soundMakeUpList[1]=shi;
81 }
82
83 soundMakeUpList[2]=0xee;
84
85 }
86 else if(i<100) // 除上述两类数之外的小于100的数
87 {
88 soundMakeUpList[0]=i/10;
89 soundMakeUpList[1]=shi;
90 soundMakeUpList[2]=i%10;
91 soundMakeUpList[3]=0xee;
92
93 }
94 else if(i%100==0)//这里指100和200这两个数
95 {
96 soundMakeUpList[0]=i/100;
97 soundMakeUpList[1]=bai;
98 soundMakeUpList[2]=0xee;
99
100 }
101 else if((i>=101&&i<=109)||(i>=201&&i<=209))
102 {
103 soundMakeUpList[0]=i/100;
104 soundMakeUpList[1]=bai;
105 soundMakeUpList[2]=ling;
106 soundMakeUpList[3]=i%10;
107 soundMakeUpList[4]=0xee;
108
109
110 }
111 else if(i%10==0)// 大于100的数中被10整除的数
112 {
113 soundMakeUpList[0]=i/100;
114 soundMakeUpList[1]=bai;
115 soundMakeUpList[2]=i%100/10;
116 soundMakeUpList[3]=shi;
C51 COMPILER V7.50 SOUND5008 09/20/2008 15:21:11 PAGE 3
117 soundMakeUpList[4]=0xee;
118
119 }
120 else
121 {
122 soundMakeUpList[0]=i/100;
123 soundMakeUpList[1]=bai;
124 soundMakeUpList[2]=i%100/10;
125 soundMakeUpList[3]=shi;
126 soundMakeUpList[4]=i%10;
127
128 }
129
130
131
132 }
133 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 98 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 11 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -