tm1629b驱动数码管程序

  • 学习11665次

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();
}

发表评论