|
/*******************************************************
* 程序功能:用实验板8个LED灯
* 硬件说明:用国信长天实验板 STC89C52RC
* 实验现象:
* 日 期 : 2014/10/10
* 作 者 : xxx
*******************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define led P2=0X80
#define buzz P2=0Xa0
#define guan P2=0
/*******************************************
函数名称:delayms(uint z)
功 能:延时函数
入口参 数:z
返回值 :无
********************************************/
void delayms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*******************************************
函数名称:主函数main()
********************************************/
void main()
{
char i,j,a,b,c;
buzz;
P0=0;
guan;
P0=0x55;
for(i=0;i<6;i++)//实现奇数亮再偶数亮
{
led;
P0=~P0;
guan;
delayms(300);
}
for(i=0;i<3;i++) //一个灯上下循环三次
{ a=0xfe;
for(j=0;j<14;j++)
{ led;
P0=a;
guan;
delayms(300);
if(j<7)a=_crol_(a,1);
else a=_cror_(a,1);
}
}
for(i=0;i<3;i++) //两灯从两边往中间
{
a=0x7f;
b=0xfe;
for(j=0;j<4;j++)
{
c=a&b;
led;
P0=c;
guan;
delayms(300);
a=_cror_(a,1);
b=_crol_(b,1);
}
}
for(i=0;i<3;i++) //两灯从中间往两边
{
a=0xef;
b=0xf7;
for(j=0;j<4;j++)
{
c=a&b;
led;
P0=c;
guan;
delayms(300);
a=_crol_(a,1);
b=_cror_(b,1);
}
}
P0=0;
for(i=0;i<7;i++) //两灯从中间往两边
{
led;
P0=~P0;
guan;
delayms(300);
}
while(1);
}
|
|