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

📄 osd.c

📁 CRT显示器的运行程序
💻 C
📖 第 1 页 / 共 5 页
字号:

#include "mtv212mn32.h"
#include "I2C.h"
#include "osd.h"
#include "gen.h"
#include "intpro.h"
#include "comm.h"
#include "Ic_ctrl.h"
#include "eeprom.h"
#include <intrins.h>




int a;//根据相应寄存器的设定值而定
int b;//根据相应的寄存器的设定值而定
BYTE idata LanguageIndex=0;

BYTE idata ColorTempIndex=0;
BYTE idata OSDIndex=0 ;
BYTE idata cursor;

BYTE data osd[2];
BYTE data Scroll[15];
BYTE data Percent[5];
bit AdjustFlag=0;
bit entermenu=0;
BYTE pdata Showhfr[11];
BYTE pdata Showvfr[10];
unsigned char Adckey_buf;
//extern unsigned char Adckey_buf;
//unsigned char idata CurrentModel=0; 

int maxpre,minper;
unsigned char max,min;
void Show_HFre (BYTE StartX,BYTE StartY,EndX,EndY,BYTE * DisData,BYTE * DisDataA);
void Show_VFre (BYTE StartX,BYTE StartY,EndX,EndY,BYTE * DisData,BYTE * DisDataA);

void ShowParScroll(BYTE StartX,EndX,BYTE *DisData,BYTE *DisDataA);
void ShowParPercent(BYTE StartX,EndX,BYTE *DisData,BYTE *DisDataA);
void CursorXY(BYTE cx,BYTE cy,BYTE Color);
void OsdItem(BYTE x,BYTE ENDx,BYTE y,BYTE z,BYTE *DisData,BYTE *DisDataA,BYTE *DisDataB);
void UpdateOsd(void);
void UpdateOsd1(void);
void UpdateOsd2(void);
void ShowTimingNum(void);
void IcParCtrl(void);
void CloseOsd(void);
void OpenOsd(void);
void Long_Press_Select(void);
void ShowVacancy(BYTE X,EndX,BYTE *DisData);
void ShowUserColor(void);
void MoveCursor1(char delta);
void MoveCursor2(char delta);
void Adjust(void);
void Adjust1(void);
void Adjust2(void);
void RegPercent(void);
void Show_Bright_Menu(void);
void Show_Contrast_Menu(void);
void Show_HVfre_InfoPat(void);
void Show_BurninInfo_Pat(void);
void Show_Info_Win(void);
void Show_Over_Fre(void);
void Show_String(BYTE x, BYTE ENDx, BYTE y, BYTE * DisData);
void Show_Burnin_Time(void);
void	Show_Burnin_Timing(void);
void	Show_Burnin_Pattern(void);
void	Show_Burnin_Hsize(void);
void Key_Scan(void);




void Key_Process(void)
{
   unsigned char oldkey_buf;
   Key_Scan();
   oldkey_buf=Adckey_buf;
   Key_Scan();
   if(oldkey_buf!=Adckey_buf) return;
   if(oldkey_buf==0) return;
   switch(Adckey_buf){
                       case Menu: Flg_Key_Lock=1;
                                  if(cursor==0) ShowMainMenu();
		                             else {if(OSDIndex==2) Adjust2();
                                           if(OSDIndex==1) Adjust1();
                                           if(OSDIndex==0) Adjust();
			                              }                
                                  while(1)
			                        	{
			
			                        	Key_Scan();
			                        	if(Adckey_buf==0)
			                             		{
			                                		miscDelay(50);
			                                 		Key_Scan();
		                                			if(Adckey_buf==0)break;
		                                   		}
		                            		}
		                break;
                          
                        case Up:if (Flg_Key_Lock==0) {Show_Bright_Menu();Flg_Key_Lock=2;}
                                else {if(OSDIndex==0) MoveCursor(1);
			                          if(OSDIndex==1) MoveCursor1(1);
			                          if(OSDIndex==2) MoveCursor2(1);
			                           miscDelay(50);
                                      }
     	                break;

	                	case Down:if (Flg_Key_Lock==0) {Show_Contrast_Menu();Flg_Key_Lock=2;}
			                          else{if(OSDIndex==0) MoveCursor(-1);
			                           if(OSDIndex==1) MoveCursor1(-1);
			                           if(OSDIndex==2) MoveCursor2(-1);
			                           miscDelay(50);
                                       }
	                   	break;

	                	case Exit:if (Flg_Key_Lock==0) { PIN_DEGAUSS=1;
                                                         miscDelay(500);
                                                         PIN_DEGAUSS=0;
                                                        }
            
			                        else {CloseOsd();OSDIndex=0;Flg_Key_Lock=0;}
tab4:
			Key_Scan();
			if(Adckey_buf!=0)goto tab4;
			miscDelay(50);
		break;
		default:
		break;
         }
}
   

void Key_Scan(void)
{
  unsigned char a;
  a=XFR_ADC&0x3f;
  if(a>0x29&&a<0x2f) Adckey_buf=Menu;
  else if(a>0x18&&a<0x1e) Adckey_buf=Up;
  else if(a>0x0a&&a<0x15) Adckey_buf=Down;
  else if(a<0x03) Adckey_buf=Exit;
  else Adckey_buf=0;
}







BYTE code ScrollColor[]={0x77,0x77,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x77,0x77};

BYTE code ScrollColor1[]={0x77,0x77,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x77,0x77};

BYTE code ab[][2]={
	0x00,0x3f,
	0x00,0x3f,
	0x00,0xff,
	0x00,0xff,
	0x00,0xfe,
	0x00,0xfe,
	0x00,0x3f,
	0x00,0xff,
	0x00,0x0f,
	0x00,0xff,
	0x00,0xff,
};

BYTE code ab1[][2]={
	0x00,0x0f,
	0x00,0x1f,
	0x00,0x1f,
	0x00,0x07,
};
BYTE code Num[10][2]={
        0x0a,0x01,
        0x0a,0x02,
        0x0a,0x03,
        0x0a,0x04,
        0x0a,0x05,
        0x0a,0x06,
        0x0a,0x07,
        0x0a,0x08,
        0x0a,0x09,
        0x01,0x0a,
};

BYTE code User[]={
	    0x1f,0x1d,0x0f,0x1c,0x00,0x1e,0x13,0x17,0x13,0x18,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

BYTE code Factory[]={
	    0x10,0x0b,0x0d,0x1e,0x19,0x1c,0x23,0x00,0x1e,0x13,0x17,0x13,0x18,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

BYTE code HVfre_Mode0[]={
	0x00,0x12,0x7c,0x27,0x03,0x01,0x77,0x05,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x07,0x0a,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode1[]={
	0x00,0x12,0x7c,0x27,0x03,0x01,0x77,0x05,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x27,0x06,0x0a,0x77,0x0a,0x26,0x00};	

BYTE code HVfre_Mode2[]={
	0x00,0x12,0x7c,0x27,0x03,0x07,0x77,0x05,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x27,0x07,0x05,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode3[]={
	0x00,0x12,0x7c,0x27,0x04,0x03,0x77,0x03,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x27,0x08,0x05,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode4[]={
	0x00,0x12,0x7c,0x28,0x04,0x06,0x77,0x09,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x07,0x05,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode5[]={
	0x00,0x12,0x7c,0x27,0x05,0x03,0x77,0x07,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x08,0x05,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode6[]={
	0x00,0x12,0x7c,0x28,0x04,0x08,0x77,0x04,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x06,0x0a,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode7[]={
	0x00,0x12,0x7c,0x28,0x06,0x0a,0x77,0x0a,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x07,0x05,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode8[]={
	0x00,0x00,0x00,0x28,0x06,0x08,0x77,0x07,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x08,0x05,0x77,0x0a,0x26,0x00};

BYTE code HVfre_Mode9[]={
	0x00,0x12,0x7c,0x28,0x06,0x03,0x77,0x09,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x06,0x0a,0x77,0x0a,0x26,0x00};

BYTE code ResStr_640X350[]={		// 640X350分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x03,0x05,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_640X377[]={		// 640X377分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x03,0x07,0x07,0x00,0x00,0x00,0x00,0x00};
	
BYTE code ResStr_640X400[]={		// 640X400分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x04,0x00,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_720X350[]={		// 720X350分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x02,0x0a,0x22,0x03,0x05,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_720X400[]={		// 720X400分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x02,0x0a,0x22,0x04,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_640X480[]={		// 640X480分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x04,0x08,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_800X600[]={		// 800X600分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0a,0x0a,0x22,0x06,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_832X624[]={		// 832X624分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x03,0x02,0x22,0x06,0x02,0x04,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1024X768[]={		// 1024X768分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0a,0x02,0x04,0x22,0x07,0x06,0x08,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1024X800[]={		// 1024X800分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0a,0x02,0x04,0x22,0x08,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1120X750[]={		// 1120X750分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x0a,0x22,0x07,0x05,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1152X800[]={		// 1152X800分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x08,0x06,0x04,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1152X864[]={		// 1152X864分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x08,0x06,0x04,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1152X870[]={		// 1152X870分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x08,0x07,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1152X900[]={		// 1152X900分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x09,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1280X720[]={		// 1280X720分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x0a,0x22,0x07,0x02,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1280X960[]={		// 1280X960分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x0a,0x22,0x09,0x06,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1280X1024[]={	// 1280X1024分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x0a,0x22,0x01,0x0a,0x02,0x04,0x00,0x00,0x00,0x00};

BYTE code ResStr_1600X1200[]={	// 1600X1200分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x0a,0x0a,0x22,0x01,0x02,0x0a,0x0a,0x00,0x00,0x00,0x00};

BYTE code ResStr_1792X1344[]={	// 1792X1344分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x09,0x02,0x22,0x01,0x03,0x04,0x04,0x00,0x00,0x00,0x00};

BYTE code ResStr_1856X1392[]={	// 1856X1392分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08,0x05,0x06,0x22,0x01,0x03,0x09,0x02,0x00,0x00,0x00,0x00};

BYTE code ResStr_1920X540[]={		// 1920X540分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x02,0x0a,0x22,0x05,0x04,0x0a,0x00,0x00,0x00,0x00,0x00};

BYTE code ResStr_1920X1440[]={	// 1920X1440分辨率字符串
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x02,0x0a,0x22,0x01,0x04,0x04,0x0a,0x00,0x00,0x00,0x00};

BYTE code ResStr_NewMode[]={		// NEW MODE
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0f,0x21,0x00,0x17,0x19,0x0e,0x0f,0x00,0x00,0x00,0x00,0x00};
	  
/*	显示模式相关的一些参数,数据组织的格式如下:
	行频,场频,行场极性,场幅度控制,分辨率字符串	*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -