学习版上用的是锁存器,主函数如下
第一个数码管闪烁很厉害,我把按键延迟调低很好些,但是这样按键一按就是好几个数,按键延时调高,按键上是好了很多但是第一个数码管可以非常慢的速度闪烁。感觉就是从上到下的执行时间太长了。。。。。主程序里我还加了储存,无视好了
void main()
{
while(1)
{
unsigned char buf[2];
E2Read(buf, 0x80, 2);
ge = buf[0];
shi = buf[1];
if ( ge>9 )
{ ge=0; }
if ( shi>9 )
{ shi=0; }
wei=1;
P0=0xfe;
wei=0;
duan=1;
P0=LedChar[shi];
Delay(10);
duan=0;
wei=1;
P0=0xfd;
wei=0;
duan=1;
P0=LedChar[ge];
Delay(10);
duan=0;
if(k1==1)
{
Delay(15);
if(k1==1)
{
ge++;
if(ge>9)
{
ge=0;
shi++;
if(shi>9)
{
shi=0;
}
}
}
buf[0] = ge;
buf[1] = shi;
E2Write(buf, 0x80, 2);
}
if(k2==1)
{
Delay(15);
if(k2==1)
{
ge--;
if(ge<0)
{
ge=9;
shi--;
if(shi<0)
{
shi=9;
}
}
}
buf[0] = ge;
buf[1] = shi;
E2Write(buf, 0x80, 2);
}
}
}
|