• 基于stm32单片机输入捕获简易频率测量数字频率计Proteus仿真


    资料编号:147   下面是相关功能视频演示:

    147-基于stm32单片机输入捕获简易频率测量数字频率计Proteus仿真(源码+仿真+论文)

    使用 Proteus 仿真32单片机,实现了可以测量正弦波、方波、正弦波和锯齿波等波形频率的 频率计,测量误差在1%以内

    前端处理电路由LM324运算放大器组成迟滞比较器和电压跟随器,迟滞特性一定程度上解决了噪声扰动的问题,且可将任意固定频率的信号转化为脉冲,便于单片机的后续处理,而电压跟随器可增强其带载能力。

    下面是该资料的程序部分展示:

    void delay_ms(uint64_t nms)
    {
      uint32_t temp = 0;
      
      delay_Init();
      
      if(nms == 0)
      {
        return;
      }
      
      while(nms > 500)
      {
        SysTick->LOAD = SystemCoreClock / 8000 * 500; /* Time load (SysTick-> LOAD is 24bit) */
        SysTick->VAL = 0x000000;                      /* Empty counter */
        SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;     /* Start the countdown */
     
        do
        {
          temp = SysTick->CTRL;
        }
        while(temp&0x01 && !(temp&(1<<16)));        /* Wait time is reached */
     
        SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;  /* Close Counter */
        SysTick->VAL = 0x000000;                    /* Empty counter */
        
        nms -= 500;
      }
      
      SysTick->LOAD = SystemCoreClock / 8000 * nms; /* Time load (SysTick-> LOAD is 24bit) */
      SysTick->VAL = 0x000000;                      /* Empty counter */
      SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;     /* Start the countdown */
     
      do
      {
        temp = SysTick->CTRL;
      }
      while(temp&0x01 && !(temp&(1<<16)));        /* Wait time is reached */
     
      SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;  /* Close Counter */
      SysTick->VAL = 0x000000;                    /* Empty counter */

     下面是该设计的设计报告:

    下面是该设计的分享下载链接:

    https://pan.baidu.com/s/1gLcswGUfmLDeEQC66WaHpA?pwd=k5fz 

  • 相关阅读:
    bat互联网大厂的人都用什么相亲交友平台?盘点互联网人用的脱单软件
    凉鞋的 Godot 笔记 201. 第三轮循环:引入变量
    Python语言:字典的使用
    JS的加法规则
    GCC、g++、gcc的关系
    NTRU 加密方案
    淘宝电商数据客户价值分析
    经典面试题-显式等待与隐式等待
    docker搭建私有仓库并推送本地镜像
    2. java基础
  • 原文地址:https://blog.csdn.net/m0_74295839/article/details/127759306