tm1629b驱动数码管程序

  • 学习10700次

tm1629b是天微公司生产的led驱动芯片,可以驱动14个8位数码管,可以接16个按键,芯片一共才32个引脚,驱动的led还有8级亮度可调,与单片机的接口为3线spi,极大的方便了驱动led的应用。

驱动程序如下所示:

void TM1629B_Write(uchar wr_data)
{
   uchar i;
   for(i=0;i<8;i++)
   {
      CLK = 0;
      if(wr_data&0x01)DIO = 1;
      else DIO = 0;
      CLK = 1;
      wr_data>>=1;
   }
}
void Write_COM(unsigned char cmd)        //发送命令字
{
   STB = 0;
   TM1629B_Write(cmd);
   STB = 1;
}
void Clear_TM1629B(void)
{
   unsigned char i;
   STB=0;
   TM1629B_Write(0xc0);     // 11000000 设置显示地址从0开始
   for(i=0;i<16;i++)
   TM1629B_Write(0x00);      // 所有显示为灭
   STB=1;
}
void init_TM1629B(void)
{
   CLK = 1;            // 上拉TM1629B通信时钟引脚
   STB = 1;            // 上拉TM1629B通信片选引脚
   DIO = 1;            // 上拉TM1629B通信数据引脚
   Write_COM(0x8f);  // 最亮    10001111 设置消光脉冲14/16 显示开
   Write_COM(0x40);  // 01000000准备写数据到显示寄存器,普通模式,自动地址增加
   Clear_TM1629B();
}

发表评论

关闭菜单