共阴极数码管
您一定写了个循环,轮流显示各位LED。
假设有个函数用来显示或熄灭某位LED
void ShowUnit(int uintint enable);
int uint = 0;//位数
#define MAX_UINT 4 //最大4位
while(1)
{
ShowUnit(uint1);//点亮
delayms(10);
ShowUnit(uint0);//熄灭
delayms(10);//增加这个延时,可以变暗,减小会变亮 这里跟调整PWM点空比一个意思
uint++;
uint%= MAX_UINT; //要显示的下一位
}
什么PWM??
我几乎没看到过用PWM去动态扫描多位数码管。
只有1位数码管,还可以用PWM去控制,但是多位的,软件可能够你写一段时间。
所以,建议,加限流电阻在公共脚(最好是每段都加电阻),从硬件上去想办法