[牛人杂谈]

在没有示波器的情况下如何测量代码要表达的脉宽

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

void Delay(char i)
{
        while(i--)
        _nop_();
}



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

51174630cc96b2f8f6.png
56051630ccac009920.png
之后按下停止,画面停止,这时候我们可以测量脉宽。
46282630cca1bf3c3a.png
单击波形的某个点,作为测量起点,如下所示,然后鼠标在上面移动,会看到一个蓝色竖线这是相对偏移测量线,我们可以看到放到下降沿时候的数字变化,d:0.485026ms这就是测量的高电平脉宽。
这告诉我们程序产生的高电平脉宽是约485us,符合我们的设计要求。
你学会了吗?

使用特权

评论回复
内政奇才| | 2022-8-31 09:22 | 显示全部楼层
我学废了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1893

主题

15621

帖子

197

粉丝