#include<reg52.h> #include<intrins.h> typedef unsigned int u16; typedef unsigned char u8; void delay(u8 z) { u8 x,y; for(x=z;x>0;x--) for(y=200;y>0;y--); } void main() { while(1) { u8 i; P2=0xfe; for(i=8;i>0;i--) { P2=_cror_(P2,1); delay(200); } for(i=7;i>0;i--) { P2=_crol_(P2,1); delay(200); } } } 第二种: #include<reg52.h> #include<intrins.h> typedef unsigned int u16; typedef unsigned char u8; u8 code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(u8 z) { u8 x,y; for(x=z;x>0;x--) for(y=200;y>0;y--); } void main() { while(1) { u8 i; for(i=8;i>0;i--) { P2=table[i-1]; delay(200); } for(i=0;i<8;i++) { P2=table[i]; delay(200); } } } 第三种: #include<reg52.h> #include<intrins.h> typedef unsigned int u16; typedef unsigned char u8; //u8 code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(u8 z) { u8 x,y; for(x=z;x>0;x--) for(y=200;y>0;y--); } void main() { while(1) { u8 i,j,k; j=0x7f;k=0xfe; for(i=8;i>0;i--) { P2=j; j>>=1; delay(200); } for(i=0;i<8;i++) { P2=k; k<<=1; delay(200); } } } |