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

📄 mtv335 initial.c

📁 MTV335datasheet和参考代码。供大家参考
💻 C
字号:
#include "cpu8052.h"
#include "define.h"

void delay_time(Word delay_count);

#define	IS24C08_ID	0xA0
#define DELAY_CNT	50

void show_message(Byte index,Word x, Word y, char mesg[],Byte Ctrl);
void delay_time(Word delay_count);
void WrToMTV335(Byte addr,Byte da);
void initial_mtv335();
//Byte remote_control_30Mhz();
extern	Byte 	XDATA	NTSC;
sbit SDA	= P2^4;
sbit SCL	= P2^3;
sbit LCD_ON = P0^2;

#define	mtv335_ID	0x6A	   //[mtv335]
Byte RDATA mtv335Table[]={
    0x00,0x32,0x18,0x40,0x00,0x00,0x00,0x10,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,	//   0-  15 (0-F)
    0x17,0x06,0x01,0x06,0xFF,0xFF,0x08,0x08,0x33,0x01,0xFF,0xFF,0x06,0x05,0xFF,0xFF,	//  16-  31 (10-1F)
    0x7f,0x7f,0x7f,0x12,0x01,0xFF,0xFF,0xFF,0x24,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,	//  32-  47 (20-2F)
    0x00,0x01,0xFF,0x01,0x22,0x02,0x04,0x02,0x2f,0x02,0x10,0x02,0x18,0x02,0x25,0x02,	//  48-  63 (30-3F)
    0xE2,0x00,0x0A,0x01,0x13,0x01,0x1F,0x01,0x1d,0x00,0x1E,0x00,0x1D,0x00,0x01,0x00,	//  64-  79 (40-4F)
    0x19,0x00,0xF0,0x00,0xF0,0x00,0x1D,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,	//  80-  95 (50-5F)
    0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0x02,0x00,0x00,0x00,0x00,0xE0,0x01,	//  96- 111 (60-6F)
    0x1E,0x29,0x31,0x38,0x3E,0x43,0x48,0x4C,0x51,0x55,0x58,0x5C,0x5F,0x63,0x66,0x69,	// 112- 127 (70-7F)
    0x6C,0x6E,0x71,0x74,0x76,0x79,0x7B,0x7E,0x80,0x83,0x85,0x87,0x89,0x8B,0x8D,0x8F,	// 128- 143 (80-8F)
    0xFF,0x15,0xB8,0x15,0xB8,0x15,0xB8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,	// 144- 159 (90-9F)
    0x03,0x00,0x00,0x77,0x97,0x77,0x77,0x02,0xC0,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};	// 160- 175 (A0-AF)


Byte RDATA mtv335Table4_3[]={
    0x00,0x32,0x18,0x40,0x00,0x00,0x00,0x10,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,	//   0-  15 (0-F)
    0x16,0x07,0x01,0x03,0xFF,0xFF,0x08,0x08,0x33,0x01,0xFF,0xFF,0x06,0x06,0xFF,0xFF,	//  16-  31 (10-1F)
    0x80,0x80,0x80,0x00,0x00,0xFF,0xFF,0xFF,0x04,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,	//  32-  47 (20-2F)
    0x01,0x01,0xFA,0x01,0x05,0x02,0xF0,0x01,0x09,0x00,0xF5,0x01,0x00,0x02,0x0A,0x02,	//  48-  63 (30-3F)
    0x7A,0x01,0x82,0x01,0x13,0x01,0x1F,0x01,0x10,0x00,0x07,0x00,0x51,0x00,0x01,0x00,	//  64-  79 (40-4F)10 14 13
    0x1B,0xC0,0xF0,0x00,0xF0,0x00,0x20,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,	//  80-  95 (50-5F)
    0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCF,0x02,0x00,0x00,0x00,0x00,0x62,0x01,	//  96- 111 (60-6F)62 68
    0x1E,0x29,0x31,0x38,0x3E,0x43,0x48,0x4C,0x51,0x55,0x58,0x5C,0x5F,0x63,0x66,0x69,	// 112- 127 (70-7F)
    0x6C,0x6E,0x71,0x74,0x76,0x79,0x7B,0x7E,0x80,0x83,0x85,0x87,0x89,0x8B,0x8D,0x8F,	// 128- 143 (80-8F)
    0xFF,0x15,0xB8,0x15,0xB8,0x15,0xB8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,	// 144- 159 (90-9F)
    0x03,0x00,0x00,0x77,0x97,0x77,0x77,0x02,0xC0,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};	// 160- 175 (A0-AF)
			   



//extern	Byte	XDATA	ir_custcode1,ir_custcode2,ir_datacode1,ir_datacode2;
//extern	Byte	RDATA	KEY_ID[16], CMD_ID[16];

void EEPROM_Delay()
{
	Byte	i;

	for(i=0; i<DELAY_CNT; i++);
}

void StartBit()
{
	SCL = 0;
	SDA = 1;
	EEPROM_Delay();
	EEPROM_Delay();
	SCL = 1;
	EEPROM_Delay();
	SDA = 0;	
	EEPROM_Delay();
	SCL = 0;
	EEPROM_Delay();
}

void StopBit()
{
	SCL = 0;
	SDA = 0;
	EEPROM_Delay();	
	SCL = 1;
	EEPROM_Delay();
	SDA = 1;	
	EEPROM_Delay();
	//SCL = 0;
	//EEPROM_Delay();
}

void WrData(Byte da)
{
	Byte	i;

	for (i=0; i<8; i++)
	{
		SCL = 0;
		EEPROM_Delay();
		if (da & 0x80)
			SDA = 1;
		else
			SDA = 0;
		EEPROM_Delay();
		SCL = 1;

		da = (da<<1);
     	EEPROM_Delay();
	}
	SCL = 0;
	EEPROM_Delay();
}

Bit ReceiveAck()
{
	Bit val;

	SDA = 1;
	EEPROM_Delay();
	SCL = 1;
	EEPROM_Delay();
	val = SDA;
	SCL = 0;
	EEPROM_Delay();

	return (val);
}

void WrToEEPROM(Byte addr,Byte da)
{
	Byte	i;

	for(i=0; i<3; i++)
	{
		StartBit();
		WrData(IS24C08_ID & 0xfe);
		if( ReceiveAck() ) continue;
		WrData(addr);
		if( ReceiveAck() ) continue;
		WrData(da);
		if( ReceiveAck() ) continue;
		StopBit();
	
	 	return;
	}

	//show_message(0,336,32,"Write EEPROM Fail!",1);
	//delay_time(100);
}

Byte RdData()
{
   	Byte	i, da;

	da = 0;
	SCL = 0;
	SDA = 1;
	EEPROM_Delay();
	for (i=0; i<8; i++)
	{
		da = (da<<1);		
		SCL = 1;
		EEPROM_Delay();
		if (SDA)
			da |= 1;
		SCL = 0;
		EEPROM_Delay();
	}
	SCL = 1;
	EEPROM_Delay();
	SCL = 0;
	EEPROM_Delay();

	return (da);
}

Byte RdFromEEPROM(Byte addr)	// Random Access Read
{
	Byte	i, da;

	for(i=0; i<3; i++)
	{
		StartBit();
    	WrData(IS24C08_ID & 0xfe);
    	if( ReceiveAck() ) continue;
    	WrData(addr);
    	if( ReceiveAck() ) continue;
		StartBit();
    	WrData(IS24C08_ID + 0x1);   // read
    	if( ReceiveAck() ) continue;
		da = RdData();
    	StopBit();
		
		return (da);
	}
//	show_message(0,336,32,"Read EEPROM Fail!",1);
//	delay_time(200);
	return (0x00);
}


#define SETTING_NUM		12
Byte	XDATA	SYS_SETTING[SETTING_NUM];
extern	Byte	XDATA	FileDescription;
extern	Byte	XDATA	DisplayMode;
extern	Byte	XDATA	LanguageSel;
extern	Byte	XDATA	FileType;
extern	Word	XDATA	slide_speed;
extern	Byte	XDATA	Alarm_Hour, Alarm_Min, Alarm_PM_nAM, Alarm_Set;
void Get_Setting(Byte addr)
{	
	Byte	i;

	for (i=0; i<SETTING_NUM; i++)
	{
		SYS_SETTING[i]=RdFromEEPROM(addr);
		addr = addr + 1;
	}
}

void Save_Setting(Byte addr)
{
	Byte	i;

	SYS_SETTING[0] = 0x5A;
	SYS_SETTING[1] = 0xA5;
	SYS_SETTING[2] = FileDescription;
	SYS_SETTING[3] = LanguageSel;
	SYS_SETTING[4] = 1;//FileType;	 //[hide AVI]
	SYS_SETTING[5] = (Byte)(slide_speed >> 8);
	SYS_SETTING[6] = (Byte)(slide_speed & 0xFF);
	SYS_SETTING[7] = DisplayMode;
	SYS_SETTING[8] = Alarm_Hour;
	SYS_SETTING[9] = Alarm_Min;
	SYS_SETTING[10] = Alarm_PM_nAM;
	SYS_SETTING[11] = Alarm_Set;

	for (i = 0; i < SETTING_NUM; i++)
	{
		WrToEEPROM(addr, SYS_SETTING[i]);
		addr = addr + 1;
		delay_time(3);
	}
}

// return 1 if exist.
Byte Check_EEPROM_Exist()
{
	Byte	i, addr;
	Byte	tmp[16];
	
	addr = 64;
	for (i = 0; i < 16; i++)
	{
		WrToEEPROM(addr, i);
		addr = addr + 1;
		delay_time(3);
	}

	addr = 64;
	for (i = 0; i < 16; i++)
	{
		tmp[i] = RdFromEEPROM(addr);
		addr = addr + 1;

		if (tmp[i] != i)
			return 0;
	}

	return 1;
}
/* move to functions.c
Byte remote_control_30Mhz_custom(Word custom)
{
	Word	ir_customcode;
	Byte	i;

	remote_control_30Mhz();
	ir_customcode = ((Word)ir_custcode1 << 8) | ir_custcode2;
//	if (ir_customcode == custom) return ir_datacode1;
//	else if (ir_datacode1 == 0xFF)	return 0xFF;
//	else return 0;
	// modified by Jerry 2004.09.15
	if (ir_customcode == custom)
	{
		for (i = 0; i < 16; i++)
			if (ir_datacode1 == KEY_ID[i])	return CMD_ID[i];
	}
	else if (ir_datacode1 == 0xFF)	return 0xFF;

	return 0;
	//
}
*/

//////////////////////////////  MTV335  ////////////////////////////////////
void initial_mtv335()
{

	    Byte i,address,mtvdata;

	if(NTSC)
	{

		LCD_ON=1;
	    address=0x00;
    	for(i=0; i<176; i++)		 
	   {

		mtvdata=mtv335Table[i];
		WrToMTV335(address,mtvdata);
		address++;

	   }
	   	LCD_ON=0;
    }
	  

	else
	{ 
		LCD_ON=1;
	   	address=0x00;
    	for(i=0; i<176; i++)	  
	   {

		mtvdata=mtv335Table4_3[i];
		WrToMTV335(address,mtvdata);
		address++;

	   }
	   	LCD_ON=0;

    }

}	 

void WrToMTV335(Byte addr,Byte da)
{
	Byte	i;

	for(i=0; i<3; i++)
	{
		StartBit();
		WrData(mtv335_ID);
		if( ReceiveAck() ) continue;
		WrData(addr);
		if( ReceiveAck() ) continue;
		WrData(da);
		if( ReceiveAck() ) continue;
		StopBit();
	 	return;
	}

}

⌨️ 快捷键说明

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