您的位置 首页 电路

怎么使用单片机守时器T0发生守时脉冲

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

使用守时器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。

办法一:

选用查询作业方式,编程如下:

ORG0000H

AJMPMAIN

ORG0100H

MAIN:CLRP1.0

MOVTMOD , #00H;设定T0的作业方式

MOVTH0 , #0DDH;给守时器T0送初值

MOVTL0 , #18H

SETBTR0;发动T0作业

LOOP:JNBTF0 , $;$为当时指令指针地址

CLRTF0

SETBP1.0;发生2μs正脉冲

CLRP1.0

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

MOVTL0 , #18H

SJMPLOOP

END

办法二:

选用中止作业方式,编程如下:

ORG0000H

AJMPMAIN

ORG000BH

AJMPT0INT

ORG0100H

MAIN:CLRP1.0

MOVTH0 , #0DDH;给守时器T0送初值

MOVTL0 , #18H

MOVIE , #82H;答应T0中止

SETBTR0;发动T0

SJMP$

中止服务程序:

ORG0300H

T0INT: SETBP1.0

CLRP1.0

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

MOVTL0 , #18H

RETI

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/347066.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部