📄 st75292.c
字号:
ST7529_8bitsWrite_Command(0x75); // THIRD COMMAND SET LINE ADDRESS
ST7529_8bitsWrite_Data(0x00); // START LINE
ST7529_8bitsWrite_Data(0x9f); // END LINE
HDT_Sleep(5);
ST7529_8bitsWrite_Command(0x15); // THIRD COMMAND SET COLUMN ADDRESS
ST7529_8bitsWrite_Data(0x00); // START COLUMN
ST7529_8bitsWrite_Data(0x54); // END COLUMN
HDT_Sleep(5);
ST7529_8bitsWrite_Command(0x30);
ST7529_8bitsWrite_Command(0x07);
ST7529_8bitsWrite_Data(0x19);
ST7529_8bitsWrite_Command(0x31);
ST7529_8bitsWrite_Command(0xcd);
ST7529_8bitsWrite_Data(0x00);
HDT_Sleep(20);
HDT_Sleep(20);
HDT_Sleep(20);
ST7529_8bitsWrite_Command(0xfd);
HDT_Sleep(20);
HDT_Sleep(20);
HDT_Sleep(20);
ST7529_8bitsWrite_Command(0xcc);
//==================================================================================
ST7529_8bitsWrite_Command(0x30);
ST7529_8bitsWrite_Command( 0xee); //RMW end
ST7529_8bitsWrite_Command( 0xa9); //Partial display out
ST7529_8bitsWrite_Command( 0x20); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data( 0x08); // parameter data0
for(i=0;i< 0x100000; i++); //
//for(i=0;i< 0x1000; i++); //2006.11.3 by zhangjiong
ST7529_8bitsWrite_Command( 0xaf); // Display On
ST7529_8bitsWrite_Command(0x30);
g_nDisplayHalfFlag = 0;
}
*/
/*
//------------------------------------------------------------------
void LCDInitialize()
{
int i,j;
MBAR_CSAR1 = LCD_CS_BASE_ADDRESS; //chip select address register 1
MBAR_CSCR1 = LCD_CS_CTR;
MBAR_CSMR1 = LCD_CS_MASK;
ST7529_8bitsWrite_Command( 0x30); // Ext=0 Ext In
ST7529_8bitsWrite_Command( 0xa7); // Inverse Display
//DISCTRL: This command must be selected before using SLPOUT.
//DISCTRL: Do not change this command while the display is turned on.
ST7529_8bitsWrite_Command( 0xca); // DISCTRL:Display Control /// ???????????????????? 2006.07.22
ST7529_8bitsWrite_Data( 0x04); //0xe4 parameter data0
ST7529_8bitsWrite_Data( 0x27); //0xe7 parameter data1 //112 display lines
ST7529_8bitsWrite_Data( 0x1a); //0xf0 parameter data2 /0 line cycles // ?????????????????
//==================================================================================
ST7529_8bitsWrite_Command( 0xbc); // DATSDR:Data Scan Direction // ????????????
//ST7529_8bitsWrite_Data( 0x00); // parameter data0
ST7529_8bitsWrite_Data( 0x02); //0xf8 parameter data0
ST7529_8bitsWrite_Data( 0x01); //0xfe parameter data1
ST7529_8bitsWrite_Data( 0x02); //0xfa parameter data2
ST7529_8bitsWrite_Command( 0xbb); // COM Scan Direction
ST7529_8bitsWrite_Data( 0x01); // 0→79 159→80
//==================================================================================
ST7529_8bitsWrite_Command( 0xee); //RMW end
ST7529_8bitsWrite_Command( 0xa9); //Partial display out
ST7529_8bitsWrite_Command( 0xd1); //Internal OSC on
ST7529_8bitsWrite_Command( 0x20); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data( 0x08); // parameter data0
for(i=0;i< 0x100000; i++); //
//for(i=0;i< 0x1000; i++); //2006.11.3 by zhangjiong
ST7529_8bitsWrite_Command( 0x20); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data( 0x0b); // parameter data0
ST7529_8bitsWrite_Command( 0x81); // VOLCTRL:EC control ????????? 2006.07.25
ST7529_8bitsWrite_Data(0x28); // parameter data0 0x38~0x1f
ST7529_8bitsWrite_Data( 0x04); // parameter data1
ST7529_8bitsWrite_Command( 0x94); // Sleep Out
ST7529_8bitsWrite_Command( 0xaf); // Display On
ST7529_8bitsWrite_Command( 0x30);
g_nDisplayHalfFlag = 0;
}
*/
//------------------------------------------------------------------
void LCDInitialize()
{
MBAR_CSAR1 = LCD_CS_BASE_ADDRESS; //chip select address register 1
MBAR_CSCR1 = LCD_CS_CTR;
MBAR_CSMR1 = LCD_CS_MASK;
ST7529_8bitsWrite_Command(0x30); // Ext=0 Ext In
ST7529_8bitsWrite_Command(0x94); // Sleep Out
ST7529_8bitsWrite_Command(0xd1); //Internal OSC on
HDT_Sleep(1);
ST7529_8bitsWrite_Command(0x20); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data(0x0b); // parameter data0,TURN ON BOOSTER AND REFERENCE VOLTAGE GENERATION CIRCUIT ;0bh
ST7529_8bitsWrite_Command(0x81); // VOLCTRL:EC control ????????? 2006.07.25
ST7529_8bitsWrite_Data(0x1f); // parameter data0 0x38~0x1f
ST7529_8bitsWrite_Data(0x04); // parameter data1
HDT_Sleep(5);
//DISCTRL: This command must be selected before using SLPOUT.
//DISCTRL: Do not change this command while the display is turned on.
ST7529_8bitsWrite_Command(0xca); // DISCTRL:Display Control /// ???????????????????? 2006.07.22
//ST7529_8bitsWrite_Data(0x04); //0xe4 parameter data0
ST7529_8bitsWrite_Data(0x04); //0xe4 parameter data0
ST7529_8bitsWrite_Data(0x27); //0xe7 parameter data1 //112 display lines
ST7529_8bitsWrite_Data(0x00); //0xf0 parameter data2 /0 line cycles // ?????????????????
ST7529_8bitsWrite_Command(0xa7); // Display Normal
ST7529_8bitsWrite_Command(0xbb); // COM Scan Direction
ST7529_8bitsWrite_Data(0x01); // 0→79 159→80
ST7529_8bitsWrite_Command( 0xbc); // DATSDR:Data Scan Direction // ????????????
ST7529_8bitsWrite_Data( 0x02); //0xf8 parameter data0
ST7529_8bitsWrite_Data( 0x01); //0xfe parameter data1
ST7529_8bitsWrite_Data( 0x02); //0xfa parameter data2
ST7529_8bitsWrite_Command( 0x75); //
ST7529_8bitsWrite_Data( 0x00); //
ST7529_8bitsWrite_Data( 0x9f); //
ST7529_8bitsWrite_Command( 0x15); //
ST7529_8bitsWrite_Data( 0x00); //
ST7529_8bitsWrite_Data( 0x54); //
ST7529_8bitsWrite_Command(0x31); // EXT=1
ST7529_8bitsWrite_Command(0x32); //ANALOG CIRCUIT SET
//ST7529_8bitsWrite_Data(0x03); //OSC FREQUENCEY ADJUSTMENT
//ST7529_8bitsWrite_Data(0x01); //BOOSTER EFFICIENCY SET
//ST7529_8bitsWrite_Data(0x00); //BIAS SETTING
ST7529_8bitsWrite_Data(0x00); //OSC FREQUENCEY ADJUSTMENT
ST7529_8bitsWrite_Data(0x01); //BOOSTER EFFICIENCY SET
ST7529_8bitsWrite_Data(0x00); //BIAS SETTING
//HDT_Sleep(10);
/*
ST7529_8bitsWrite_Command(0x22); //WEIGHTING
ST7529_8bitsWrite_Data(0x03); // WEIGHTING VALUE
ST7529_8bitsWrite_Data(0x02); // EDGE VALUE
ST7529_8bitsWrite_Data(0x00); // ENABLE FLAG
*/
ST7529_8bitsWrite_Command(0x34); //DITHERER OFF
//HDT_Sleep(10);
/*
ST7529_8bitsWrite_Command( 0x20); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data( 0x00);
ST7529_8bitsWrite_Data( 0x03);
ST7529_8bitsWrite_Data( 0x06);
ST7529_8bitsWrite_Data( 0x09);
ST7529_8bitsWrite_Data( 0x0B);
ST7529_8bitsWrite_Data( 0x0D);
ST7529_8bitsWrite_Data( 0x0E);
ST7529_8bitsWrite_Data( 0x0F);
ST7529_8bitsWrite_Data( 0x10);
ST7529_8bitsWrite_Data( 0x11);
ST7529_8bitsWrite_Data( 0x12);
ST7529_8bitsWrite_Data( 0x14);
ST7529_8bitsWrite_Data( 0x16);
ST7529_8bitsWrite_Data( 0x18);
ST7529_8bitsWrite_Data( 0x1B);
ST7529_8bitsWrite_Data( 0x1F);
ST7529_8bitsWrite_Command( 0x21); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data( 0x00);
ST7529_8bitsWrite_Data( 0x03);
ST7529_8bitsWrite_Data( 0x06);
ST7529_8bitsWrite_Data( 0x09);
ST7529_8bitsWrite_Data( 0x0B);
ST7529_8bitsWrite_Data( 0x0D);
ST7529_8bitsWrite_Data( 0x0E);
ST7529_8bitsWrite_Data( 0x0F);
ST7529_8bitsWrite_Data( 0x10);
ST7529_8bitsWrite_Data( 0x11);
ST7529_8bitsWrite_Data( 0x12);
ST7529_8bitsWrite_Data( 0x14);
ST7529_8bitsWrite_Data( 0x16);
ST7529_8bitsWrite_Data( 0x18);
ST7529_8bitsWrite_Data( 0x1B);
ST7529_8bitsWrite_Data( 0x1F);
*/
/*
ST7529_8bitsWrite_Command( 0x30);
//==================================================================================
ST7529_8bitsWrite_Command( 0x20); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data( 0x08); // parameter data0
HDT_Sleep(5); //
//for(i=0;i< 0x1000; i++); //2006.11.3 by zhangjiong
ST7529_8bitsWrite_Command( 0x20); // PWRCTRL:Power Control
ST7529_8bitsWrite_Data( 0x0b); // parameter data
ST7529_8bitsWrite_Command(0x30);
ST7529_8bitsWrite_Command(0x07);
ST7529_8bitsWrite_Data(0x19);
ST7529_8bitsWrite_Command(0x31);
ST7529_8bitsWrite_Command(0xcd); //control e2p
ST7529_8bitsWrite_Data(0x00);
HDT_Sleep(20);
HDT_Sleep(20);
HDT_Sleep(20);
ST7529_8bitsWrite_Command(0xfd);
HDT_Sleep(20);
HDT_Sleep(20);
HDT_Sleep(20);
ST7529_8bitsWrite_Command(0xcc);
//==================================================================================
ST7529_8bitsWrite_Command( 0x30);
ST7529_8bitsWrite_Command( 0xee); //RMW end
ST7529_8bitsWrite_Command( 0xa9); //Partial display out
ST7529_8bitsWrite_Command( 0xd1); //Internal OSC on
ST7529_8bitsWrite_Command( 0x94); // Sleep Out
*/
ST7529_8bitsWrite_Command( 0x30);
ST7529_8bitsWrite_Command( 0xaf); // Display On
g_nDisplayHalfFlag = 0;
}
//------------------------------------------------------------------
///////////////////LCD的点测试程序/////////////////////
void HDT_DisplayPoint(unsigned char ucData)
{
unsigned char i=0,j=0,k=0;
ST7529_8bitsWrite_Command(0x30); //EXT=0
//ST7529_8bitsWrite_Command(0x75); //THIRD COMMAND SET LINE ADDRESS
//ST7529_8bitsWrite_Data(0x00); //START LINE
//ST7529_8bitsWrite_Data(0x9f); //END LINE
//ST7529_8bitsWrite_Command(0x15); //THIRD COMMAND SET COLUMN ADDRESS
//ST7529_8bitsWrite_Data(0x00); //START COLUMN
//ST7529_8bitsWrite_Data(0x54); //END COLUMN 设定行从0行开始到159行结束
ST7529_8bitsWrite_Command(0x5C); //DATA WRITE
for(i=0;i<160;i++)
{
for(j=0;j<162;j++)
{
ST7529_8bitsWrite_Data(i);//i->ucData????????
//HDT_Sleep(1);
}
//HDT_Sleep(3);
}
}
//=====================================================
void fontFormatConvert(const uint8 * souPtr, uint16 * const desPtr, const uint16 fontColor, const uint16 backColor )
{
int i = 0; //col
int j = 0; //row
int k = 0;
uint8 loop;
uint8 temp;
for(; k < 32; k++)
{
loop = 0x80;
temp = *(souPtr + k);
for(j = 0; j< 8; j++, i++)
{
if((temp & loop) == loop)
*(desPtr + i) = fontColor;
else
*(desPtr + i) = backColor;
loop = loop >> 1;
}
}
}
//==================================================================
//==================================================================
void fontFormatConvertASCII(const uint8 * souPtr, uint16 * const desPtr, const uint16 fontColor, const uint16 backColor )
{
int i = 0; //col
int j = 0; //row
int k = 0;
uint8 loop;
uint8 temp;
for(; k < 16; k++)
{
loop = 0x80;
temp = *(souPtr + k);
for(j = 0; j< 8; j++, i++)
{
if((temp & loop) == loop)
*(desPtr + i) = fontColor;
else
*(desPtr + i) = backColor;
loop = loop >> 1;
}
}
}
//------------------------------------------------------------------
unsigned char *fontC(unsigned short hi, unsigned short lo)
{
unsigned short index;
unsigned short qh,wh;
unsigned long offset;
unsigned char *font_gb;
font_gb = (unsigned char*) 0x30700000;
if (hi == 0x00 && lo < 128)
return font_ASCII+((lo-1)<<4);
if (hi < 0xa0 || lo < 0xa0)
return font_none;
qh = hi-0xa0;
wh = lo-0xa1;
offset = (94 * qh + wh) << 5;
return font_gb + offset;
}
unsigned char *fontC_8x8(unsigned short hi, unsigned short lo)
{
return font_ASCII_8x8+((lo)<<3);
}
//==================================================================
uint8 DisplayFont(const uint16 posRow, const uint16 posCol, const uint16 fontIndex, const uint16 fontColor, const uint16 backColor)
{
static uint16 fontBuff[FONT_WIDE][FONT_HEIGHT];
uint8 *fontLibPtr;
unsigned char *fontptr;
uint16 * fontBuffPtr = fontBuff;
sCharacterInfo charInfo, *charInfoPtr;
uint16 hi, lo;
int i;
charInfoPtr = & charInfo;
hi=fontIndex>>8;
lo=fontIndex&0xff;
fontLibPtr =fontC(hi, lo);
fontFormatConvert(fontLibPtr, fontBuffPtr, fontColor, backColor);
FillDisplayBuffer(fontBuffPtr, posCol);
return charInfoPtr->wide;
}
//------------------------------------------------------------------
uint8 DisplayFontASCII(const uint16 posRow, const uint16 posCol, const uint16 fontIndex, const uint16 fontColor, const uint16 backColor)
{
static uint16 fontBuff[FONT_WIDE][FONT_HEIGHT];
uint8 *fontLibPtr;
uint16 * fontBuffPtr = fontBuff;
sCharacterInfo charInfo, *charInfoPtr;
uint16 hi, lo;
int i;
charInfoPtr = & charInfo;
hi=fontIndex>>8;
lo=fontIndex&0xff;
fontLibPtr = fontC(hi, lo);
fontFormatConvertASCII(fontLibPtr, fontBuffPtr, fontColor, backColor);
FillDisplayBufferASCII(fontBuffPtr, posCol);
return charInfoPtr->wide;
}
//---------------------------------------------------------------------------
//===========================================================================
void vDisplayUnicodeText(uint16 row, uint16 col, char *pcDisplayString,const uint16 fontColor, const uint16 backColor)
{
register uint16 i = 0;
uint16 m,n,mm;
uint16 f_Colot = fontColor;
uint16 b_Colot = backColor;
uint8 characterWide;
mm = 0;
m = row;
n = col;
for(i=0; i<256*16;i++)
{
Line_Display_Buffer[i]=0x00;
}
while ((*pcDisplayString) != '\0')
{
if ((unsigned char)(*pcDisplayString) < 0x80)
{
characterWide = DisplayFontASCII(row, mm, (unsigned short) *pcDisplayString, f_Colot, b_Colot);
pcDisplayString++;
col += 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -