微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 延时仿真与实际不一样是什么问题

延时仿真与实际不一样是什么问题

时间:10-02 整理:3721RD 点击:
程序是这样的:
void Delay_ms(unsigned int t)          
{
        unsigned char j;
        unsigned int i;
        for(i = 5*t;i > 0;i --)
        for(j = 90;j > 0;j --);
}
这是1ms延时程序,软件仿真时时间是对的,但是下载到板上时间就很短了,Delay_ms(5000)应该是5秒的,我用秒表测实际才1秒多一小点。仿真频率和板上的晶振是一样的11.0592MHZ。谁能告诉我这个是什么问题啊。


仿真和实际肯定会是有误差的,仿真只是在理想的情况下的模拟,实际的元件势必有误差

首先谢谢您的回复。但是这个差的太大了,差五倍啊,另外我刚才试了下,要是用STC89C52RC仿真和实际的就差不多,但是用STC12C5A60S2就差很多,应该是Delay_ms(1000)是一秒,用前面那个时间误差不是很大,用后面那个的话要Delay_ms(5000)才1秒左右。能说一下为什么这两个芯片差这么多吗

呵呵,问题原来出在芯片上。89C52是12T的。60S2是1T。速度是89C52的12倍。请熟悉下指令周期与机器周期。两款的周期是不同的。

还有你编程的程序,用到了5*t .我总觉得这样写不好。t每增加1 。for循环增加5次。这样误差容易增大、

哦,非常感谢您的回复。

我只想说 马扎正解 (别扭)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top