学习12 - 图1

    今天做这个题目,期间有点小问题就是
    TH0 = (65536 - 50000) / 256; //定时50ms
    TL0 = (65536 - 50000) % 256;
    这俩句的值怎么算,问了明明,少爷懂了差不多;
    废物不说了上代码
    #include
    #define u8 unsigned char
    #define s8 char
    #define u16 unsigned int
    #define s16 int
    sbit led1 = P0^0;
    sbit led2 = P0^1;
    sbit led3 = P0^2;
    sbit led4 = P0^3;
    sbit led5 = P0^4;
    sbit led6 = P0^5;
    sbit led7 = P0^6;
    sbit led8 = P0^7;
    void cls_buzz(void)
    {
    P2 = (P2&0x1F|0xA0);
    P0 = 0X00;
    P2 &=0X1f;
    P0 = 0xff;
    }
    void htc573()
    {
    P2 = ( P2&0x1f)|0x80;
    }
    //===================
    void Init_Timer()
    {
    TMOD=0X01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    ET0=1;
    EA=1;
    TR0=1;
    }
    u8 count=0;

    void zhongduanTimer() interrupt 1
    {
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    count++;
    if(count==10)//¶¨Ê±Æ÷0.5s
    {
    led1 =~led1;
    }

    1. if(count==20)//2s
    2. {
    3. led2 =~led2;
    4. count=0;
    5. }

    }

    //===================
    void main()
    {
    cls_buzz();
    htc573();
    Init_Timer();
    while(1)
    {
    }

    }