#include <intrins.h> //包含移位函数_crol_
void Delay10ms(unsigned int c) //延时函数声明
void main(void)
{
unsigned char LED
LED = 0x01 //一个unsigned char有8位,每一位代表了一个灯,初始点亮第一盏灯
while(1)
{
P0 = LED //点亮一盏灯
Delay10ms(50) //延时500ms,让其量一会儿
LED = _crol_(LED,1)//向左移位函数,比如 0x01 -->0x02 -->0x04 -->0x08 --->0x10
}
}
void Delay10ms(unsigned int c) //延时函数
{
unsigned char a, b
for (c>0c--)//三重循环延时,大约延时10ms
{
for (b=38b>0b--)
{
for (a=130a>0a--)
}
}
}
/***************************************** *用P1口接LED *****************************************/ #include //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay(uint)//声明延时函数 void main(void) { uint iuchar tempwhile(1) { temp=0x01for(i=0i<8i++) //8个流水灯逐个闪动 { P1^=tempdelay(500)//调用延时函数 temp<<=1} temp=0x80for(i=0i/8个流水灯反向逐个闪动 { P1^=tempdelay(500)//调用延时函数 temp>>=1} temp=0xFEfor(i=0i<8i++) //8个流水灯依次全部点亮 { P1=tempdelay(500)//调用延时函数 temp<<=1} temp=0x7Ffor(i=0i/8个流水灯依次反向全部点亮 { P1=tempdelay(500)//调用延时函数 temp>>=1} } } void delay(uint t) //定义延时函数 { register uint bt//register为寄存器变量 即将无符号整形变量bt放在CPU的寄存器中而不是放在内存中 因为该 变量使用频率高 这样可以提高执行效率 for(tt--) for(bt=0bt<255bt++)}