单片机中控制数码管亮灭的是通过其引脚输出的高低电平。数码管所需的电压一般都在3-5V之间,而单片机中的IO口输出的电压往往不能达到这个范围(如常见的51单片机只能输出高电平5V,低电平则为0V),同时输出的电压还会受到外部电源的影响而产生波动,造成数码管的显示不全。
解决方法:在单片机的IO口和数码管之间增加一个三极管或场效应管,来增大输出电压和稳定输出电压。
数码管有共阳和共阴两种类型,控制它们亮灭的方法也不同。共阳数码管需要将端口拉低,而共阴则需要将端口拉高。如果把共阳数码管接在共阴模式下使用,就会导致不能完全显示,而仅显部分,并且每个数码管的显示亮度也会不同。
解决方法:明确数码管的类型并运用正确的扫描方式。
数码管的显示是以一种被称为“扫描”的方式进行的,即每个数字分别显示,再逐个扫描循环显示。当刷新率不够高时,就会导致数字显示不全,而仅显示一部分。这一状况在同时进行多个任务的时候尤为常见,因为此时需要处理的各个任务耗时很长,导致刷新率不足。
解决方法:尽可能地减少执行其他任务的时间,增加数码管刷新率。
如果将数码管连接反了,与单片机相连的GND反而连接到了数码管的VCC上,就容易发生电压反转的现象,导致数码管显示不全并且不稳定。这种情况下,数码管会出现闪烁、不亮或者亮度不足等问题。
解决方法:正确连接数码管正负极,并仔细检查接线是否正确。