51微控制器定時方式0,1和2的區別:
首先採用fsoc=12mhz晶振,其機器週期為12/fsoc,即為1us; 定時方式0為13位定時/計數器,記滿值為213=8192;定時方式1為16位定時/計數器,記滿值為216=65536,16位初值分為高8位與低8位賦值,如採用定時器0,定時時間20ms,其高8位賦值th0=(65536-20000/1)/256分析一下高8位賦值公式,由於51只有向上計數能力,因此可以假設先用65536填滿,然後再減去要計時的時間20000,/1為除以機器週期,然後/256為把低8位(2^8=256)去掉,保留高8位;tl0=(65536-20000/1)%256,%256為對256進行取餘,即把高8位去掉,保留低8位。由於其不具有重灌初值功能 ,若要執行連續計時多個20ms,必須在定時器中斷(t0對應 interrupt 1)中給其重新賦th0 tl0初值,然後用一變數來統計次數,實現20ms的倍數定時。定時器0中斷相關的暫存器有總中斷開關(ea),定時器t0中斷開關(et0) 使能t0(tr0),tmod為設定工作方式,如方式1為tmod=0x01。 定時方式2 為具有自動重灌初值能力的8位定時/計數器,其乙個定時範圍只有256us,以定時器0為例,其中th0為定時初值,tl0為執行後自動重灌的初值。 講一下配置乙個定時器中斷的整個過程:1. 設定定時方式tmod;2. 賦初值;3. 開總中斷ea;4. 開定時器中斷et0、et1;5. 使能中斷tr0、tr1;6. 寫中斷服務函式,t0對應interrupt 1, t1對應interrupt 3;
工作方式1:
工作方式2:
對比兩種方式,可以看到方式1需要在中斷服務函式中重新賦初值,方可執行多次定時器中斷,而方式2不需要,因為它每執行一次定時器中斷後會將tl0的值作為初值進行自動重灌。
51微控制器複習 外部中斷,定時器 計數器中斷
中斷 什麼是中斷,就是打斷,你一開始在做一件事,突然意外發生 中斷源 你不得不停止手中的事,中斷響應 去處理那 件意外 中斷服務 處理完意外後你繼續做剛才那件事 中斷返回 這就是中斷,而微控制器中的中斷也是如此,微控制器中有五個中斷源,兩個優先順序 五個中斷源 外部中斷0 int0 定時器0中斷 t...
51微控制器 定時器
定時 計數器的結構和工作原理 定時 計數器的實質是加1計數器 16位 由高8位和低8位兩個暫存器組成。80c51 微控制器定時 計數器的工作是由兩個特殊功能暫存器控制的。tmod是定時 計數器的工 作方式暫存器,確定工作方式和功能,低四位用於t0,高四位用於t1。t con是控制寄 存器,控制t0和...
51微控制器 定時器
標準的51微控制器內部有t0和t1兩個定時器。定時器的計數值儲存在暫存器中。th0 tl0用於t0,th1 tl1用於t1.定時器儲存暫存器 名稱描述 sfr位址 復位值th0 t0高位元組 0x8c 0x00 tl0t0低位元組 0x8a 0x00 th1t1高位元組 0x8d 0x00 tl1t...