📄 main.lst
字号:
539 3 break;
540 3 default: break;
541 3 }
542 2 break;
543 2 case 1: // 按键:修改
544 2 delay_time = 0;
545 2 vertical = horizontal = 0;
546 2 switch( SCREEN )
547 2 {
548 3 case 0 : // 进入修改状态
549 3 SCREEN=1;
550 3 modifying=1;
C51 COMPILER V7.20 MAIN 11/15/2005 18:46:56 PAGE 10
551 3 confirm_down=1;
552 3 break;
553 3 case 1 : break;
554 3 case 10: time_modify = 0; break;
555 3 case 20: alarm_modify = 0; break;
556 3 case 30: DAC0_modify = 0; DAC1_modify = 0; break;
557 3 case 40: SPEED_modify = 0; break;
558 3 case 50: break;
559 3 case 60: break;
560 3 default: break;
561 3 }
562 2 break;
563 2 case 6: // 按键:返回
564 2 delay_time = 0;
565 2 flag=!flag; CarStop( ); Start = 0; Stop = 0;
566 2 /* if ( flag )
567 2 {
568 2 // LED_OUT_ACT( ); // Enable LED
569 2 // ALARM_ACT( ); // Enable Alarm
570 2
571 2 LED_OUT_INACT( ); // Disable LED
572 2 ALARM_INACT( ); // Disable Alarm
573 2 }
574 2 else
575 2 {
576 2 LED_OUT_INACT( ); // Disable LED
577 2 ALARM_INACT( ); // Disable Alarm
578 2 }
579 2 */ break;
580 2 default: break;
581 2 }
582 1 keycode = 0;
583 1
584 1 //---------------------------------------------------------------
585 1 // 超过15秒无修改,返回初始屏
586 1 if( modifying )
587 1 {
588 2 time_now = time_buf[0]%10;
589 2 if( time_now^time_old ) delay_time++;
590 2 time_old = time_now;
591 2 if( delay_time>15 ) // 模拟按下确认键, 不进行任何修改
592 2 {
593 3 vertical=horizontal=0;
594 3 SCREEN = 0;
595 3 confirm_down = 1;
596 3 modifying = 0;
597 3 delay_time = 0;
598 3
599 3 LED_OUT_INACT( ); // Disable LED
600 3 ALARM_INACT( ); // Disable Alarm
601 3 }
602 2 }
603 1
604 1 //---------------------------------------------------------------
605 1 // 一秒钟所计数数目
606 1 if( time_now == time_old1 ) second_count++;
607 1 else
608 1 {
609 2 Write12C887RAM( SECOND_COUNT_RANGE, second_count ); // 存入一秒钟所计数数目
610 2 second_count = 0;
611 2 flag_s = 1; // 秒标志置位
612 2 }
C51 COMPILER V7.20 MAIN 11/15/2005 18:46:56 PAGE 11
613 1 time_old1 = time_now;
614 1
615 1 // 半秒钟标志处理
616 1 if( flag_s )
617 1 {
618 2 halfsecond_count++;
619 2 if( halfsecond_count == Read12C887RAM( SECOND_COUNT_RANGE )/2 )
620 2 {
621 3 flag_s = 0;
622 3 halfsecond_count = 0;
623 3 }
624 2 }
625 1 }
626
627 //=================================================================================================
628 // 显示 子程序
629 //=================================================================================================
630 //
631 void Display( void )
632 {
633 1 unsigned char i;
634 1
635 1 Read12C887 ( time_buf ); // 读取系统时间
636 1
637 1 TEMPER = GetTemperature ( ); // 取得片内温度
638 1
639 1 //-----------------------------------------------------
640 1 // LED glitter
641 1 if( LED_Glitter_Enable && !LED_Glitter_Disable )
642 1 {
643 2 if( flag_s ) LED_OUT_ACT( );
644 2 if( !flag_s ) LED_OUT_INACT( );
645 2 }
646 1 else if( !LED_Glitter_Enable && LED_Glitter_Disable )
647 1 {
648 2 LED_Glitter_Enable = LED_Glitter_Disable = 0;
649 2 LED_OUT_INACT( );
650 2 }
651 1
652 1 //-------------------------------------------
653 1 // 前方的光电传感器取值, 因白炽灯有 50Hz 的公频, 所以需要滤波
654 1 // 相应操作: 取 8 次平均值
655 1 // 左边光电传感器
656 1 tempshort = 0;
657 1 for( i=0; i<16; i++ )
658 1 {
659 2 LightLeft = ADConvert0( 1 , 0 );
660 2 tempshort += LightLeft;
661 2 }
662 1 LightLeft = tempshort/16; // LightLeft = _iror_( tempshort, 3 );
663 1
664 1 // 中央光电传感器
665 1 tempshort = 0;
666 1 for( i=0; i<16; i++ )
667 1 {
668 2 LightCenter = ADConvert0( 0 , 0 );
669 2 tempshort += LightCenter;
670 2 }
671 1 LightCenter = tempshort/16; // LightCenter = _iror_( tempshort, 3 );
672 1
673 1 // 右边光电传感器
674 1 tempshort = 0;
C51 COMPILER V7.20 MAIN 11/15/2005 18:46:56 PAGE 12
675 1 for( i=0; i<16; i++ )
676 1 {
677 2 LightRight = ADConvert0( 2 , 0 );
678 2 tempshort += LightRight;
679 2 }
680 1 LightRight = tempshort/16; // LightRight = _iror_( tempshort, 3 );
681 1
682 1 //-------------------------------------------
683 1 //
684 1 Voltage = ADConvert0( 6 , 0 ); // 5V
685 1 DriverVoltage = ADConvert0( 7 , 0 ); // 10V
686 1 DriverVoltage /= 9; // 校正
687 1
688 1 Flag_Center = Center; // 检测中央光电状态: "0" -- 中央, "1" -- 偏离
689 1
690 1 //-----------------------------------------------------
691 1 // LCD
692 1 if( SCREEN )
693 1 {
694 2 DisplayNumber( 0, 8*0, time_buf[5]/10 ); // 月/日
695 2 DisplayNumber( 0, 8*1, time_buf[5]%10 );
696 2 DisplayNumber( 0, 8*2, 16 );
697 2 DisplayNumber( 0, 8*3, time_buf[4]/10 );
698 2 DisplayNumber( 0, 8*4, time_buf[4]%10 );
699 2 DisplayNumber( 0, 8*5, 78 ); // (星期 )
700 2 DisplayNumber( 0, 8*6, time_buf[3] );
701 2 DisplayNumber( 0, 8*7, 79 );
702 2 DisplayNumber( 0, 8*8, time_buf[2]/10 ); // 时:分:秒 ( 带闪烁 )
703 2 DisplayNumber( 0, 8*9, time_buf[2]%10 );
704 2 if( flag_s )DisplayNumber( 0, 8*10,17 );
705 2 else DisplayNumber( 0, 8*10,77 );
706 2 DisplayNumber( 0, 8*11,time_buf[1]/10 );
707 2 DisplayNumber( 0, 8*12,time_buf[1]%10 );
708 2 if( flag_s )DisplayNumber( 0, 8*13,17 );
709 2 else DisplayNumber( 0, 8*13,77 );
710 2 DisplayNumber( 0, 8*14,time_buf[0]/10 );
711 2 DisplayNumber( 0, 8*15,time_buf[0]%10 );
712 2 };
713 1
714 1 if( confirm_down ) // 清屏
715 1 {
716 2 confirm_down = 0;
717 2 LCDInit ( );
718 2 LCDClear ( );
719 2 }
720 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -