信捷精確定時器et怎么用?
EA是總中斷允許位,EX是外部中斷允許位(EX0,EX1分別指外部中斷INT0,INT1),ET是內部定時器/計數器中斷允許位,TR定時器/計數器啟動位,它們都是高電平1有效。
TH、TL分別指定時器/計數器的高8位和低8位(后面加0/1表示定時器/計數器0/1,如TH0255表示給定時器0的高八位賦初值255)。
使用8051定時器前的初始化步驟?
定時器/計數器的初始化
在使用8051系列單片機的定時器/計數器前,首先要對TMOD和TCON寄存器進行初始化,同時還必須計算定時的時間(重點)。
(1)確定T/C的工作配置TMOD寄存器。
(2)計算T/C的計數初值,并賦值給TH和TL。
(3)若T/C中斷工作時,必須配置IE寄存器內ET0與ET1的值。
(4)啟動定時器/計數器。
單片機用中斷和定時怎么延時?
1.軟件延時
利用多個指令的執行來延時,累加每個指令的運行時間,來計算出延時的總時間。一般寫成一個延時函數。
如,以下是10ms軟件延時。
delay_10ms(){
intc1000//調整常數,以達到要求的延時,但很難!
while(c!0){
c--
}
}
以上函數被調用一次,就延時10ms,多次調用可以達到任意更大的時間要求。
!但是,在延時時,就其它什么事也做不了了,就是干等啊!
2.硬件延時
利用定時器/計數器芯片,或用微控制器內部的定時器/計數器,實際上,它就是對晶振的分頻(分頻系數可編程設置),得到一個精確的低頻的周期信號,用這個周期信號(比如10ms)去觸發中斷,每10ms調用一次定時中斷服務程序。在定時中斷服務程序中加入計數變量,就可以得到任意的定時了。
在10ms沒有到時,微控制器可以運行其它程序,10ms到時再自動進去中斷服務程序以處理定時任務,不會像軟件延時阻塞了。
3.操作系統中,都有個硬件延時,和定時中斷,可以看ucosii中的源碼,節拍時鐘,和匯編語言實現的定時中斷。
4.硬件延時,要占用一個定時器/計數器硬件資源。