📄 keyproc.lst
字号:
236 5 case MUTE_KEY:
237 5 if(Mute_Switch == 0)
238 5 {
239 6 Mute_Switch = 1;
240 6 AV_STANDBY = 1;
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 5
241 6 VFD_Display("MUTE ", 5, 0, 0);
242 6 VFD_ICON_Display(ICON_MUTE);
243 6 }
244 5 else
245 5 {
246 6 if(Current_State == TUNER)
247 6 Tuner_MuteOFF_Display();
248 6 Mute_Switch = 0;
249 6 AV_STANDBY = 0;
250 6 }
251 5
252 5 break;
253 5
254 5 case KEY_0:
255 5 case KEY_1:
256 5 case KEY_2:
257 5 case KEY_3:
258 5 case KEY_4:
259 5 case KEY_5PLUS:
260 5 if(Current_State == TUNER)
261 5 Proc_Digital_Key();
262 5 break;
263 5
264 5 case MEMORY_KEY:
265 5 if(Current_State == TUNER)
266 5 Proc_MEMORY_Key();
267 5 break;
268 5
269 5 default:
270 5 break;
271 5 }
272 4
273 4 }
274 3 }
275 2 Current_Key = NO_KEY;
276 2 }
277 1 }
278
279
280
281 void Power_Proc(void)
282 {
283 1 BYTE i;
284 1 if(POWER_Status == 0)
285 1 {
286 2 Tuner_Channel_Init();
287 2 FMAM_PRESSED = 0;
288 2 Auto_Scan_Enable = Auto_Scan_Stop;
289 2 Auto_Scan_Start = 0;
290 2 Manual_Scan_Flag = 0;
291 2 Auto_Is_Reach = 0;
292 2 Mono_Stereo_Select = Tuner_STEREO;
293 2 FM_AM_Select = FM_MODE;
294 2 Channel_Display = 100;
295 2 VFD_WriteLedPort(0x0);
296 2 Tuner_Open();
297 2 VFD_DisplayOn();
298 2 DelayX1ms(10);
299 2 Mute_Switch = 0;
300 2 Volume_Control = 1;
301 2 Current_State = TUNER;
302 2 Source_Set();
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 6
303 2 for(i = TOTAL_VOLUME; i <= SURROUNDR_VOLUME; i++)
304 2 VOLUME_CHANNEL[i] = 30;
305 2 Memory_Start = 0;
306 2 Digital_Number = 0;
307 2 Volume_Tune(ALLCH_Vol);
308 2 TO_MAIN_DISPLAY = 25;
309 2 POWER_Status = 1;
310 2 AV_STANDBY = 0;
311 2
312 2
313 2 }
314 1 else if(POWER_Status == 1)
315 1 {
316 2 Volume_Control = 0;
317 2 AV_STANDBY = 1;
318 2 Current_State = STANDBY;
319 2 VFD_WriteLedPort(0xF);
320 2 VFD_ClearALL();
321 2 Mute_Switch = 1;
322 2 Current_State = STANDBY;
323 2 POWER_Status = 0;
324 2
325 2 }
326 1 Current_Key = NO_KEY;
327 1 }
328
329 void Proc_Volume_UP(void)
330 {
331 1 BYTE i;
332 1
333 1 Mute_Switch = 0;
334 1 AV_STANDBY = 0;
335 1 for(i = TOTAL_VOLUME; i <= SURROUNDR_VOLUME; i++)
336 1 {
337 2 if(VOLUME_CHANNEL[i] < Volume_Max)
338 2 VOLUME_CHANNEL[i]++;
339 2 }
340 1 if(VOLUME_CHANNEL[TOTAL_VOLUME] > 9)
341 1 VFD_Display("VOL", 3, VOLUME_CHANNEL[TOTAL_VOLUME], 0);
342 1 else
343 1 VFD_Display("VOL0", 3, VOLUME_CHANNEL[TOTAL_VOLUME], 0);
344 1 VFD_ICON_Display(0);
345 1 Volume_Tune(ALLCH_Vol);
346 1 Volume_Key_Dealed = 0;
347 1 TO_MAIN_DISPLAY = 50;
348 1 }
349 void Proc_Volume_DOWN(void)
350 {
351 1 BYTE i;
352 1
353 1 Mute_Switch = 0;
354 1 AV_STANDBY = 0;
355 1
356 1 for(i = TOTAL_VOLUME; i <= SURROUNDR_VOLUME; i++)
357 1 {
358 2 if(VOLUME_CHANNEL[i] > Volume_Min)
359 2 VOLUME_CHANNEL[i]--;
360 2 }
361 1 if(VOLUME_CHANNEL[TOTAL_VOLUME] == 0)
362 1 AV_STANDBY = 1;
363 1
364 1 if(VOLUME_CHANNEL[TOTAL_VOLUME] > 9)
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 7
365 1 VFD_Display("VOL", 3, VOLUME_CHANNEL[TOTAL_VOLUME], 0);
366 1 else
367 1 VFD_Display("VOL0", 3, VOLUME_CHANNEL[TOTAL_VOLUME], 0);
368 1 VFD_ICON_Display(0);
369 1 Volume_Key_Dealed = 0;
370 1 Volume_Tune(ALLCH_Vol);
371 1 TO_MAIN_DISPLAY = 40;
372 1 }
373
374 /*===================== 功能按键处理 =============*/
375
376 code BYTE Function_Display[] =
377 {
378 'F','L','F','R','S','W','C',' ','S','L','S','R'
379 };
380
381 void Proc_FUNCTION_Key(void)
382 {
383 1
384 1 if(VOLUME_CHANNEL[TOTAL_VOLUME] == 0)
385 1 return;
386 1 //音量调节时,假如原来在MUTE状态, 关闭MUTE状态
387 1 Mute_Switch = 0;
388 1
389 1 //音量调节时, 假如原来功放MUTE掉, 打开
390 1 AV_STANDBY = 0;
391 1 VFD_ICON_Display(0);
392 1 FUNCTION_Count++;
393 1 //假如在5.1通道,那么程序要循环,从FL,FR,BASS, CENTER, SL到SR, 然后到FL
394 1 if(Current_State == CH5)
395 1 {
396 2 if(FUNCTION_Count == 7)
397 2 FUNCTION_Count = 1;
398 2 }
399 1 else
400 1 {
401 2
402 2 //否则, 从FL,FR,SUBWOOFER三个之间循环
403 2 if(FUNCTION_Count == 4)
404 2 FUNCTION_Count = 1;
405 2 }
406 1
407 1 Difference_Value();
408 1 VFD_Display(String_Display, 5, 0, 0);
409 1 TO_MAIN_DISPLAY = 120;
410 1 }
411 void Proc_KEYPLUSorMinus(void)
412 {
413 1 if(TO_MAIN_DISPLAY == 0)
414 1 return;
415 1
416 1 if(Current_Key == KEY_PLUS)
417 1 {
418 2 if((VOLUME_CHANNEL[FUNCTION_Count] < Volume_Max) && (VOLUME_CHANNEL[FUNCTION_Count] < (VOLUME_CHANNEL[TO
-TAL_VOLUME] + 10)))
419 2 VOLUME_CHANNEL[FUNCTION_Count]++;
420 2 }
421 1 else
422 1 {
423 2 if((VOLUME_CHANNEL[FUNCTION_Count] > Volume_Min) && ( VOLUME_CHANNEL[TOTAL_VOLUME] < (VOLUME_CHANNEL[FUN
-CTION_Count] + 10)))
424 2 VOLUME_CHANNEL[FUNCTION_Count]--;
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 8
425 2 }
426 1
427 1 Difference_Value();
428 1 Volume_Tune((FUNCTION_Count - 1)/2 + 1);
429 1 VFD_Display(String_Display, 5, 0, 0);
430 1 TO_MAIN_DISPLAY = 120;
431 1 }
432
433 void Difference_Value(void)
434 {
435 1 String_Display[0] = Function_Display[(FUNCTION_Count - 1)* 2];
436 1 String_Display[1] = Function_Display[(FUNCTION_Count - 1)* 2 + 1];
437 1
438 1 if(VOLUME_CHANNEL[FUNCTION_Count] < VOLUME_CHANNEL[TOTAL_VOLUME])
439 1 {
440 2 VOL_Difference = VOLUME_CHANNEL[TOTAL_VOLUME] - VOLUME_CHANNEL[FUNCTION_Count];
441 2 String_Display[2] = '-';
442 2 }
443 1 else
444 1 {
445 2 VOL_Difference = VOLUME_CHANNEL[FUNCTION_Count] - VOLUME_CHANNEL[TOTAL_VOLUME];
446 2 String_Display[2] = '+';
447 2 }
448 1
449 1 if(VOL_Difference == 10)
450 1 {
451 2 String_Display[3] = '1';
452 2 String_Display[4] = '0';
453 2 }
454 1 else
455 1 {
456 2 String_Display[3] = '0';
457 2 String_Display[4] = '0' + VOL_Difference;
458 2 }
459 1 }
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 9
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION Source_Set (BEGIN)
; SOURCE LINE # 51
; SOURCE LINE # 52
; SOURCE LINE # 53
0000 E4 CLR A
0001 FF MOV R7,A
0002 FE MOV R6,A
0003 120000 E LCALL _VFD_ICON_Display
; SOURCE LINE # 54
0006 E500 E MOV A,Current_State
0008 24FE ADD A,#0FEH
000A 6025 JZ ?C0003
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -