//flow light and beep
include <reg51.h>
//包含头文件,里面有关于P1这个八个IO口的sfr定义,sfr P1=0X80;
include <intrins.h>
/这个文件里 有关于_crol_(x,y) 这个字符串操作函数,x是初值,y是对x这个八位二进制数字进行多少位的 移位循环操作/
unsigned char a,b,k,j;
//定义四个无符号整型,每个范围是0-65535,用于计数。
sbit beep=P2^3;
//位定义P2.3 IO口,命名为beep.
void delay10ms()
// 编写延迟函数。
{
for(a=100;a>0;a–) //外循环100次
for(b=225;b>0;b–);
/内循环225次,共计22500次。结合晶振频率的指令周期,换算出具体的实际执行时间。/
}
void main() //主函数
{
k=0xfe; // 初值为 0X1111 1110
while(1) //大循环,死循环
{
delay10ms(); //先延迟10ms
beep=0; // 将P2.3电平设置低电平后,响蜂鸣器。
delay10ms(); //再延迟10ms
beep=1; // 关闭蜂鸣器
j=_crol_(k,1);
/ crol 的l 是左循环移位,每次移动1为,1111 1110 变成 1111 1101 ,再执行就变成1111 1011,再执行变成 1111 0111,再执行为 1110 1111 /
k=j;
// 变量k 的初值再被CROL处理位移动以后再赋给 k.
P1=j;
// 将k 初值被处理后的 j 数值 用于设置 P1 的八个IO端口。
}
}