//########################################################################################
//例程功能:延时1s流水灯
//例程作者
//时间:2016年11月18日
//########################################################################################
#include<reg52.h>
#include<intrins.h> //循环移动头文件
#define uint unsigned int //将unsigned int定义为uint
#define uchar unsigned char //将unsigned char定义为uchar
uchar temp;
void delay(uint z); //函数的声明
void main()
{
temp=0xfe; //使temp为:1111 1110
P1=temp; //点亮第一个灯
while(1) //一个总循环
{
temp=_crol_(temp,1); //调用函数,使temp循环左移一位
delay(1200); //延时
P1=temp; //使P1为 1111 1101
}
}
//#####################################延时1s子程序##########################################
void delay(uint z) //定义含参数子程序
{
uint x,y; //定义两个无符号整型变量x,y,称为局部变量,只在子函数中有效
for(x=100;x>0;x--)
for(y=z;y>0;y--); //此行for循环后加一分号且上一个for后没分号,表示该for循环嵌套在上一个for循环中,
//z的值在主函数中赋
//第二个for循环后无内容,表示什么也不执行;执行完上述循环后由于分号?跳出循环
}