📄 text1.lst
字号:
C51 COMPILER V7.06 TEXT1 11/21/2008 22:16:05 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: E:\京-应用程序\Uv2-单片机\C51\BIN\C51.EXE Text1.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #include<intrins.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6 #define hi 0x3c
7 #define lo 0xb0
8
9 sbit P37=P3^7;
10 sbit P24=P2^4;
11 sbit P25=P2^5;
12 sbit P26=P2^6;
13 sbit P27=P2^7;
14 sbit P10=P1^0;
15
16 sbit ISD4004_SS=P1^2; //语音
17 sbit ISD4004_MOSI=P1^1;
18 sbit ISD4004_SCLK=P1^3;
19
20 code unsigned char table1[]={0,1,2,3,4,5,6,7,8,9,10,11} ;
21 unsigned char key_flag, key_count,t0_count,mask=0xee,key;
22 code unsigned char table[]={0x00,0x00,0x00,0x65, //语音地址表
23 0x00,0xc9,0x01,0x2d,
24 0x01,0x91,0x01,0xf5,
25 0x02,0x59,0x02,0xbd,
26 0x03,0x21,0x03,0x85,
27 0x03,0xb7,0x03,0xe8,
28 0x04,0x1a,0x04,0x4c,
29 0x04,0x7e,0x04,0xb0,
30 0x04,0xe2,0x05,0x14,
31 0x05,0x46,0x05,0x78,
32 0x05,0xaa,0x05,0xdc,
33 0x06,0x0e,0x06,0x40,
34 0x06,0x72,0x06,0xa4,
35 0x06,0xd6,0x07,0x08,
36 0x07,0x3a,0x07,0x6c
37 };
38
39
40 void t1() interrupt 1 //定时中断2 函数:防键抖动
41 {TH0=hi;TL0=lo;key_count++;t0_count++;
42 1 if(t0_count==20)t0_count=0;
43 1 if(key_count>10)key_count=10;
44 1 }
45 //============================================================
46 //函数名称:void delay25ms()
47 //函数功能:延迟25ms
48 //日期:2007.03.31
49 //============================================================
50 void delay25ms()
51 {
52 1 unsigned int i;
53 1 for(i=0;i<=5000;i++);
54 1 }
55
C51 COMPILER V7.06 TEXT1 11/21/2008 22:16:05 PAGE 2
56
57 //===========================================================
58 //函数名称:void ISD4004_ISD4004_Send(unsigned char m)
59 //函数功能:给ISD4004送命令
60 //日期:2007.03.31
61 //===========================================================
62 void ISD4004_Send(unsigned char m)
63 {
64 1 unsigned char i,j;
65 1 for(i=0;i<8;i++)
66 1 {
67 2 ISD4004_SCLK = 0;
68 2 for(j=0;j<5;j++);
69 2 if(m&0x01)
70 2 ISD4004_MOSI=1;
71 2 else
72 2 ISD4004_MOSI=0;
73 2 ISD4004_SCLK=1;
74 2 for(j=0;j<5;j++);
75 2 m=m>>1;
76 2 }
77 1 }
78
79
80
81 //===========================================================
82 //函数名称:void ISD4004_Powerup()
83 //函数功能:ISD4004上电
84 //日期:2007.03.31
85 //===========================================================
86 void ISD4004_Powerup()
87 {
88 1 ISD4004_SS=0; //开片选
89 1 ISD4004_Send(0x20);
90 1 delay25ms();
91 1 ISD4004_SS=1; //关片选
92 1 }
93
94
95 //============================================================
96 //函数名称:void ISD4004_Stop()
97 //函数功能:ISD4004停止
98 //日期:2007.03.31
99 //============================================================
100 void ISD4004_Stop()
101 {
102 1 ISD4004_SS=0;
103 1 ISD4004_Send(0x30);
104 1 ISD4004_SS=1;
105 1 }
106
107
108 //===========================================================
109 //函数名称:void ISD4004_Powerdown()
110 //函数功能:下电 停止并掉电
111 //日期:2007.03.31
112 //===========================================================
113 void ISD4004_Powerdown()
114 {
115 1 ISD4004_SS=0;
116 1 ISD4004_Send(0x10);
117 1 ISD4004_SS=1;
C51 COMPILER V7.06 TEXT1 11/21/2008 22:16:05 PAGE 3
118 1 }
119
120
121 //==========================================================
122 //函数名称:void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
123 //函数功能:放音
124 //日期:2007.03.31
125 //==========================================================
126 void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
127 {
128 1
129 1 ISD4004_SS=0;
130 1 ISD4004_Send(addr_l);
131 1 ISD4004_Send(addr_h);
132 1 ISD4004_Send(0xe0);
133 1 ISD4004_SS=1;
134 1
135 1 ISD4004_SS=0;
136 1 ISD4004_Send(0xf0);
137 1 ISD4004_SS=1;
138 1 }
139
140 //================================================================
141 void ISD4004_Rec(unsigned char addr_h,unsigned char addr_l)
142 {
143 1 ISD4004_SS=0;
144 1 ISD4004_Send(addr_l);
145 1 ISD4004_Send(addr_h);
146 1 ISD4004_Send(0xa0);
147 1 ISD4004_SS=1;
148 1
149 1 ISD4004_SS=0;
150 1 ISD4004_Send(0xb0);
151 1 ISD4004_SS=1;
152 1 }
153
154
155 //================================================================
156 //函数名称:void fangyin()
157 //函数功能:语音 addr为地址
158 //日期:2007.03.31
159 //================================================================
160 void fangyin(uchar addr)
161 {
162 1 uchar a;
163 1 ISD4004_Powerup();
164 1 delay25ms();
165 1 a = addr * 2;
166 1 ISD4004_Play(table[a],table[a+1]);
167 1 }
168
169 //================================================================
170 //函数名称:void luyin()
171 //函数功能:语音 addr为地址
172 //日期:2007.03.31
173 //================================================================
174 void luyin(uchar addr)
175 {
176 1 uchar a;
177 1 ISD4004_Powerup();
178 1 delay25ms();
179 1 delay25ms();
C51 COMPILER V7.06 TEXT1 11/21/2008 22:16:05 PAGE 4
180 1 a = addr * 2;
181 1 ISD4004_Rec(table[a],table[a+1]);
182 1 }
183
184
185 unsigned char get_char(void)
186 {unsigned char key_code;
187 1 static unsigned char column=0;
188 1 if (P37==0 && key_flag==1){key_code=column;key_flag=0;key_count=0;}
189 1 else key_code=0xff;
190 1 mask=_crol_(mask,1);
191 1 P24=mask&0x10;P25=mask&0x20;P26=mask&0x40;P27=mask&0x80;
192 1 column++;
193 1 if(column>3)column=0;
194 1 return(key_code);}
195
196 void key_func(key)
197 {switch (key)
198 1 {case 0: ISD4004_Powerup();delay25ms();luyin(0);break;
199 2
200 2 case 1: delay25ms();fangyin(0);break;
201 2
202 2 case 2: break;
203 2
204 2 case 3: ISD4004_Stop();ISD4004_Powerdown();break;
205 2
206 2 default: break; } }
207
208 void main()
209 {
210 1 TMOD=0x11;TH0=hi;TL0=lo;EA=1;ET0=1;ET1=1;TR0=1;
211 1 TH0=hi;TL0=lo;
212 1 P10=0;
213 1
214 1 /****************** 语音模块************************/
215 1 while(1)
216 1 {
217 2 key=get_char( );key_func(key);
218 2 if(key_flag==0 && key_count>=10)key_flag=1;
219 2 }
220 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 355 ----
CONSTANT SIZE = 72 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
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 + -