51单片机中,如何写一个程序让数码管循环显示

如题所述

#include<reg52.h>

#define uint unsigned int 

sbit K1=P2^0;

sbit K2=P2^1;

uint i,a;

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void main()

{

P0=0xff;

while(1)

{

if(K1==0&K2==1)

{

delay(100);

if(K1==0&K2==1)

{

P0=0xfe;

for(i=0;i<8;i++)

{

delay(2000);

P0=~(~P0<<1);

}

}

}

 if(K2==0&K1==1)

{

delay(100);

if(K2==0&K1==1)

{

P0=0x7f;

for(i=0;i<8;i++)

{

delay(2000);  

P0=~(~P0>>1);

}

}

else P0=0xff;

}

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-08
高低电平循环驱动,之间加延时,外部一个while循环即可。