|
據(jù)說ST756很坑,最近做項目正好遇到,果然被坑的不輕 總結(jié)而言,不能求快,尤其是質(zhì)量不太好的屏幕模塊,快了就罷工
IMG_20190808_113638.jpg (3.56 MB, 下載次數(shù): 50)
下載附件
2019-8-8 11:39 上傳
直接貼完整驅(qū)動函數(shù)(單片機(jī)是STC15LE5A32S2,指令按照使用手冊重新排寫的,可直接移植,基本不會出問題)
/************************底層驅(qū)動函數(shù)************************/
void ms_Delay_12864(unsigned int ms)//STC12, 11.0592M
{
unsigned char j;
while(ms --)
for(j = 0; j < 30; j ++); //20us=0.02ms//
}
void Delay_Buff( )/*數(shù)據(jù)緩沖,根據(jù)具體實物改動(下載后不顯示可適當(dāng)加長延時)*/
{
unsigned char i;
for(i = 0; i < 35; i ++)//16
{
_nop_( );
}
}
void LCD_Write_Reg(unsigned char Command)
{
unsigned char i, j;
CS = 0;
RS = 0;
SCL = 0;
for(i = 0; i < 8; i ++)
{
j = Command;
SCL = 0;
SI = Command & 0x80;
SCL = 1;
Command = j << 1;
Delay_Buff( );/*根據(jù)具體硬件改寫,某些硬件需要緩沖,有硬件緩沖時可取消延時*/
}
CS = 1;
RS = 1;
}
void LCD_Write_Byte(unsigned char byte)
{
unsigned char i, j;
CS = 0;
RS = 1;
SCL = 0;
for(i = 0; i < 8; i ++)
{
j = byte;
SCL = 0;
SI = byte & 0x80;
SCL = 1;
byte = j << 1;
Delay_Buff( );/*根據(jù)具體硬件改寫,某些硬件需要緩沖,有硬件緩沖時可取消延時*/
}
CS = 1;
RS = 0;
}
void LCD_Clear( )
{
unsigned char i, j;
for(i = 0; i < 8; i ++)
{
LCD_Write_Reg(0xb0 + i); // (Page = 0xB0)//設(shè)置位置
LCD_Write_Reg(0x10);
LCD_Write_Reg(0x00);
for(j = 0; j < 132; j ++) //發(fā)送數(shù)據(jù)
{
LCD_Write_Byte(0);
}
}
}
void LCD_ALL( )
{
unsigned char i, j;
for(i = 0; i < 8; i ++)
{
LCD_Write_Reg(0xb0 + i); // (Page = 0xB0)//設(shè)置位置
LCD_Write_Reg(0x10);
LCD_Write_Reg(0x00);
for(j = 0; j < 132; j ++) //發(fā)送數(shù)據(jù)
{
LCD_Write_Byte(0xff);
}
}
}
void LCD_Init( )//有效命令基本已羅列
{
RST = 0;
ms_Delay_12864(50);
RST = 1;
ms_Delay_12864(20);
LCD_Write_Reg(0xe2);//軟件復(fù)位
ms_Delay_12864(5);
LCD_Write_Reg(0x2c);//電源控制0x28 ~ 0xf
ms_Delay_12864(5);
LCD_Write_Reg(0x2e);
ms_Delay_12864(5);
LCD_Write_Reg(0x2f);
ms_Delay_12864(5);
LCD_Write_Reg(0xa3);//偏壓比: 0xa2 >> 1/9, 0xa3 >> 1/7
LCD_Write_Reg(0x23);//內(nèi)部電阻比例: 0x20 ~ 0x27
LCD_Write_Reg(0x81);//設(shè)置內(nèi)部液晶電壓模式
LCD_Write_Reg(0x1d);//L: 0x00 ~ 0x3f
LCD_Write_Reg(0x24);//H: 0x21 ~ 0x27
LCD_Write_Reg(0xf8);//設(shè)置升壓倍數(shù)
LCD_Write_Reg(0x01);//0x00 >> 2 ~ 4倍, 0x01 >> 5倍, 0x03 >> 6倍
LCD_Write_Reg(0x40);//從首行開始顯示
LCD_Write_Reg(0xa6);//0xa6 >> 正顯, 0xa7 >> 反顯
LCD_Write_Reg(0xc8);//0xc8 >> 反向掃描, 0xc0 >> 順序掃描
LCD_Write_Reg(0xa0);//0xa0 >> 正常顯示, 0xa1 >> 左右鏡像
LCD_Write_Reg(0xa4);//0xa4 >> 顯示全部點(diǎn)陣, 0xa5 >>不顯示全部點(diǎn)陣
LCD_Write_Reg(0xac);//0xac >> 靜態(tài)圖標(biāo)顯示, 0xad >> 無靜態(tài)圖標(biāo)
LCD_Write_Reg(0xaf);//0xaf >> 顯示開, 0xae >> 顯示關(guān)
LCD_Clear( );
}
/************************************************************************/
附件里有視頻、模塊說明書和ST7565操作指令表:
LCD12864-ST7565.zip
(18.82 MB, 下載次數(shù): 102)
2019-8-8 11:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|