📄 key.lst
字号:
674 5 left_right=~left_right;
675 5 if(left_right)
676 5 {
677 6 Dis_Mode=TOP_LEFT;
678 6 }
679 5 else
680 5 {
681 6 Dis_Mode=TOP_RIGHT;
682 6 }
683 5 ///OSD_show
684 5 SET_Dismod();
685 5 break;
686 5 case 1:
687 5 top_down=~top_down;
688 5 if(top_down)
689 5 {
690 6 Dis_Mode=BOTTOM_LEFT;
691 6 }
692 5 else
693 5 {
694 6 Dis_Mode=BOTTOM_RIGHT;
695 6 }
696 5 ///OSD_show
697 5 SET_Dismod();
C51 COMPILER V7.06 KEY 12/05/2006 21:03:11 PAGE 13
698 5 break;
699 5 case 2:
700 5 auto_power=~auto_power;
701 5 break;
702 5 default:
703 5 break;
704 5 }
705 4 }
706 3 break;
707 3 case 3:
708 3 ///退出OSD
709 3 break;
710 3 default:
711 3 break;
712 3 }
713 2 }
714 1 else
715 1 {
716 2 vol_num++;
717 2 if(vol_num>vol_max)
718 2 {
719 3 vol_num=vol_max;
720 3 }
721 2 ////OSD_show
722 2 ////控制音量
723 2 }
724 1 }
725 /***********************************************************************
726 菜单处理程序
727 ***********************************************************************/
728 void MenuEvent(void)
729 {
730 1 if(power_control) //// 待机状态下无效
731 1 break;
*** ERROR C171 IN LINE 731 OF SOURCE\KEY.C: 'break': missing enclosing loop
732 1 else
733 1 {
734 2 power_key_unlock = 0; //// 非待机下清power/avt键锁态
735 2 atv_key_unlock = 0;
736 2 if(!meum_key_unlock) //// menu键在非锁态才有效
737 2 {
738 3 //初始化Tmier0
739 3 Menu_OSD++; //// 菜单界面选择及停止TV搜查
740 3 OSD_open = 1; //// OSD打开标志
741 3 if(source_gate==0) //// 判断锁选择的视频源
742 3 { //// TV
743 4 if(Menu_OSD==1&&(hand_turn|auto_turn)) //// 当当前的是第二个菜单时,并且正在搜查TV
744 4 {
745 5 hand_turn = 0; //// 停止搜查TV
746 5 aotu_turn = 0;
*** ERROR C202 IN LINE 746 OF SOURCE\KEY.C: 'aotu_turn': undefined identifier
747 5 TV_found = 0; //// 但是这里不保存该频道
748 5 Menu_OSD--; //// 返回原值
749 5 ///OSD_show //// tingzi
750 5 }
751 4 else //// 否则,执行菜单切换
752 4 {
753 5 if(Menu_OSD>3) //// 包括空的有4个
754 5 {
755 6 Menu_OSD=0;
756 6 }
757 5 }
C51 COMPILER V7.06 KEY 12/05/2006 21:03:11 PAGE 14
758 4
759 4 }
760 3 else //// AV1/AV2
761 3 {
762 4 if(Menu_OSD==1) //// 当选择了第二个菜单时跳到第三个菜单
763 4 {
764 5 Menu_OSD=2;
765 5 }
766 4 if(Menu_OSD>3)
767 4 {
768 5 Menu_OSD=0;
769 5 }
770 4 }
771 3 //显示相应的菜单 //// 显示相应的菜单,应线确定是否为菜单切换
772 3 }
773 2 if(~(key_data|0xf7)) //// 一直按线,设定在锁态
774 2 meum_key_unlock = 1;
775 2 else
776 2 meum_key_unlock = 0; //// 否则非锁
777 2 }
778 1 }
779 /***********************************************************************
780 AV_TV切换程序
781 ***********************************************************************/
782 void TAvEvent(void)
783 {
784 1
785 1 if(power_control&&(hand_turn|auto_turn)) //// 待机状态下及审查TV时无效
786 1 {
787 2 break;
*** ERROR C171 IN LINE 787 OF SOURCE\KEY.C: 'break': missing enclosing loop
788 2 }
789 1 //初始化Tmier0 //// 重新设置Tmier0,有键动作
790 1 OSD_open = 0; //// 菜单开标志清0
791 1 power_key_unlock = 0; //// 清楚相应键锁态
792 1 meum_key_unlock = 0;
793 1 if(!atv_key_unlock) //// 在非锁态执行下面步骤
794 1 {
795 2 source_gate++; //// 通道循环加
796 2 if(source_gate>2) //// 最多3路通道
797 2 {
798 3 source_gate=0;
799 3 }
800 2 //“关屏” //// 首先关屏?,
801 2 //写T112选择相应的通道 //// 选择相应设置通道
802 2 //显示通道OSD //// 显示相应通道OSD(右上角)
803 2 //“开屏” //// 开屏
804 2 }
805 1 if(~(key_data|0xbf)) //// 判断键是否放开
806 1 atv_key_unlock = 1; //// 没有,锁住键
807 1 else
808 1 atv_key_unlock = 0; //// 有,放开键
809 1 }
810 /***********************************************************************
811 电源键处理程序
812 ***********************************************************************/
813 void PowerEvent(void)
814 { //// 待机,应初始化相应的参数,以便再开机初始化
815 1 //禁止Tmier0
816 1 OSD_open = 0; //// OSD没开
817 1 Menu_OSD = 0; //// 菜单回到0
818 1 meum_key_unlock = 0;
C51 COMPILER V7.06 KEY 12/05/2006 21:03:11 PAGE 15
819 1 atv_key_unlock = 0;
820 1 hand_turn = 0; //// 手动搜查禁止
821 1 auto_turn = 0; //// 自动搜查禁止
822 1 if(!power_key_unlock) //// 该键是否锁住
823 1 {
824 2 power_control = ~power_control; //// 不是,控制电源
825 2 }
826 1 if(~(key_data|0xfe)) //// 再读该键是否还按下
827 1 power_key_unlock = 1; //// 是,锁住
828 1 else
829 1 power_key_unlock = 0; //// 不是,开锁
830 1 }
831
832 /***********************************************************************
833 键盘扫描程序
834 ***********************************************************************/
835 void key_scan(void)
836 {
837 1 oldkey = key_data&0x7f; ////读键值
838 1 twdDelay1(1800); ////延时20ms,防振,时间应根据实际相应调整
839 1 oldkey = key_data&0x7f; ////再读值
840 1 if((oldkey=newkey) && (newkey!=0x7f)) ////两次读写值相等,并有键按下
841 1 {
842 2 switch(newkey)
843 2 {
844 3 case 0x7e:
845 3 PowerEvent();
846 3 break;
847 3 case 0x7d:
848 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -