《STC單片機原理及應用》課件 第10章 計數(shù)器和定時器原理及應用_第1頁
《STC單片機原理及應用》課件 第10章 計數(shù)器和定時器原理及應用_第2頁
《STC單片機原理及應用》課件 第10章 計數(shù)器和定時器原理及應用_第3頁
《STC單片機原理及應用》課件 第10章 計數(shù)器和定時器原理及應用_第4頁
《STC單片機原理及應用》課件 第10章 計數(shù)器和定時器原理及應用_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第10章計數(shù)器/定時器原理及應用計數(shù)器/定時器模塊概述計數(shù)器/定時器工作模式計數(shù)器/定時器寄存器組計數(shù)器/定時器實現(xiàn)本章主要內容STC15W4K32S4系列單片機內集成了5個16位定時器/計數(shù)器。T0、T1、T2、T3和T4。它們可以配置為計數(shù)工作模式或者定時工作模式。計數(shù)器/定時器模塊

--概述計數(shù)器/定時器模塊

--概述定時器/計數(shù)器T0和T1通過特殊功能寄存器TMOD相對應的控制位C/T,確定T0/T1工作在定時器還是計數(shù)器模式。定時器/計數(shù)器T2通過特殊功能寄存器AUXR中相對應的控制位T2_C/T,確定T2工作在定時器還是計數(shù)器模式。定時器/計數(shù)器T3通過特殊功能寄存器T4T3M中相對應的控制位T3_C/T,確定T3工作在定時器/計數(shù)器模式。定時器/計數(shù)器T4通過特殊功能寄存器T4T3M中相對應的控制位T4_C/T,確定T4工作在定時器/計數(shù)器模式。計數(shù)器/定時器模塊

--概述定時器和計數(shù)器核心部件就是一個做加法運算的計數(shù)器,其本質就是對脈沖計數(shù);區(qū)別在于計數(shù)脈沖來源不同:如果計數(shù)脈沖來自單片機內的系統(tǒng)時鐘,則為定時方式,定時器/計數(shù)器每12個時鐘或者1個時鐘就得到一個計數(shù)脈沖,計數(shù)值加1。如果計數(shù)脈沖來自單片機外部引腳,則為計數(shù)方式,當每接收到一個外部的脈沖時,計數(shù)值加1。計數(shù)器/定時器模塊

--概述定時器/計數(shù)器0有4種工作模式(不要死背,從結構分析)模式0(16位自動重新加載模式)模式1(16位不可重加載模式)模式2(8位自動重加載模式)模式3(不可屏蔽中斷的16位自動重加載模式)

計數(shù)器/定時器模塊

--概述模式0(16位自動重加載模式)計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式GATEINT0TR0功能000不啟動定時器001啟動定時器010不啟動定時器011啟動定時器100不啟動定時器101不啟動定時器110不啟動定時器111啟動定時器GATE、INT0和TR0之間的關系GATE、INT0和TR0之間的關系,決定

定時器/計數(shù)器是否能正常工作。這三個信號通過邏輯或門和邏輯與門產(chǎn)

生control信號,用于控制內部SYSclk

信號或者外部脈沖通過T0引腳是否能接

入該定時器/計數(shù)器。AUXR.7/T0x12比特位當該位為0時,通過開關將SYSclk/12后得到的時鐘接入到定時器/計數(shù)器0中;當該位為1時,通過開關將SYSclk直接接入到定時器/計數(shù)器0中。C/T比特位當該位為0時,將內部的時鐘引入到定時器/計數(shù)器0中;當該位為1時,將T0引腳上的外部脈沖信號引入定時器/計數(shù)器0。TF0比特位當該位為1時,該模塊產(chǎn)生中斷。T0CLKO比特位當該位為1時,將定時器/計數(shù)器0產(chǎn)生的時鐘送給P3.5引腳;與P3.5引腳斷開。此時,P3.5引腳作為普通I/O使用。計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式不能自動重加載16位計數(shù)初值沒有T0CLKO輸出定時器/計數(shù)器0模式1和模式0結構基本相同定時器/計數(shù)器0工作模式

--模式1(16位不可自動重加載模式)自動重加載8位計數(shù)初值。定時器/計數(shù)器0模式2和模式0結構基本相同。定時器/計數(shù)器0工作模式

--模式2(8位自動重加載模式)定時器/計數(shù)器0模式3和模式0結構基本相同。當工作在模式3時,只需允許ET0/IE.1(定時器/計數(shù)器0中斷允許位),而不需要允許EA/IE.7(總中斷使能位)就能打開定時器/計數(shù)器0的中斷。一旦在該模式下的定時器/計數(shù)器0中斷被打開(ET0=1),那么中斷是不可屏蔽的,該中斷的優(yōu)先級也是最高的。定時器/計數(shù)器0工作模式

--模式3(不可屏蔽中斷16位自動重裝載)計數(shù)器/定時器模塊

--概述定時器/計數(shù)器1無模式3,其他模式和定時器/計數(shù)器0相同。定時器/計數(shù)器2工作模式固定為16位自動重加載模式。它可以用作定時器,也可以用作串口波特率發(fā)生器和可編程時鐘輸出。定時器/計數(shù)器3和4與定時器/計數(shù)器2的工作模式相同。定時器/計數(shù)器1工作模式0內部結構定時器/計數(shù)器1工作模式

--模式0(16位自動重加載模式)不能自動重加載16位計數(shù)初值沒有T1CLKO輸出定時器/計數(shù)器1模式1和模式0結構基本相同定時器/計數(shù)器1工作模式

--模式1(16位不可自動重加載模式)自動重加載8位計數(shù)初值。定時器/計數(shù)器1模式2和模式0結構基本相同。定時器/計數(shù)器1工作模式

--模式2(8位自動重加載模式)定時器/計數(shù)器2只有16位自動重加載模式定時器/計數(shù)器2工作模式定時器/計數(shù)器3只有16位自動重加載模式定時器/計數(shù)器3工作模式定時器/計數(shù)器4只有16位自動重加載模式計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器4工作模式第10章計數(shù)器/定時器原理及應用TCON除了用于控制定時器/計數(shù)器T0和T1外,同時也可以鎖存T0和T1溢出中斷源和外部請求中斷源等。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器0/1控制寄存器TCON名字地址復位值B7B6B5B4B3B2B1B0TCON0x8800000000TF1TR1TF0TR0IE1IT1IE0IT0TF1,定時器/計數(shù)器1的溢出中斷標志。當允許定時器/計數(shù)器1計數(shù)后,從初值開始加1計數(shù)。當產(chǎn)生溢出時,硬件將該位置1。此時,向CPU發(fā)出中斷請求。如果CPU響應該中斷請求,則由硬件自動清0。該位也可通過軟件輪詢清0。TR1,定時器/計數(shù)器1運行控制位。該位由軟件置位和清零。當工作模式寄存器TMOD的GATE位(第7位)為0,且TR1為1時,允許其開始計數(shù)。當TR1為0時,禁止計數(shù)。當工作模式寄存器TMOD的GATE位(第7位)為1,TR1為1,且INT1輸入為高電平時,才允許其開始計數(shù)。(為什么?內部結構決定)TF0,定時器/計數(shù)器0的溢出中斷標志。當允許定時器/計數(shù)器0計數(shù)后,從初值開始加1計數(shù)。當產(chǎn)生溢出時,硬件將該位置1。此時,向CPU發(fā)出中斷請求。如果CPU響應該中斷請求,則由硬件自動清0。該位也可通過軟件輪詢清0。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器0/1控制寄存器TCONTR0,定時器/計數(shù)器0運行控制位。該位由軟件置位和清零。當工作模式寄存器TMOD的GATE位(第3位)為0,且TR0為1時,允許其開始計數(shù)。否則,當TR0為0時,禁止計數(shù)。當工作模式寄存器TMOD的GATE位(第3位)為1,TR0為1,且INT0輸入為高電平時,才允許其開始計數(shù)。(為什么?內部結構決定)IE1,外部中斷請求源(INT1/P3.3)標志。當該位為1時,外部中斷INT1向CPU發(fā)出中斷請求。當CPU響應該中斷后,由硬件自動清除該位。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器0/1控制寄存器TCONIT1,外部中斷源觸發(fā)控制位。當該位為0時,上升沿/下降沿均可觸發(fā)外部中斷1;當該位為1時,只有下降沿可以觸發(fā)外部中斷1。IE0,外部中斷請求源(INT0/P3.2)標志。當該位為1時,外部中斷INT0向CPU發(fā)出中斷請求。當CPU響應該中斷后,由硬件自動清除該位。IT0,外部中斷源觸發(fā)控制位。當該位為0時,上升沿或者下降沿均可觸發(fā)外部中斷0;當該位為1時,只有下降沿可以觸發(fā)外部中斷0。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器0/1控制寄存器TCONTMOD寄存器設置定時器/計數(shù)器0/1的定時/計數(shù)功能GATE(TMOD.7),該位用于控制定時器/計數(shù)器1。當該位為1時,只有在INT1引腳為高,并且TCON寄存器的TR1位置1時,才能使能定時器/計數(shù)器1。GATE(TMOD.3),該位用于控制定時器/計數(shù)器0。當該位置1時,只有在INT0引腳為高,并且TCON寄存器的TR0位置1時,才能使能定時器/計數(shù)器0。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器工作模式寄存器TMOD名字地址復位值B7B6B5B4B3B2B1B0TMOD0x8900000000GATEC/TM1M0GATEC/TM1M0作用域與定時器1有關與定時器0有關C/T(TMOD.6),該位用于控制定時器/計數(shù)器1的工作模式。當該位設置為1時,定時器/計數(shù)器1工作在計數(shù)器模式,即:對引腳T1/P3.5外部脈沖計數(shù);當該位設置為0時,定時器/計數(shù)器1工作在定時器模式,即:對內部時鐘進行計數(shù)。C/T(TMOD.2),該位用于控制定時器/計數(shù)器0的工作模式。當該位設置為1時,定時器/計數(shù)器0工作在計數(shù)器模式,即:對引腳T0/P3.4外部脈沖計數(shù);當該位設置為0時,定時器/計數(shù)器0工作在定時器模式,即:對內部時鐘進行計數(shù)。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器工作模式寄存器TMOD計數(shù)器/定時器寄存器組

--定時器/計數(shù)器工作模式寄存器TMODM1M0工作模式選擇0016位自動重新加載模式。當溢出時,將RL_TH1和RL_TL1的值自動重新加載到TH1和TL1中0116位不可自動重新加載模式。即:需要重新寫TH1和TL1寄存器108位自動重新加載模式。當溢出時,將TH1的值自動重新加載到TL1中11無效,停止計數(shù)M1和M0(TMOD.5和TMOD.4),定時器/計數(shù)器1模式選擇。M1和M0(TMOD.1和TMOD.0),定時器/計數(shù)器0模式選擇。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器工作模式寄存器TMODM1M0工作模式0016位自動重新加載模式。當溢出時,將RL_TH0和RL_TL0的值自動重新加載到TH0和TL0中0116位不可自動重新加載模式。即:需要重新寫TH0和TL0寄存器108位自動重新加載模式。當溢出時,將TH0的值自動重新加載到TL0中11不可屏蔽中斷的16位自動重裝定時器定時器/計數(shù)器1的計數(shù)初值寄存器TH1和TL1,它們用于保存定時器/計數(shù)器1的計數(shù)初值。計數(shù)器/定時器寄存器組

--定時器/計數(shù)器1計數(shù)初值寄存器名字地址復位值B7B6B5B4B3B2B1B0TH10x8D00000000計數(shù)初值的高8位TL10x8B00000000計數(shù)初值的低8位計數(shù)器/定時器寄存器組

--定時器/計數(shù)器0的計數(shù)初值寄存器定時器/計數(shù)器0的初值寄存器TH0和TL0用于保存定時器/計數(shù)器0的計數(shù)初值。名字地址復位值B7B6B5B4B3B2B1B0TH00x8C00000000計數(shù)初值的高8位TL00x8A00000000計數(shù)初值的低8位定時器0/1的速度控制位T0x12/T1x12。當該位為0時,定時器0/1是12分頻;當該位為1時,定時器0/1不分頻。注:(1)復位后,STC15系列單片機定時器0、定時器1和定時器2與傳統(tǒng)8051一樣,都是12分頻。通過設置新的AUXR寄存器可禁止分頻,而直接使用SYSclk時鐘驅動定時器。(2)如果UART1/串口1用T1作為波特率發(fā)生器,則由T1x12決定UART1/串口1是否分頻。計數(shù)器/定時器寄存器組

--輔助寄存器AUXR名字地址復位值B7B6B5B4B3B2B1B0AUXR0x8E00000001T0x12T1x12UART_M0x6T2RT2_C/TT2x12EXTRAMS1ST2UART_M0x6,串口1模式0的通信速率設置位。當該位為0時,串口1模式0為12分頻;當該位為1時,串口1模式0為2分頻。T2R,定時器2允許控制位。當該位為0時,不允許定時器2運行;當該位為1時,允許定時器2運行。T2_C/T,控制定時器/計數(shù)器2的工作模式。當該位為0時,用作定時器,即:對內部系統(tǒng)時鐘進行計數(shù);當該位為1時,用作計數(shù)器(對引腳T2/P3.1的外部脈沖進行計數(shù))。計數(shù)器/定時器寄存器組

--輔助寄存器AUXRT2x12,定時器2速度控制位。當該位為0時,定時器2是12分頻;當該位為1時,定時器2不分頻。EXTRAM,內部/外部RAM存取控制位。當該位為0時,允許使用邏輯上在片外、物理上在片內的擴展數(shù)據(jù)RAM區(qū);當該位為1時,禁止使用邏輯上在片外、物理上在片內的擴展數(shù)據(jù)RAM區(qū)。S1ST2,串口1選擇定時器2作為波特率發(fā)生器的控制位。當該位為0時,選擇定時器1作為串口1的波特率發(fā)生器;當該位為1時,選擇定時器2作為串口1的波特率發(fā)生器,此時釋放定時器1,它可以作為獨立的定時器使用。計數(shù)器/定時器寄存器組

--輔助寄存器AUXR計數(shù)器/定時器寄存器組

--定時器/計數(shù)器2計數(shù)初值寄存器定時器/計數(shù)器2的初值寄存器TH2和TL2用于保存定時器/計數(shù)器2的計數(shù)初值。名字地址復位值B7B6B5B4B3B2B1B0TH20xD600000000計數(shù)初值的高8位TL20xD700000000計數(shù)初值的低8位注:對于定時器2來說,只有16位自動重加載模式通過INT_CLKO寄存器的T0CLKO、T1CLKO和T2CLKO位,控制T0CLKO/P3.5、T1CLKO/P3.4和T2CLKO/P3.0的時鐘輸出。計數(shù)器/定時器寄存器組

--INT_CLKO(AUXR2)名字地址復位值B7B6B5B4B3B2B1B0AUXR2INT_CLKO0x8Fx000x000--EX4EX3EX2--T2CLKOT1CLKOT0CLKOExn(n=2、3、4),外部中斷n(INTn)允許位。當該位為1時,允許外部中斷n產(chǎn)生中斷事件;否則,當該位為0時,禁止外部中斷n產(chǎn)生中斷事件。T0CLKO將P3.5/T1引腳配置為定時器0的時鐘輸出T0CLKO允許控制位。當該位為1時,將P3.5/T1引腳設置為定時器0的時鐘輸出T0CLKO,輸出時鐘頻率=T0溢出率/2。如果運行在模式0(16位自動重加載模式)時,則:①如果工作在定時器模式下,定時器/計數(shù)器T0是對內部系統(tǒng)時鐘計數(shù),則:當T0工作在1T(AUXR.7/T0x12=1)模式時,輸出頻率為:{SYSclk/(65536-[RL_TH0,RL_TL0])}/2當T0工作在12T(AUXR.7/T0x12=0)模式時,輸出頻率為:

{(SYSclk/12)/(65536-[RL_TH0,RL_TL0])}/2②如果工作在計數(shù)器模式下,定時器/計數(shù)器T0是對外部脈沖輸入(P3.4/T0)計數(shù),輸出時鐘頻率為:

{T0引腳輸入時鐘頻率/(65536-[RL_TH0,RL_TL0])}/2計數(shù)器/定時器寄存器組

--INT_CLKO(AUXR2)如果運行在模式2(8位自動重加載模式)時,則:①如果工作在定時器模式下,定時器/計數(shù)器T0是對內部系統(tǒng)時鐘計數(shù),則:當T0工作在1T(AUXR.7/T0x12=1)模式時,輸出頻率為:[SYSclk/(256-TH0)]/2

當T0工作在12T(AUXR.7/T0x12=0)模式時,輸出頻率為:[(SYSclk/12)/(256-TH0)]/2②如果工作在計數(shù)器模式下,定時器/計數(shù)器T0是對外部脈沖輸入(P3.4/T0)計數(shù),輸出時鐘頻率為:

[T0引腳輸入時鐘頻率/(256-TH0)]/2該位為0時,不允許將P3.5/T1引腳配置為定時器0的時鐘輸出。計數(shù)器/定時器寄存器組

--INT_CLKO(AUXR2)T1CLKO將P3.4/T0引腳配置為定時器1的時鐘輸出T1CLKO允許控制位。當該位為1時,將P3.4/T0引腳設置為定時器1的時鐘輸出T1CLKO,輸出時鐘頻率=T1溢出率/2。如果運行在模式0(16位自動重加載模式)時,則:①如果工作在定時器模式下,定時器/計數(shù)器T1是對內部系統(tǒng)時鐘計數(shù),則:當T1工作在1T(AUXR.6/T1x12=1)模式時,輸出頻率為:{SYSclk/(65536-[RL_TH1,RL_TL1])}/2當T0工作在12T(AUXR.6/T1x12=0)模式時,輸出頻率為:

{(SYSclk/12)/(65536-[RL_TH1,RL_TL1])}/2②如果工作在計數(shù)器模式下,定時器/計數(shù)器T1是對外部脈沖輸入(P3.5/T1)計數(shù),輸出時鐘頻率為:

{T1引腳輸入時鐘頻率/(65536-[RL_TH1,RL_TL1])}/2計數(shù)器/定時器寄存器組

--INT_CLKO(AUXR2)如果運行在模式2(8位自動重加載模式)時,則:①如果工作在定時器模式下,定時器/計數(shù)器T1是對內部系統(tǒng)時鐘計數(shù),則:當T1工作在1T(AUXR.6/T1x12=1)模式時,輸出頻率為:[SYSclk/(256-TH1)]/2當T1工作在12T(AUXR.6/T1x12=0)模式時,輸出頻率為:

[(SYSclk/12)/(256-TH1)]/2②如果工作在計數(shù)器模式下,定時器/計數(shù)器T1是對外部脈沖輸入(P3.5/T1)計數(shù),輸出時鐘頻率為:

[T1引腳輸入時鐘頻率/(256-TH1)]/2該位為0時,不允許將P3.4/T0引腳配置為定時器1的時鐘輸出。計數(shù)器/定時器寄存器組

--INT_CLKO(AUXR2)T2CLKO將P3.0/T1引腳配置為定時器2的時鐘輸出T2CLKO允許控制位。當該位為1時,P3.0引腳設置為定時器2的時鐘輸出T2CLKO,輸出時鐘頻率=T2溢出率/2。該定時器只能運行在模式0(16位自動重加載模式),則:①如果工作在定時器模式下,定時器/計數(shù)器T2是對內部系統(tǒng)時鐘計數(shù),則:當T2工作在1T(AUXR.2/T2x12=1)模式時,輸出頻率為:

{SYSclk/(65536-[RL_TH2,RL_TL2])}/2當T2工作在12T(AUXR.2/T2x12=0)模式時,輸出頻率為:

{(SYSclk/12)/(65536-[RL_TH2,RL_TL2])}/2②如果工作在計數(shù)器模式下,定時器/計數(shù)器T0是對外部脈沖輸入(P3.1/T2)計數(shù),輸出時鐘頻率為:

{T2引腳輸入時鐘頻率/(65536-[RL_TH2,RL_TL2])}/2該位為0時,不允許將P3.0引腳配置為定時器2的時鐘輸出。計數(shù)器/定時器寄存器組

--INT_CLKO(AUXR2)ET1,定時器/計數(shù)器T1溢出中斷允許位。當該位為1時,允許T1溢出中斷;當該位為0時,禁止T1溢出中斷。ET0,定時器/計數(shù)器T0溢出中斷允許位。當該位為1時,允許T0溢出中斷;當該位為0時,禁止T0溢出中斷。計數(shù)器/定時器寄存器組

--中斷控制寄存器IE名字地址復位值B7B6B5B4B3B2B1B0IE0xA800000000EAELVDEADCESET1EX1ET0EX0計數(shù)器/定時器寄存器組

--中斷優(yōu)先級控制寄存器IPPT1,定時器1中斷優(yōu)先級控制位。當該位為0時,定時器1中斷為最低優(yōu)先級中斷(優(yōu)先級為0);當該位為1時,定時器1中斷為最高優(yōu)先級中斷(優(yōu)先級為1)。PT0,定時器0中斷優(yōu)先級控制位。當該位為0時,定時器0中斷為最低優(yōu)先級中斷(優(yōu)先級為0);當該位為1時,定時器0中斷為最高優(yōu)先級中斷(優(yōu)先級為1)。比特地址復位值B7B6B5B4B3B2B1B0名字0xB800000000PPCAPLVDPADCPSPT1PX1PT0PX0該寄存器用于控制定時器/計數(shù)器3和4的工作模式T4R,定時器4允許控制位。當該位為0時,不允許定時器4運行;當該位為1時,允許定時器4運行。T4_C/T,控制定時器/計數(shù)器4的工作模式。當該位為0時,用作定時器,即:對內部系統(tǒng)時鐘進行計數(shù);當該位為1時,用作計數(shù)器(對引腳T4/P0.7的外部脈沖進行計數(shù))。計數(shù)器/定時器寄存器組

--定時器T4/T3控制寄存器T4T3M名字地址復位值B7B6B5B4B3B2B1B0T4T3M0xD100000000T4RT4_C/TT4x12T4CLKOT3RT3_C/TT3x12T3CLKOT4x12,定時器4速度控制位。當該位為0時,定時器4是傳統(tǒng)8051單片機的速度,即:12分頻;當該位為1時,定時器4的速度是傳統(tǒng)8051單片機速度的12倍,即:不分頻。T4CLKO,定時器4的時鐘輸出T4CLKO允許控制位。當該位為1時,將P0.6引腳設置為定時器4的時鐘輸出T4CLKO,輸出時鐘頻率=T4溢出率/2。計數(shù)器/定時器寄存器組

--定時器T4/T3控制寄存器T4T3M該定時器只能運行在模式0(16位自動重加載模式),則:①如果工作在定時器模式下,定時器/計數(shù)器T4是對內部系統(tǒng)時鐘計數(shù),則:當T4工作在1T(T4T3M.5/T4x12=1)模式時,輸出頻率為:

{SYSclk/(65536-[RL_TH4,RL_TL4])}/2當T4工作在12T(T4T3M.5/T4x12=0)模式時,輸出頻率為:{(SYSclk/12)/(65536-[RL_TH4,RL_TL4])}/2②如果工作在計數(shù)器模式下,定時器/計數(shù)器T4是對外部脈沖輸入(P0.7/T4)計數(shù),輸出時鐘頻率為:

{T4引腳輸入時鐘頻率/(65536-[RL_TH4,RL_TL4])}/2該位為0時,不允許將P0.6引腳配置為定時器4的時鐘輸出。計數(shù)器/定時器寄存器組

--定時器T4/T3控制寄存器T4T3M定時器4只有16位自動重加載模式,其計數(shù)初值保存在寄存器TH4和TL4中。計數(shù)器/定時器寄存器組

--定時器T4計數(shù)初值寄存器名字地址復位值B7B6B5B4B3B2B1B0TH40xD200000000計數(shù)初值的高8位TL40xD300000000計數(shù)初值的低8位計數(shù)器/定時器寄存器組

--定時器T4/T3控制寄存器T4T3MT3R定時器3允許控制位。當該位為0時,不允許定時器3運行;當該位為1時,允許定時器3運行。T3_C/T控制定時器/計數(shù)器3的工作模式。當該位為0時,用作定時器,即:對內部系統(tǒng)時鐘進行計數(shù);當該位為1時,用作計數(shù)器(對引腳T3/P0.5的外部脈沖進行計數(shù))。T3x12定時器3速度控制位。當該位為0時,定時器3是12分頻;當該位為1時,定時器3不分頻。T3CLKO將P0.4引腳配置為定時器3的時鐘輸出T3CLKO允許控制位。當該位為1時,P0.4引腳設置為定時器3的時鐘輸出T3CLKO,輸出時鐘頻率=T3溢出率/2。該定時器只能運行在模式0(16位自動重加載模式),則:①如果工作在定時器模式下,定時器/計數(shù)器T3是對內部系統(tǒng)時鐘計數(shù),則:當T3工作在1T(T4T3M.1/T3x12=1)模式時,輸出頻率為:{SYSclk/(65536-[RL_TH3,RL_TL3])}/2當T3工作在12T(T4T3M.1/T3x12=0)模式時,輸出頻率為:{(SYSclk/12)/(65536-[RL_TH3,RL_TL3])}/2②如果工作在計數(shù)器模式下,定時器/計數(shù)器T3是對外部脈沖輸入(P0.5/T3)計數(shù),輸出時鐘頻率為:

{T3引腳輸入時鐘頻率/(65536-[RL_TH3,RL_TL3])}/2該位為0時,不允許將P0.4引腳配置為定時器3的時鐘輸出。計數(shù)器/定時器寄存器組

--定時器T4/T3控制寄存器T4T3M對于定時器3來說,只有16位自動重加載模式,其計數(shù)初值保存在寄存器TH3和TL3中。計數(shù)器/定時器寄存器組

--定時器T3計數(shù)初值寄存器名字地址復位值B7B6B5B4B3B2B1B0TH30xD400000000計數(shù)初值的高8位TL30xD500000000計數(shù)初值的低8位該寄存器可用于控制定時器T2~定時器T4的中斷該寄存器位于特殊功能寄存器地址為0xAF的位置。當復位后,該寄存器的值為x0000000B。計數(shù)器/定時器寄存器組

--中斷控制寄存器IE2名字地址復位值B7B6B5B4B3B2B1B0IE20xAFx00000000--ET4ET3ES4ES3ET2ESP1ES2ETn(n=4、3、2),定時器4/3/2中斷允許位。當該位為1時,允許定時器4/3/2產(chǎn)生中斷;當該位為0時,禁止定時器4/3/2產(chǎn)生中斷。ESn(n=4、3、2),串口4/3/2中斷允許位。當該位為1時,允許串口4/3/2產(chǎn)生中斷;當該位為0時,禁止串口4/3/2產(chǎn)生中斷。ESPI,SPI中斷允許位。當該位為1時,允許SPI產(chǎn)生中斷;當該位為0時,禁止SPI產(chǎn)生中斷。計數(shù)器/定時器寄存器組

--中斷控制寄存器IE2【例】定時器/計數(shù)器0自動加載模式C語言描述的例子

該例子將通過定時器生成一個頻率為1Hz的時鐘,并通過單片機P3.5端口輸出。#include"reg51.h"#defineTIMS3036//定時器/計數(shù)器0的計數(shù)初值sfrAUXR=0x8E;//聲明AUXR寄存器的地址為0x8EsfrAUXR2=0x8F;//聲明AUXR2寄存器的地址為0x8FsfrCLK_DIV=0x97;//聲明CLK_DIV寄存器的地址為0x97voidtimer_0()interrupt1//聲明定時器/計數(shù)器0中斷服務程序{P46=!P46; //P4.6端口取反P47=!P47; //P4.7端口取反}計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式main(){

CLK_DIV=0x03;//CLV_DIV=3,將主時鐘8分頻后作為SYSclkTL0=TIMS;//TIMS低八位給定時器計數(shù)初值寄存器TL0TH0=TIMS>>8;//TIMS高八位給定時器計數(shù)初值寄存器TH0AUXR&=0x7F;//AUXR最高位置0,SYSclk/12作定時器時鐘AUXR2|=0x01;//AUXR2最低位置1,P3.5端口輸出T0CLKOTMOD=0x00;//定時器0工作模式為16位自動重加載模式P46=0;//設置P4.6初值為0,燈亮P47=0;//設置P4.7初值為0,燈亮TR0=1;//啟動定時器/計數(shù)器0ET0=1;//使能定時器/計數(shù)器0中斷EA=1;//使能CPU全局中斷,允許中斷請求while(1);//無限循環(huán)}計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式下面對該設計進行驗證和分析,步驟如下:打開STC-ISP軟件,將IRC頻率設置為12.000MHz。下載設計到STC提供的學習板上的單片機中。打開示波器,將探頭連接到學習板上P3.5端口上(注意:探頭一定要和板子共地)計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式【例】定時器/計數(shù)器0自動加載模式C語言描述的例子

該例子將通過外部中斷0控制定時器1的工作過程。#include"reg51.h"#defineTIMS3036sfrAUXR=0x8E;//聲明AUXR寄存器的地址為0x8Evoidtimer_0()interrupt1//聲明定時器中斷{P46=!P46;//P4.6端口取反P47=!P47;//P4.7端口取反}計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式main(){

TL0=TIMS;//將TIMS的低8位賦值給TL0TH0=TIMS>>8;//將TIMS的高8位賦值給TH0AUXR&=0x7F;//AUXR最高位置0,SYSclk/12作定時器時鐘TMOD=0x08;//設置GATE為1,定時器0與INT0引腳有關P46=0;//設置P4.6初值為0,燈亮P47=0;//設置P4.7初值為0,燈亮TR0=1;//啟動定時器/計數(shù)器0ET0=1;//允許定時器/計數(shù)器0中斷EA=1;//CPU允許響應中斷請求while(1);}計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式【例】定時器/計數(shù)器0自動加載模式C語言描述的例子

該例子將實現(xiàn)對外部脈沖進行計數(shù)功能。#include"reg51.h"#defineTIMS3036//定義TIMS的值為3036voidtimer_0()interrupt1//聲明定時器/計數(shù)器0中斷{P46=!P46;//P4.6端口取反P47=!P47;//P4.7端口取反}main(){

TL0=TIMS;//TIMS低8位賦值給TL0寄存器TH0=TIMS>>8;//TIMS高8位賦值給TH0寄存器TMOD=0x04;//配置成計數(shù)器16位重加載模式計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式P46=0;//設置P4.6初值為0,燈亮P47=0;//設置P4.7初值為0,燈亮TR0=1;//啟動定時器/計數(shù)器0ET0=1;//允許定時器/計數(shù)器0中斷EA=1;//CPU允許響應中斷請求while(1);}計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式計數(shù)器/定時器工作模式原理和實現(xiàn)

--定時器/計數(shù)器0工作模式下面對該設計進行驗證和分析,步驟如下:打開STC-ISP軟件,將IRC頻率設置為12.000MHz。下載設計到STC提供的學習板上的單片機中。打開信號源,信號源輸出為TTL/CMOS。將信號源的輸出連接到STC學習板的P34端口上(注意:信號源和STC學習板共地)?!纠慷〞r器/計數(shù)器2自動加載模式C語言描述的例子#include"reg51.h"#defineTIMS3036sfrAUXR=0x8E; //聲明AUXR寄存器的地址0x8EsfrIE2=0xAF; //聲明IE2寄存器的地址0xAFsfrTH2=0xD6; //聲明TH2寄存器的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論