#include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code ACT[4]={0xfe,0xfd,0xfb,0xf7};
uchar data shuzu[4];
//-------------------------------------------------------------------
uchar status;
uchar temp,f;
//-------------------------------------------------------------------
void delay_1ms(void)
{
uint k;
for(k=0;k<121;k++);
}
//--------------------------------------------------------------------
void dis_all(void)
{
P0=SEG7[shuzu[0]];P2=ACT[0];
delay_1ms();
P0=SEG7[shuzu[1]];P2=ACT[1];
delay_1ms();
P0=SEG7[shuzu[2]];P2=ACT[2];
delay_1ms();
P0=SEG7[shuzu[3]];P2=ACT[3];
delay_1ms();
}
//---------------------------------------------------------------------
void dis_shuzu0(void)
{
P0=SEG7[f];P2=ACT[0];
delay_1ms();
}
//--------------------------------------------------------------------
void dis_shuzu1(void)
{
P0=SEG7[f];P2=ACT[1];
delay_1ms();
}
//--------------------------------------------------------------------
void dis_shuzu2(void)
{
P0=SEG7[f];P2=ACT[2];
delay_1ms();
}
//--------------------------------------------------------------------
void dis_shuzu3(void)
{
P0=SEG7[f];P2=ACT[3];
delay_1ms();
}
//--------------------------------------------------------------------
void key_s1(void)
{
P3=0xff;
if(P3==0xfb)
{
if(temp>50)temp=0;
if(temp==0)f++;
if(f>9)f=0;
temp++;
delay_1ms();;
}
}
//---------------------------------------------------------------------
void key_s2(void)
{
P3=0xff;
if(P3==0xf7)
{
switch(status)
{
case 1:shuzu[0]=f;break;
case 2:shuzu[1]=f;break;
case 3:shuzu[2]=f;break;
case 4:shuzu[3]=f;break;
default:break;
}
}
}
//---------------------------------------------------------------------
void key_s4(void)
{
P3=0xff;
if(P3==0xdf)
{
if(temp>50)temp=0;
if(temp==0)status++;
if(status>4)status=0;
temp++;
delay_1ms();;
}
}
//======================================================
void main()
{
while(1)
{
key_s1();
key_s2();
key_s4();
switch(status)
{
case 0:dis_all();break;
case 1:dis_shuzu0();break;
case 2:dis_shuzu1();break;
case 3:dis_shuzu2();break;
case 4:dis_shuzu3();break;
default:break;
}
}
}
/*编译器提示的出错的E文又看不大懂,主要是不明白提示的意思,另外源程序中明明已经写了#include <REG51.H>但是在编译器的项目窗口中显示项目中加入的那个CS13-1.C中没有包含头文件。
真是不明白啊,难道是编译器出错了? |