当前位置: 首页 > news >正文

蓝桥杯备战——11.NE555测频

1.分析原理图

在这里插入图片描述
我们可以看到,上图就是一个NE555构建的方波发生电路,输出方波频率=1.44/2(R8+Rb3)C,如果有不懂NE555内部结构,工作原理的,可以到B站学习。实在不懂仿真也行,比如我下面就是仿真结果:
在这里插入图片描述
然后就是下图,NE555输出的方波信号输入到电容二极管组成的负压生成电路,产生大概4.3V的负压Vee供运放使用。这与本节内容无关,我只是一起讲了。
在这里插入图片描述
再看下图:NE555输出方波信号也接到了排针J3上,而且旁边就是P34引脚,又由于比赛时好像不会提供杜邦线,所以我们也只能用跳线帽将NET_SIG和P34连在一起,然后单片机通过P34引脚来测输出频率。
在这里插入图片描述

2.定时器测频

这里我就不得不狠狠的吐槽一波这板子的设计人员,既然你都用STC15F2K61S2了,为什么不能想着兼容设计把P34改成P35呢?我们知道,定时器0可以对P34引脚输入脉冲计数,定时器1可以对P35引脚输入脉冲计数,STC89C52和STC15F都是一样的。但是STC15F还有一个更好用,更灵活的外设:PCA
在这里插入图片描述
但是呢,槽点来了,CCP功能切换不到P34引脚,只能把PCA计数脉冲源切换到P34引脚,就很无语,你把P34替换成P35,既能兼容STC89C52使用定时器1对外部脉冲计数,也能兼容STC15F使用CCP功能,就不能好好阅读一下STC15F的用户手册嘛?
在这里插入图片描述
不过现在我也不打算就用定时器0来对外部输入脉冲计数,因为我的初衷是把板子上面的各个外设都封装一遍且互不干扰,现在定时器0已经被我用做前后台功能了,所以我得另寻他法。别说,还真有。
这里真的不得不佩服STC芯片的设计者们,使用一个PCA计数阵列就能实现脉冲捕获,PWM输出,软16位定时器,外部中断,D/A功能。关于此外设具体如何使用,请阅读STC15F用户手册!
在这里插入图片描述
在这里插入图片描述

我这里就是使用的PCA计数阵列对P34输入的脉冲进行计数,然后每1S获取计数值,计数值即频率。

3.代码封装库

代码注释即解析,请一定先仔细阅读PCA外设章节。

#include "capture.h"u32 frequency=0;	//得出频率,单位HZ
u8 Overflow=0;		//PCA计数溢出次数//PCA软件定时器对P34输入脉冲计数
void Capture_Init()
{P_SW1 &=0XCF;	//清除CCP_S1,CCP_S0位P_SW1 |=0X10;	//CCP在P34/ECI_2CCON = 0;     //清除CF标志 PCA定时器停止 清除模块0/1/2中断标志CL = 0;CH = 0;	//复位PCA计数值CMOD = 0x07; //设置PCA时钟源:ECI输入,允许PCA溢出中断CR = 1;	//启动PCA计数器阵列计数EA = 1; //开总中断
}void PCA_isr() interrupt 7	//发生匹配中断
{CF = 0;	//清中断标志CL = 0;CH = 0;	//复位PCA计数值Overflow++;
}//每1S获取一次计数值,即频率
void Get_Frequency()
{frequency = (Overflow<<16) | (CH<<8) |CL;CL = 0;CH = 0;Overflow=0;
}

4.使用示例

#include "main.h"bit KeyScan_Flag=0;
extern u32 frequency;	//测得频率void System_Init(void);
void Timer0_Init(void);void main()
{System_Init();Timer0_Init();Capture_Init();while(1){Nixie_Display(1,(frequency%100000000)/100000);	Nixie_Display(2,(frequency%10000000)/10000);Nixie_Display(3,(frequency%1000000)/10000);	Nixie_Display(4,(frequency%100000)/10000);	Nixie_Display(5,(frequency%10000)/1000);	Nixie_Display(6,(frequency%1000)/100);	Nixie_Display(7,(frequency%100)/10);	Nixie_Display(8,frequency%10);	}
}void Timer0_Isr() interrupt 1	//1ms中断一次
{static u16 count1=0;if(++count1==1000)	//每1S获取一次计数值{Get_Frequency();count1=0;}
}void Timer0_Init()		//1毫秒@12.000MHz
{AUXR &= 0x7F;			//12T模式TMOD &= 0xF0;			//定时器0:16位自动重装载TL0 = 0x18;				//设置定时初始值TH0 = 0xFC;TF0 = 0;	//清除TF0标志ET0 = 1;	//使能定时器0中断EA = 1;		//开总中断TR0 = 1;	//定时器0开始计时
}void System_Init()//系统上电初始化
{//先锁存蜂鸣器,继电器所在573输出低电平,防止上电乱叫P25=1;P26=0;P27=1; //74HC138-->Y5=0,else=1-->Y5C=1,else=0P04=0;P06=0;	//ULN2003输入经过非门送入达林顿管,低电平有效P25=0;P26=0;P27=0;//锁存数据//关闭所有LED灯P25=0;P26=0;P27=1; //74HC138-->Y4=0,else=1-->Y4C=1,else=0P0=0XFF;P25=0;P26=0;P27=0;//锁存数据
}

我们通过旋转滑动变阻器RB3就能改变输出频率,演示效果如下,由于手头没有示波器,只能到学校再验证误差了。

NE555测频演示

相关文章:

蓝桥杯备战——11.NE555测频

1.分析原理图 我们可以看到&#xff0c;上图就是一个NE555构建的方波发生电路&#xff0c;输出方波频率1.44/2(R8Rb3)C,如果有不懂NE555内部结构&#xff0c;工作原理的&#xff0c;可以到B站学习。实在不懂仿真也行&#xff0c;比如我下面就是仿真结果&#xff1a; 然后就是下…...

代码随想录算法训练营第三十三天|509. 斐波那契数 ,● 70. 爬楼梯 , 746. 使用最小花费爬楼梯

确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 代码随想录 视频&#xff1a;从此再也不怕动态规划了&#xff0c;动态规划解题方法论大曝光 &#xff01;| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔哩…...

Node.js 文件系统操作指南

文章目录 Node.js 文件系统操作完全指南一、引言二、基本文件操作2.1 读取文件2.2 写入文件2.3 追加内容到文件 三、文件与目录的创建与删除3.1 创建文件3.2 创建目录3.3 删除文件3.4 删除目录 四、文件与目录的信息查询4.1 检查文件或目录是否存在4.2 获取文件信息4.3 获取目录…...

Kotlin 协程1:深入理解withContext

Kotlin 协程1&#xff1a;深入理解withContext 引言 在现代编程中&#xff0c;异步编程已经变得非常重要。在 Kotlin 中&#xff0c;协程提供了一种优雅和高效的方式来处理异步编程和并发。在这篇文章中&#xff0c;我们将深入探讨 Kotlin 协程中的一个重要函数&#xff1a;wi…...

(自用)learnOpenGL学习总结-高级OpenGL-几何着色器

在顶点着色器和片段着色器中间还有一个几何着色器。 几何着色器的输入是一个图元的一组顶点&#xff0c;在几何着色器中进行任意变换之后再给片段着色器&#xff0c;可以变成完全不一样的图元、可以生成更多的顶点。 #version 330 core layout (points) in; layout (line_str…...

坚持刷题 | 完全二叉树的节点个数

Hello&#xff0c;大家好&#xff0c;我是阿月&#xff01;坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天刷&#xff1a;完全二叉树的节点个数 题目 222.完全二叉树的节点个数 代码实现 class TreeNode {int val;TreeNode left, right;public TreeNode(int val) …...

K8S网络

一、介绍 k8s不提供网络通信&#xff0c;提供了CNI接口(Container Network Interface&#xff0c;容器网络接口)&#xff0c;由CNI插件实现完成。 1.1 Pod通信 1.1.1 同一节点Pod通信 Pod通过虚拟Ethernet接口对&#xff08;Veth Pair&#xff09;与外部通信&#xff0c;Veth…...

【蓝桥杯51单片机入门记录】LED

目录 一、基础 &#xff08;1&#xff09;新建工程 &#xff08;2&#xff09;编写前准备 二、LED &#xff08;1&#xff09;点亮LED灯 &#xff08;2&#xff09;LED闪烁 延时函数的生成&#xff08;stc-isp中生成&#xff09; 实现 &#xff08;3&#xff09;流水灯…...

轻松使用python将PDF转换为图片(成功)

使用PyMuPDF&#xff08;fitz&#xff09;将PDF转换为图片 在处理PDF文件时&#xff0c;我们经常需要将PDF页面转换为图片格式&#xff0c;以便于在网页、文档或应用程序中显示。Python提供了多种方式来实现这一需求&#xff0c;本文将介绍如何使用PyMuPDF&#xff08;也称为f…...

【目标检测】对DETR的简单理解

【目标检测】对DETR的简单理解 文章目录 【目标检测】对DETR的简单理解1. Abs2. Intro3. Method3.1 模型结构3.2 Loss 4. Exp5. Discussion5.1 二分匹配5.2 注意力机制5.3 方法存在的问题 6. Conclusion参考 1. Abs 两句话概括&#xff1a; 第一个真正意义上的端到端检测器最…...

[工具探索]Safari 和 Google Chrome 浏览器内核差异

最近有些Vue3的项目&#xff0c;使用了safari进行测试环境搞开发&#xff0c;发现页面存在不同程序的页面乱码情况&#xff0c;反而google浏览器没问题&#xff0c;下面我们就对比下他们之间的差异点&#xff1a; 日常开发google chrome占多数&#xff1b;现在主流浏览器 Goog…...

文本生成高清、连贯视频,谷歌推出时空扩散模型

谷歌研究人员推出了创新性文本生成视频模型——Lumiere。 与传统模型不同的是&#xff0c;Lumiere采用了一种时空扩散&#xff08;Space-time&#xff09;U-Net架构&#xff0c;可以在单次推理中生成整个视频的所有时间段&#xff0c;能明显增强生成视频的动作连贯性&#xff…...

时隔3年 | 微软 | Windows Server 2025 重磅发布

最新功能 以下是微软产品团队正在努力的方向&#xff1a; Windows Server 2025 为所有人提供的热补丁下一代 AD 活动目录和 SMB数据与存储Hyper-V 和人工智能还有更多… Ignite 发布视频 Windows Server 2025 Ignite Video 介绍 Windows Server 2022 正式发布日期是2021年…...

有趣的css - 动态的毛玻璃背景

页面效果 此效果主要使用 backdrop-filter 属性&#xff0c;以及配合 animation 属性来实现毛玻璃模糊和一些动效。 此效果可适用于登录窗口&#xff0c;网站背景或者一些卡片列表中&#xff0c;使网页更具科技感和空间感。 核心代码部分&#xff0c;简要说明了写法思路&#x…...

桥接模式解析

回调设计模式 意图 回调是指一段可以执行的代码&#xff0c;该代码会被作为参数传递给其他代码&#xff0c;在适当的时候&#xff0c;预期这部分代码将会被调用执行。 解释 案例&#xff1a;我们需要在执行完任务后得到通知。为此&#xff0c;我们会向执行器传递一个回调方法…...

MySQL数据库基础第一篇(SQL通用语法与分类)

文章目录 一、SQL通用语法二、SQL分类三、DDL语句四、DML语句1.案例代码2.读出结果 五、DQL语句1.DQL-基本查询2.DQL-条件查询3.DQL-聚合函数4.DQL-分组查询5.DQL-排序查询6.DQL-分页查询7.DQL语句-执行顺序1.案例代码2.读出结果 六、DCL语句1.DCL-管理用户2.DCL-权限控制1.案例…...

【Qt学习笔记】(一)初识Qt

Qt学习笔记 1 使用Qt Creator 新建项目2 项目代码解释3 创建第一个 Hello World 程序4 关于内存泄漏问题5 Qt 中的对象树6 关于 qDebug&#xff08;&#xff09;的使用7 使用其他方式创建一个 Hello World 程序&#xff08;编辑框和按钮方式&#xff09;8 关于 Qt 中的命名规范…...

YIA主题如何关闭新版本升级提示?WordPress主题怎么取消升级提醒?

前两天YIA主题发布了升级到2.8版本&#xff0c;新增了一些功能&#xff0c;优化调整修复了一些功能&#xff0c;但是这些功能调整幅度不大&#xff0c;加上boke112百科使用的YIA主题已经进行了很多方面的个性化修改&#xff0c;所以就懒得升级了&#xff0c;但是每次进入WordPr…...

消息队列的应用场景

消息队列的应用场景 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ&#xff0c;RabbitMQ&#xff0c;Ze…...

Arcgis10.3安装

所需软件地址 链接&#xff1a;https://pan.baidu.com/s/1aAykUDjkaXjdwFjDvAR83Q?pwdbs2i 提取码&#xff1a;bs2i 1、安装License Manager 点击License Manager.exe&#xff0c;默认下一步。 安装完&#xff0c;点击License Server Administrator&#xff0c;停止服务。…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...