#include <reg51.h>
#define unsigned int
sbit S1=P1^7; //按下启动开关
void delay(ms) //延时函数
{
int i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void main()
{
int i=0,run=0; //定义变量
while(1)
{
if(S1==0) //延时去抖动
{
delay(20);
if(S1==0)
{
for(i=0;i<7;i++)
{
P1=P1&(~(1<<i)); //从P1.0口依次输出点亮,L依次亮
delay(50);
}
for(i=0;i<8;i++)
{
P3=P3&(~(1<<i)); //从P3.0口依次输出点亮 E依次亮
delay(50);
}
for(i=0;i<8;i++)
{
P2=P2&(~(1<<i)); //从2.0口依次输出点亮 E依次亮
delay(50);
}
for(i=0;i<8;i++)
{
P0=P0&(~(1<<i)); //从0.0口依次输出点亮 D依次亮
delay(50) ;
}
delay(200);
for(i=0;i<8;i++)
{
P1=0xff;P2=0xff;P3=0xff;P0=0xff;
delay(250);
P1=0x80;P2=0x00;P3=0x00;P0=0x00;
delay(250);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff; //端口设置为高电平
delay(500);
}
}
}
} |