简介
188数码管主要用来显示电量,另外加一个快充符号,主要用于移动电源行业。这里的应用场景是充电电量显示、放电电量显示、小电流模式、过温显示等等,显示电量时分为充、放电充状态显示。
一、188数码管电路
188数码管电路通常由5个I/O口连接到数码管接口,I/O口一般为输入/输出模式的普通I/O口即可。
二、188数码管点亮原理
188数码管本质上是由很多断码组成,断码也就是一节一节的显示管,比如:数字1是由两个断码组成。想要点亮一个断码只需要在断码的两端一端给高电平,另一端给低电平即可点亮,那么想要点亮很多断码怎么办?就需要一个一个点亮,把频率设置在50HZ以上,也就是不超过20ms扫描一次,人眼就看不出来闪烁,视觉上看起来是常亮。
数码管内部的原理图如下:
三、代码实现
a) 首先,断码屏取模,把0-9数字的数据放在数组中,这里是按共阴极取模。
取模的工具可以用下面这种数码管专用的发生器,把需要取模的数字点亮对应的断码,生成数据即可。
b) 获取要显示的数据,根据当前电量值获取数据到对应的数组里面。显示的状态,可以根据自己的需求去设计,比如:如果是充电状态,闪烁显示电量,如果是放电状态,则常亮显示电量。
c) 定时器中定时1ms去刷新数码管的引脚,定时扫描的时候,根据数码管内部原理图的逻辑,轮询去控制5个I/O口的高低电平,根据要显示的数据显示对应的数码管。
例如:第一个是PIN3和PIN4,第二个是PIN2和PIN4,示例如下:
根据上面示例,把原理图上面所有的数码管都写进状态机里面就可以了。
那么,对于不同工作状态的显示,充电电量显示、放电电量显示、小电流模式、过温显示只需要判断出来工作状态,在不同的条件下,取对应的模数据就可以了。
放电是最容易显示的,显示出来不需要处理,那充电显示如何实现呢?一般充电状态需要最后一位数据0.5s闪烁,这个显示起来也不难,只需要在定时器里面加一个0.5s控制翻转的标志位,取模的时候按照这个标志位去控制取模或清除显示就可以了。
四、总结
188数码管就是在一定频率下去扫描并控制每个断码的状态,从而实现点亮。其本质是:
断码点亮-每个断码按原理图,进行高低电平控制;
获取数据-获取要显示的电量数据,并取模;
扫描断码-按一定频率扫描所有断码,即可显示。
总结下来,整个控制逻辑就是获取数据、取模、扫描。如果大家有更好的实现方式,欢迎留言交流。
。
---------------------
作者:liao6
链接:https://bbs.21ic.com/icview-3503854-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。