#include<reg52.h> #define uchar unsigned char #define uint unsigned int void delay(uint t)//延時函數 { uint x,y; for(x=t;x>0;x--) for(y=110;y>0;y--); } void main()//主函數 { uchar temp,i; while(1) { temp=0x01; //8盞燈單個亮向左移 for(i=0;i<8;i++) { P2=~temp; delay(50); temp<<=1; } temp=0x80; for(i=0;i<8;i++)//8盞燈單個亮反向右移 { P2=~temp; delay(50); temp>>=1; } temp=0xfe; for(i=0;i<8;i++)//8盞燈逐個向右亮 { P2=temp; delay(50); temp<<=1; } temp=0xfe; for(i=0;i<8;i++)//8盞燈逐個滅向右 { P2=~temp; delay(50); temp<<=1; } temp=0x7f; for(i=0;i<8;i++)//8盞燈逐個亮向左 { P2=temp; delay(50); temp>>=1; } temp=0x7f; for(i=0;i<8;i++)//8盞燈逐個滅向右 { P2=~temp; delay(50); temp>>=1; } delay(100); P2=0x55;//隔一個亮 delay(100); P2=0xaa;//隔一個亮 delay(100); P2=0x00;//全亮 delay(100); P2=0xff;//全滅 } }