定时器计数实验

#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;
    }
}

 

posted @ 2016-12-18 12:59  王小波私人定制  阅读(234)  评论(0编辑  收藏  举报
DON'T FORGET TO HAVE FUN