LCD驱动芯片HT16c21使用注意事项

1.在使用LCD驱动芯片HT16c21芯片时应该注意,在写其显示存储器之前一定要对驱动参数进行配置,
如:

void HT16C21_Init(void)
{
  WriteCommdByte(0x82,0x00);   //选择1/4duty和1/3bias

  WriteCommdByte(0x84,0x03);   //开LCD显示屏和内部系统振荡器

  WriteCommdByte(0x86,0x01);   //选择帧频率为160Hz

  WriteCommdByte(0x88,0x00);   //关闭显示模式的闪烁

  WriteCommdByte(0x8a,0x10);     //共用引脚选择VLCD调整VLCD输出电压为1.000*VDD   
}

/*********************************************************************************************************
** Function name     : WriteCommdByte
** Descriptions      : 设置HT16C21参数
** input parameters  : ComByte(命令);ComSet(写入的设置数据)
** output parameters : 无
** Returned value    : 无
*********************************************************************************************************/
_Bool  WriteCommdByte(unsigned char ComByte, unsigned char ComSet) 
{
  unsigned char ack;

  IIC_Start();       //开始数据传递
  ack=IIC_WriteByte(0x70); //HT16C21芯片地址,硬件I2c时为0x38
  if(ack==0) {return 0;}
  ack=IIC_WriteByte(ComByte); //写入命令
  if(ack==0) {return 0;}
  ack=IIC_WriteByte(ComSet);  //写入命令设置数据
  if(ack==0) {return 0;}
  IIC_Stop();        //停止数据传递
  return 1;
}

2.读和写显示存储器的命令都为0x80

/*********************************************************************************************************

** Function name : WriteRAMByte

** Descriptions : 向HT16C21中的指定地址写入数据

** 在指定地址addr处写入数据date

** input parameters : Address (储存指定的地址)Data 存储读出的数据

** output parameters : 无

** Returned value : 无

*********************************************************************************************************/

void WriteRAMByte(unsigned char Address,unsigned char Data)
{
     IIC_Start(); //开始数据传递

     IIC_WriteByte(0x70); HT16C21芯片地址,硬件I2c时为0x38

     IIC_WriteByte(0x80); //写入读写命令

     IIC_WriteByte(Address); //写入指定地址

     IIC_WriteByte(Data); //向当前地址(上面指定的地址)写入数据

     IIC_Stop(); //停止数据传递
}

/*********************************************************************************************************/



/*********************************************************************************************************

** Function name : IIC_ReadSet

** Descriptions : 从HT16C21中的指定地址读取数据

** 在指定地址读取数据

** input parameters : Address 指定地址

** output parameters : 无

** Returned value : ReadValue 存储的数据

*********************************************************************************************************/

unsigned char IIC_ReadSet(unsigned char Address)
{   
    unsigned char ReadValue,Ack;

    IIC_Start(); //开始数据传递

    Ack=IIC_WriteByte(0x70); HT16C21芯片地址,硬件I2c时为0x38

    if(Ack==0) {return 0;}

    Ack=IIC_WriteByte(0x80); //选择要操作的HT16C21芯片,写入读数据命令

    if(Ack==0) {return 0;}

    Ack=IIC_WriteByte(Address); //写入读数据的指定地址

    if(Ack==0) {return 0;}

    IIC_Start(); //开始数据传递

    Ack=IIC_WriteByte(OpRead); //选择要操作的HT16C21芯片,写入读操作指令

    if(Ack==0) {return 0;}

    ReadValue=IIC_ReadByte();    //在指定地址读取数据

    IIC_Stop();      //停止数据传递

    return(ReadValue); //将指定地址读出的数据返回
}

/*********************************************************************************************************/

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值