自己写的在单片机实现的二进制累加,但是感觉自己写的程序太冗长,想了解更多的方法

#include<reg52.h>
#define uint unsigned int
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
void delay ()
{
uint x,y;
for (x=100;x>0;x--)
for (y=1000;y>0;y--);
}
void main()
{
delay();
D1=0;
delay();
D1=1;D2=0;
delay();
D1=0;D2=0;
delay();
D1=1;D2=1;D3=0;
delay();
D1=0;D2=1;D3=0;
delay();
D1=1;D2=0;D3=0;
delay();
D1=0;D2=0;D3=0;
delay();
D1=1;D2=1;D3=1;
delay();

}

#include<reg52.h>
void delay()

unsigned int t=5000;
while(t--); 

 void main()

    P0=0xff;
    while(1){ 
      P0<<=1;
     delay();       
      }     
 }

温馨提示:答案为网友推荐,仅供参考
相似回答