51单片机定时器使用举例

51单片机定时器使用举例


        举例:定时50毫秒,使用定时器0,工作方式1;50毫秒一到,点亮指示灯D1。

       按如下步骤进行:

      一.定时器0初始化程序,按如下进行设置:

       1.对TMOD赋值,以确定T0和T1的工作方式。

          已经明确用定时器0,工作方式。

           TMOD=0X01;设置定时器0为工作方式1

           具体设置过程请看书上相关说明,此部分内容书上讲得很清楚

     2.计算初值,并将其写入TH0、TL0或TH1、TL1。

        计算计数初值X:由于晶振为12 MHz,所以机器周期Tcy为1 ms。所以定时器要计数50000个就是50毫秒,

        N=t/ Tcy =50000/1=50000个

 

       TH0=(65536-50000)/256(求模的意思)

       TL0=(65536-50000)%256(求余的意思)

    3.中断方式时,则对IE赋值,开放中断。

     EA=1  总中断打开;

     ET0=1  定时器0中断打开;

   4.使TR0或TR1置位,启动定时/计数器定时或计数。

     TRO=1; 启动定时器0开始计时;

   二.写中断服务程序

     定时器0的中断服务程序

      Void exter0 interrupt  1

      {

          D1=0;点亮指示灯D1

          TH0=(65536-50000)/256(求模的意思)//再次装入初值,防止下次计数出错

         TL0=(65536-50000)%256(求余的意思)//再次装入初值,防止下次计数出错

     }

        单片机根据interrupt后的数字来确定是哪个定时器产生的中断,因外部中断序号是0,因此我们这里的定时器0中断序号是1。再次装入初值,防止下次计数出错。

 

 

你可能感兴趣的:(定时,单片机,单片机,中断)