TM1638使用及注意事项(1)

TM1638使用方法

TM1638使用及注意事项(1)_第1张图片

TM1638使用及注意事项(1)_第2张图片

*****注意是在上升沿读取和接受****************

根据时序图写出发送字节时序

void Write_Byte(unsigned  char byte){

uint32_t i=0;

 Reset(STB);

     for(i=0;i<8;i++){ //8比特字节

        Reset(CLK);

delay_us(2);

        if( (byte&0x01) != 0){ //数据位为1时拉高DIO

            Set(DIO);

        }

else{

            Reset(DIO); //数据位为0时拉低DIO

        }

        Set(CLK); //拉低传完数据,拉高CLK读数据

        byte = byte>>1;

delay_us(2);

    }

}

 

固定地址方式:

void display2(unsigned char adress,unsigned char disa)

{

Set(DIO);

Set(CLK);

Set(STB);

Write_Byte(0X44); //上表中的固定地址命令

 

Set(STB);

Write_Byte(adress); //传完地址和数据后再拉高STB

Write_Byte(disa);

Set(STB);

 

Write_Byte(0X8F); //灯亮度命令,手册有

Set(STB);

 

}

 

自动地址:

void  display( unsigned char   disa[])

{

unsigned int i;

Set(DIO);

Set(CLK);

Set(STB);

Write_Byte(0X40); //传自动地址命令

Set(STB);

Write_Byte(0xc0); //起始地址    由手册说明的地址

 

//以数组的方式传进数据,使每一位GPIO得到的数据不同 这种方法遍历所有灯状态

for(i=0;i

Write_Byte(disa[i]);

}

 

Set(STB);

 

Write_Byte(0x8F);

 

Set(STB);

}

以上3个函数实现往TM1638发送数据。

你可能感兴趣的:(硬件范围,嵌入式)