标题:
为什么在while循环前面直接对P1赋值数码管就不能正常显示呢这样temp=0xfe;P1=temp;...
[打印本页]
作者:
挥挥手点点头
时间:
2016-1-25 13:28
标题:
为什么在while循环前面直接对P1赋值数码管就不能正常显示呢这样temp=0xfe;P1=temp;...
/*******************************************************************/
/*
利用动态扫描方法在六位数码管上显示出稳定的654321.
时钟频率为11.0592M
*/
/*********************************************************/
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0x06,0x5b,0x4f,
0x66,0x6d,0x7d};
void delay(uint exs)
{
uint x,y;
for(x=exs;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uint i,j;
while(1)
{
uchar temp;
j=5;
P1=0xfe;
P0=table[j];
delay(1);
P0=0x00;
for(i=5;i>0;i--)
{
temp=_crol_(temp,1);
P1=temp;
P0=table[--j];
delay(1);
P0=0x00;
}
}
}
作者:
暗光
时间:
2016-1-25 20:20
可能是太快了,你在while循环一次循环结束的时候加个延时,延时大约200ms或者更长,很可能一次的时间还没有显示够视觉停留的就执行下一个显示了
作者:
init
时间:
2016-1-27 15:02
在while前给值得话,数码管就只会亮一次
作者:
四师哥
时间:
2016-1-27 20:42
你没给temp赋值,如果p1写在while前面,它就一直是0,所以p1=0,就不能正常显示了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1