定時\計數器的原理:16位的定時器/計數器實質上就是一個加1計數器,其控制電路受軟體控制、切換。當定時器/計數器為定時工作方式時,計數器的加1訊號由振盪器的12分頻訊號產生,即每過一個機器週期,計數器加1,直至計滿溢位為止。顯然,定時器的定時時間與系統的振盪頻率有關。因一個機器週期等於12個振盪週期,所以計數頻率fcount=1/12osc。如果晶振為12MHz,則計數週期為:T=1/(12×106)Hz×1/12=1μs這是最短的定時週期。若要延長定時時間,則需要改變定時器的初值,並要適當選擇定時器的長度(如8位、13位、16位等)。當定時器/計數器為計數工作方式時,透過引腳T0和T1對外部訊號計數,外部脈衝的下降沿將觸發計數。計數器在每個機器週期的S5P2期間取樣引腳輸入電平。若一個機器週期取樣值為1,下一個機器週期取樣值為0,則計數器加1。此後的機器週期S3P1期間,新的計數值裝入計數器。所以檢測一個由1至0的跳變需要兩個機器週期,故外部事年的最高計數頻率為振盪頻率的1/24。例如,如果選用12MHz晶振,則最高計數頻率為0.5MHz。雖然對外部輸入訊號的佔空比無特殊要求,但為了確保某給定電平在變化前至少被取樣一次,外部計數脈衝的高電平與低電平保持時間均需在一個機器週期以上。當CPU用軟體給定時器設定了某種工作方式之後,定時器就會按設定的工作方式獨立執行,不再佔用CPU的操作時間,除非定時器計滿溢位,才可能中斷CPU當前操作。CPU也可以重新設定定時器工作方式,以改變定時器的操作。由此可見,定時器是微控制器中效率高而且工作靈活的部件。綜上所述,我們已知定時器/計數器是一種可程式設計部件,所以在定時器/計數器開始工作之前,CPU必須將一些命令(稱為控制字)寫入定時/計數器。將控制字寫入定時/計數器的過程叫定時器/計數器初始化。在初始化過程中,要將工作方式控制字寫入方式暫存器,工作狀態字(或相關位)寫入控制暫存器,賦定時/計數初值。下面我們就提出的控制字的格式及各位的主要功能與大家詳細的講解。控制暫存器定時器/計數器T0和T1有2個控制暫存器-TMOD和TCON,它們分別用來設定各個定時器/計數器的工作方式,選擇定時或計數功能,控制啟動執行,以及作為執行狀態的標誌等。其中,TCON暫存器中另有4位用於中斷系統。
定時\計數器的原理:16位的定時器/計數器實質上就是一個加1計數器,其控制電路受軟體控制、切換。當定時器/計數器為定時工作方式時,計數器的加1訊號由振盪器的12分頻訊號產生,即每過一個機器週期,計數器加1,直至計滿溢位為止。顯然,定時器的定時時間與系統的振盪頻率有關。因一個機器週期等於12個振盪週期,所以計數頻率fcount=1/12osc。如果晶振為12MHz,則計數週期為:T=1/(12×106)Hz×1/12=1μs這是最短的定時週期。若要延長定時時間,則需要改變定時器的初值,並要適當選擇定時器的長度(如8位、13位、16位等)。當定時器/計數器為計數工作方式時,透過引腳T0和T1對外部訊號計數,外部脈衝的下降沿將觸發計數。計數器在每個機器週期的S5P2期間取樣引腳輸入電平。若一個機器週期取樣值為1,下一個機器週期取樣值為0,則計數器加1。此後的機器週期S3P1期間,新的計數值裝入計數器。所以檢測一個由1至0的跳變需要兩個機器週期,故外部事年的最高計數頻率為振盪頻率的1/24。例如,如果選用12MHz晶振,則最高計數頻率為0.5MHz。雖然對外部輸入訊號的佔空比無特殊要求,但為了確保某給定電平在變化前至少被取樣一次,外部計數脈衝的高電平與低電平保持時間均需在一個機器週期以上。當CPU用軟體給定時器設定了某種工作方式之後,定時器就會按設定的工作方式獨立執行,不再佔用CPU的操作時間,除非定時器計滿溢位,才可能中斷CPU當前操作。CPU也可以重新設定定時器工作方式,以改變定時器的操作。由此可見,定時器是微控制器中效率高而且工作靈活的部件。綜上所述,我們已知定時器/計數器是一種可程式設計部件,所以在定時器/計數器開始工作之前,CPU必須將一些命令(稱為控制字)寫入定時/計數器。將控制字寫入定時/計數器的過程叫定時器/計數器初始化。在初始化過程中,要將工作方式控制字寫入方式暫存器,工作狀態字(或相關位)寫入控制暫存器,賦定時/計數初值。下面我們就提出的控制字的格式及各位的主要功能與大家詳細的講解。控制暫存器定時器/計數器T0和T1有2個控制暫存器-TMOD和TCON,它們分別用來設定各個定時器/計數器的工作方式,選擇定時或計數功能,控制啟動執行,以及作為執行狀態的標誌等。其中,TCON暫存器中另有4位用於中斷系統。