修改89C52芯片属性的晶振频率。 |
试一下看看
|
仿真和实际时间不一样,和你当前的CPU的运行情况有关 |
if(cnt>=50) 50改成49, |
wulin 发表于 2020-1-31 08:46 谢谢您,参数是对的,就是不行 |
v115488 发表于 2020-1-31 21:22 谢谢您 |
用仿真做时钟,跑不准的因素太多.先不说运行仿真的硬件因素,晶振就是一大问题,51单片机不使用定时计数器做时钟,本身误差就很大. |
你的程序定时器是按晶振频率11.0592MHz设置20ms的,仿真时也得把单片机属性里的时钟设置一致,否则当然不准。
![]() |
odfggf 发表于 2020-1-30 12:03 晶振是11.0592 不知道咋的就不对 |
王可乐_ 发表于 2020-1-30 10:43 改成您这个又快了一点 |
估计晶振频率没选对,这个对应的11.059M晶振 |
你好,你的TH0应该是B1,TL0应该是E0,才是20ms,然后cnt=50的时候才是1秒 |
csmyldl 发表于 2020-1-30 09:51 10秒的话慢了2.7秒左右 |
csmyldl 发表于 2020-1-30 09:51 我还没有学中断,我看视频一样的程序,人家的可以实现1s,但是他直接用的板子,我这个仿真不知道为啥慢0.几秒,求大神指点 |
定时计数器改用中断方式或者修改TH0和TL0的值(慢改大,快改小) |