新聞中心

HT1621 LCD 驅(qū)動

作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
#define LCD_ON 0x03 //打開偏壓發(fā)生器

#define LCD_OFF 0x02 //關(guān)閉偏壓發(fā)生器
//#define BIAS 0x20 //1/2偏壓,2com口
//#define BIAS 0x24 //1/2偏壓,3com口
#define BIAS 0x28 //1/2偏壓,4com口
//#define BIAS 0x21 //1/3偏壓,2com口
//#define BIAS 0x25 //1/3偏壓,3com口
//#define BIAS 0x29 //1/3偏壓,4com口
#define SYSEN 0x01 //打開振蕩器
#define RC256K 0x18 //內(nèi)部256RC
#define EXT256K 0x1c

本文引用地址:http://www.butianyuan.cn/article/201611/320300.htm

uchar disprom[32];
uchar COM[4] = {0x01,0x02,0x04,0x08};

void SendBit_1621(uchar sdata,uchar cnt) //data 的高cnt 位寫入HT1621,高位在前
{
uchar i;
for(i=0; i
{
if((sdata&0x80)==0)
{
DATA = 0;
}
else
{
DATA = 1;
}
WR = 0;
asm("nop");
asm("nop");
WR = 1;
sdata <<= 1;
}
}
void SenddataBit_1621(uchar sdata,uchar cnt) //data的低cnt位寫入1621
{
uchar i;
for(i=0; i
{
if((sdata&0x01)==0)
{
DATA = 0;
}
else
{
DATA = 1;
}
WR = 0;
asm("nop");
asm("nop");
WR = 1;
sdata >>= 1;
}
}
void Sendcmd(uchar command)
{
CS = 0;
SendBit_1621(0x80,3); //寫入標(biāo)志碼"100"
SendBit_1621(command,9); //寫入 9 位數(shù)據(jù),其中前 8 位為 command 命令,最后 1 位任意
CS = 1;
}
void Write_1621(uchar addr,uchar dat)
{
CS = 0;
SendBit_1621(0xa0,3); //寫入標(biāo)志碼"101"
SendBit_1621(addr<<2,6); //寫入 6 位 addr
SenddataBit_1621(dat,4); //寫入 data 的低 4 位
CS = 1;
}
void WriteAll_1621(uchar addr,uchar *p,uchar cnt)
{
uchar i;
CS = 0;
SendBit_1621(0xa0,3); //寫入標(biāo)志碼"101"
SendBit_1621(addr<<2,6); //寫入 6 位 addr
for(i =0; i
{
SenddataBit_1621(*p,8);
}
CS = 1;
}
//使用說明:dispON(COM,PIN);
//dispON(1,24); 使能COM1,PIN24腳的液晶顯示
void dispON(uchar com,uchar line)
{
uchar tmp = 0;
disprom[line-1] = disprom[line-1]|COM[com-1];
tmp = disprom[line-1];
Write_1621(line-1,tmp);
asm("nop");
}
//使用說明:dispOFF(COM,PIN);
//dispON(1,24); 關(guān)閉COM1,PIN24腳的液晶顯示
void dispOFF(uchar com,uchar line)
{
uchar tmp = 0;
disprom[line-1] = disprom[line-1]&~(COM[com-1]);
tmp = disprom[line-1];
Write_1621(line-1,tmp);
asm("nop");
}
void HT1621_Init(void)
{
uchar sec = 0;
uchar j = 0;
for(j=0; j<32; j++)
{
disprom[j] = 0;
}
Sendcmd(BIAS); //設(shè)置偏壓和占空比
Sendcmd(RC256K); //RC256
Sendcmd(SYSEN); //打開系統(tǒng)振蕩器
Sendcmd(LCD_ON); //打開 LCD偏壓發(fā)生器
//cleandisp(); //清除顯示ROM內(nèi)容
// Sendcmd(LCD_OFF); //關(guān)閉 LCD顯示
}



關(guān)鍵詞: HT1621LCD驅(qū)

評論


技術(shù)專區(qū)

關(guān)閉