#include<reg52.h> //包含单片机寄存器的头文件
#define uchar unsigned char
sbit p2_0 = p2^0;
sbit p2_1 = p2^1;
sbit p2_2 = p2^2;
sbit p2_3 = p2^3;
#define uint unsigned int
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/* 函数申明 -----------------------------------------------*/
void delay(uint z);
/* 变量定义 ----------------------------------------------*/
sbit key1=P3^5;
sbit key2=P3^4;
sbit key3=P3^3;
sbit key4=P3^2;
void display()
{
uchar m;
for(m=9;m>0;m--)
{
p0=table[m];
p2_0 =0;
delay(2000);
p2_0 = 1;
}
for(m=0;m<10;m++)
{
p0=table[m];
p2_1=0;
delay(2000);
p2_1= 1;
}
for(m=9;m>0;m--)
{
p0=table[m];
p2_2 = 0;
delay(2000);
p2_2 = 1;
}
for(m=0;m<10;m++)
{
p0=table[m];
p2_3 = 0;
delay(2000);
p2_3 = 1;
}
}
/*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
********************************************************************************
*/
void main(void)
{
unsigned int a;
P0 = 0;
for(a=100;a>0;a--)
{
display();
}
while(1) //无限扫描
{
if(key1==0)
{
delay(5); //消抖动
if(key1==0) //确认按键被按下
{
while(!key1);//松手检测
P1=0;
delay(200);
P1=0XFF;
}
}
if(key2==0)
{
delay(5); //消抖动
if(key2==0) //确认按键被按下
{
while(!key2);//松手检测
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
}
}
if(key3==0)
{
delay(5); //消抖动
if(key3==0) //确认按键被按下
{
while(!key3);//松手检测
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
delay(200);
}
}
if(key4==0)
{
delay(5); //消抖动
if(key4==0) //确认按键被按下
{
while(!key4);//松手检测
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
delay(200);
}
}
delay(10);
}
}
/*
********************************************************************************
** 函数名称 : delay(uint z)
** 函数功能 : 延时函数
********************************************************************************
*/
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
} |