数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 174|回复: 2

[C51] 有关cs16312驱动代码的亮度控制代码看不懂求指教

[复制链接]
发表于 2022-12-6 17:03:51 | 显示全部楼层 |阅读模式
下图是显示指令
cs16312显示命令.jpg
下面是代码;
/*********************************
函数名称:vfd_set_brig
功能:设置亮度
输入:亮度
输出:
备注:0为关闭,0-7
*********************************/
voidvfd_set_brig(unsigned char brig)
{
vfd_cs=0;
if(brig==0)
   vfd_writebyte(0x89);
else
   vfd_writebyte(0x88+brig);//设置为4级亮度
vfd_cs=1;
}
这段代码里我理解的是,0x89转二进制(10001001)是亮度设定脉冲宽度为2/160x88转二进制(10001000) 是亮度设定脉冲宽度为1/16
怎么到" vfd_writebyte(0x88+brig);//设置为4级亮度"这里怎么变为四级了,不懂为什么请知道的给讲解一下。
谢谢!


发表于 2022-12-6 20:23:12 | 显示全部楼层
别人乱写的,
你直接写二进制控制也可以0B10001XXX
XXX就是控制亮度的数据
000---111改成你需要的亮度数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-7 15:25:37 | 显示全部楼层
谢谢楼上的回复。
又看到了另外一个人的注解,明白了是怎么回事了。下面是注解:
接下来是命令4 ,这个命令设置显示开关和亮度,比如说我要设置
成显示开启,脉宽为14/16,那么数据为10000111,因为高四位为定值,
所以数据组成为(10001000)+(b2 b1 b0),000到111对应数值为0~7
10001000转换为16进制后为0x88,即这个命令为0x88+x, x的取值为0~7,
x越大,亮度越高。
也就是这段代码“vfd_writebyte(0x88+brig);”中brig应该按自己的需求改为相应的数值就可以了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2023-4-2 13:04 , Processed in 0.124800 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023, smzj.net

快速回复 返回顶部 返回列表