#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DU=P2^6;//数码管段选
sbit WE=P2^7;//数码管位选
sbit key_s2=P3^0;//独立按键s2
uchar num;//数码管显示的值
uchar code tabel[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x5F};
//毫秒级延时函数定义
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
void main()//main函数自身会循环
{
WE = 1;//打开位选锁存器
P0 = 0XFE;//1111 1110
WE = 0;//锁存位选数据
while(1)
{
if(key_s2==0)//判断按键是否被按下
{
delay(20);//按键消抖
if(key_s2==0)
{
num++;
if(num==10)
num = 0;
while(!key_s2);//松手检测
}
}
DU = 1;//打开段选锁存器
P0 = tabel[num];//0000 0110
DU = 0;//锁存段选数据
}