CH455G驱动数码管

news/2024/12/29 19:37:57/

官方硬件原理图

 这个芯片可以驱动数码管也可以扫描键盘,这里我们只看数码管驱动,所以原理图参考官方这里就行了。最多只能驱动4个数码管。

官方数码管驱动说明

文档中说了芯片是iic通信控制,时序也是标准的iic时序,所以驱动我们用标准的iic驱动就可以了。如果你用的是正常写好可以用的iic驱动,但是驱动不了ch455g,那么不要怀疑,肯定不是你iic的问题,请你好好检查硬件。

看到这一段,我们大致知道ch455g有一个系统参数命令,48H,控制着一些模式,亮度等等,一次需要传输2个字节,第一个是命令,第二个是数据,但是并没有清晰的看出传输字节2的数据位怎么分配的。

如果我没有猜错的话,它的位分布应该是这样,如下图。

 各功能子手册都有介绍,对于数码管应用,一般我们只需要控制ENA,和INTENS亮度即可,

如何显示数据

加载数据,字节1有四个命令68H,6AH,6CH,6E,字节2是要显示的数据,数据位中也是一位控制数码管的一个灯,了解数码管的原理的应该看到这就很熟悉了,

例如数据=0x01(00000001),那么就只有数码管A那一段灯亮,

如果数据=0x80(10000000),那么就只有DP那一段灯亮,其实就是那个小数点,

那么我们就可以写一个BCD码出来显示各种文字了。

//0-f
static u8 bcdcode[16]={ 0X3F, 0X06, 0X5B, 0X4F, 0X66, 0X6D, 0X7D, 0X07, 0X7F, 0X6F,\0X77, 0X7C, 0X58, 0X5E, 0X79, 0X71 };

驱动编写使用

说明:因为iic是通用的驱动,这里就不介绍了,可以用硬件的,也可以用模拟的,关于在网上看到说命令字节需要右移一位,这个可能跟他的iic驱动有关系,正常的是不用的。

应用驱动

ch455g_send_cmd   函数用到了iic的函数,先发送命令字节,然后发送数据字节。

ch455g_init  函数主要是把系统48H命令设置成0x01,等于使能芯片。

ch455g_test  函数测试四个管子显示 0,1,2,3,具体数据在上方的bcd表中

//初始化
void ch455g_init(void)
{IIC_Init();IIC_ch455_Send_Byte(0x48,0x01);}//发送数据
void ch455g_send_cmd(u8 cmd,u8 data)
{IIC_Start();IIC_Send_Byte(cmd);IIC_Wait_Ack();IIC_Send_Byte(data);IIC_Wait_Ack();IIC_Stop();}//测试
void ch455g_test(void)
{ch455g_send_cmd(0x68,bcdcode[0]);ch455g_send_cmd(0x6A,bcdcode[1]);ch455g_send_cmd(0x6C,bcdcode[2]);ch455g_send_cmd(0x6E,bcdcode[3]);}

显示效果:

 整体上使用还是比较简单的。

例子源码:

https://download.csdn.net/download/HES_C/86832296

写了一个stm32c8t6的小例子,iic用的PB6  PB7模拟。效果如下:

 


http://www.ppmy.cn/news/181786.html

相关文章

计算机网络-层级架构

计网概念 计算机网络将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由软件实现资源共享和信息传递,同时也是一些互联的、自治的计算机系统的集合 计网组成的三种划分方式 硬件、软件、协议 硬件包含主机(端系…

GET http://localhost:8080/xxx/ net::ERR_BLOCKED_BY_CLIENT 解决方法之一

问题描述:在vue使用后端接口时,使用Postman调用的到数据,但是前端收不到,会报错GET http://localhost:8080/xxx/ net::ERR_BLOCKED_BY_CLIENT 问题分析:可能是由于你返回的数据中含图片地址,同时你又安装…

服务器inode使用100%解决

背景:平时服务器就挂着docker容器,一放好几个月没碰,创建文件夹,复制文件和启动新容器时,都有提示“no space left on device” 操作: 使用 df -h 查看硬盘使用量,发现还有20%多,没问…

天钰FP6770S6PTR芯片,VIN范围:2.7V至4.5V,低噪声恒定频率操作

描述 FP6770是一款低噪声DC/DC电荷泵产生调节输出电压的调节器从2.7V到4.5V输入电压。低外部零件计数(一个快速电容器和两个小旁路VIN和VOUT处的电容器)使FP6770成为理想用于小型电池供电应用。 FP6770以恒定频率模式运行开关电容器倍压器,…

2/3 P6770 [USACO05MAR]Checking an Alibi 不在场的证明

https://www.luogu.com.cn/problem/P6770 本题就是输出从结点1到各个有牛的结点的最小时间在M范围内的有牛结点,升序输出其编号。 刚开始没能ac,错误应该在输出格式上。 算法之外的代码应该写的逻辑清晰一点,一个数组尽量只代表一个意思。 &a…

neovis.js的一个坑

在vue中引入neovis.js出现的bug,报错信息如下 This dependency was not found: * core-js/modules/web.dom-collections.iterator.js in ./node_modules/neovis.js/dist/neovis-without-dependencies.js To install it, you can run: npm install --save core-js/…

校招面试算法集训11-3

这三道题面试难度都在中等偏上 这道题较难,先略去 分治合并链表

洛谷P6770 Checking an Alibi 不在场的证明

题目描述 农场有 FF 个点,已知 PP 条边以及每条边的起点终点和通过时间,给出 CC 个有牛的点,求在规定时间 MM 内能从起点到达牛当前位置的牛的数量,并按升序输出牛的编号。 谷仓里发现谷物被盗!FJ 正试图从 CC 只奶牛…