#include<reg52.h>   //包含51单片机头文件
#define uchar unsigned char   //宏定义
#define uint unsigned int
sbit LED1=P1^0;   //LED小灯位定义
sbit KEY1=P3^4;   //按键S2定位义
sbit dula=P2^6;   //数码管段选
sbit wela=P2^7;   //数码管位选
uchar disnum;
uchar code table_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
                       0x77,0x7c,0x39,0x5e,0x79,0x71};  //数码管段选编码
delay(uchar);
void main()
{	
	wela=1;  //第一个数码管位选
	P0=0XFE;
	wela=0;
	KEY1=1;  //先给按键S2对应的I/O口置1
	while(1)
	{
		if(KEY1==0)   //如果有按键按下
			{		
				LED1=0;     //第一个LED小灯亮
				disnum++;   //disnum的值自身加1
				if(disnum==10)  //如果disnum的值等于10，让它归0
				disnum=0;
				while(!KEY1);   //按键松手检测
			}
		else          //如果有没按键按下
			LED1=1;   //第一个LED小灯不亮
			P0=table_du[disnum];  //数码管还是显示原来的数字
			dula=1;    //数码管段选
			dula=0;				
	}
}