[code=C/C++][void main()
{
unsigned char m, j;
TMOD=0x01; //定时器0工作模式1
TH0=0x4b;
TL0=0x6a;
TR0=1;
IE=0x8a;
P1=0x7f; // P1=0xff, 所有按键拉高
P3=0x4f;
for (m=7;m>=0;m--)
{
key();
P2=dis[m];
if(BoolHC)
{
displayone(m);
}
else
{
displaytwo(m);
}
for (j=255;j>0;j--); //消除视觉暂留
if (m==0) m=8;
}
}
void Timer0( void ) interrupt 1 //定时器0中断处理函数
{
// TF0=0; //溢出标记
TR0=0;
TH0=0x3c;
TL0=0xb0; //装载初值
TR0=1; //开始计数
i++;
if(i==20) {i=0;secondL--;}
if(secondL==-1) {secondL=9;secondH--;}
if(secondH==-1) {secondH=9;minute--;}
if(minute==0 && secondH==0 && secondL==0){EA=0;P3=0x20;P1=0xFF;}
}/code]
[code=C/C++][ void displayone(int m)
{ //显示上半场
switch(m)
{
case 0:P0=led1[jiafenshuh]; break;
case 1:P0=led1[jiafenshul]; break;
case 2:P0=led1[0]; break;
case 3:P0=led1[minute]; break;
case 4:P0=led1[secondH]; break;
case 5:P0=led1[secondL]; break;
case 6:P0=led1[yifenshuh]; break;
case 7:P0=led1[yifenshul]; break;
default:break;
}
}/code] |