上电时CLK为低,DATA为高
1、数据移位:从DATA端输入数据,在CLK上升沿作用下,一次传输18个数据位,分别对应C1--C4、6位空、Q2--Q9
2、数据锁存:CLK置1,DATA端上升沿
3、数据输出:CLK置0,DATA端上升沿
4、C1--C4位0选中,Q2--Q9位1点亮
#define DAT P10
#define CLK P11
/*
Pos位:1、2、4、8对应C1--C4
Val段:对应8个段Q2--Q9
*/
void CT1642_Write(uint8_t Pos, uint8_t Val)
{
uint8_t i,Posn;
// 1、移18位:对应C1--C4、6位空、Q2--Q9
Posn=~Pos;
for(i=0; i<4; i++)//C1--C4
{
DAT=Posn & 0x01;
Posn >>= 1;
CLK=0; CLK=1;
}
for(i=0; i<6; i++)//6位空
{
DAT=1;
CLK=0; CLK=1;
}
for(i=0; i<8; i++)//Q2--Q9
{
DAT=Val & 0x01;
Val >>= 1;
CLK=0; CLK=1;
}
// 2、锁存
CLK=1; DAT=0; DAT=1;
// 3、输出
CLK=0; DAT=0; DAT=1;
}