![]() |
仿真可以很準確的,看已經運行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級中斷中 使用延時循環 出問題那是必須的。 |