找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3898|回复: 4
收起左侧

求指教,自己编的小程序有一点小问题,单片机测速及数码管显示速度

[复制链接]
ID:187352 发表于 2017-4-8 11:21 | 显示全部楼层 |阅读模式
程序说明:
每圈产生200个脉冲,轮径125mm,每秒显示速度;
程序里面每一行都有说明。
我遇到的问题:50Hz时应该显示3,但是数码是000和014循环显示;
300Hz时应该显示21,但是数码是014和028循环显示;
700Hz时应该显示49,但是数码是056和042循环显示;
1000Hz时应该显示70,这个是正确显示的;
1500Hz时应该显示105,但是数码是098和113循环显示。
我的发现:
数码管显示不准确的,应该显示的正好是循环显示的那两个数的平均数,是我自己瞎猜的,不知道是什么问题;
我后来用其他频率仿真,发现只有200Hz的倍数才会显示正确,小于200Hz都是000和014循环显示,是因为计数满200才会执行数据处理的程序;
然后我修改了代码,如图;
修改之后还不如原来,希望有好心的大神帮我分析分析,谢谢了。


修改代码01

修改代码01

修改代码02

修改代码02

修改后仿真应该显示70却只显示14

修改后仿真应该显示70却只显示14

00.rar

193.93 KB, 下载次数: 38

修改前后的程序

回复

使用道具 举报

ID:123289 发表于 2017-4-8 15:46 | 显示全部楼层
定时器中time是干什么的?计算式中未看到time。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:187352 发表于 2017-4-8 16:32 | 显示全部楼层
yzwzfyz 发表于 2017-4-8 15:46
定时器中time是干什么的?计算式中未看到time。

time是定时器T0计时使用的,定时为50ms,记满20次即为1s
回复

使用道具 举报

ID:123289 发表于 2017-4-8 21:31 | 显示全部楼层
记满1S后干什么?有什么用?用在何处了?与计算的何处理相关?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2017-4-9 07:53 | 显示全部楼层
本帖最后由 zl2168 于 2017-4-9 15:20 编辑

给你几个案例参考
实例73 测量脉冲频率
Proteus仿真一下,确认有效
实例73 测量脉冲频率.rar (52.74 KB, 下载次数: 25)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表