|
程序如下
#include<reg51.h> //51單片機頭文件
#include <intrins.h> //包含有左右循環(huán)移位子函數(shù)的庫
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
sbit beep=P2^3;
void delay(uint z) //延時函數(shù),z的取值為這個函數(shù)的延時ms數(shù),如delay(200);大約延時200ms.
{ //delay(500);大約延時500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函數(shù)
{
uchar a,i;
while(1) //大循環(huán)
{
a=0xfe; //賦初值
// for(j=0;j<3;j++)
for(i=0;i<8;i++) //左移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關(guān)閉蜂鳴器
delay(50); //再延時50毫秒
a=_crol_(a,1); //將a變量循環(huán)左移一位
}
a=0x7f;
// for(j=0;j<3;j++)
for(i=0;i<8;i++) //右移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關(guān)閉蜂鳴器
delay(50); //再延時50毫秒
a=_cror_(a,1); //將a變量循環(huán)右移一位
}
}
}
|
-
基于proteus的仿真
|