while(1)..我以为我懂的。小弟诚心 请教大神们。。。

2019-03-24 19:00发布

#include<reg52.h>
#include"hjc52.h"
void main()
{

  while (1)
   {
                DU = 1;
                P0 = 0X06;
                DU = 0;
                WU = 1;
                P0 = 0Xfe;
                WU = 0;
   };

}

为什么只有把while语句里的放while前面才能正确显示,这样是乱码,为什么呢、?
小弟诚心 请教大神们。。。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
jishuaihu
1楼-- · 2019-03-25 05:30
显的太快了
放在前面只执行一遍,最后有一个稳定的值就不再变了,放while里面会两个数不停的显,你就没法区分了,所以看起来像乱码
在 DU = 1;
                P0 = 0X06;
                DU = 0;
这个前面加一个比较长的延时,比如1秒。
WU = 1;
P0 = 0Xfe;
WU = 0;
这个前面也加一个就会好了
wanmj
2楼-- · 2019-03-25 10:11
你这个也是一种原因吧,。
  后来我想了一下,
  我想要的思路应该是少了两句将P0关闭的语句,
   不然之前的赋值就对后面的有影响了。
  所以,应该是
#include<reg52.h>
#include"hjc52.h"
void main()
{

  while (1)
   {
                P0 = 0X00;//防止对位赋值停留的P0对WE的影响。所以,先关掉。(共阴数码管)
                DU = 1;
                P0 = 0X06;
                DU = 0;
                P0 = 0XFF;//防止对段赋值停留的P0对WE的影响。所以,先关掉。(共阴数码管)
                WE = 1;
                P0 = 0Xfe;
                WE = 0;
   };
}
还是谢谢了。。

一周热门 更多>