独闷闷网

标题: 段码液晶芯片HT1621的C语言驱动程序 [打印本页]

作者: ligang    时间: 2014-1-29 14:06
标题: 段码液晶芯片HT1621的C语言驱动程序
#define     BIAS         0X52               //LCD 1/3 bias option 1/3 bais . 4 duty
#define     RC256        0X30               //System clock source, on-chip RC oscillator
#define     SYSTEN       0X02               //Turn on system oscillator
#define     SYSDIS       0X00               //Turn off both system oscillator and LCD bias generator
#define     LCDON        0X06               //Turn on LCD bias generator



void SendBitToHT1621(UCHAR nbit,UCHAR n)
{
  UCHAR i;
  for(i=0;i<n;i++)
  {

    ht162x_wr=0;
    if(nbit>=0x80)      //判断最高位  
      ht162x_data=1;
    else
      ht162x_data=0;

    _nop_();
    _nop_();
    _nop_();
    ht162x_wr=1;
    _nop_();
    _nop_();
    _nop_();          
    nbit<<=1;
  }

}


void SendCommandToHT1621(UCHAR command)
{
  ht162x_cs=0;         //选通HT1621
  _nop_();
  _nop_();

  SendBitToHT1621(0x80,4);
  SendBitToHT1621(command,8);

  _nop_();
  _nop_();
  ht162x_cs=1;
  _nop_();
  _nop_();
  _nop_();

}



void SetupHT1621()               //送命令字
{         
   SendCommandToHT1621(SYSTEN);    //Turn on system oscillator
   SendCommandToHT1621(RC256);     //启动内部256KRC 振荡器
   SendCommandToHT1621(BIAS);      // 1/3 bais . 4 duty   
   SendCommandToHT1621(LCDON);     //开启LCD
}

void SendByteToHT1621(UCHAR addr,UCHAR byte)                     
{

  addr<<=2;
//  addr=addr*2;

  ht162x_cs=0;         //选通HT1621
  _nop_();
  _nop_();
  SendBitToHT1621(0xA0,3);    //发送写数据模式101
  SendBitToHT1621(addr,6);    //发送地址
   SendBitToHT1621(byte,4);    //发送数据
  ht162x_cs=1;  
  _nop_();
  _nop_();

}



void HT1621_all_off(void)
{ UCHAR i;
  UCHAR addr=0;
  for(i=0;i<32;i++)
     {
     SendByteToHT1621(addr,0x00);
     addr=addr+1;
     }

}







欢迎光临 独闷闷网 (http://dumenmen.com/) Powered by Discuz! X3.2