您的位置 首页 分销

HT1621 LCD 驱动

defineLCD_ON0x03打开偏压发生器defineLCD_OFF0x02关闭偏压发生器defineBIAS0x2012偏压,2com口define

#define LCD_ON 0x03 //翻开偏压发生器

#define LCD_OFF 0x02 //封闭偏压发生器
//#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 //内部256RC
#define EXT256K 0x1c

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); //写入标志码”100″
SendBit_1621(command,9); //写入 9 位数据,其间前 8 位为 command 指令,最终 1 位恣意
CS = 1;
}
void Write_1621(uchar addr,uchar dat)
{
CS = 0;
SendBit_1621(0xa0,3); //写入标志码”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); //写入标志码”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); 封闭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); //设置偏压和占空比
Sendcmd(RC256K); //RC256
Sendcmd(SYSEN); //翻开体系振荡器
Sendcmd(LCD_ON); //翻开 LCD偏压发生器
//cleandisp(); //铲除显现ROM内容
// Sendcmd(LCD_OFF); //封闭 LCD显现
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/261154.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部