单片机源程序如下:
#include <REGX52.H>
sbit BEEP=P3^6;
sbit LED=P1^1;
sbit LED1=P1^3;
sbit LED2=P1^5;
sbit LED3=P1^7;
void Delay(unsigned int t)
{
while(t--);
}
void delay(unsigned int ms)
{
unsigned int m,j;
for(m=0;m<ms;m++)
for(j=0;j<120;j++);
}
void main()
{
unsigned char Time,i;
delay(500);
P1=0xfe;
delay(500);
P1=0xfc;
delay(500);
P1=0xf8;
delay(500);
P1=0xf0;
delay(500);
P1=0xe0;
delay(500);
P1=0xc0;
delay(500);
P1=0x80;
delay(500);
P1=0x00;
P1=0x7f;
delay(500);
P1=0x3f;
delay(500);
P1=0x1f;
delay(500);
P1=0x0f;
delay(500);
P1=0x07;
delay(500);
P1=0x03;
delay(500);
P1=0x01;
delay(500);
P1=0x00;
delay(500);
P1=0xff;
while(1)
{
for(Time=0;Time<50;Time++) //改变亮灭时间,由暗到亮
{
for(i=0;i<10;i++) //计次延时
{
LED=0; //LED亮
Delay(Time); //延时Time
LED=1; //LED灭
Delay(50-Time); //延时100-Time
}
for(i=0;i<10;i++)
{
LED1=0; //LED亮
Delay(Time); //延时Time
LED1=1; //LED灭
Delay(50-Time); //延时100-Time
}
for(i=0;i<10;i++)
{
LED2=0; //LED亮
Delay(Time); //延时Time
LED2=1; //LED灭
Delay(50-Time); //延时100-Time
}
for(i=0;i<10;i++)
{
LED3=0; //LED亮
Delay(Time); //延时Time
LED3=1; //LED灭
Delay(50-Time); //延时100-Time
}
}
}
for(Time=50;Time>0;Time--) //改变亮灭时间,由亮到暗
{
for(i=0;i<10;i++) //计次延时
{
LED=0; //LED亮
Delay(Time); //延时Time
LED=1; //LED灭
Delay(50-Time); //延时100-Time
}
for(i=0;i<10;i++)
{
LED1=0; //LED亮
Delay(Time); //延时Time
LED1=1; //LED灭
Delay(50-Time); //延时100-Time
}
for(i=0;i<10;i++)
{
LED2=0; //LED亮
Delay(Time); //延时Time
LED2=1; //LED灭
Delay(50-Time); //延时100-Time
}
for(i=0;i<10;i++)
{
LED3=0; //LED亮
Delay(Time); //延时Time
LED3=1; //LED灭
Delay(50-Time); //延时100-Time
}
}
}
|