📄 key.lst
字号:
C51 COMPILER V8.08 KEY 07/28/2007 11:42:17 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c OMF2 OPTIMIZE(6,SPEED) BROWSE VARBANKING DEBUG
line level source
1 #include "dp8051.h"
2 #include "config.h"
3 #include "absacc.h"
4 #include "constant.h"
5 #include "variable.h"
6 #include "function.h"
7 #include "sdhost.h"
8 #include "sssmp3_regs.h"
9 #include "fat.h"
10 #include "mp3_appl.h"
11 //***********************************************
12 #if KEY
13 /************************************************
14 函 数 名: Read_Key()
15 功 能:读键值
16 说 明:
17 调 用:
18 全局变量:
19 入口参数:无
20 出口参数:无
21 返 回 值:无
22 ************************************************/
23 U8 Read_Key(void)
24 {
25 1 #if TAB_KEY
U8 data i;
#if TX_DEBUG
P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
P1 &= ~(BIT3 | BIT4 | BIT6);
P1DIR |= (BIT3 | BIT4 | BIT6);
i = P1 & (BIT1 | BIT2);
P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
P1 &= ~(BIT1 | BIT2);
P1DIR |= (BIT1 | BIT2);
i |= P1 & (BIT3 | BIT4 | BIT6);
P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT6);
#else
P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
P1 &= ~(BIT3 | BIT4 | BIT5 | BIT6);
P1DIR |= (BIT3 | BIT4 | BIT5 | BIT6);
i = P1 & (BIT1 | BIT2);
P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
P1 |= (BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
P1 &= ~(BIT1 | BIT2);
P1DIR |= (BIT1 | BIT2);
i |= P1 & (BIT3 | BIT4 | BIT5 | BIT6);
P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
#endif
switch(i)
C51 COMPILER V8.08 KEY 07/28/2007 11:42:17 PAGE 2
{
#if TX_DEBUG
case 0x1C:
return PLAY_PAUSE_KEY;
case 0x1A:
return STOP_KEY;
case 0x4C:
return VOLUME_DOWN_KEY;
case 0x4A:
return VOLUME_UP_KEY;
case 0x54:
return EQ_KEY;
case 0x52:
return PLAY_MODE_KEY;
case 0x5E:
return NO_KEY;
#else
case 0x3C:
return PLAY_PAUSE_KEY;
case 0x3A:
return STOP_KEY;
case 0x5C:
return PREVOIUS_KEY;
case 0x5A:
return NEXT_KEY;
case 0x6C:
return VOLUME_DOWN_KEY;
case 0x6A:
return VOLUME_UP_KEY;
case 0x74:
return EQ_KEY;
case 0x72:
return PLAY_MODE_KEY;
case 0x7E:
return NO_KEY;
#endif
default:
return ERROR_KEY;
}
#else
97 1 #if TX_DEBUG
98 1 P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT6;
99 1 P1_1 = 0;
100 1 P1DIR &= ~(BIT2 | BIT3 | BIT4 | BIT6);
101 1 P1DIR |= BIT1;
102 1 if(!P1_3)
103 1 return EQ_KEY;
104 1 else if(!P1_4)
105 1 return VOLUME_DOWN_KEY;
106 1 else if(!P1_6)
107 1 return PLAY_PAUSE_KEY;
108 1 else
109 1 {
110 2 P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT6;
111 2 P1_2 = 0;
112 2 P1DIR &= ~(BIT1 | BIT3 | BIT4 | BIT6);
113 2 P1DIR |= BIT2;
114 2 if(!P1_3)
115 2 return PLAY_MODE_KEY;
116 2 else if(!P1_4)
117 2 return VOLUME_UP_KEY;
C51 COMPILER V8.08 KEY 07/28/2007 11:42:17 PAGE 3
118 2 else if(!P1_6)
119 2 return STOP_KEY;
120 2 else
121 2 {
122 3 P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
123 3 P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
124 3 return NO_KEY;
125 3 }
126 2 }
127 1 #else
P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
P1_1 = 0;
P1DIR &= ~(BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
P1DIR |= BIT1;
if(!P1_3)
return EQ_KEY;
else if(!P1_4)
return VOLUME_DOWN_KEY;
else if(!P1_5)
return PREVOIUS_KEY;
else if(!P1_6)
return PLAY_PAUSE_KEY;
else
{
P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
P1_2 = 0;
P1DIR &= ~(BIT1 | BIT3 | BIT4 | BIT5 | BIT6);
P1DIR |= BIT2;
if(!P1_3)
return PLAY_MODE_KEY;
else if(!P1_4)
return VOLUME_UP_KEY;
else if(!P1_5)
return NEXT_KEY;
else if(!P1_6)
return STOP_KEY;
else
{
P1 |= BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6;
P1DIR &= ~(BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6);
return NO_KEY;
}
}
#endif
162 1 #endif
163 1 }
164 /************************************************
165 函 数 名: GetKey()
166 功 能:按键扫描
167 说 明:
168 调 用:
169 全局变量:
170 入口参数:无
171 出口参数:无
172 返 回 值:无
173 ************************************************/
174 void GetKey(void)
175 {
176 1 switch(varAl.fKeyTone)
177 1 {
178 2 case 0:
179 2 varAl.UsrChartmp = Read_Key();
C51 COMPILER V8.08 KEY 07/28/2007 11:42:17 PAGE 4
180 2 #if TAB_KEY
if(varAl.UsrChartmp && (varAl.UsrChartmp != ERROR_KEY))
#else
183 2 if(varAl.UsrChartmp)
184 2 #endif
185 2 {
186 3 varAl.fKeyTone++;
187 3 }
188 2 break;
189 2 case 1:
190 2 if(varAl.UsrChartmp == Read_Key())
191 2 {
192 3 switch(varAl.UsrChartmp)
193 3 {
194 4 case PLAY_PAUSE_KEY:
195 4 varAl.SysKey = PALY_PAUSE_VALUE;
196 4 break;
197 4 case NEXT_KEY:
198 4 varAl.SysKey = NEXT_VALUE;
199 4 break;
200 4 case PREVOIUS_KEY:
201 4 varAl.SysKey = PREVIOUS_VALUE;
202 4 break;
203 4 case VOLUME_UP_KEY:
204 4 #if TX_DEBUG
205 4 varAl.SysKey = NEXT_VALUE;
206 4 #else
varAl.SysKey = VOLUME_UP_VALUE;
#endif
209 4 break;
210 4 case VOLUME_DOWN_KEY:
211 4 #if TX_DEBUG
212 4 varAl.SysKey = PREVIOUS_VALUE;
213 4 #else
varAl.SysKey = VOLUME_DOWN_VALUE;
#endif
216 4 break;
217 4 case PLAY_MODE_KEY:
218 4 varAl.SysKey = PLAY_MODE_VALUE;
219 4 break;
220 4 case STOP_KEY:
221 4 varAl.SysKey = STOP_VALUE;
222 4 break;
223 4 case EQ_KEY:
224 4 varAl.SysKey = EQ_VALUE;
225 4 break;
226 4 default:
227 4 varAl.SysKey = NO_VALUE;
228 4 break;
229 4 }
230 3 varAl.fKeyTone++;
231 3 }
232 2 else
233 2 varAl.fKeyTone = 0;
234 2 break;
235 2 case 2:
236 2 if(Read_Key() == NO_KEY)
237 2 varAl.fKeyTone++;
238 2 break;
239 2 case 3:
240 2 if(Read_Key() == NO_KEY)
241 2 varAl.fKeyTone = 0;
C51 COMPILER V8.08 KEY 07/28/2007 11:42:17 PAGE 5
242 2 break;
243 2 default:
244 2 varAl.fKeyTone = 0;
245 2 break;
246 2 }
247 1 }
248 /************************************************
249 函 数 名: KeyDeal()
250 功 能:按键处理
251 说 明:
252 调 用:
253 全局变量:
254 入口参数:无
255 出口参数:无
256 返 回 值:无
257 ************************************************/
258 void KeyDeal(void)
259 {
260 1 switch(varAl.SysKey)
261 1 {
262 2 case PALY_PAUSE_VALUE: //MP3 play or pause
263 2 if((!allow_mp3_play) && (varAl.CardDetected == 1))
264 2 {
265 3 allow_mp3_play = 1;
266 3 }
267 2 else
268 2 {
269 3
270 3 varAl.SystemFlag ^= PLAY_PAUSE_FLAG;
271 3 if(varAl.SystemFlag & PLAY_PAUSE_FLAG)
272 3 {
273 4 MP3_CTL |= (MP3_PAUSE | MUTE);//Pause Music
274 4 CLASS_D_DAC_CTL |= (SUSPEND | PAUSE);//Mute & Suspend Class-D,
275 4 }
276 3 else
277 3 {
278 4 MP3_CTL &= ~(MP3_PAUSE | MUTE);//Resume to play Music
279 4 CLASS_D_DAC_CTL &= ~(SUSPEND | PAUSE);//Dis-Mute & Resume Class-D,
280 4 }
281 3 }
282 2 break;
283 2 case NEXT_VALUE: //MP3 next
284 2 mp3_play_status = MP3_NEXT;
285 2 break;
286 2 case PREVIOUS_VALUE://MP3 previous
287 2 mp3_play_status = MP3_PREVIOUS;
288 2 break;
289 2 case VOLUME_UP_VALUE://MP3 VolumnUp
290 2 if(CLASS_D_VOL_CTL == 0x06)
291 2 {
292 3 if(MP3_VOLUME < 0x1F)
293 3 MP3_VOLUME++;
294 3 else
295 3 CLASS_D_VOL_CTL--;
296 3 }
297 2 else
298 2 {
299 3 if(CLASS_D_VOL_CTL)
300 3 CLASS_D_VOL_CTL--;
301 3 }
302 2 break;
303 2 case VOLUME_DOWN_VALUE://MP3 VolumnDown
C51 COMPILER V8.08 KEY 07/28/2007 11:42:17 PAGE 6
304 2 if(CLASS_D_VOL_CTL == 0x06)
305 2 {
306 3 if(MP3_VOLUME)
307 3 MP3_VOLUME--;
308 3 else
309 3 CLASS_D_VOL_CTL++;
310 3 }
311 2 else
312 2 {
313 3 if(CLASS_D_VOL_CTL < 0x3E)
314 3 CLASS_D_VOL_CTL++;
315 3 }
316 2 break;
317 2 case PLAY_MODE_VALUE://play mode select
318 2 MP3_MusicPlayMode();
319 2 break;
320 2 case STOP_VALUE://stop
321 2 MP3_PrevInit();
322 2 allow_mp3_play = 0;
323 2 mp3_play_status = MP3_IDEL;
324 2 break;
325 2 case EQ_VALUE:
326 2 if((!allow_mp3_play) && (varAl.CardDetected == 1))
327 2 {
328 3 allow_mp3_play = 1;
329 3 }
330 2 break;
331 2 default:
332 2 mp3_play_status = MP3_IDEL;
333 2 break;
334 2 }
335 1 }
336 #endif
337
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 499 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -