1. 51單片機TR0=0後計時器0會清零嗎
不會,定時器的值會保留下來;
你在這個時候可以去讀定時器的計數寄存器TH0,TL0,是可以讀到值的。
他只是關了定時器,而不是復位定時器。
2. 單片機編程中,只要TR0一直為1,定時器0就回一直循環記數嗎
單片機編程中,TR0一直為1,定時器T0不一定會一直循環計數/定時的,方式1時,計數/定時到就停止了,需要重寫初始值才能再計數。方式2是可自動重寫計數初始值,是可以一直循環計數的。
3. 單片機外部中斷低電平觸發,低電平時執行中斷程序,在中斷程序中。如果TR0打開,定時器有沒有在計數啊
1.如果打TR0打開,定時器循環計數;
2.當EA沒有打開時,定時器0還會計數;
3.當EA沒有打開時,計數器計滿時,計數溢出TF0會被置位和自動清零,你可模擬一下
4.當EA沒有打開時,程序進不了中斷,對應的LED燈不會有任何動作;
4. 51單片機中執行完定時器中斷函數,TF0是硬體自動清0嗎
TF0是51單片機定時器T0的溢出中斷標志位。當T0被允許計數後,T0從初值開始按機器周期或者外部引腳輸入的脈沖進行加1計數。當計數到T0最高位產生溢出時,置「1」TF0,並向CPU請求中斷。當CPU響應該中斷時,將由硬體自動清「0」TF0。當然,你也可以用「位操作指令」對TF0進行置「1」或清「0」操作。
5. 請問51單片機的定時器TR0關閉後再打開需要重新賦初值嗎
需要,定時器計數完畢後就清零了,必須在中斷中重新賦值。。。
6. 請教51單片機前輩們一個關於定時器的問題,中斷程序響應以後定時器不是得歸零么,為什麼我的TL0不是0呢。
中斷響應後,定時器的值不會清零的,只有中斷標志會自動清零。定時器的清零發生在定時器溢出,這時候產生中斷請求(如果中斷允許),從定時器溢出到MCU調用中斷程序,需要一定的時間,自這期間,定時器繼續運行,因此TL0的值不為0,需要在中斷程序裏手動清零。
7. 單片機開發板是不是一上電就所有晶元都被清零的
不是的,如果所有都被清零,那燒進去的程序不就不能運行了嗎。
8. 51單片機中,當一個按鍵按下去,定時器中的TR0=1,當松開按鍵,定時器中的TR0就一直為0,
看看這樣行不?
sbit KEY=P1^0;
bit BKeyLast;
main()
{
……//初始化定時器
TR0=BKeyLast=KEY;
while(1)
{
while(KEY==BKeyLast) ;
if(BKeyLast) TR0=0; //BKeyLast=1時,KEY==0,按下。
else TR0=1;
for(i=0;i<250;i++) ; //去抖動。
BKeyLast=!BKeyLast;
}
}
……//定時服務程序
9. 單片機中,T0計時器溢出時,會不會吧控制寄存器TCDN中的TRO清零,還是繼續仍從0開始計時
TR0是定時器的啟動控制位,只要啟動後,不會被硬體自動清0。如果T0溢出了,而又開啟了定時器中斷時,則會觸發中斷。方式0和方式1一般在中斷中會重新設置初值,也就是從原來的初值開始重新計時。 方式2是自動重裝所以不用重新設置初值。
具體的去看看51中對定時器相關寄存器的控制。
10. 51單片機定時中斷寄存器TR0
TR0(啟動定時)置0後隔斷時間再置1,TH0,TL0的數據只要是你沒有送清零數據不會清零,暫停的數繼續計數。