使用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);
}
|