定時器0 在工作方式2 下,跟其在工作方式 1 下的工作方式類似,主要區別是在這種工
作方式下,定時器/計數器是八位的定時器/計數器,只有低 8 位參與計數,而高 8 位不參與
計數,只是用作預置數的存放,計數范圍是0-255,當計數溢出時,系統會自動將預置數裝
入低八位的計數器,這些都是硬件自動完成的,不需要在程序中進行操作。這種工作方式的
好處是在進入中斷的時候就可以直接進行計數,不需要對定時器進行賦初值。
使用定時器0 的工作方式2 步驟如下:
1) 設置定時器的工作狀態時定時器還是計數器;
2) 設置定時器的工作方式;
3) 為定時器設置初值,這個決定了定時器的溢出間隔,即定時時間;
4) 使能定時器中斷;
5) 開啟定時器/計數器的運行控制位;
6) 使能全局中斷;
7) 編寫中斷函數;
其中,這些步驟的使用方法同在工作方式 1 下都是一樣的,只是在 TMOD 寄存器中需
要將M0M1 分別設置為01 以使其工作在方式2,另外TH0,TL0 兩個寄存器的賦值也是不一 樣
的,在工作方式 1 下,計數范圍是65536,在 11.0592MHZ 的情況下,單計數周期最長定
時范圍是71.11 毫秒,而在工作方式 2 下,計數范圍是256,在 11.0592MHZ 的情況下,單
計數周期最長定時范圍是0.277 毫秒。
其他的使用同工作方式 1。
|