找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

Keil C51 定时 1秒,下载到新唐MS51远行为什么减小7倍?

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

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

使用道具

沙发
匿名  发表于 2023-11-5 16:38:52

回复 支持 反对

使用道具

板凳
匿名  发表于 2023-11-5 16:40:36

回复 支持 反对

使用道具

地板
chrishu 发表于 2023-11-8 14:16:29 | 只看该作者
仿真执行的速率比直接在芯片里全速运行要慢。用代码循环来实现延时,延时时间跟代码执行速率有关。
如果要用软件延时应该用全速运行的实测值为准。软件延时不精确,如果要做精确的延时建议用timer来做。
回复 支持 反对

使用道具 举报

5#
匿名  发表于 2023-11-13 06:04:03
问题找到,应该是新唐1T单片机和经典12T的8051所致。1T比12T执行速度快12倍,所以软件延时不能直接引用。
回复 支持 反对

使用道具

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU