牛卧堂MCU技术交流

标题: Keil C51 定时 1秒,下载到新唐MS51远行为什么减小7倍? [打印本页]

作者: 匿名    时间: 2023-11-5 01:39
标题: Keil C51 定时 1秒,下载到新唐MS51远行为什么减小7倍?
     移植C51循环延时程序 发现的问题。用Keil  C51编写了1段循环延时程序,时钟16MHz,已准确调试到1秒。但下载到新唐MS51芯片中运行,却只有141毫秒,整整减小了7倍。同样的程序下载到89S52运行,定时时间为1秒正常。用proteus仿真也正常。测试新唐MS51的时钟输出引脚频率为16MHz。用新唐给的定时器延时则1秒正常。实在想不出原因,在这里向大家请教了。


作者: 匿名    时间: 2023-11-5 16:38
[attach]4993[/attach]

作者: 匿名    时间: 2023-11-5 16:40


作者: chrishu    时间: 2023-11-8 14:16
仿真执行的速率比直接在芯片里全速运行要慢。用代码循环来实现延时,延时时间跟代码执行速率有关。
如果要用软件延时应该用全速运行的实测值为准。软件延时不精确,如果要做精确的延时建议用timer来做。
作者: 匿名    时间: 2023-11-13 06:04
问题找到,应该是新唐1T单片机和经典12T的8051所致。1T比12T执行速度快12倍,所以软件延时不能直接引用。




欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2