CT1642驱动代码

上电时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;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值