51单片机例题

//3.8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。


#include //51头文件






#define DY_PORT P1 //设置LED连接的I/O组
#define DY_SPEED 50 //设置每一个明亮级的停留时间(值域:0~65535)
sbit Beep = P2^5;          //声明蜂鸣器




void delay (unsigned int a){ // 1ms延时程序
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++);//STC单片机在外部晶振为12MHz时i值上限为600  
}     //AT89C51单片机在外部晶振为12MHz时i值上限为125
}


void main(void){
unsigned int i;
unsigned int temp;
while(1){
    temp=0x01;
    for(i=0;i<8;i++){ //8个流水灯逐个闪动
      DY_PORT=~temp;   
                Beep = 0;
      delay(DY_SPEED);   //调用延时函数
                Beep = 1;
                delay(DY_SPEED);   //调用延时函数            
      temp<<=1;
    }
temp=0x80;
for(i=0;i<8;i++){ //8个流水灯反向逐个闪动
    DY_PORT=~temp;
    Beep = 0;
      delay(DY_SPEED);   //调用延时函数
                Beep = 1;
                delay(DY_SPEED);   //调用延时函数 
    temp>>=1;
    }
    temp=0xFE;
for(i=0;i<8;i++){ //8个流水灯依次全部点亮
      DY_PORT=temp;
      Beep = 0;
      delay(DY_SPEED);   //调用延时函数
                Beep = 1;
                delay(DY_SPEED);   //调用延时函数 
      temp<<=1;
    }
    temp=0x7F;
    for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮
      DY_PORT=temp;
      Beep = 0;
      delay(DY_SPEED);   //调用延时函数
                Beep = 1;
                delay(DY_SPEED);   //调用延时函数 
      temp>>=1;
    }
}
}

你可能感兴趣的:(嵌入式)