前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >51单片机的数字频率测量系统,液晶1602,论文,电路,代码

51单片机的数字频率测量系统,液晶1602,论文,电路,代码

原创
作者头像
蒋宇智
修改于 2024-04-08 12:11:32
修改于 2024-04-08 12:11:32
4610
举报

设计要求

1. 以MCS-51系列单片机为控制器件,用C语言进行程序开发,结合外围电子电路,设计一款数字频率计;

2. 能够对1HZ~20MHZ正弦波、三角波、方波信号等周期信号的频率进行测量;

3. 测量误差:低于0.1%;

4. 频率测量结果采用LCD1602液晶显示;

系统概述

本设计给出了一种以AT89C52单片机为控制核心的数字频率计设计方案。方案由6个部分组成,分别是电源模块、单片机最小系统、信号放大模块、整形模块、分频模块和显示模块。

工作原理为:电源模块为整个系统提供稳定的5V工作电压,用户通过信号源输入周期性信号,输入信号经三极管电路放大和施密特触发器整形后,变成单片机可以识别的方波,方波再通过分频电路完成100倍分频。

当输入信号的频率低于200KHZ时,单片机直接读取并计算分频前单位时间(1S)内采集到的信号脉冲个数,即为信号频率;

当输入信号的频率超过200KHZ时,单片机读取计算的是经分频后的信号脉冲个数,然后再通过数据处理换算成实际频率。

最后,单片机将频率测量值输出到LCD1602显示器上实时显示。

Proteus仿真电路

原理图及PCB

实物图制作

仿真结果分析

打开Proteus仿真文件,文件后缀名为DSN。双击单片机,加载Program.hex文件(位于C程序文件夹内),运行仿真,结果如下所示。

被测信号频率为13HZ
被测信号频率为13HZ

仿真运行时,会弹出VSMCounter Timer和VSM Signal Generator两个窗口,VSM Counter Timer用于显示标准频率。

在仿真中,当被测信号电压大于5V时,VSM Counter Timer才会正常工作。这并不意味着,在实际频率计实物测试中,被测信号源电压要大于5V才行。

实际上,被测信号电压在几十mV,在示波器上一样可以查看显示,并不影响频率的测量,这只是仿真的局限性。

VSM Signal Generator用于调整被测信号的频率,它有四个旋钮,它们的功能用途如下表所示。

在仿真中,主要调节Centre和Frequency旋钮,设定好频率档位后,转动Centre旋钮改变频率,LCD1602显示器就会跟随显示。

当被测信号频率为几百、几千HZ时,其仿真结果如下所示。

被测信号频率为390HZ
被测信号频率为390HZ
被测信号频率为5.60KHZ
被测信号频率为5.60KHZ
被测信号频率为19063HZ,测量结果为19051HZ
被测信号频率为19063HZ,测量结果为19051HZ

频率测量误差计算为:

被测信号频率在几十、几百HZ时,频率能很快被测量出来;当频率达到KHZ时,由于单片机运算性能有限,可能需要花费几分钟才会有仿真结果。

当频率达到MHZ以上时,例如被测信号频率设定为1.17MHZ时,单片机运算花费12分钟左右,才计算出频率值。

单片机运算中...
单片机运算中...
被测信号频率为1.17MHZ,测量结果为1169700HZ
被测信号频率为1.17MHZ,测量结果为1169700HZ

频率测量误差计算为:

综上所述,本次频率计仿真设计满足量程、误差等要求。

资源内容

(1)基于51单片机的数字频率计设计论文完整版;

(2)C程序;

(3)Proteus仿真;

(4)原理图及PCB文件;

(5)Visio流程图文件;

(6)元器件清单;

(7)英文文献翻译;

(8)参考资料及文献;

资源截图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
Sentry9-1-2部署
Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node.js、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。
YP小站
2020/06/04
1.7K0
Kafka学习笔记之Kafka日志删出策略
kafka将topic分成不同的partitions,每个partition的日志分成不同的segments,最后以segment为单位将陈旧的日志从文件系统删除。
Jetpropelledsnake21
2019/07/03
1.9K0
Kafka 提供哪些日志清理策略?
在 Kafka 的日志管理器中会有一个专门的日志删除任务来周期性地检测和删除不符合保留条件的日志分段文件,这个周期可以通过 broker 端参数 log.retention.check.interval.ms 来配置,默认值为300000,即5分钟。当前日志分段的保留策略有3种:
码农架构
2021/03/21
2.7K0
Kafka 提供哪些日志清理策略?
Centos7使用docker搭建Sentry
  Sentry 是一款基于 Django实现的错误日志收集和聚合的平台,它是 Python 实现的,但是其日志监控功能却不局限于python,对诸如 Node.js, php,ruby, C#,java 等语言的项目都可以做到无缝集成,甚至可以用来对iOS, Android 移动客户端以及 Web前端异常进行跟踪。我们可以在程序中捕获异常,并发送到 Sentry服务端进行聚合统计、展示和报警。sentry官方推荐docker方式安装,使用到了docker-compose。docker至少是1.10.3以上的版本。为此需要使用centos7。
用户3773636
2019/10/05
2.5K0
Centos7使用docker搭建Sentry
kafka存储结构以及Log清理机制
如上图所示、kafka 中消息是以主题 topic 为基本单位进行归类的,这里的 topic 是逻辑上的概念,实际上在磁盘存储是根据分区存储的,每个主题可以分为多个分区、分区的数量可以在主题创建的时候进行指定。例如下面 kafka 命令创建了一个 topic 为 test 的主题、该主题下有 4 个分区、每个分区有两个副本保证高可用。
Spark学习技巧
2021/07/29
8150
kafka存储结构以及Log清理机制
【云原生进阶之PaaS中间件】第三章Kafka-2-安装部署
        kafka是依靠zookeeper来实现分布式的,所以再启动前需要先启动zookeeper,如下图
江中散人_Jun
2023/11/18
2830
【云原生进阶之PaaS中间件】第三章Kafka-2-安装部署
k8s部署Kafka集群
本次的目的是通过使用k8s搭建一个三节点的kafka集群,因为kafka集群需要用到存储,所以我们需要准备三个持久卷(Persistent Volume) 简称就是PV。
yukong
2020/07/28
4.3K0
k8s部署Kafka集群
Sentry 监控 - 私有 Docker Compose 部署与故障排除详解
除了公开提供其源代码外,Sentry 还提供并维护了一个最小的设置,可以为简单的用例开箱即用。该存储库还可以作为各种 Sentry 服务如何连接以进行完整设置的蓝图,这对于愿意维护更大安装的人很有用。为简单起见,我们为此选择使用 Docker 和 Docker Compose, 以及基于 bash 的安装和升级脚本。
为少
2021/12/15
3.3K0
Sentry 监控 - 私有 Docker Compose 部署与故障排除详解
系统日志清理问题:系统日志清理不当,占用大量磁盘空间
是山河呀
2025/02/08
2770
Kafka中Topic级别配置
  配置topic级别参数时,相同(参数)属性topic级别会覆盖全局的,否则默认为全局配置属性值。
保持热爱奔赴山海
2021/05/08
1.2K0
系统清理问题:系统清理不彻底,占用大量资源
是山河呀
2025/02/08
1340
系统垃圾文件清理问题:系统垃圾文件清理不当,占用大量磁盘空间
是山河呀
2025/02/08
2690
系统临时文件清理问题:系统临时文件清理不当,占用大量磁盘空间
是山河呀
2025/02/08
1930
kafka集群及与springboot集成
在#192.168.1.128服务器上生产者控制台输入:hello kafka进行测试
全栈程序员站长
2022/08/10
9460
kafka集群及与springboot集成
Kafka伪集群安装
Kafka伪集群安装 Kaka集群安装 一、Kafka下载地址 Kafka下载页面: https://kafka.apache.org/downloads 选择Kafka 3.2.0 版本进行下载:
黑洞代码
2022/07/01
3260
Kafka的2种日志清理策略感受一下
Kafka是一个基于日志的流处理平台,一个topic可以有多个分区(partition),分区是复制的基本单元,在单节点上,一个分区的数据文件可以存储在多个磁盘目录中,配置项是:
Spark学习技巧
2019/08/06
2.2K0
Kafka的2种日志清理策略感受一下
分布式实时消息队列Kafka(五)
分布式实时消息队列Kafka(五) 知识点01:课程回顾 一个消费者组中有多个消费者,消费多个Topic多个分区,分区分配给消费者的分配规则有哪些? 分配场景 第一次消费:将分区分配给消费者 负载均衡实现:在消费过程中,如果有部分消费者故障或者增加了新的消费 基本规则 一个分区只能被一个消费者所消费 一个消费者可以消费多个分区 分配规则 范围分配 规则:每个消费者消费一定范围的分区,尽量均分,如果不能均分,优先分配给标号小的 应用:消费比较少的Top
Maynor
2021/12/07
9770
分布式实时消息队列Kafka(五)
kafka 数据清除机制
在Kafka中,存在数据过期的机制,称为data expire。如何处理过期数据是根据指定的policy(策略)决定的,而处理过期数据的行为,即为log cleanup。
用户1217611
2022/05/06
2.4K0
kafka 数据清除机制
Sentry错误日志监控
sentry 是一个开源的实时错误监控的项目,它支持很多端的配置,包括 web 前端、服务器端、移动端及其游戏端。
iginkgo18
2021/06/23
2K0
快速入门Kafka系列(2)——Kafka集群搭建
作为快速入门Kafka系列的第二篇博客,本篇为大家带来的是Kafka集群搭建~
大数据梦想家
2021/01/27
6790
快速入门Kafka系列(2)——Kafka集群搭建
推荐阅读
相关推荐
Sentry9-1-2部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档