仿真可以很准确的,看已经运行2个多小时依然不差秒的准确,不是读取时钟信息的,时钟信息只在仿真运行初期读取用来初始化的,是用定时器计时的.![]() |
找到问题就好,也算是增长了经验,什么东西是仿真可以仿真出来的,什么是仿真不出来的。 |
lkc8210 发表于 2024-1-18 11:46 很正确,我验证了,程序没有问题,不能拿手机和proteus仿真的时间直接比较。 感谢感谢 |
wulin 发表于 2024-1-18 11:28 我把这些判断放在定时器0的中断服务函数里面也一样的 |
3038838599 发表于 2024-1-18 10:48 消抖也可以不通过延时函数去消的噢,可以1ms执行一次按键程序,进行时间累计,key按下累计10次也就是10ms,再输出按键值的,你在中断函数中用延时肯定是有问题的,这次还没执行完,下次中断又来了,就嵌套了 |
电脑越快,仿真时间越贴进现实 系统越复杂,仿真时间越慢 你要对比的应该时仿真运行时,左下角那个时计 ![]() |
qq475878026 发表于 2024-1-18 11:34 算错,你看看仿真里面设置的,估计你设成了10M晶振 |
3038838599 发表于 2024-1-18 10:51 用晶振的话应该外接12M跑的才对,你应该是接了11.0592M吧 |
仿真计时本来就不准确,主函数里有延时,如果恰巧错过 if(count==20),就要等下一轮。 |
仿真不准确的。 |
3038838599 发表于 2024-1-18 10:51 IT0=1 这个应该是下降沿触发 |
3038838599 发表于 2024-1-18 10:51 你知道你选择的晶振频率吗?延时长度根据晶振频率来计算出来的。程序运行一行需要时间,递减循环需要一定的时间 |
代码编写方式问题 |
qq475878026 发表于 2024-1-18 10:35 这个是51单片机,没有引脚模式选择的,也没有什么主频副频。 它就用一个晶振的。 |
ppcbug 发表于 2024-1-18 10:06 为什么这么说呢? 如果外部中断的服务函数里面没有对按键进行消抖处理,那么flag值是不确定。 大家都是这么用得啊 |
手机秒表和仿真软件,都不是准确时间,没什么可比性 |
是何原因我不清楚, 但是 在0级中断中 使用延时循环 出问题那是必须的。 |