📄 main.lst
字号:
287 6 ISP_flag_1 = 0;
288 6 ISP_flag_2 = 0;
289 6 }
290 5 }
291 4 else
292 4 {
293 5 ISP_flag_1 = 0;
294 5 ISP_flag_2 = 0;
295 5 ISP_flag_3 = 0;
296 5 }
297 4 }
298 3
299 3 source_in_status = 0x01;
300 3 data_ready = 0;
301 3 delay(5);
302 3 data_ready = 1;
303 3 key = 0x00;
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 6
304 3 }
305 2 break;
306 2
307 2 }
308 1 }
309
310 void test_power_action(void)
311 {
312 1 if(action_ready_to_handle == 0x01)
313 1 {
314 2 action_ready_to_handle = 0x00;
315 2 }
316 1 else
317 1 if(Power_off == 0x01)
318 1 {
319 2 Power_on_system = 0;//after 9000 ready power down,MCU'll power down system
320 2 Power_off = 0x00;
321 2 LED = 1;
322 2 }
323 1 }
324
325 void Ir_power_operation(void)
326 {
327 1 BYTE GetIr;
328 1 BYTE GetID;
329 1
330 1 GetID = GetIrIDData();
331 1 if(GetID == 0x10)
332 1 {
333 2 GetIr=GetIrCodeData();
334 2 if(GetIr == 0x5F)
335 2 {
336 3 if(Power_status == 0x00)
337 3 {
338 4 LED = 0;
339 4 Power_on_system = 1;//power on the whole system
340 4 delay(150);
341 4 Reset_TVP9000 = 0;
342 4 delay(100);
343 4 Reset_TVP9000 = 1;//reset TVP9000
344 4 Power_status = 0x01;
345 4 GetIr = 0x00;
346 4 }
347 3 else
348 3 {
349 4 power_down_status = 0x01;
350 4 data_ready = 0;//tell TVP9000 to powerdown system,
351 4 delay(5);
352 4 data_ready = 1;
353 4 Power_status = 0x00;
354 4 delay(200);
355 4 GetIr = 0x00;
356 4 }
357 3 }
358 2 }
359 1
360 1 }
361 //
362 void main(void)
363 {
364 1 PWM_flag = 0;
365 1 Power_on_system = 0;
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 7
366 1 Power_status = 0x00;
367 1 action_ready_to_handle = 0x01;
368 1 Power_off = 0x00;
369 1 menu_key_press_speet_flag = 0x00;
370 1
371 1 ISP_flag_1 = 0;
372 1 ISP_flag_2 = 0;
373 1 ISP_flag_3 = 0;
374 1 ISP_flag_4 = 0;
375 1
376 1 InitialTimer0();
377 1 Initi_MCU_slaver();
378 1 Init_uart();
379 1 EnableIr();
380 1
381 1 while(1)
382 1 {
383 2 Ir_power_operation();
384 2 key_function_operation();
385 2 test_power_action();
386 2
387 2 if(PWM_flag == 1)
388 2 {
389 3 Backlight_Control();
390 3 PWM_flag = 0;
391 3 }
392 2 }
393 1 }
394
395 void EnableISP(void)
396 {
397 1 start_ISP();
398 1 while(1);
399 1 }
400
401 BYTE WaitKey(void)
402 {
403 1 BYTE press_key;
404 1 press_key = P0 & 0x7F; // get press key from Port#0
405 1
406 1 if ((press_key == 0x7E) || (press_key == 0x3F) || (press_key == 0x77) || (press_key == 0x6F))
407 1 {
408 2 for (;;) //wait all key release
409 2 if ((P0&0x7F)==0x7F)
410 2 break;
411 2 }
412 1 else
413 1 if((press_key == 0x7D)||(press_key == 0x7B))
414 1 {
415 2 for (;;) //wait all key release
416 2 if ((P0&0x7F)!=0x7F)
417 2 break;
418 2 }
419 1 else
420 1 if(press_key == 0x5F)
421 1 {
422 2 for(;;)
423 2 if((P0&0x7F) ==0x7F)
424 2 break;
425 2 }
426 1 else
427 1 {
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 8
428 2 press_key = 0;
429 2 }
430 1 return (press_key); //if not press key will return 0x00
431 1 }
432
433 void timer0_int( void ) interrupt 1 //about 1ms run into this interrup subrutine,about 100ms to scan the
- key,
434 {
435 1 unsigned char i = 0,j = 0;
436 1 TR0 = 0;
437 1 key = WaitKey();
438 1 TH0=0x00;
439 1 TL0=0x00;
440 1 TR0 = 1;
441 1 }
442
443 void InitialTimer0(void) //1ms timer
444 {
445 1 //set Timer0 for key scan
446 1 TMOD=0x01;
447 1 TH0=0x00;
448 1 TL0=0x00;
449 1 EA=1;
450 1 TR0=1;
451 1 ET0=1;
452 1 }
453
454 void Initi_MCU_slaver(void)
455 {
456 1 //initial MCU's in slave mode
457 1 EA=1;
458 1 ES1=1;
459 1 S1CON=0xC6;//ENABLE_I2C;enable MCU in slave mode.
460 1 S1ADR=0xD8;//SLA_R;
461 1 }
462
463 //-------------------------------------------
464 /* transmit a string */
465 void transs(char *s)
466 {
467 1 while (*s!='\0')
468 1 {
469 2 SBUF=*s;
470 2 while(!TI);
471 2 TI = 0 ;
472 2 s++;
473 2 }
474 1 }
475 //=======================================
476 //* transmit a char*/
477 void transc (char c)
478 {
479 1 SBUF = c;
480 1 while(!TI);
481 1 TI = 0;
482 1 }
483 //---------------------------------------
484 //---------------------------------------
485 void transreg(char c)
486 {
487 1 int tmp;
488 1 int tmpc;
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 9
489 1 tmp=c;
490 1 tmp=(tmp>>4)&0x0F;
491 1 ACC=tmp;
492 1 tmpc=hextoascii(tmp);
493 1 transc(tmpc);
494 1 tmp=c&0x0F;
495 1 tmpc=hextoascii(tmp);
496 1 transc(tmpc);
497 1 transs("\n\r");
498 1 }
499 //-----------------------------------------
500 int hextoascii(int hex2)
501 {
502 1 int tmp1;
503 1 tmp1=hex2;
504 1 if (tmp1 >= 0x0A )
505 1 {
506 2 tmp1 += 0x37;
507 2 }
508 1 else
509 1 {
510 2 tmp1+=0x30;
511 2 }
512 1 return tmp1;
513 1 }
514 void Init_uart()
515 {
516 1 // SCON = 0x50;
517 1 TI = 0x00;
518 1 TMOD = 0x20;
519 1 RCAP2H = 0XFF; //11.0592MHz
520 1 RCAP2L = 0XB8; //the baud rate is the 4800bps
521 1 T2CON = 0x34;
522 1 SCON = 0x52;
523 1 TR2 = 1;
524 1 ET2 = 1;
525 1 EA = 1;
526 1 // TL1 = 0x00;
527 1 // TH1 = 0xF3; //12M 2400
528 1 // TR1 = 0x01;
529 1 }
530
531 void delay(int i)
532 {
533 1 int j1,j2;
534 1 for(j1=0;j1<i;j1++)
535 1 for(j2=0;j2<i;j2++);
536 1 {
537 2 ;
538 2 }
539 1 }
540 /**************************************************************************
541 * 函数原型: void timer0(void);
542 * 功 能: 定时器T0中断服务数函按键扫描
543 /**************************************************************************/
544
545 /*void Timer0(void) interrupt 1 using 1
546 {
547 TR0=0;
548 // 重装定时器T0时间常数
549 TMOD=0x01;
550 TH0=V_TH0;
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 10
551 TL0=V_TL0;
552
553 TR0=1;
554
555 if(++click==4)
556 {
557 click=0;
558 scan_key();
559 }
560 }
561 */
562
563
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 850 ----
CONSTANT SIZE = 3 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 3
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -