当前位置:网站首页>AT89C52单片机的频率计(1HZ~20MHZ)设计,LCD1602显示,含仿真、原理图、PCB与代码等
AT89C52单片机的频率计(1HZ~20MHZ)设计,LCD1602显示,含仿真、原理图、PCB与代码等
2022-04-23 14:13:00 【蒋宇智】
设计要求
1.以MCS-51系列单片机为控制器件,用C语言进行程序开发,结合外围电子电路,设计一款数字频率计;
2.能够对1HZ~20MHZ正弦波、三角波、方波信号等周期信号的频率进行测量;
3.测量误差:低于0.1%;
4.频率测量结果采用LCD1602液晶显示;
系统概述
本设计给出了一种以AT89C52单片机为控制核心的数字频率计设计方案。方案由6个部分组成,分别是电源模块、单片机最小系统、信号放大模块、整形模块、分频模块和显示模块。
工作原理为:电源模块为整个系统提供稳定的5V工作电压,用户通过信号源输入周期性信号,输入信号经三极管电路放大和施密特触发器整形后,变成单片机可以识别的方波,方波再通过分频电路完成100倍分频。
当输入信号的频率低于200KHZ时,单片机直接读取并计算分频前单位时间(1S)内采集到的信号脉冲个数,即为信号频率;
当输入信号的频率超过200KHZ时,单片机读取计算的是经分频后的信号脉冲个数,然后再通过数据处理换算成实际频率。
最后,单片机将频率测量值输出到LCD1602显示器上实时显示。
仿真电路图
原理图
PCB图
频率计实物图
仿真结果分析
打开Proteus仿真文件,文件后缀名为DSN。双击单片机,加载Program.hex文件(位于C程序文件夹内),运行仿真,结果如下所示,被测信号频率为13HZ。
仿真运行时,会弹出VSMCounter Timer和VSM Signal Generator两个窗口,VSM Counter Timer用于显示标准频率。
在仿真中,当被测信号电压大于5V时,VSM Counter Timer才会正常工作。这并不意味着,在实际频率计实物测试中,被测信号源电压要大于5V才行。
实际上,被测信号电压在几十mV,在示波器上一样可以查看显示,并不影响频率的测量,这只是仿真的局限性。
VSM Signal Generator用于调整被测信号的频率,它有四个旋钮,它们的功能用途如下表所示。
在仿真中,主要调节Centre和Frequency旋钮,设定好频率档位后,转动Centre旋钮改变频率,LCD1602显示器就会跟随显示。
当被测信号频率为390HZ、5.6KHZ和19063HZ时,其仿真结果如下所示。
当被测信号频率为19063HZ,测量结果为19051HZ,频率测量误差计算为:
被测信号频率在几十、几百HZ时,频率能很快被测量出来;当频率达到KHZ时,由于单片机运算性能有限,可能需要花费几分钟才会有仿真结果。
当频率达到MHZ以上时,例如被测信号频率设定为1.17MHZ时,单片机运算花费12分钟左右,才计算出频率值。其运算过程如下,下图1为单片机正处于运算过程中,测量结果还未获得;图2为1.17MHZ的设定频率,单片机测得结果为1169700HZ。
频率测量误差计算为:
综上所述,本次频率计仿真设计满足量程、误差等要求。
资源内容
(1)基于51单片机的数字频率计设计论文完整版;
(2)C程序;
(3)Proteus仿真;
(4)原理图及PCB文件;
(5)Visio流程图文件;
(6)元器件清单;
(7)英文文献翻译;
(8)参考资料及文献;
资源截图
重要的事情说一遍!!!
由于频率计设计是我的原创设计,获取全套资料,
请微信搜索关注我的公众号:交院小智
版权声明
本文为[蒋宇智]所创,转载请带上原文链接,感谢
https://blog.csdn.net/JiaoDaBoy/article/details/118526318
边栏推荐
- Introduction to the use of semaphore for inter thread control
- About the configuration and use of json5 in nodejs
- ie8 浏览器提示是否 阻止访问js脚本
- Introduction to the use of countdownlatch and cyclicbarrier for inter thread control
- Nacos作为配置中心(四) 使用Demo
- 循环队列的基本操作,你学会了吗?
- krpano全景之vtour文件夹和tour
- Redis数据库讲解(一)
- Processing MKDIR: unable to create directory 'AAA': read only file system
- C语言知识点精细详解——初识C语言【1】
猜你喜欢
随机推荐
顺序栈的基本操作
统信UOS卸载php7.2.24,安装php7.4.27 ;卸载再安装为PHP 7.2.34
線程組ThreadGroup使用介紹+自定義線程工廠類實現ThreadFactory接口
差分隐私(背景介绍)
常见存储类型和FTP主被动模式解析
错误:无法远程查找到密钥 “428F7ECC7117F726“
Operation instructions of star boundary automatic text translator (advanced version)
std::map 和 std::vector 内存释放
flannel 原理 之 子网划分
krpano全景之vtour文件夹和tour
Tongxin UOS php7 2.3 upgrade to php7.0 two point two four
Use cases of the arrays class
流程控制之分支语句
STD:: map and STD:: vector memory free
C语言知识点精细详解——数据类型和变量【2】——整型变量与常量【1】
tcp_diag 内核相关实现 1 调用层次
JS key value judgment
处理 mkdir:无法创建目录“aaa“:只读文件系统
API Gateway/API 网关(三) - Kong的使用 - 限流rate limiting(redis)
TUN 设备原理