仿真模拟 与 电脑速度有关,不可能达到和理论不一样,只有 在 实际单片机上 运行,才会与 计算理论值一致。
一,晶振的设置是否和你预期的一样二,你这是应该C语言的程序,不是汇编的,三,要看实际的运行时间,那么要反汇编就可以看清楚了
“理论大概10.002毫秒,仿真是9.981毫秒” 那是你理论算错了。应当是(1+2×248+2)×20+1 = 9981 个指令周期 对于12MHz晶振,一个指令周期1μs,因此总共9.981ms
先看看keil的仿真设置里晶振的频率设置对了没有