基于51单片机制作频率计-测脉冲数法

基于at89c51的简易频率计设计与精度提升
本文介绍了使用at89c51单片机实现的简易频率计,包括频率计的原理、组成部分、计数测量法、仿真设计、软件编程以及提高测量精度的方法。通过定时器和计数器实现对信号频率的精确测量,并探讨了误差计算和优化策略。

b43078ef18484e4f8717df5f4170a459.png

本文为LED-执棋困局,csdn原创首发。
> 发布人:LED-执棋困局
> 欢迎大家与LED-执棋困局相互点赞+关注+收藏+评论,也祝大家顺顺利利,平平安安。
> 我的格言是:“尽最大努力,做最好的自己!
版权声明:本文为优快云博主「LCD-执棋困局」的原创文章。

目录

一、频率计简介

1.1频率计概述

1.2频率计组成

1.3频率计原理

1.4测量原理

二、仿真设计

2.1频率计仿真

2.2仿真展示

三、软件程序设计

3.1主程序程序设计

3.2定时器初始化程序设计

3.3中断程序设计

3.4计数程序设计

3.5数码管程序设计

四、提高测量精度

4.1结果展现

4.2测量误差

4.3提高精度


一、频率计简介

1.1频率计概述

数字频率计是计算机、通讯设备、音频视频等各领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高等因素,经常要用到频率计。

1.2频率计组成

本文频率计为简易基础版,由定时器1中断服务模块、计数器0计数模块、数码管显示模块和主程序模块四个部分组成。

1.3频率计原理

本文频率计时钟频率为12MHZ,测量的脉冲频率可以自调。频率计以at89c51为核心,利用内部自带的定时器和计数器。每个at89c51内部自带2个定时器/计数器,可以通过编程方法来完成定时器和计数器的工作,让定时器每1ms中断一次,时间累加到1s时,暂停计数,TR0=0,每次定时器进入中断时,暂时关闭定时器1,能有效防止中断还没结束,下一个中断就来执行的情况,提高测量的精度,同时计数器T0计数,利用高8位TH0和低8位TL0计算出1s内的脉冲数/频率。

1.4测量原理

测量频率有两种方法,一个叫计数测量法(测量1s内脉冲数),另一种叫测量周期法(利用定时器测量周期,再利用f=1/T求出频率)。

前者适用于高频测量,后者适用于低频测量。

本文采用计数测量法

计数测量法如何计算频率?

频率f定义:单位时间内的脉冲数。

在t时间内测量到N个脉冲,则频率f=N/t,特殊情况下(t=1s),f=N。

如下图(定时器T0定时累加1s),f=50hz,则频率f=脉冲数N=1s/0.02s=50。

93b415de5e424832871e56b61ecefe70.png

二、仿真设计

2.1频率计仿真

如图所示,是在proteus软件频率计的仿真。由于要测量1s内的脉冲数,所以要接计数器T0的引脚INT0。

db7d7a6892d14affa128ca818aa3a374.png

d5a91eb8501e42779ec8a04dd63fa161.png

255c3834b93548dca34154515d0d2ead.png

2.2仿真展示

数码管线码a、b、c、d、e、f、g、DP接P0,由于P0口电流过小,驱动能力不足,所以一定要接排阻respack-8提高驱动能力,至于74HC245芯片也是提高驱动能力的,可以不用。而段码接到P2低4位。频率计接到计数器T0引脚INT0。

以上是我自己接的,大家也可以接其他引脚。

218ec6b184764237a31dd25896fda84a.png

三、软件程序设计

评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值