51单片机的应用——正脉冲宽度的的测量

用定时器T1测量宽度为200μs左右的正脉冲,说明测量方法,编写程序并分析测量误差,晶振为12MHz

分析:令T1受外部信号的控制,在正脉冲期间计数,计数结束后将结果存储在70H开始的单元中。

TMOD=1001 0000B=90H,GATE = 1,模式1

初值X=0

T1受引脚P3.3(INT1)的输入控制,INT1=1时计数,INT1=0时停止

程序实现:

MOV TMOD,#90H          ;初始化
MOV TH1,#00H
MOV TL1,#00H
MOV R0,#70H            ;存储在70H开始的单元

WAIT: JB P3.3,WAIT    ;等待脉冲变低
       SETB TR1        ;等待计数

WAIT1: JNB P3.3,WAIT1  ;等待脉冲变高
WAIT2:JB P3.3,WAIT2  ;P3.3=1,开始计数,等待脉冲变低
       CLR TR1         ;停止计数,准备存储结果
       MOV @R0,TL1     ;低8位
       INC R0
       MOV @R0,TH1     ;高8位

总结:令GATE = 1,使定时器的计数受外部信号的控制,T0受P3.2控制,T1受P3.3控制

        计数×机器周期=脉冲宽度

        误差分析:由上式,误差来源于计数和机器周期。①当器件老化或其他问题导致时钟频率不等于所给的12MHz时,会影响真实的计数值导致结果错误,例如当实际Tm<1μs时,计数值更大,算出脉宽更大。②由于单片机硬件和程序的响应和执行需要时间,定时器的计数可能有延迟,导致结果不精确。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值