[牛人杂谈] 在没有示波器的情况下如何测量代码要表达的脉宽

[复制链接]
757|1
 楼主| gaoyang9992006 发表于 2022-8-29 22:20 | 显示全部楼层 |阅读模式
这里以51单片机为例。
之前帖子说道,如果有示波器,可以准确的测量代码延时的脉宽,根据示波器测量的结果做相应的调整,确保延时函数能达到满意的效果,如果没有示波器呢?
Keil集成开发软件已经帮你集成了虚拟的仪器:逻辑分析仪。
第一步,编写一个简单的方波程序。
  1. #include "reg51.h"
  2. #include "INTRINS.h"
  3. sbit DQ=P1^1;

  4. void Delay(char i)
  5. {
  6.         while(i--)
  7.         _nop_();
  8. }



  9. void main(void)
  10. {
  11.         while(1)
  12.         {
  13.                 DQ=1;
  14.                 Delay(48);
  15.                 DQ=0;
  16.                 Delay(48);
  17.         }
  18. }
第二步,设置工程以你指定的时钟,并编译工程。
8801630cc8d0918c4.png
这里我设置的11.0592MHz晶振。
工程的Debug默认即可,即为模拟调试器
然后设置优化等级为0,不优化。编译后运行Debug
第三步
单击下面右边的箭头,调出下面那个虚拟逻辑分析仪,然后点SETUP,设置要跟踪的变量或寄存器,这里我们输入DQ,保存,单击第一个箭头运行。

51174630cc96b2f8f6.png
56051630ccac009920.png
之后按下停止,画面停止,这时候我们可以测量脉宽。
46282630cca1bf3c3a.png
单击波形的某个点,作为测量起点,如下所示,然后鼠标在上面移动,会看到一个蓝色竖线这是相对偏移测量线,我们可以看到放到下降沿时候的数字变化,d:0.485026ms这就是测量的高电平脉宽。
这告诉我们程序产生的高电平脉宽是约485us,符合我们的设计要求。
你学会了吗?
内政奇才 发表于 2022-8-31 09:22 | 显示全部楼层
我学废了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2058

主题

16431

帖子

222

粉丝
快速回复 在线客服 返回列表 返回顶部