高级会员
主题
回帖0
积分1684
阅读权限30
注册时间2015-6-10
最后登录1970-1-1
在线时间 小时
|
能指导一下是哪一条指令后开始显示的不?
void ST7529_Init( void )
{
SendString("ST7529 Init Start!\n");
Write( COMMAND, 0x30 ); //Ext = 0
SendString("COMMAND, 0x30\n");
Write( COMMAND, 0x94 ); //Sleep Out
SendString("COMMAND, 0x94\n");
Write( COMMAND, 0xD1 ); //OSC On
SendString("COMMAND, 0xD1\n");
Write( COMMAND, 0x20 ); //Power Control Set
SendString("COMMAND, 0x20\n");
Write( DATA, 0x08 ); //Booster Must Be On First
SendString("DATA, 0x08\n");
Delay1ms();
Write( COMMAND, 0x20 ); //Power Control Set
SendString("COMMAND, 0x20\n");
Write( DATA, 0x0B ); //Booster, Regulator, Follower ON
SendString("DATA, 0x0B\n");
Write( COMMAND, 0x81 ); //Electronic Control
SendString("COMMAND, 0x81\n");
Write( DATA, 0x04 ); //Vop=14.0V MAX=0x3F
SendString("DATA, 0x04\n");
Write( DATA, 0x04 ); //MAX=0x07
SendString("DATA, 0x04\n");
Write( COMMAND, 0xCA ); //Display Control
SendString("COMMAND, 0xCA\n");
Write( DATA, 0x00 ); //CL=X1
SendString("DATA, 0x00\n");
Write( DATA, 0x27 ); //Duty=160
SendString("DATA, 0x27\n");
Write( DATA, 0x00 ); //FR Inverse-Set Value
SendString("DATA, 0x00\n");
Write( COMMAND, 0xA6 ); // Normal Display
SendString("COMMAND, 0xA6\n");
Write( COMMAND, 0xBB ); //COM Scan Direction
SendString("COMMAND, 0xBB\n");
Write( DATA, 0x02 ); // 0->79 80->159
SendString("DATA, 0x02\n");
Write( COMMAND, 0xBC ); //Data Scan Direction
SendString("COMMAND, 0xBC\n");
Write( DATA, 0x00 ); //Normal MAX=0x07
SendString("DATA, 0x00\n");
Write( DATA, 0x00 ); //RGB Arrangement
SendString("DATA, 0x00\n");
//Write( DATA, 0x01 ); //32 gray-scale 2Byte 3Pixel mode
Write( DATA, 0x02 ); //32 gray-scale 3Byte 3Pixel mode
SendString("DATA, 0x02\n");
Write( COMMAND, 0x75 ); //Line Address Set
SendString("COMMAND, 0x75\n");
Write( DATA, 0x00 ); //Start Line=0
SendString("DATA, 0x00\n");
Write( DATA, 0x9F ); //End Line =159
SendString("DATA, 0x9F\n");
Write( COMMAND, 0x15 ); //Column Address Set
SendString("COMMAND, 0x15\n");
Write( DATA, 0x00 ); //Start Column=0
SendString("DATA, 0x00\n");
Write( DATA, 0x54 ); //End Column =84
SendString("DATA, 0x54\n");
Write( COMMAND, 0x31 ); //Ext = 1
SendString("COMMAND, 0x31\n");
Write( COMMAND, 0x32 ); //Analog Circuit Set
SendString("COMMAND, 0x32\n");
Write( DATA, 0x00 ); //OSC Frequency =000 (Default)
SendString("DATA, 0x00\n");
Write( DATA, 0x01 ); //Booster Efficiency=01(Default)
SendString("DATA, 0x01\n");
Write( DATA, 0x00 ); //Bias=1/14
SendString("DATA, 0x00\n");
Write( COMMAND, 0x34 ); //Software Initial
SendString("COMMAND, 0x34\n");
//ReadEEPROM(); //Read EEPROM Flow
//DisplayTest();
Write( COMMAND, 0x30 ); //Ext = 0
SendString("COMMAND, 0x30\n");
Write( COMMAND, 0xAF ); //Display On
SendString("COMMAND, 0xAF\n");
SendString("ST7529 Init End!\n");
}
void DisplayTest( )
{
unsigned char i, j;
Write( COMMAND, 0x30 ); // Ext = 0
Write( COMMAND, 0x15 ); // Column address set
Write( DATA, 0x00 ); // From column0 to column254
Write( DATA, 0x54 );
Write( COMMAND, 0x75 ); // Page address set
Write( DATA, 0x00 ); // From line0 to line159
Write( DATA, 0x9F);
Write( COMMAND, 0x5C ); // Entry Memory Write Mode
for( j = 0; j < 160 ; j++ )
for( i = 0 ; i < 85 ; i++ )
{
Write( DATA, (j & 0x1F)<<3 ); // Display Data Write
Write( DATA, (j & 0x1F)<<3 ); // Display Data Write
Write( DATA, (j & 0x1F)<<3 ); // Display Data Write
}
}
|
|