請高手幫忙,51微控制器執行定時器0的中斷程式後,需要大約

時間 2021-08-30 09:55:54

1樓:匿名使用者

不是幾個週期,你在服務程式中有3個延時子程式呼叫,每一個延時如果是12m晶振的話,大約390毫秒,所以返回時間理論上約1.2秒左右。

2樓:吳權泰

我懂了,經過我的**,當程式第一次進入delaytime時,執行到r0=03,r0=00,r2=f0時,t0中斷到了,這時中斷程式呼叫了delaytime,當執行完中斷服務程式,這是r0變成了0,返回到之前的延時函式,此時r0=0,r1=0,r2=0,所以你的延時程式就變成了256*256*256=16秒了,所以成了你說的15秒後才執行完。 所以以後寫中斷程式注意斷點的保護,把中斷程式裡有修改掉的暫存器先壓棧保護,結束之前彈出來,這樣就沒事了。還有你在中斷程式結束前沒重新開啟t0。

還有在你的程式最好多點註釋,這樣看著不吃力。

3樓:匿名使用者

不明白定時中斷子程式裡為什麼要關掉tr0,關掉下次就進不去了。

d0:clr tr0 ;????????????...

4樓:

彙編我有好幾年沒看,看到生疏,或許看錯了,

你的主程式執行完了就等待了,你怎麼檢測它返回主程式了,你在等待這裡做異個訊號出來(可以把中段中的p1.7置0以後延時一下,在主程式等待這裡他把重新置1看看)

看p1.7下降沿,到上升沿的時候歷時多久

關於51微控制器定時器的問題,關於51微控制器使用兩個定時器進行控制的問題

工作方式1是16位的自動重灌定時計數器,能裝的最大數為65536 0 65535 那麼初值為65536 50000 15536 0x3cb0 就是你說的50ms溢位一次 12m的晶振,一個時鐘週期剛好1us,50000us 50ms 如果你需要1秒的定時,可以在定時器計數器中斷裡設一個計數變數x,進...

51微控制器定時器0工作於方式3此時定時器1工作於方式

做而論道 定時器0工作於方式3 時,佔用了定時器1的tr1和tf0。此時,定時器1只能工作於 串列埠波特率發生器 的模式。把定時器1,按照 波特率發生器 的模式設定,寫入初始值即可正常工作。看看書去吧,有這方面的說明的。 我來回答 定時0工作於方式3分成兩個定時器th0,tl0,佔用了t1的tr1和...

51微控制器定時器初始值的問題,51微控制器定時器初值公式

從本質上看,你根本不瞭解定時器的工作,你就只看 又豈能看懂。51微控制器的定時器0是16位,當然,這個模式是可以改變的。我就假設工作在16位模式下,因為大部分時候,也工作在這個模式下。16位的定時器,但只能用微控制器是8位的,所以,就拆分成了兩個位元組,高八位和低八位。th0表示定時器0的高八位,t...