51单片机 利用数码管动态扫描,void display(uchar bai,uchar shi,uchar ge)送位数据前P0=0xff的问题

2025-04-14 07:31:46
推荐回答(1个)
回答1:

第一个 问题,P0=0xff 确实没有用,可能编程者多此一举了,
第二个 问题,是由于 在写入 段码时,位码还是 前一位,等写入当前位 的 位码,
有一个写入时间, 延时 1 mS 与 5 mS 和这个写入时间 之比
其实就是 1 mS 时 数码管不显示段 有 比较淡的显示
其实就是 5 mS 时 数码管不显示段 也有 比较淡的显示, 只是更加淡 眼睛不容感觉
到罢了。
如果这样 试试 1 mS 与 5 mS 有什么变化

void display(uchar bai,uchar shi,uchar ge)
{
wela=1; // 这可以消除写入段码时的影响
P0=0xff;
wela=0;

dula=1;
P0=table[bai];
dula=0;

wela=1;
P0=0xfe;
wela=0;
delay(1)//而delay(5)则没有错误
}