使用P2口的8个位控制一个1位共阴极的数码管,P3.0、P3.1两位接两个按钮
要求:数码管初始值为0,按下按钮1时数码管从0到9以450ms变化一次,再从9到0以450ms变化一次。若按下按钮2则立刻停止并变为0。
#include<reg51.h>
typedef unsigned int u16;
typedef u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x07f,0x6f};
sbit k2=P3^1;
{
}
{
{
if(k1==0)
smgduan={0x3f};
while(!k1);
{
if(k2==0)
smgduan={0x00};
while(!k1);
}
}
void main()
{
u8 i;
{
{
delay(50000);
for(i=9;i>0;i--)
P2=smgduan[ i];
}
delay(50000);
}
|