天天看點

定時器計數實驗

#include <reg52.h>

typedef unsigned char u8;

typedef unsigned int  u16;

sbit led = P1^0;

u8 timer;

void main (void)

{

    TMOD = 0x01;//設定TMOD,使得T0工作在16位定時。

    TH0 = (65535-50000) / 256;

    TL0 = (65535-50000) % 256;

    EA = 1; //開放總中斷

    ET0 = 1;//開放定時器0的溢出中斷

    TR0 = 1;//開始定時

    while(1) //作用就是讓程式結束  否則程式一直在這運作;

    {

        ;

    }

}

//實作方式一

void timer0_service(void) interrupt 1

{

    TH0 = (65535-50000) / 256;

    TL0 = (65535-50000) % 256;    

    //50ms已經設定好了

    timer ++;

    if (timer == 20)

    {

        timer = 0;

        led = ~led;

    }

}

定時器計數實驗
定時器計數實驗
定時器計數實驗