image.png经过我 一番的修改基本到达要求
    interrupt 中断号 后面应该是1 我用的是0所以不管我数码管 怎么弄 就是跳不出来
    看代码吧
    #include
    #define u8 unsigned char
    #define s8 char
    #define u16 unsigned int
    #define s16 int

    sbit s4=P3^3;
    sbit s5=P3^2;
    u8 feng=0;
    u8 miao=0;
    u8 haomia=0;
    unsigned char code SMG_NoDot[18] =
    {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
    0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
    0xbf,0x7f};
    void htc138( u8 n)
    {
    switch (n)
    {
    case 4:
    P2 = (P2 & 0X1f)|0x80;
    break;

    1. case 5:
    2. P2 = (P2 & 0X1f)|0xa0;
    3. break;
    4. case 6:
    5. P2 = (P2 & 0X1f)|0xc0;
    6. break;
    7. case 7:
    8. P2 = (P2 & 0X1f)|0xe0;
    9. break;

    }

    }

    void dislpaysmg_bit(u8 value ,u8 pos)
    {
    htc138(6);
    P0 = 0x01 << pos;

    1. htc138(7);
    2. P0 = value;

    }
    void Delay10us(u16 time ) //@11.0592MHz
    {
    while(time—);
    }
    void dislplaysmgzt()
    {
    dislpaysmg_bit(SMG_NoDot[haomia%10],7);
    Delay10us(500);
    dislpaysmg_bit(SMG_NoDot[haomia/10],6);
    Delay10us(500);
    dislpaysmg_bit(SMG_NoDot[16],5);
    Delay10us(500);

    1. dislpaysmg_bit(SMG_NoDot[miao%10],4);
    2. Delay10us(500);
    3. dislpaysmg_bit(SMG_NoDot[miao/10],3);
    4. Delay10us(500);
    5. dislpaysmg_bit(SMG_NoDot[16],2);
    6. Delay10us(500);
    7. dislpaysmg_bit(SMG_NoDot[feng%10],1);
    8. Delay10us(500);
    9. dislpaysmg_bit(SMG_NoDot[feng/10],0);
    10. Delay10us(500);

    }
    //=¶¨Ê±Æ÷==
    void Inittimer0()
    {

    TMOD =0X01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;

    ET0 = 1;
    EA = 1;
    TR0 = 1;

    }

    void SYNTAXInittimer0() interrupt 1
    {
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;

    1. haomia++;
    2. if(haomia==20)
    3. {
    4. miao++;
    5. haomia=0;
    6. if(miao==60)
    7. {
    8. feng++;
    9. miao=0;
    10. }
    11. if(feng==99)
    12. {
    13. feng=0;
    14. }
    15. }

    }

    //===================
    void delaykey(u8 t)
    {
    while(t—);
    }
    void anjankey()
    {
    if(s40)//Æô¶¯ÔÝÍ£
    {
    delaykey(100);
    if(s40);
    {

    1. TR0 = ~TR0;
    2. while(s4==0)
    3. {
    4. dislplaysmgzt();
    5. }
    6. }

    }

    if(s50)//ÇåÁã
    {
    delaykey(100);
    if(s50);
    {
    feng=0;
    miao=0;
    haomia=0;
    while(s5==0)
    {
    dislplaysmgzt();
    }
    }
    }
    }

    void main()
    {
    Inittimer0();
    while(1)
    {

    1. dislplaysmgzt();
    2. anjankey();
    3. }

    }