📄 key1.c
字号:
#include <reg51.h>
#include "common.h"
#include "TwoWire.h"
#include "OSDDROW.H"
#include "T112OSD.H"
#include "DEF.H"
#include "T101_Util.H"
#include "timer0.h"
#include "e2prom.h"
#include "top18.h"
extern bit OSD_open;
extern bit ntsc_flag;
extern bit OSD_open;
extern uCHAR Pauto;
extern unsigned long idata m_wTimer0Cnt;
extern uCHAR auto_flag;
extern code unsigned char *page1_Fonts[];
extern uchar row_num;
uchar oldkey;
uchar newkey;
uchar menu_num;
uCHAR bright;
uCHAR comp;
uCHAR color;
uCHAR VOL;
/*
void choose_av(void)
{
switch(VOL)
{
case 0:
AV1=0;
AV2=1;
AV3=1;
AV4=1;
break;
case 1:
AV1=1;
AV2=0;
AV3=1;
AV4=1;
break;
case 2:
AV1=1;
AV2=1;
AV3=0;
AV4=1;
break;
case 3:
AV1=1;
AV2=1;
AV3=1;
AV4=0;
break;
}
}
*/
/*****************************************************************************/
void MenuEvent(void)
{
if(!ntsc_flag)
{
menu_num++;
if(menu_num>4)
menu_num=0;
switch(menu_num)
{
case 1:
OSD_open=1;
DRWA_VOL(bright,adjust_max);
break;
case 2:
DRWA_VOL(comp,adjust_max);
break;
case 3:
DRWA_VOL(color,adjust_max);
break;
case 4:
OSDShowpage1();
break;
case 0:
OSDExit();
break;
}
while(~(key_data|0x0d))//0xfb))
{
if(m_wTimer0Cnt==800)
{
OSDShowpage2();
ntsc_flag=1;
menu_num=0;
}
}
}
else
{
row_num++;
if(row_num>2)
row_num=0;
switch(row_num)
{
case 0:
OSDShowLine(page1_Fonts[4],0,1,0x06,21);
break;
case 1:
OSDShowLine(page1_Fonts[5],0,1,0x06,21);
break;
case 2:
OSDShowLine(page1_Fonts[9],0,1,0x06,21);
break;
}
while(~(key_data|0x0d))//0xfb))
{}
}
}
/*
void NuBu_set(void)
{
switch(row_num)
{
case 0:
if(ntsc==0)
ntsc=1;
else
ntsc=0;
if(ntsc==0)
OSDShowLine(page1_Fonts[8],15,1,0x06,21);
else
OSDShowLine(page1_Fonts[7],15,1,0x06,21);
break;
case 1:
if(pal==0)
pal=1;
else
pal=0;
if(pal==0)
OSDShowLine(page1_Fonts[8],15,1,0x06,21);
else
OSDShowLine(page1_Fonts[7],15,1,0x06,21);
break;
case 2:
if(Tauto==0)
Tauto=1;
else
Tauto=0;
if(Tauto==0)
OSDShowLine(page1_Fonts[8],15,1,0x06,21);
else
OSDShowLine(page1_Fonts[7],15,1,0x06,21);
break;
}
}
*/
/*****************************************************************************/
void Key_upEvent(void)
{
//if(!power_control)
//return;
if((OSD_open==1)&&(menu_num!=0)&&(ntsc_flag!=1))
{
switch(menu_num) //// 不同的调节项,调节不同
{
case 1: //// 调节项1:亮度
bright++;
if(bright>adjust_max)
{
bright=adjust_max;
}
I2CWriteByte(0x50,0x69,bright*4); //// 写T112
DRWA_VOL(bright,adjust_max);
break;
case 2: //// 调节项2:对比度
comp++;
if(comp>adjust_max)
{
comp=adjust_max;
}
I2CWriteByte(0x50,0x68,comp*4); //// 写T112
DRWA_VOL(comp,adjust_max);
break;
case 3: //// 调节项3:色度
color++;
if(color>adjust_max)
{
color=adjust_max;
}
I2CWriteByte(0x50,0x6c,color*4); //// 写T112
DRWA_VOL(color,adjust_max);
break;
case 4:
if(Pauto==0)
Pauto=1;
else
Pauto=0;
if(Pauto==0)
OSDShowLine(page1_Fonts[8],18,1,0x06,28);
else
OSDShowLine(page1_Fonts[7],18,1,0x06,28);
break;
default:
break;
}
}
else if(!ntsc_flag)
{
VOL++;
if(VOL>3)
VOL=0;
OSDShowSource(VOL);
// choose_av();
while(~(key_data|0x07))
{}
}
}
/*******************************************************************************************/
void Key_downEvent(void)
{
//if(!power_control)
//return;
if((OSD_open==1)&&(menu_num!=0)&&(ntsc_flag!=1))
{
switch(menu_num) //// 不同的调节项,调节不同
{
case 1: //// 调节项1:亮度
if(bright==0)
{
bright=0;
}
else
bright--;
I2CWriteByte(0x50,0x69,bright*4); //// 写T112
DRWA_VOL(bright,adjust_max);
break;
case 2: //// 调节项2:对比度
if(comp==0)
{
comp=0;
}
else
comp--;
I2CWriteByte(0x50,0x68,comp*4); //// 写T112
DRWA_VOL(comp,adjust_max);
break;
case 3: //// 调节项3:色度
if(color==0)
{
color=0;
}
else
color--;
I2CWriteByte(0x50,0x6c,color*4); //// 写T112
DRWA_VOL(color,adjust_max);
break;
case 4:
if(Pauto==0)
Pauto=1;
else
Pauto=0;
if(Pauto==0)
OSDShowLine(page1_Fonts[8],18,1,0x06,28);
else
OSDShowLine(page1_Fonts[7],18,1,0x06,28);
break;
default:
break;
}
}
else if(!ntsc_flag)
{
if(VOL==0)
VOL=3;
else
VOL--;
OSDShowSource(VOL);
// choose_av();
while(~(key_data|0x0b))//0xf7))
{}
}
}
/***********************************************************************
键盘扫描程序
***********************************************************************
void key_scan(void)
{
oldkey = key_data&0x1c; ////读键值
twdDelay1(120); ////延时20ms,防振,时间应根据实际相应调整
newkey = key_data&0x1c; ////再读值
if((oldkey==newkey)&&(newkey!=0x1c)) ////两次读写值相等,并有键按下
{
Timer0Start();
switch(newkey)
{
case 0x18:
MenuEvent();
break;
case 0x14:
Key_downEvent();
break;
case 0x0c:
Key_upEvent();
break;
default: break;
}
write_set();
}
}*/
/***********************************************************************
键盘扫描程序
***********************************************************************/
void key_scan(void)
{
oldkey = key_data&0x0f; ////读键值
twdDelay1(120); ////延时20ms,防振,时间应根据实际相应调整
newkey = key_data&0x0f; ////再读值
if((oldkey==newkey)&&(newkey!=0x0f)) ////两次读写值相等,并有键按下
{
Timer0Start();
twdDelay1(10);
switch(newkey)
{
case 0x0d:
MenuEvent();
break;
case 0x0b:
Key_downEvent();
break;
case 0x07:
Key_upEvent();
break;
default: break;
}
write_set();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -