打印
[新唐博主]

Keil C51编程定时1秒,下载到新唐MS51运行,时间竟然减小7倍

[复制链接]
1004|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
btzm|  楼主 | 2023-11-5 07:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
     移植C51循环延时程序发现的问题。用Keil  C51编写了1段循环延时程序,时钟16MHz,已准确调试到1秒。但下载到新唐MS51芯片中运行,却只有141毫秒,整整减小了7倍。同样的程序下载到89S52运行,定时时间为1秒正常。用proteus仿真也正常。测试新唐MS51的时钟输出引脚频率为16MHz。用新唐给的定时器延时则1秒
正常。实在想不出原因,在这里向大家请教了。

001.jpg.jpg (316.62 KB )

001.jpg.jpg

使用特权

评论回复
沙发
两只袜子| | 2023-11-7 10:21 | 只看该作者
C51和MS51可能具有不同的内部定时器和时钟频率。即使时钟频率相同,不同的芯片可能具有不同的内部延迟,这可能影响到定时器的计时。你应该仔细阅读MS51的文档,确保你了解其内部定时器的特性和操作方式。

使用特权

评论回复
板凳
jcky001| | 2023-11-7 10:21 | 只看该作者
Keil C51编译器可能会对代码进行优化,这可能会改变定时器的计时。你可以尝试禁用编译器优化,或者尝试在不同的编译器中编译代码,看看结果是否一致。

使用特权

评论回复
地板
cr315| | 2023-11-7 10:21 | 只看该作者
你的开发环境和目标环境可能存在差异。例如,开发环境中的仿真器可能会比目标硬件运行得快,这可能会导致定时器的计时出现问题。你应该确保你的开发环境和目标环境一致,或者尝试在不同的环境中运行程序,看看结果是否一致。

使用特权

评论回复
5
elephant00| | 2023-11-7 10:22 | 只看该作者
问题可能出在你的代码上。你需要仔细检查你的代码,确保它可以在不同的芯片上正确运行。你可能需要调整代码,以适应不同的芯片和环境。

使用特权

评论回复
6
btzm|  楼主 | 2023-11-13 05:42 | 只看该作者
问题解决。是因为新唐MS51为1T 8051.

使用特权

评论回复
7
Stahan| | 2023-11-16 17:33 | 只看该作者
有些执行速度不一样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

38

帖子

0

粉丝