×
单片机 > 单片机程序设计 > 详情

利用单片机定时器T0产生定时脉冲编程

发布时间:2020-08-25 发布时间:
|

   利用定时器T0产生定时脉冲。每隔2ms产生宽度为2个机器周期的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHZ)。


    答:首先求出定时器T0初值。由于时钟频率为6MHZ,所以,机器周期为2µs。


    因为:t=(213-T0初值)´ 机器周期


    所以,当t=2ms时,则:(213-T0初值)´ 2´10-6=2´10-3


解得:T0初值=7096=11011101 11000B,其中将高8位11011101 B=DDH赋给TH0,低5位11000B=18H赋给TL0。


方法一:

       采用查询工作方式,编程如下:


              ORG  0000H

              AJMP  MAIN 

              ORG  0100H


    MAIN:  CLR  P1.0

              MOV  TMOD , #00H      ;设定T0的工作方式 

            MOV  TH0 , #0DDH    ;给定时器T0送初值 

MOV  TL0 , #18H


        SETB  TR0;启动T0工作


        LOOP: JNB  TF0 , $;$为当前指令指针地址

           CLR  TF0        


           SETB  P1.0;产生2µs正脉冲 

           CLR  P1.0 

           MOV  TH0 , #0DDH;重装载TH0和TL0


           MOV  TL0 , #18H

           SJMP  LOOP


           END


方法二:


采用中断工作方式,编程如下:

           ORG  0000H


           AJMP  MAIN

           ORG  000BH

           AJMP  T0INT 

           ORG  0100H


  MAIN:CLR  P1.0


           MOV  TH0 , #0DDH      ;给定时器T0送初值


MOV  TL0 , #18H 

        MOV  IE , #82H;允许T0中断


           SETB  TR0;启动T0


           SJMP  $ 

   中断服务程序:


           ORG  0300H


 T0INT: SETB  P1.0 

           CLR  P1.0


           MOV  TH0 , #0DDH;重装载TH0和TL0 

           MOV  TL0 , #18H 

           RETI


关键字:利  单片机  定时器T0  定时脉冲

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会