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

📄 lcd_main.h

📁 keil c51平台,此代码可用于学习TFT LCD TV 搜台等,(本人自己修改)
💻 H
字号:
// For 24.576MHz crystal
// Timer Freq.      : 24.576MHz / 12 = 2.048MHz -> 0.488us

#if (IRPOLLING)
// Timer0 Period    : (0xffff - 0xfcff) / 2.048 = 375us -> 0.375ms
#define TIME0_COUNTER_LBYTE     0xFF
#define TIME0_COUNTER_HBYTE     0xFC
#else
// Timer0 Period    : (0xffff - 0x63bf) * 0.488us = 20000us -> 20ms
#define TIME0_COUNTER_LBYTE     0xFF
#define TIME0_COUNTER_HBYTE     0x5F
#endif

// Timer1 Period    : (0xffff - 0xf82f) * 0.5us =  1000us ->  1ms
#define TIME1_COUNTER_LBYTE     0xFF
#define TIME1_COUNTER_HBYTE     0xF7
#define TIME1_COUNTER_HHBYTE    0xFB


#define MODE_DETECT_FREQ        8   // Detect Mode every (2 + 1) * 20ms = 60ms
#define VGA_SEARCH_TIMES        3
#define DVI_SEARCH_TIMES        3
#define VIDEO_SEARCH_TIMES      5
#define NO_MODE_TIMES           5
#define NO_COLOR_TIMES          20
#define SYNC_FAIL_TIMES         2

#define STATE_POWERUP           0       // Reserved for system use
#define STATE_SOURCECHANGE      1       // Reserved for system use
#define STATE_MODECHANGE        2       // Reserved for system use
#define STATE_POWERDOWN         3       // Reserved for system use

#define BEGIN_POWERUP           500     // Task State0 Period : (500 - 350) * 20ms = 3sec
#define BEGIN_SOURCECHANGE      500     // Task State0 Period : (500 - 350) * 20ms = 3sec
#define BEGIN_MODECHANGE        350     // Task State1 Period : (350 - 250) * 20ms = 2sec
#define BEGIN_SHOWHINT          250     // Task State2 Period : (250 -   0) * 20ms = 5sec
#define OSD_TO_HINT_DELAY       5       // The delay from OSD window closed to 'No Signal' hint text shown


#ifdef __MAIN__
                           


#if (IRPOLLING)
unsigned char data  ucIR_Cmd[2] = { 0x00, 0x00  };
unsigned char data  ucIR_State  = 0x00;
unsigned char data  ucIR_Seq    = 0xFF;
#endif

// Global Variables
bit bNotify_Timer0_Int  = 0;
bit bNotify_Timer1_Int  = 0;
bit bPower_Status       = 0;    // 1 - ON, 0 - OFF
bit bVpole_Prev         = 0;
bit bHpole_Prev         = 0;
bit bVpole_Curr         = 0;
bit bHpole_Curr         = 0;
bit bStable             = 0;    // 0 - input not stable, 1 - input stable
bit bReload             = 0;    // 1 - reload user's font
bit bFrameSync          = 0;    // 1 - OK , 0 - Fail
bit bOverSpec           = 0;
bit bTVFlag             = 0; 
bit bFreeRun            = 0;
bit bTV_Chanel          = 0;    // 1 - two number , 0 - one number
bit bTV_Autoscan        = 0;    // 1 - enable , 0 - disable
bit bChanel_Show        = 0;    // 1 - enable , 0 - disable
bit bChanel_adj         = 0;    // 1 - chanel enable , 0 - disable
bit bVolume_adj         = 0;    // 1 - volume enable , 0 - disable
bit bBlueScreen         = 0;    // 1 - blue enable , 0 - disable

#if(SOURCE_AUTO_SCAN)
bit bSourceScanEnable   = 0;    // 1 : Start the source auto scan function
                                // 0 : Disable the source auto scan function
#endif

#if (DISP_BIT == DISP_18BIT)
bit bDitherTable        = 0;
bit bDitherToggle       = 0;
#endif

unsigned int    idata   usOSD_Timer = 0;

unsigned char   idata   ucInputSrc  = SOURCE_VGA;   // Used to change input source. You can only set ucInputSrc through
                                                    // Change_Source() outside lcd_main.c
unsigned char   idata   ucSync_Type = SYNC_SS;

unsigned char   idata   ucAV_Mode   = 0;            // AV/S-Video mode, 0x00:Not Detect Frequency
                                                    //                  0x01:NTSC  60 Hz(bit 0)
				                        //                  0x02:PAL   50 Hz(bit 1)
                                                    //                  0x03:SECAM 50 Hz(bit 1)
                                                    // Color standard   0x00/0x10/0x20/0x30/0x40
                                                    //                  0x80 : color unlocked 

unsigned char   idata   ucMode_Curr     = MODE_NOSIGNAL;
unsigned char   idata   ucMode_Found    = MODE_NOSIGNAL;
unsigned char   idata   ucMode_Times    = 0;

unsigned int    idata   usHsync         = 0;
unsigned int    idata   usVsync         = 0;
unsigned int    idata   usStdHS         = 0;
unsigned int    idata   usStdVS         = 0;
unsigned char   idata   ucRefresh       = 0;

unsigned char   idata   ucStatus        = 0;
unsigned char   idata   ucSyncErrorCnt  = 0;

unsigned int    idata   usTaskCnt       = BEGIN_POWERUP;    // For Task State Machine

unsigned char   idata   ucPE_Level      = 0;
unsigned char   idata   ucCE_Value      = 0;
unsigned char   idata   ucI_Code        = 0;
unsigned char   idata   ucP_Corr        = 0;
unsigned char   idata   ucPE_Max        = 0;
unsigned char   idata   ucID_Code       = 0;
unsigned char   idata   ucTimerCounter = 0;
unsigned char   xdata   test_timer          _at_ 0x801;
unsigned char   xdata   test_color          _at_ 0x803;
unsigned char   xdata   fac_bright          _at_ 0x804;
unsigned char   xdata   fac_contrast        _at_ 0x805;
unsigned char   xdata   fac_light           _at_ 0x806;
unsigned char   xdata   test_mode           _at_ 0x807;
unsigned char   xdata   Auto_mode           _at_ 0x808;
unsigned char   xdata   fac_timer           _at_ 0x809;
unsigned char   xdata   ucDebug_Value0      _at_ 0x80a;
unsigned char   xdata   ucDebug_Value1      _at_ 0x80b;
unsigned char   xdata   ucDebug_Value2      _at_ 0x80c;

#if(TV_CHIP != TV_NONE)
unsigned char idata ucTVType = 0;
#endif	

// Function Prototype
void RTD_Test(void);

void PowerDown_ADC(void);
void PowerUp_ADC(void);
void PowerDown_VDC(void);
void PowerUp_VDC(void);
void PowerDown_LVDS(void);
void PowerUp_LVDS(void);

void Set_Panel(unsigned char status);

void ISP_Check_Sum(void);
void Firmware_Init(void);
void Power_Up_Init(void);
void Reset_RTD(void);
void Init_Input_Source(void);
void Free_Background(void);

void Mode_Detector(void);
void Measure_Mode(void);
void Detect_VGA_Mode(void);
void Check_VGA_Mode(void);
void Detect_DVI_Mode(void);
void Check_DVI_Mode(void);
void Detect_Video_Mode(void);
void Check_Video_Mode(void);
void Detect_TV_Mode(void);
void Check_TV_Mode(void);
unsigned char Seek_DVI_Mode(unsigned char mode);

void I2CWrite_TW990X(unsigned char address,unsigned char wdata);
unsigned char I2CRead_TW990X(unsigned char address);
void Reset_TW9905(void);

void Initial_Mode(void);

void Display_VGA_Set(void);
void Display_DVI_Set(void);
void Display_Video_Set(void);
void Set_Video_Mode(void);

void AbortSync(void);
unsigned char TestSync(unsigned int buffer, unsigned char fine);
unsigned char TuneLastLine(void);
unsigned char Frame_Sync(void);

void Delay_Xms(unsigned char x);    // For delay 0 ~ 255 ms

void Change_Source(unsigned char source);
void Reset_Mode(void);

void Set_Task(unsigned char state);
void Run_Task(void);

void OSD_Dispatcher(unsigned char message);

#else   // __MAIN__

extern bit bNotify_Timer1_Int;
extern bit bPower_Status;
extern bit bFrameSync;
extern bit bStable;
extern bit bOverSpec;
extern bit bTVFlag; 
extern bit bFreeRun;
extern bit bTV_Chanel;    // 1 - two number , 0 - one number
extern bit bTV_Autoscan;
extern bit bChanel_Show;
extern bit bChanel_adj;
extern bit bVolume_adj;
extern bit bBlueScreen;

// Public Global Variables
#if (IRPOLLING)
extern unsigned char    data    ucIR_Cmd[2];
extern unsigned char    data    ucIR_State;
extern unsigned char    data    ucIR_Seq;
#endif

extern unsigned int     idata   usOSD_Timer;

extern unsigned char    idata   ucMode_Curr;
extern unsigned char    idata   ucAV_Mode;

extern unsigned char    idata   ucRefresh;
extern unsigned int     idata   usStdHS;
extern unsigned int     idata   usVsync;

extern unsigned char    idata   ucPE_Level;
extern unsigned char    idata   ucPE_Max;
extern unsigned char    idata   ucInputSrc;
extern unsigned char    idata   ucP_Corr;
extern unsigned char    idata   ucI_Code;
extern unsigned char    idata   ucID_Code;
extern unsigned char   xdata   test_timer;
extern unsigned char   xdata   test_color;
extern unsigned char   xdata   fac_bright;
extern unsigned char   xdata   fac_contrast;
extern unsigned char   xdata   fac_light;
extern unsigned char   xdata   test_mode;
extern unsigned char   xdata   Auto_mode;
extern unsigned char   xdata   fac_timer;
extern unsigned char   xdata   ucDebug_Value0;
extern unsigned char   xdata   ucDebug_Value1;
extern unsigned char   xdata   ucDebug_Value2;

#if(TV_CHIP != TV_NONE)
extern unsigned char idata ucTVType;
#endif	

// Function Prototype
extern unsigned char I2CRead_TW990X(unsigned char address);
extern void I2CWrite_TW990X(unsigned char address,unsigned char wdata);
extern void Set_Panel(unsigned char status);

extern void Delay_Xms(unsigned char x);            // For delay 0 ~ 255 ms
extern void Change_Source(unsigned char source);

extern void PowerUp_ADC(void);
extern void RTD_Test(void);

#endif

⌨️ 快捷键说明

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