⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key1.c

📁 T112 MCU源程码,用于T112外接MCU篇程,用来驱动模拟屏
💻 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 + -