如何看数据手册写八个数码管程序

龙虾哥:视频3-6

1.硬件接口层:

2.接口时序层:

时序的开始条件:

一开始,时钟线和数据线都是高电平,延时两微秒后,数据线先变为低电平,再延时两位秒后,时钟线也变为低电平。刚好对应上面的时序图。

时序的停止条件:与开始条件同理。

数据的发送:

首先我们看数据书册,一共是八个字节,当时钟为低电平的时候,写个if语句,判断最低位为高电平还是低电平,如果为高,数据位写个1,否则写个0,当时钟为高电平的时候数据没有变化,此时是读取数据,延时是给时间让它读,然后传输下数据。最后data数据移位,让下一位变成最低位。

第二层是写入数据,把上面三个封装一下就算是写入成功。



3.通讯协议层,有三个,设置数据指令,设置地址,控制显示。

这个是写数码管的,地址应该是每个数码管地址不同,设置不同的地址,控制显示数码管不同的数据。

3.1设置数据指令

上图,这个跟第三步第一个图对应。一般我们只用第一个。初始地址为0x40

上图是亮度设置,一共有八种亮度。0x88是第一个。此时我们设置宏定义定义亮度

下面是数据发送:

首先定义数码管的地址:

一共16个数,是0到15

4.应用程序实现层,把数据放到数组中实现

上面那个图中指针*InputData是指向数组的,八个数码管数据是存放在此数组中的。所以需要将数据拆分为八位,分别存放到数组中,数组当然也是八位。

数码管的个数

然后定义一个联合体,有三部分,其中后面的“:1”或者“:7“是位域,代表这个数值占了几位:

上图就是存储数码管数据的数组什么的。

以下就是把数码管放入到数据中的代码。

在主函数中完成调用:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值