请教郭天祥书中关于数码管的消影的问题
程序的一段如下:
void main()
{
while(1)
{ dula=1;
P0=table[1];
dula=0;
P0=0xff; /*消影,避免高速显示时的显示混乱*/
wela=1;
P0=0xfe;
wela=0;
delayms(500);
dula=1;
P0=table[2];
dula=0;
P0=0xfd;
wela=1;
P0=0xfd;
wela=0;
delayms(500);
1.请问这样段选-消影-位选是最好的顺序还是较为良好的编程习惯?
2.我有试过其他的几种排列方式,没有显示混乱的是:段选-消影-位选;位-段-消;消-位-段;
显示混乱的是:位-消-段;段-位-消;消-段-位。这样看来似乎段选前一定要消影,可是郭天祥
书中的这段代码第二段的位选前不是没有消影吗?第一段的位选不会影响到第二段的段选吗?
我不太理解,求大神指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
最好的做法是先令位选=0xff,再给出段选,最后令位选=有效值(消-段-位)。这样是没有一点鬼影的。
不是你说的数据传输的延迟和数码管响应的延时。
如果按照我说的出现混乱,那是因为你并不是真正按照我说的去做。
给个示例:
P0=0xff; /*消影,避免高速显示时的显示混乱*/
wela=1;
wela=0;
P0=table[1];
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
delayms(500);
P0=0xff; /*每个前面都要*/
wela=1;
wela=0;
P0=table[2];
dula=1;
dula=0;
P0=0xfd;
wela=1;
wela=0;
delayms(500);
P0=0xff; /*每个前面都要*/
wela=1;
wela=0;
P0=table[3];
dula=1;
dula=0;
P0=0xfb;
wela=1;
wela=0;
delayms(500);
...
不妨按照上面的格式修改一下你的代码看看效果
一周热门 更多>