📄 mtv335 initial.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 + -