1 
#include <reg52.h> 
#include <intrins.h> 
#define uchar unsigned char 
#define uint unsigned int 
 
void DelayMS(uint x) 
{ 
         uchar t; 
        while(x--) 
        { 
                 for(t=120;t>0;t--); 
        } 
} 
 
void main() 
{ 
         uchar i; 
        P0=0xFE; 
        while(1) 
        { 
                 for(i=7;i>0;i--) 
                { 
                        P0=_crol_(P0,1); 
                        DelayMS(550); 
                } 
                for(i=7;i>0;i--) 
                { 
                         P0=_cror_(P0,1); 
                        DelayMS(550); 
                } 
        } 
} 
 
2 
/******************************************************************** 
                            佳和科技 
                                           
*********************************************************************/ 
//实例6:上下来回的流水灯: 
 
#include<reg52.h>                 //包含单片机寄存器的头文件 
#define uchar unsigned char//宏定义无符号字符型 
#define uint unsigned int  //宏定义无符号整型 
/******************************************************************** 
                            初始定义 
*********************************************************************/ 
uchar temp;           //定义字符型变量 
uchar a,b,i; 
/******************************************************************** 
                            延时函数 
*********************************************************************/ 
void delay()//延时程序 
{ 
uchar m,n,s; 
for(m=20;m>0;m--) 
for(n=20;n>0;n--) 
for(s=248;s>0;s--); 
} 
/******************************************************************** 
                            主函数 
*********************************************************************/ 
main() 
{ 
while(1)          //无限循环 
{ 
temp=0xfe; //11111110定义每次一个灯亮 
P0=temp;//直接对1/0口赋值,使批输出低电平。 
delay();//延时 
 
/********************************** 
       LED从移动上到下移动 
***********************************/ 
 
for(i=1;i<8;i++)//实现LED的从右到左移动 
{ 
a=temp<<i;                //左移i位 
b=temp>>(8-i);        //右移8-i位 
P0=a|b;//按位或 
delay(); 
} 
 
/********************************** 
       LED从移动下到上移动 
***********************************/ 
 
for(i=1;i<8;i++)//实现广告灯的从左到右移动 
{ 
a=temp>>i;            //右移i位 
b=temp<<(8-i);  //左移8-i位 
P0=a|b;//按位或 
delay(); 
} 
} 
}         
         
/******************************************************************** 
                              结束 
*********************************************************************/ 
 
 
 
 
 |