邱梦佳吧 关注:5贴子:37
  • 1回复贴,共1


IP属地:江西1楼2021-05-11 10:37回复
    #include<reg51.h>
    #include<intrins.h>
    #define led P0
    #define choose P2
    sbit key1_add =P3^2;
    sbit key2_subtraction =P3^3;
    sbit key3_rst=P3^5;
    typedef unsigned int u16;
    typedef unsigned char u8;
    static u16 i;
    static u16 Single_digit;
    static u16 Tens_digit;
    u8 smgduan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
    void Timer0Init()
    {
    TMOD |=0X01;
    TH0=0XFC;
    TL0=0X18;
    ET0=1;
    EA=1;
    TR0=1;
    }
    void Int1Init()
    {
    IT1=1;
    EX1=1;
    EA=1;
    }
    void Int0Init()
    {
    IT0=1;
    EX0=1;
    EA=1;
    }
    void main()
    {
    Timer0Init();
    Int1Init();
    Int0Init();
    while(1)
    {
    if(i==12)
    {
    led=0xff;
    led=smgduan[Tens_digit];
    choose=0x01;
    }
    if(i>=24)
    {
    led=0xff;
    led=smgduan[Single_digit];
    choose=0x02;
    i=0;
    }
    if(!key3_rst)
    {
    Single_digit=0;
    Tens_digit=0;
    }
    }
    }
    void Timer0() interrupt 1
    {
    TH0=0XFC;
    TL0=0X18;
    i++;
    }
    void Init0() interrupt 0
    {
    if(Single_digit>=9)
    {
    Single_digit=0;
    if(Tens_digit>=9)
    Tens_digit=0;
    else
    Tens_digit+=1;
    }
    else
    Single_digit+=1;
    }
    void Init1() interrupt 2
    {
    if(Single_digit<=0)
    {
    Single_digit=9;
    if(Tens_digit<=0)
    Tens_digit=9;
    else
    Tens_digit-=1;
    }
    else
    Single_digit-=1;
    }


    IP属地:江西2楼2021-05-11 10:37
    回复