導語:微控制器,其實就是一種用於積體電路中的晶片,而微控制器的定時器是一個電子元件,它是一個穩定的計數器,是由微控制器本身提供的。它也是微控制器上的一個連線部件,可以用來程式設計。定時器還有一個功能顯而易見就是可以用來定時,同時,它也可以用來統計一些脈衝訊號。下面就來介紹下微控制器定時器的使用的相關內容。
定時器的結構
定時器是由兩個暫存器組成的,其中一個暫存器是用來確定計數器的工作形式和功能的,另外一個計時器是用來控制微控制器的啟動和停止的,同時它也是設定溢位的一個標誌。
計數過程
每來一個脈衝計數器加1,當加到計數器為全1(即FFFFH)時,再輸入一個脈衝就使計數器回零,且計數器的溢位使TCON中TF0或TF1置1,向CPU發出中斷請求(定時器/計數器中斷允許時)。如果定時器/計數器工作於定時模式,則表示定時時間已到;如果工作於計數模式,則表示計數值已滿。
定時應用
用作定時器:此時設定為定時器模式,加1計數器是對內部機器週期計數(1個機器週期等於12個振盪週期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器週期Tcy就是定時時間t 。
計數運用
用作計數器:此時設定為計數器模式,外部事件計數脈衝由T0或T1引腳輸入到計數器。每來一個外部脈衝,計數器加1。但微控制器對外部脈衝有基本要求:脈衝的高低電平持續時間都必須大於1個機器週期。
定時器的使用
定時器的使用主要分為五個步驟,首先是要開啟中斷的可以允許的位置,主要是對IE暫存器的控制,然後選擇定時器的工作的形式,定時器的一個格式是TMOD的形式,主要有四種方式。第一種計數的方式是十三位加一的形式,第二種是十六位加一的計數器,第三種的定數器被分解成兩部分,一個是八位的暫存器,另外一個是八位的計數器。第三步就是要為定時器進行賦值,首先定時器的初值是等於計數器模值減去計數器記滿的招滿值,而定時器的初值是等於模值減去預定時的時間與微控制器時鐘週期的十二倍。接下來就是啟動計時器,當TRO為0的時候,停止TO開始計數,而TRO值為1的時候,就啟動TO進行計數。當TFO為0的時候,沒有TO的中斷,這時是沒有硬體復位,而當值為1的時候有TO溢位中斷的情況。當TR1為0的時候,停止TI進行計數,而值為1的時候開啟T1進行計數。
當TF1為0的時候,沒有T1的中斷,為1 的時候會出現T1的溢位中斷情況。當IE1的值為0的時候時,出現硬體的復位而當其值為1的時候出現中斷。當IT1的值為0的時候INT1出現電平觸發的情況,也就是軟體復位,而當值為1的時候,INT1的負邊沿會出現觸發的情況。當IE0的值為0時會出現硬體復位,而當IEO的值為1的時候,INT0上會有中斷的情況。當 IT0的值為0時,INT0會發生電平觸發,也就是軟體復位,同時INT0的負邊沿觸發。最後一步就是計數器中斷入口程式。
定時器/計數器的工作方式
方式0為13位計數,由TL0的低5位(高3位未用)和TH0的8位組成TL0的低5位溢位時向TH0進位,TH0溢位時,置位TCON中的TF0標誌,向CPU發出中斷請求。
方式1的計數位數是16位,由TL0(TL1)作為低8位、TH0(TH1)作為高8位,組成了16位加1計數器 。
方式2為自動重灌初值的8位計數方式。
在方式2下,當計數器計滿255(FFH)溢位時,CPU自動把TH 的值裝入TL中,不需使用者干預。因此特別適合於用作較精確的脈衝訊號發生器。
方式3只適用於定時器/計數器T0,定時器T1方式3時相當於TR1=0,停止計數。
工作方式3將T0分成為兩個獨立的8位計數器TL0和TH0 。
導語:微控制器,其實就是一種用於積體電路中的晶片,而微控制器的定時器是一個電子元件,它是一個穩定的計數器,是由微控制器本身提供的。它也是微控制器上的一個連線部件,可以用來程式設計。定時器還有一個功能顯而易見就是可以用來定時,同時,它也可以用來統計一些脈衝訊號。下面就來介紹下微控制器定時器的使用的相關內容。
定時器的結構
定時器是由兩個暫存器組成的,其中一個暫存器是用來確定計數器的工作形式和功能的,另外一個計時器是用來控制微控制器的啟動和停止的,同時它也是設定溢位的一個標誌。
計數過程
每來一個脈衝計數器加1,當加到計數器為全1(即FFFFH)時,再輸入一個脈衝就使計數器回零,且計數器的溢位使TCON中TF0或TF1置1,向CPU發出中斷請求(定時器/計數器中斷允許時)。如果定時器/計數器工作於定時模式,則表示定時時間已到;如果工作於計數模式,則表示計數值已滿。
定時應用
用作定時器:此時設定為定時器模式,加1計數器是對內部機器週期計數(1個機器週期等於12個振盪週期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器週期Tcy就是定時時間t 。
計數運用
用作計數器:此時設定為計數器模式,外部事件計數脈衝由T0或T1引腳輸入到計數器。每來一個外部脈衝,計數器加1。但微控制器對外部脈衝有基本要求:脈衝的高低電平持續時間都必須大於1個機器週期。
定時器的使用
定時器的使用主要分為五個步驟,首先是要開啟中斷的可以允許的位置,主要是對IE暫存器的控制,然後選擇定時器的工作的形式,定時器的一個格式是TMOD的形式,主要有四種方式。第一種計數的方式是十三位加一的形式,第二種是十六位加一的計數器,第三種的定數器被分解成兩部分,一個是八位的暫存器,另外一個是八位的計數器。第三步就是要為定時器進行賦值,首先定時器的初值是等於計數器模值減去計數器記滿的招滿值,而定時器的初值是等於模值減去預定時的時間與微控制器時鐘週期的十二倍。接下來就是啟動計時器,當TRO為0的時候,停止TO開始計數,而TRO值為1的時候,就啟動TO進行計數。當TFO為0的時候,沒有TO的中斷,這時是沒有硬體復位,而當值為1的時候有TO溢位中斷的情況。當TR1為0的時候,停止TI進行計數,而值為1的時候開啟T1進行計數。
當TF1為0的時候,沒有T1的中斷,為1 的時候會出現T1的溢位中斷情況。當IE1的值為0的時候時,出現硬體的復位而當其值為1的時候出現中斷。當IT1的值為0的時候INT1出現電平觸發的情況,也就是軟體復位,而當值為1的時候,INT1的負邊沿會出現觸發的情況。當IE0的值為0時會出現硬體復位,而當IEO的值為1的時候,INT0上會有中斷的情況。當 IT0的值為0時,INT0會發生電平觸發,也就是軟體復位,同時INT0的負邊沿觸發。最後一步就是計數器中斷入口程式。
定時器/計數器的工作方式
方式0為13位計數,由TL0的低5位(高3位未用)和TH0的8位組成TL0的低5位溢位時向TH0進位,TH0溢位時,置位TCON中的TF0標誌,向CPU發出中斷請求。
方式1的計數位數是16位,由TL0(TL1)作為低8位、TH0(TH1)作為高8位,組成了16位加1計數器 。
方式2為自動重灌初值的8位計數方式。
在方式2下,當計數器計滿255(FFH)溢位時,CPU自動把TH 的值裝入TL中,不需使用者干預。因此特別適合於用作較精確的脈衝訊號發生器。
方式3只適用於定時器/計數器T0,定時器T1方式3時相當於TR1=0,停止計數。
工作方式3將T0分成為兩個獨立的8位計數器TL0和TH0 。