按键按一下,数码管显示(动态)1234,按键再按一下,数码管显示全灭。开关按键接P3.2,数码管段选P0,位选P2,共阳数码管4位//我的问题在于全灭的时候它会显示4,还有个4在上面,而且显...
按键按一下,数码管显示(动态)1234,按键再按一下,数码管显示全灭。开关按键接P3.2,数码管段选P0,位选P2,共阳数码管4位
//我的问题在于全灭的时候它会显示4,还有个4在上面,而且显示1234还有点一闪一闪的
//程序如下:
#include
#define uchar unsigned char
#define uint unsigned int
sbit led0=P2^7;
sbit k1=P3^2;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void delay10ms(uchar a)
{
uchar b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
void main(void)
{
uint flag=0;
uint i=0;
uint temp;
led0=temp;
while(1)
{
if(k1==0x00)
{
delay10ms(1);
if(k1==0x00)
{
P1=0xff;
flag=!flag;
}
while(k1==0);
}
if(flag==1)
{
temp=0x80;
for(i=0;i<4;i++)
{
P0=tab[i];
P2=~temp;
delay10ms(10);
temp=temp>>1;
}
}
}
}
展开