楼主理解错误,delay(5);不是消影时间,是维持当前显示状态的时间。书中消隐代码也是错的,达不到消隐目的。正确写法如下:
void display(uchar shi, uchar ge)
{
P0=0x00; //送段消隐
dula=1; //段码锁存
dula=0;
P0=0xfe; //送位码
wela=0; //位码锁存
wela=1;
P0=table[shi]; //送十位段码
dula=1; //段码锁存
dula=0;
delay(5); //延时5ms,维持当前显示状态
P0=0x00; //送段消隐
dula=1; //段码锁存
dula=0;
P0=0xfd; //送位码
wela=1; //位码锁存
wela=0;
P0=table[ge]; //送个位段码
dula=1; //位码锁存
dula=0;
delay(5); //延时5ms,维持当前显示状态
} |