最近搞一次电子制作,设计PCB、打样、焊接完成后才发现,数码管没有加入限流电阻!想着要不启用数码管,又不太合适,想着重新打样又觉得太浪费。
单片机用的是CH552,CH552内部已经集成上拉电阻,上拉电阻的阻值大约是4K(具体可以自行搜索有关文章)。数码管采用的是共阴的,每个段码引脚都接入单片机的P1端口。何不利用这单片机内置的上拉电阻给数码管的段码供电,位码引脚拉低就能点亮数码管?
于是开始写代码:
- P1_MOD_OC = 0xff;
- P1_DIR_PU = 0xff;
- Port3Cfg(1,3); //DIG1
- Port3Cfg(1,4); //DIG2
- Port3Cfg(1,5); //DIG3
复制代码
结果真的可以点亮数码管,于是写代码让其三个数码管都一齐显示。显示内容为一个三位数。
测试结果,这亮度基本可以,当然,就是暗了些。如果P1口也设置为推挽输出的话,那亮度真的极亮,长时间通电,应该会烧坏数码管或单片机端口的!
经过一番折腾发现了一个问题,就是第1个数码管显示1或一短杠的时候,亮度极低,而显示其他数字时亮度与第二、第三个数码管一致!具体看图
这是什么原因呢?有哪位大佬知道的?
2026.2.5
|