tm1629b驱动数码管程序
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(); }