//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端口。