找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4744|回复: 4
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
程序说明:
每圈产生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才会执行数据处理的程序;
然后我修改了代码,如图;
修改之后还不如原来,希望有好心的大神帮我分析分析,谢谢了。


修改代码.png (19.94 KB, 下载次数: 136)

修改代码01

修改代码01

修改代码1.png (10.13 KB, 下载次数: 108)

修改代码02

修改代码02

修改后仿真.png (13.78 KB, 下载次数: 109)

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

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

00.rar

193.93 KB, 下载次数: 38

修改前后的程序

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
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 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:111634 发表于 2017-4-9 07:53 | 只看该作者
本帖最后由 zl2168 于 2017-4-9 15:20 编辑

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

以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版
书中电路和程序设计有详细说明,程序语句条条有注解。






回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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