📄 top18.c
字号:
/*******************************************************************/
sbit P_SCK = P1^0; //I2C总线时钟线
sbit P_SDA = P1^1; //I2C总线数据线
sbit RESETB = P3^4;
sbit PDN = P3^5;
sbit SCEN = P0^1;
sbit SDA = P1^1;
sbit SCL = P1^0;
/*******************************************************************************************************************
Tpg051驱动程序
*******************************************************************************************************************/
/*******************************************************************
写TPG051寄存器子函数
函数原型: void WriteTPG051(uchar SAdd,uchar SData)
功能: 向TPG051中的指定寄存器写入相应的数据
说明: SAdd:寄存器地址; SData:要写入的数据
********************************************************************/
void WriteTPG051(uchar SAdd,uchar SData)
{
uint SBuffer,SBit;
uchar i,j;
SBuffer=SAdd;
SBuffer=( SBuffer << 10 ) | ( 1 << 8 ) | SData; //将地址、数据组合成16b
SCEN=0; //CS=0
for(i=0;i<=15;i++) //16位数据的传送
{
SCL=0;
SBit=SBuffer >> (15 - i);
SBit = SBit & 0x0001;
if ( SBit !=0 )
{
SDA=1; //"1"
}
else
{
SDA=0; //"0"
}
SCL=1;
for(j=0;j++;j<100) ; //Delay
} // Delay1ms(100);
SCL=0; //空闲状态的值
SDA=0;
SCEN=1;
Delay_10us();
}
/*********************************************************************/
void Initial_TPG051(void)
{
SCL=0; //空闲状态的值
SDA=0;
SCEN=1;
WriteTPG051( 0x02, 0x6d);
WriteTPG051( 0x03, 0x02);
WriteTPG051( 0x05, 0x10); //for 2.5inch TPG051 COG: 0x05 should set to 0x2B; for 3.6, set to 0x2F
WriteTPG051( 0x04, 0x0f);
WriteTPG051( 0x14, 0x40); //Panel Gamma setting
WriteTPG051( 0x15, 0x55);
WriteTPG051( 0x16, 0x55);
WriteTPG051( 0x17, 0x35);
WriteTPG051( 0x18, 0x88);
}
/***************************************************************************
***************************************************************************/
void main(void)
{
PDN=1;
RESETB=1;
Init_5150();
Initial_TPG051();
SDA=0;
SCL=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -