




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1 第七章第七章 定時計數(shù)器定時計數(shù)器 與可編程計數(shù)器陣列與可編程計數(shù)器陣列本章學(xué)習(xí)目標本章學(xué)習(xí)目標掌握定時計數(shù)器的應(yīng)用掌握定時計數(shù)器的應(yīng)用掌握可編程時鐘輸出模塊的應(yīng)用掌握可編程時鐘輸出模塊的應(yīng)用掌握可編程計數(shù)器陣列模塊的應(yīng)用掌握可編程計數(shù)器陣列模塊的應(yīng)用2 STC15F2K60S2單片機內(nèi)部集成了以下與定時單片機內(nèi)部集成了以下與定時功能有關(guān)的模塊:功能有關(guān)的模塊: 1)三個三個16位的定時位的定時/計數(shù)器計數(shù)器,不僅可以方便地用,不僅可以方便地用于定時控制,而且還可以用作分頻器和事件記錄;于定時控制,而且還可以用作分頻器和事件記錄; 2)可編程時鐘輸出功能可編程時鐘輸出功能,可給外部器件提供
2、時鐘;,可給外部器件提供時鐘; 3)三路可編程計數(shù)器陣列三路可編程計數(shù)器陣列(Programmable Counter Array,PCA)??捎糜谲浖〞r器、外)??捎糜谲浖〞r器、外部脈沖的捕捉、高速輸出以及脈寬調(diào)制(部脈沖的捕捉、高速輸出以及脈寬調(diào)制(Pulse Width Modulation ,PWM)輸出。)輸出。3一、定時一、定時/計數(shù)器的結(jié)構(gòu)及工作原理計數(shù)器的結(jié)構(gòu)及工作原理 定時定時/計數(shù)器的核心是一個計數(shù)器的核心是一個加加1計數(shù)器計數(shù)器,加,加1計計數(shù)器的脈沖有兩個來源,一個是外部脈沖源,另數(shù)器的脈沖有兩個來源,一個是外部脈沖源,另一個是系統(tǒng)的時鐘振蕩器。一個是系統(tǒng)的時鐘振蕩
3、器。7.17.1定時定時/ /計數(shù)器及其應(yīng)用計數(shù)器及其應(yīng)用OSC12分頻或不分頻TX端C/T=0C/T=1控制信號加1計數(shù)器TFX中斷圖圖7-1 定時定時/計數(shù)器的結(jié)構(gòu)框圖(計數(shù)器的結(jié)構(gòu)框圖(x=0、1)4當(dāng)脈沖源為時鐘振蕩器當(dāng)脈沖源為時鐘振蕩器(等間隔脈沖序列)時,(等間隔脈沖序列)時,在每個時鐘周期計數(shù)器加在每個時鐘周期計數(shù)器加1,由于計數(shù)脈沖為一時,由于計數(shù)脈沖為一時間基準,所以脈沖數(shù)乘以脈沖間隔時間就是定時間基準,所以脈沖數(shù)乘以脈沖間隔時間就是定時時間,因此為時間,因此為定時功能定時功能。當(dāng)脈沖源為間隔不等的外部脈沖時當(dāng)脈沖源為間隔不等的外部脈沖時,就是外部事,就是外部事件的件的計數(shù)器
4、計數(shù)器,計數(shù)器在其對應(yīng)的外輸入端上有一,計數(shù)器在其對應(yīng)的外輸入端上有一個個10的跳變時加的跳變時加1。外部輸入信號的速率是不受。外部輸入信號的速率是不受限制的,但必須保證給出的電平在變化前至少被限制的,但必須保證給出的電平在變化前至少被采樣一次。采樣一次。5圖中有兩個模擬的位開關(guān),圖中有兩個模擬的位開關(guān),C/T決定其工作方式:是定時決定其工作方式:是定時還是計數(shù)。后者受控制信號的控制,決定加還是計數(shù)。后者受控制信號的控制,決定加1計數(shù)器的開計數(shù)器的開啟與運行。啟與運行。起這兩個開關(guān)作用的是特殊功能寄存器起這兩個開關(guān)作用的是特殊功能寄存器TMOD和和TCON的的相應(yīng)位,用戶可對其進行設(shè)置,從而選
5、擇不同的工作方式相應(yīng)位,用戶可對其進行設(shè)置,從而選擇不同的工作方式(計數(shù)或定時)或是否啟動計數(shù)器。另外,(計數(shù)或定時)或是否啟動計數(shù)器。另外,AUXR中的中的T0 x12位和位和T1x12位決定是否對振蕩時鐘進行位決定是否對振蕩時鐘進行12分頻。分頻。OSC12分頻或不分頻TX端C/T=0C/T=1控制信號加1計數(shù)器TFX中斷6工作原理工作原理計數(shù)器對這兩個脈沖源之一進行輸入計數(shù),每計數(shù)器對這兩個脈沖源之一進行輸入計數(shù),每輸入一個脈沖,計數(shù)值加輸入一個脈沖,計數(shù)值加1。當(dāng)計數(shù)到計數(shù)器。當(dāng)計數(shù)到計數(shù)器為全為全1時,再輸入一個脈沖就使計數(shù)值回零,時,再輸入一個脈沖就使計數(shù)值回零,同時從最高位溢出一
6、個脈沖使特殊功能寄存器同時從最高位溢出一個脈沖使特殊功能寄存器TCON的的TF0或或TF1置置1,作為計數(shù)器的溢出中,作為計數(shù)器的溢出中斷標志。斷標志。如果定時如果定時/計數(shù)器工作于定時狀態(tài),則表示定時計數(shù)器工作于定時狀態(tài),則表示定時時間到;若工作于計數(shù)狀態(tài),則表示計數(shù)回零。時間到;若工作于計數(shù)狀態(tài),則表示計數(shù)回零。7CPU與與TMOD、TCON、AUXR、T0、T1的關(guān)系圖的關(guān)系圖16位的加位的加1計數(shù)器由兩個計數(shù)器由兩個8位的特殊功能寄存器位的特殊功能寄存器THX(高(高8位)和位)和TLX(低(低8位)組成(位)組成(X=0,1,下同)。,下同)。通過改變通過改變TMOD的相應(yīng)位,它們可
7、被設(shè)置為的相應(yīng)位,它們可被設(shè)置為4種不同的工種不同的工作方式。作方式。 CPU內(nèi)部總線TH1TL1TH0TL0TMODTCON07070707P3.4P3.5AUXR8STC15F2K60S2除了定時除了定時/計數(shù)器計數(shù)器T0和和T1外,外,還有一個還有一個16位定時器位定時器T2(簡稱(簡稱T2)。)。T2的工作模式固定為的工作模式固定為16位自動重裝載模式。位自動重裝載模式。T2可以當(dāng)定時器使用,也可以用作串口的波可以當(dāng)定時器使用,也可以用作串口的波特率發(fā)生器或可編程時鐘輸出源。特率發(fā)生器或可編程時鐘輸出源。圖圖7-3 定時器定時器T2的原理框圖的原理框圖9二、定時二、定時/計數(shù)器的相關(guān)寄
8、存器計數(shù)器的相關(guān)寄存器 TMOD、TCON和和AUXR用來確定定時用來確定定時/計數(shù)計數(shù)器的工作方式并控制其功能。其中,器的工作方式并控制其功能。其中,TMOD控控制定時制定時/計數(shù)器計數(shù)器0和和1的工作方式;的工作方式;TCON控制定控制定時器時器T0、T1的啟停及狀態(tài);的啟停及狀態(tài);AUXR設(shè)置定時設(shè)置定時器的速度和器的速度和T2的功能。的功能。 101、TMOD:定時器工作方式控制寄存器:定時器工作方式控制寄存器TMOD(地址為(地址為89H,復(fù)位值為,復(fù)位值為00H)寄存器)寄存器的各位定義如下:的各位定義如下:位號位號D7D6D5D4D3D2D1D0定時器名定時器名定時器定時器1定時
9、器定時器0位名稱位名稱GATEC/M1M0GATEC/M1M0TT11 1)M1和和M0:方式選擇控制位:方式選擇控制位 M1 M0工作方式工作方式功能說明功能說明0 0016位自動裝載的定時器位自動裝載的定時器/計數(shù)器計數(shù)器0 1116位定時器位定時器/計數(shù)器計數(shù)器1 02可自動裝入的可自動裝入的8位計數(shù)器位計數(shù)器1 1留作備用留作備用位號位號D7D6D5D4D3D2D1D0定時器名定時器名定時器定時器1定時器定時器0位名稱位名稱GATEC/M1M0GATEC/M1M0TT表表7-1 定時定時/計數(shù)器的方式選擇計數(shù)器的方式選擇122)C/ :功能選擇位。:功能選擇位。 1:計數(shù)器功能(對:計
10、數(shù)器功能(對T0或或T1引腳的負跳變進行計引腳的負跳變進行計數(shù))。數(shù))。 0:定時器功能(對時鐘周期進行計數(shù))。:定時器功能(對時鐘周期進行計數(shù))。T位號位號D7D6D5D4D3D2D1D0定時器名定時器名定時器定時器1定時器定時器0位名稱位名稱GATEC/M1M0GATE C/M1M0TT133)GATE:門控位。:門控位。GATE用于選通控制。用于選通控制。 1:INTX為高電平且為高電平且TRX置位時,啟動定時器工作。置位時,啟動定時器工作。 0:每當(dāng):每當(dāng)TRX置位時,就啟動定時器工作。置位時,就啟動定時器工作。 注意注意:TMOD寄存器不能進行位尋址,設(shè)置時只寄存器不能進行位尋址,設(shè)
11、置時只能對整個寄存器賦值。能對整個寄存器賦值。位號位號D7D6D5D4D3D2D1D0定時器名定時器名定時器定時器1定時器定時器0位名稱位名稱GATEC/M1M0GATE C/M1M0TT142、TCON:定時器控制寄存器:定時器控制寄存器TCON(地址為(地址為88H,復(fù)位值為,復(fù)位值為00H)寄存器)寄存器的格式如下:的格式如下:位號位號D7D6D5D4D3D2D1D0位名稱位名稱TF1TR1TF0TR0IE1IT1IE0IT015 1)TF1:T1溢出標志位。溢出標志位。 T1啟動計數(shù)后,最高位產(chǎn)生溢出時,啟動計數(shù)后,最高位產(chǎn)生溢出時,TF1由硬件由硬件置置1,向,向CPU請求中斷,當(dāng)請
12、求中斷,當(dāng)CPU響應(yīng)中斷時,由響應(yīng)中斷時,由硬件清硬件清0。TF1也可以由程序查詢或清也可以由程序查詢或清0。 2)TF0:定時器:定時器/計數(shù)器計數(shù)器0溢出標志位。溢出標志位。 含義和功能與含義和功能與TF1相似。相似。位號位號D7D6D5D4D3D2D1D0位名稱位名稱TF1TR1TF0TR0IE1IT1IE0IT016 3)TR1:T1的運行控制位。的運行控制位??捎绍浖梦换蚯蹇捎绍浖梦换蚯?。 當(dāng)當(dāng)GATE(TMOD.7)=0,TR1=1啟動啟動T1開始計數(shù),開始計數(shù),TR1=0時停止時停止T1計數(shù)。計數(shù)。 當(dāng)當(dāng)GATE(TMOD.7)=1,TR1=1且且INTX輸入高輸入高電平時
13、,才允許電平時,才允許T1計數(shù)。計數(shù)。 4)TR0:定時器:定時器T0的運行控制位。的運行控制位。 含義和功能與含義和功能與TR1相似。相似。位號位號D7D6D5D4D3D2D1D0位名稱位名稱TF1TR1TF0TR0IE1IT1IE0IT017由于定時由于定時/計數(shù)器是可編程的,所以在任何一計數(shù)器是可編程的,所以在任何一個定時個定時/計數(shù)器開始工作之前,必須對其寫入計數(shù)器開始工作之前,必須對其寫入相應(yīng)的控制字。相應(yīng)的控制字。把方式控制字寫入把方式控制字寫入TMOD選擇定時器的工作方選擇定時器的工作方式式把初值寫入把初值寫入THX、TLX控制計數(shù)長度控制計數(shù)長度將將TCON相應(yīng)位(相應(yīng)位(TR
14、X)置)置1或清零實現(xiàn)啟動或清零實現(xiàn)啟動或停止計數(shù)?;蛲V褂嫈?shù)。在運行過程中,還可讀出在運行過程中,還可讀出THX、TLX和和TCON的內(nèi)容來隨時查詢的內(nèi)容來隨時查詢T0、T1的狀態(tài)。的狀態(tài)。183、AUXR:輔助寄存器:輔助寄存器輔助寄存器輔助寄存器AUXR主要用來設(shè)置定時器主要用來設(shè)置定時器0的速的速度和定時器度和定時器2的工能以及串口的工能以及串口UART的波特率的波特率控制??刂啤TC15F2K60S2單片機是單片機是1T 的的8051單片機,單片機,為了兼容傳統(tǒng)為了兼容傳統(tǒng)8051單片機,定時器單片機,定時器0和定時器和定時器1復(fù)位后是傳統(tǒng)復(fù)位后是傳統(tǒng)8051的速度,即的速度,即1
15、2分頻,但此時分頻,但此時指令執(zhí)行速度仍然是指令執(zhí)行速度仍然是1T的速度。的速度。 通過設(shè)置特通過設(shè)置特殊功能寄存器殊功能寄存器AUXR中相關(guān)的位,定時器也可中相關(guān)的位,定時器也可不進行不進行12分頻,實現(xiàn)真正的分頻,實現(xiàn)真正的1T速度。速度。19輔助寄存器輔助寄存器AUXR(地址為(地址為8EH,復(fù)位值為,復(fù)位值為01H)各位定義如下:)各位定義如下:位號位號D7D6D5D4D3D2D1D0位名稱位名稱T0 x12T1x12UART_M0 x6UART_M0 x6T2RT2_C/T2x12EXTRAMS1S2T1)T0 x12:定時器:定時器0速度控制位。速度控制位。 0:定時器:定時器0的
16、速度與傳統(tǒng)的速度與傳統(tǒng)8051單片機定時器速度單片機定時器速度相同,即相同,即12分頻。分頻。 1:定時器:定時器0的速度是傳統(tǒng)的速度是傳統(tǒng)8051單片機定時器速度單片機定時器速度的的12倍,即不分頻。倍,即不分頻。202)T1x12:(:(D6)定時器)定時器1速度控制位。速度控制位。 0:即:即12分頻。分頻。 1:不分頻。:不分頻。 如果如果UART串口用串口用T1作為波特率發(fā)生器,作為波特率發(fā)生器,T1x12位決定位決定UART串口是串口是12T 還是還是1T。3)T2R:(:(D4)定時器)定時器2運行控制位。運行控制位。 0:不允許定時器:不允許定時器2運行;運行; 1:允許定時器
17、:允許定時器2運行。運行。214)T2_C/ :(:(D3)定時器)定時器2工作方式選擇。工作方式選擇。 0:定時器(計數(shù)脈沖從內(nèi)部系統(tǒng)時鐘輸入;:定時器(計數(shù)脈沖從內(nèi)部系統(tǒng)時鐘輸入; 1:計數(shù)器(計數(shù)脈沖從:計數(shù)器(計數(shù)脈沖從P3.1/T2引腳輸入)。引腳輸入)。T5)T2x12:(D2)定時器定時器2速度控制位。速度控制位。 0: 12分頻,分頻,T2每每12個時鐘計數(shù)一次;個時鐘計數(shù)一次; 1:不分頻,:不分頻,T2每每1個時鐘計數(shù)一次。個時鐘計數(shù)一次。22UART_M0 x6用于控制用于控制UART串口的速度。串口的速度。S1S2為串行口為串行口1波特率發(fā)生器選擇位。波特率發(fā)生器選擇位
18、。 EXTRAM用于設(shè)置是否允許使用內(nèi)部用于設(shè)置是否允許使用內(nèi)部1024字字節(jié)的擴展節(jié)的擴展RAM。位號位號D7D6D5D4D3D2D1D0位名稱位名稱T0 x12T1x12T1x12UART_M0 x6UART_M0 x6T2RT2_C/T2x12EXTRAMS1S2T234、T2H/RL_TH2:定時器:定時器2重裝值寄存器高字節(jié)重裝值寄存器高字節(jié) (地址為(地址為0D6H,復(fù)位值為,復(fù)位值為00H)位號D7D6D5D4D3D2D1D0位名稱5、T2L/RL_TL2:定時器:定時器2重裝值寄存器低字節(jié)重裝值寄存器低字節(jié) (地址為(地址為0D7H,復(fù)位值為,復(fù)位值為00H)位號D7D6D5D
19、4D3D2D1D0位名稱24三、定時三、定時/計數(shù)器的工作方式計數(shù)器的工作方式 通過對寄存器通過對寄存器TMOD中中M1、M0的設(shè)置,定時的設(shè)置,定時/計數(shù)器有計數(shù)器有4種不同的工作方式:種不同的工作方式: 方式方式0: 16位自動重裝方式位自動重裝方式 方式方式1: 16位定時位定時/計數(shù)器方式計數(shù)器方式 方式方式2: 8位自動重裝方式位自動重裝方式 方式方式3: 留作備用留作備用251、定時定時/計數(shù)器計數(shù)器0和和1的工作方式的工作方式0(16位自動重位自動重裝方式)裝方式)圖7-4 定時器0和1的工作方式0的原理框圖 26STC15F2K60S2的定時器有兩種計數(shù)速率:一的定時器有兩種計
20、數(shù)速率:一種是種是12T模式,每模式,每12個時鐘加個時鐘加1;另一種是;另一種是1T模式,每個時鐘加模式,每個時鐘加1。T0和和T1的速率分別由特殊功能寄存器的速率分別由特殊功能寄存器AUXR中的中的T0 x12和和T1x12決定。決定。 T0 x12=0,T0工作在工作在12T模式;模式; T0 x12=1,T0工作在工作在1T模式。模式。 T1x12=0,T1工作在工作在12T模式;模式; T1x12=1,T1則工作在則工作在1T模式。模式。27如何實現(xiàn)如何實現(xiàn)16位重裝載定時器。位重裝載定時器。定時器定時器0和定時器和定時器1分別有分別有2個隱藏的寄存器個隱藏的寄存器RL_THx和和R
21、L_TLx。RL_THx與與THx共有同一個地址,共有同一個地址,RL_TLx與與TLx共有同一個地址。共有同一個地址。當(dāng)當(dāng)TRx=0即定時器即定時器/計數(shù)器被禁止工作時,對計數(shù)器被禁止工作時,對TLx、THx寫入的內(nèi)容會同時寫入寫入的內(nèi)容會同時寫入RL_TLx、RL_THx。當(dāng)當(dāng)TRx=1即定時器即定時器/計數(shù)器工作時,對計數(shù)器工作時,對TLx 、THx寫入的內(nèi)容不會寫入寫入的內(nèi)容不會寫入RL_TLx 、RL_THx。28當(dāng)定時器工作在模式當(dāng)定時器工作在模式0時,時,TLx,THx的溢出的溢出不僅置位不僅置位TFx,而且會自動將,而且會自動將RL_TLx,RL_THx的內(nèi)容重新裝入的內(nèi)容重新
22、裝入TLx,THx。當(dāng)當(dāng)T0CLKO=1時,時,T1/P3.5引腳配置為定時器引腳配置為定時器0的時鐘輸出的時鐘輸出CLKOUT0。當(dāng)當(dāng)T1CLKO=1時,時,T0/P3.4引腳配置為定時器引腳配置為定時器1的時鐘輸出的時鐘輸出CLKOUT1。292、定時定時/計數(shù)器計數(shù)器0和和1的工作方式的工作方式1(16位定時位定時/計計數(shù)器方式)數(shù)器方式)圖圖7-5 定時器定時器0和和1的方式的方式1的原理框圖的原理框圖30此模式下,定時器配置為此模式下,定時器配置為16位的計數(shù)器,由位的計數(shù)器,由TLx的的8位和位和THx的的8位構(gòu)成。位構(gòu)成。TLx的的8位溢出向位溢出向THx進位,進位,THx計數(shù)溢
23、出置位計數(shù)溢出置位TCON中的溢出中的溢出標志位標志位TFx。 與方式與方式0的區(qū)別是,的區(qū)別是,THx計數(shù)溢出時,不會重計數(shù)溢出時,不會重新裝載時間常數(shù)。此外,本模式也不用于時鐘新裝載時間常數(shù)。此外,本模式也不用于時鐘輸出功能。輸出功能。313、定時、定時/計數(shù)器計數(shù)器0和和1的工作方式的工作方式2(8位自動重裝位自動重裝方式)方式)圖圖7-6 定時定時/計數(shù)器的工作方式計數(shù)器的工作方式2原理框圖原理框圖32方式方式2是能自動重置初值的是能自動重置初值的8位定時位定時/計數(shù)器,計數(shù)器,計數(shù)溢出后具有自動恢復(fù)初值的功能。當(dāng)計數(shù)溢出后具有自動恢復(fù)初值的功能。當(dāng)TL0/TL1計數(shù)溢出時,不僅置位溢
24、出標志計數(shù)溢出時,不僅置位溢出標志TF0/TF1,還自動將,還自動將TH0/TH1的內(nèi)容送入的內(nèi)容送入TL0/TL1,使,使TL0/TL1從初值開始重新計數(shù)。從初值開始重新計數(shù)。用 戶 可 以 通 過 程 序 把 時 間 常 數(shù) 預(yù) 置 在用 戶 可 以 通 過 程 序 把 時 間 常 數(shù) 預(yù) 置 在TH0/TH1中,再裝入后,中,再裝入后,TH0/TH1的內(nèi)容保的內(nèi)容保持不變。持不變。當(dāng)當(dāng)T0CLKO=1時,時,T1/P3.5引腳配置為定時器引腳配置為定時器0的時鐘輸出的時鐘輸出CLKOUT0。當(dāng)當(dāng)T1CLKO=1時,時,T0/P3.4引腳配置為定時器引腳配置為定時器1的時鐘輸出的時鐘輸出C
25、LKOUT1。33在自動裝載時間常數(shù)的工作方式中,用戶不需在自動裝載時間常數(shù)的工作方式中,用戶不需要在中斷服務(wù)程序中重載定時常數(shù),可產(chǎn)生高要在中斷服務(wù)程序中重載定時常數(shù),可產(chǎn)生高精度的定時時間,適合用作較精確的定時脈沖精度的定時時間,適合用作較精確的定時脈沖信號發(fā)生器,如波特率發(fā)生器等。特別是工作信號發(fā)生器,如波特率發(fā)生器等。特別是工作方式方式0(16位自動重裝方式),實際工程中應(yīng)位自動重裝方式),實際工程中應(yīng)用更加方便,因此,建議讀者盡量使用方式用更加方便,因此,建議讀者盡量使用方式0進行定時器的應(yīng)用設(shè)計。進行定時器的應(yīng)用設(shè)計。定時器定時器2的工作方式與定時器的工作方式與定時器0或或1的工作
26、方式的工作方式0類似,讀者可參照上述內(nèi)容自行學(xué)習(xí)。類似,讀者可參照上述內(nèi)容自行學(xué)習(xí)。34四、定時四、定時/計數(shù)器量程的擴展計數(shù)器量程的擴展 在實際應(yīng)用中,需要的定時時常常超過定時在實際應(yīng)用中,需要的定時時常常超過定時/計數(shù)器的定時能力,特別是當(dāng)單片機的系統(tǒng)時計數(shù)器的定時能力,特別是當(dāng)單片機的系統(tǒng)時鐘頻率較高時,定時時長就更為有限。為了滿鐘頻率較高時,定時時長就更為有限。為了滿足需要,足需要,經(jīng)常需要對單片機的定時計數(shù)能力進經(jīng)常需要對單片機的定時計數(shù)能力進行擴展。行擴展。351、定時器的最大定時能力、定時器的最大定時能力當(dāng)工作于定時狀態(tài)時,定時當(dāng)工作于定時狀態(tài)時,定時/計數(shù)器是對時鐘計數(shù)器是對時
27、鐘周期進行計數(shù),若對時鐘進行周期進行計數(shù),若對時鐘進行12分頻,則對每分頻,則對每12個時鐘周期計數(shù)一次。個時鐘周期計數(shù)一次。當(dāng)晶振頻率為當(dāng)晶振頻率為6MHz,采用,采用12分頻時,計數(shù)的分頻時,計數(shù)的單位時間為:單位時間為: 單位時間為:單位時間為: Tu= = s=2s 定時時間為定時時間為:TC=XTu。其中,。其中,Tu為單位時間,為單位時間,TC為定時時間,為定時時間,X為所需計數(shù)次數(shù)。為所需計數(shù)次數(shù)。晶振頻率1260000001236STC15F2K60S2單片機的定時單片機的定時/計數(shù)器是加計數(shù)器是加1計計數(shù)器。因此,不能直接將實際的計數(shù)值作為計數(shù)器。因此,不能直接將實際的計數(shù)值
28、作為計數(shù)初值送入計數(shù)寄存器數(shù)初值送入計數(shù)寄存器THX、TLX中,而必中,而必須將實際計數(shù)值以須將實際計數(shù)值以28、216為模求補,以補碼作為模求補,以補碼作為計數(shù)初值設(shè)置為計數(shù)初值設(shè)置THX和和TLX。即應(yīng)裝入計數(shù)即應(yīng)裝入計數(shù)/定時器的初值為:定時器的初值為: 其中,其中,n=8或或16。TcN2Tun37例如:已知例如:已知Tu2s,要求定時,要求定時TC1ms,則則 對 方 式對 方 式 0 和 方 式和 方 式 1 , 時 間 常 數(shù) 為 :, 時 間 常 數(shù) 為 : 21 6500=65036=FE0CH (THX裝入裝入FEH,TLX裝入裝入0CH)。)。設(shè)系統(tǒng)時鐘頻率為設(shè)系統(tǒng)時鐘頻
29、率為6MHz,12分頻時,分頻時,8位定時器的最大定時能力為:位定時器的最大定時能力為:T(28 0)2s512s16位定時器的最大定時能力為:位定時器的最大定時能力為:T(216 0)2s131072s131.072ms382、定時量程的擴展、定時量程的擴展 定時量程的擴展分為軟件擴展和硬件擴展兩種定時量程的擴展分為軟件擴展和硬件擴展兩種方法。方法。(1)軟件擴展方法)軟件擴展方法 軟件擴展方法是在定時器中斷服務(wù)程序中軟件擴展方法是在定時器中斷服務(wù)程序中對定對定時器中斷請求進行計數(shù)時器中斷請求進行計數(shù),當(dāng)中斷請求的次數(shù)達到,當(dāng)中斷請求的次數(shù)達到要求的值時才進行相應(yīng)的處理。要求的值時才進行相應(yīng)
30、的處理。39例如,某事件的處理周期為例如,某事件的處理周期為1s由于受到最大定時時間的限制,無法一次完成由于受到最大定時時間的限制,無法一次完成定時。定時。此時可以將定時器的定時時間設(shè)為以此時可以將定時器的定時時間設(shè)為以10ms為一為一個單位,啟動定時器后,每一次定時器溢出中個單位,啟動定時器后,每一次定時器溢出中斷將產(chǎn)生斷將產(chǎn)生10ms的定時。的定時。進入中斷服務(wù)程序后,進入中斷服務(wù)程序后,對定時器的中斷次數(shù)進對定時器的中斷次數(shù)進行計數(shù)行計數(shù),每計數(shù),每計數(shù)100次進行一次事件的處理,次進行一次事件的處理,則可實現(xiàn)則可實現(xiàn)1s的定時效果。的定時效果。這是最常用的方法。這是最常用的方法。40(
31、2)硬件擴展方法)硬件擴展方法硬件擴展方法可以使用外接通用定時器芯片對硬件擴展方法可以使用外接通用定時器芯片對單片機的定時能力進行擴展。單片機的定時能力進行擴展。也可以利用單片機自身的資源對定時能力進行也可以利用單片機自身的資源對定時能力進行擴展。擴展。例如,將兩個定時器串聯(lián)起來使用(其中,一例如,將兩個定時器串聯(lián)起來使用(其中,一個工作于定時方式,另一個工作于計數(shù)方式,個工作于定時方式,另一個工作于計數(shù)方式,請讀者分析其最大定時時間)。請讀者分析其最大定時時間)。由于該擴展方法占用較多的資源,較少采用。由于該擴展方法占用較多的資源,較少采用。41五、定時五、定時/計數(shù)器編程舉例計數(shù)器編程舉例
32、 一般定時一般定時/計數(shù)器的應(yīng)用采用中斷方式,因此,計數(shù)器的應(yīng)用采用中斷方式,因此,編程時主要考慮兩點:編程時主要考慮兩點:正確初始化,包括寫入控制字、時間常數(shù)的計正確初始化,包括寫入控制字、時間常數(shù)的計算并裝入;算并裝入;中斷服務(wù)程序的編寫,在中斷服務(wù)程序中編寫中斷服務(wù)程序的編寫,在中斷服務(wù)程序中編寫實現(xiàn)需要定時完成的任務(wù)代碼。實現(xiàn)需要定時完成的任務(wù)代碼。42在定時在定時/計數(shù)器初始化部分的一般步驟大致如下:計數(shù)器初始化部分的一般步驟大致如下:設(shè)置工作方式,將控制字寫入設(shè)置工作方式,將控制字寫入TMOD寄存器。(對于寄存器。(對于T0和和T1)或)或AUXR(對于(對于T2)。(注意)。(注
33、意TMOD不能進不能進行位尋址)。行位尋址)。設(shè)置分頻方式,將控制字寫入設(shè)置分頻方式,將控制字寫入AUXR寄存器。默認的寄存器。默認的情況是情況是12分頻(兼容傳統(tǒng)分頻(兼容傳統(tǒng)8051單片機),如使用傳統(tǒng)單片機),如使用傳統(tǒng)8051單片機模式,無需設(shè)置。單片機模式,無需設(shè)置。計算定時計算定時/計數(shù)初值,并將其裝入計數(shù)初值,并將其裝入TLX、THX寄存器。寄存器。(對于(對于T0和和T1)或)或T2L、T2H寄存器(對于寄存器(對于T2)。)。置位置位ETX和和EA允許定時允許定時/計數(shù)器中斷(如果需要)。計數(shù)器中斷(如果需要)。置位置位TRX(對于(對于T0和和T1)或)或T2R(對于(對于
34、T2)以啟動定)以啟動定時時/計數(shù)。計數(shù)。在中斷服務(wù)程序中,要注意計數(shù)初值的重新裝入問題。在中斷服務(wù)程序中,要注意計數(shù)初值的重新裝入問題。43【例【例7-1】 設(shè)系統(tǒng)時鐘頻率為設(shè)系統(tǒng)時鐘頻率為6MHz,利用,利用T0定定時,每隔時,每隔1s將將P2.0的狀態(tài)取反。的狀態(tài)取反。 解解:所要求的定時時間所要求的定時時間1s超過了定時器的定時能力超過了定時器的定時能力(時鐘頻率為(時鐘頻率為6MHz,12分頻時,分頻時,16位定時器位定時器的最長定時時間為的最長定時時間為131.072ms),所以無法采),所以無法采用定時器直接實現(xiàn)用定時器直接實現(xiàn)1s的定時。的定時。將定時器的定時時間設(shè)為將定時器的
35、定時時間設(shè)為50ms,在中斷服務(wù)程,在中斷服務(wù)程序中對定時器溢出中斷請求進行計數(shù),當(dāng)計夠序中對定時器溢出中斷請求進行計數(shù),當(dāng)計夠20次時,將次時,將P2.0的狀態(tài)取反,否則直接返回主的狀態(tài)取反,否則直接返回主程序,從而達到程序,從而達到1s的定時。的定時。44選擇選擇T0為為16位定時器方式,方式字為位定時器方式,方式字為01H。系。系統(tǒng)時鐘頻率為統(tǒng)時鐘頻率為6MHz,12分頻時,計數(shù)單位時分頻時,計數(shù)單位時間間隔為間間隔為2s。T0的計數(shù)初值為:的計數(shù)初值為:1636TcXM2(50 10 )/(2 10 )65536250009E58HTu45$INCLUDE (STC15.INC) ;包
36、含包含STC15F2K60S2寄存器定義文件寄存器定義文件 ORG0000H LJMP MAIN ;轉(zhuǎn)主程序轉(zhuǎn)主程序 ORG 000BH;T0中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址 LJMPT0_ISR ORG 0100HMAIN: MOV SP,#7FH ;設(shè)置堆棧指針設(shè)置堆棧指針 MOV TMOD,#01H ;T0初始化初始化 MOV TL0,#58H MOV TH0,#9EH MOV A,#20 ;累加器累加器A置置20 SETB ET0 ;允外允外T0中斷中斷 SETB EA;CPU開中斷開中斷 SETB TR0 ;啟動啟動T0計數(shù)計數(shù) SJMP $ ;等待等待46T0_ISR:MO
37、V TL0,#58H MOV TH0,#9EH;重新裝入時間常數(shù)重新裝入時間常數(shù) DEC A ; 累加器累加器A內(nèi)容減內(nèi)容減1 JNZEXIT CPL P2.0 MOV A,#20 ;累加器累加器A重載重載20EXIT: RETI END程序中的符號程序中的符號“$”表示表示“本條指令地址本條指令地址”,指令,指令“SJMP $”相當(dāng)相當(dāng)于:于:“HERE: LJMP HERE”。47#include “stc15.h”/包含包含STC15F2KA60S2的寄存器定義文件的寄存器定義文件sbit P20=P20;/聲明聲明P2.0的引腳位變量的引腳位變量unsigned char i; /聲明
38、計數(shù)變量。聲明計數(shù)變量。C語言程序中盡量不要使用語言程序中盡量不要使用ACCvoid main (void) /SP=0 x60; /使用使用C語言設(shè)計程序時,可以不設(shè)置堆棧指針語言設(shè)計程序時,可以不設(shè)置堆棧指針 TMOD=0 x01; TL0=0 x58; TH0=0 x9E; i=20;/計數(shù)變量賦初值計數(shù)變量賦初值ET0=1;/允許允許T0中斷中斷 EA = 1;/開放總的中斷開放總的中斷TR0=1;/啟動啟動T0計數(shù)計數(shù) while(1); /等待中斷等待中斷48void T0_ISR (void) interrupt 1 /定時器定時器T0中斷函數(shù)中斷函數(shù)TL0=0 x58;/重新裝
39、入時間常數(shù)重新裝入時間常數(shù) TH0=0 x9E; i-;/計數(shù)變量減計數(shù)變量減1if(i=0) /若減到若減到0,則將,則將P2.0取反取反P20 = !P20; /將將P2.0取反取反i = 20;/重新給計數(shù)變量賦值重新給計數(shù)變量賦值 49若使用工作方式若使用工作方式0,則上述程序中,除了將,則上述程序中,除了將TMOD的的值設(shè)置為值設(shè)置為0以外,在中斷服務(wù)程序中,不再需要重新以外,在中斷服務(wù)程序中,不再需要重新裝入時間常數(shù),即:裝入時間常數(shù),即:在匯編語言程序的中斷服務(wù)程序中可以省去下面的兩在匯編語言程序的中斷服務(wù)程序中可以省去下面的兩句:句: MOV TL0,#58H MOV TH0,
40、#9EH;重新裝入時間常數(shù)重新裝入時間常數(shù)在在C語言程序的中斷服務(wù)程序中可以省去下面的兩句:語言程序的中斷服務(wù)程序中可以省去下面的兩句: TL0=0 x58; TH0=0 x9E; /重新裝入時間常數(shù)重新裝入時間常數(shù)其他部分的程序不變。其他部分的程序不變。對于對于1T模式的使用,請讀者自行實驗學(xué)習(xí)。模式的使用,請讀者自行實驗學(xué)習(xí)。 思考:思考:若晶振頻率修改為若晶振頻率修改為11.0592MHz,時間常,時間常數(shù)應(yīng)為多少?數(shù)應(yīng)為多少?50【例【例7-2】設(shè)時鐘頻率為】設(shè)時鐘頻率為18.432MHz,使用定時,使用定時器器2定時,使定時,使P0.0口輸出口輸出38.4KHZ的方波。的方波。匯編代
41、碼如下:匯編代碼如下: $INCLUDE (STC15.INC) ;包含寄存器定義文件包含寄存器定義文件 ;定義定義38.4KHz時的時間常數(shù)時的時間常數(shù) (65536-18432000/12/38400/2) T38_4KHz EQU 0FFECH TEST_PIN BIT P0.0 ;測試引腳定義測試引腳定義 ORG0000H LJMPMAIN ORG0063H ;定時器定時器2的中斷服務(wù)程序入口地址的中斷服務(wù)程序入口地址 LJMPT2_ISR51MAIN: MOV SP,#70H;設(shè)置堆棧指針設(shè)置堆棧指針 ORLAUXR,#04H;設(shè)置設(shè)置T2為為1T模式模式 MOV T2H,#HIGH
42、 T38_4KHz;設(shè)置定時器設(shè)置定時器2重裝載時間重裝載時間 常數(shù)的高字節(jié)常數(shù)的高字節(jié) MOV T2L,#LOW T38_4KHz;設(shè)置定時器設(shè)置定時器2重裝載時間重裝載時間 常數(shù)的低字節(jié)常數(shù)的低字節(jié) ORL AUXR,#10 H;啟動定時器啟動定時器2 ORL IE2,#04H;允許定時器允許定時器2中斷中斷 SETBEA;開放開放CPU中斷中斷 SJMP$;定時器定時器2中斷服務(wù)程序中斷服務(wù)程序T2_ISR: CPL TEST_PIN RETI END52對應(yīng)的對應(yīng)的C語言代碼如下:語言代碼如下:#include “stc15.h”/包含包含STC15F2K60S2的寄存器定義文件的寄存
43、器定義文件typedef unsigned char BYTE;typedef unsigned int WORD;#define FOSC 18432000L#define T38_4KHz (65536-18432000/12/38400/2) /38.4KHz sbit TEST_PIN = P00; /定義測試引腳定義測試引腳void main(void) AUXR|= 0 x04;/設(shè)置設(shè)置T2為為1T模式模式 T2H = T38_4KHz8; /設(shè)置設(shè)置T2重裝時間常數(shù)的高字節(jié)重裝時間常數(shù)的高字節(jié) T2L = T38_4KHz; /設(shè)置設(shè)置T2重裝時間常數(shù)的低字節(jié)重裝時間常數(shù)的低字
44、節(jié) AUXR |= 0 x10; /啟動定時器啟動定時器2 IE2 |= 0 x04; /允許定時器允許定時器2中斷中斷 EA = 1; /開放開放CPU中斷中斷 while (1); /循環(huán)等待中斷循環(huán)等待中斷/定時器定時器2中斷服務(wù)函數(shù)中斷服務(wù)函數(shù)void t2_isr(void) interrupt 12 TEST_PIN = TEST_PIN;53【例【例7-3】 利用定時器的門控方式實現(xiàn)正脈沖的利用定時器的門控方式實現(xiàn)正脈沖的脈寬測量。脈寬測量。當(dāng)當(dāng)GATE=1,TRX=1,只有引腳輸入高電平時,只有引腳輸入高電平時,TX才被允許計數(shù),利用這一特點,就可以測量才被允許計數(shù),利用這一特
45、點,就可以測量引腳上正脈沖的寬度。引腳上正脈沖的寬度。以以T0為例的門控法測量示意圖如圖所示。為例的門控法測量示意圖如圖所示。對T0初始化編程,GATE=1T0從0開始計數(shù)T0停止計數(shù),讀T0值圖圖7-7 利用門控法測量脈沖寬度利用門控法測量脈沖寬度54解:以解:以T0為例,下面給出實現(xiàn)這一方法的關(guān)鍵代碼,完整的為例,下面給出實現(xiàn)這一方法的關(guān)鍵代碼,完整的匯編語言程序和對應(yīng)的匯編語言程序和對應(yīng)的C語言程序,請讀者自行編寫。語言程序,請讀者自行編寫。MOVTMOD,#09H ; T0工作于工作于16位定時方式、位定時方式、GATE置置1MOVTL0,#00HMOVTH0,#00HCLREX0 ;
46、關(guān)外部中斷關(guān)外部中斷JNBP3.2,$ ;等待升高等待升高SETBTR0JBP3.2,$ ;等待下降等待下降CLRTR0 ;關(guān)關(guān)T0MOVA,TL0 ;T0內(nèi)容高內(nèi)容高8位送位送B,低,低8位送位送AMOVB,TH0 ;計算脈寬或送顯示器顯示計算脈寬或送顯示器顯示55思考:思考:(1)當(dāng)脈沖寬度超過定時器的最大定時時間應(yīng))當(dāng)脈沖寬度超過定時器的最大定時時間應(yīng)該如何處理?該如何處理?(2)在動態(tài)讀取運行中的定時)在動態(tài)讀取運行中的定時/計數(shù)器的計數(shù)值計數(shù)器的計數(shù)值時,如果不加注意,就可能出錯。這是因為不時,如果不加注意,就可能出錯。這是因為不可能在同一時刻同時讀取可能在同一時刻同時讀取TH0和和
47、TL0中的計數(shù)中的計數(shù)值。比如,先讀值。比如,先讀TL0后讀后讀TH0,因為定時,因為定時/計數(shù)計數(shù)器處于運行狀態(tài),在讀器處于運行狀態(tài),在讀TL0時尚未產(chǎn)生向時尚未產(chǎn)生向TH0進位,而在讀進位,而在讀TH0前已產(chǎn)生進位,這時讀得的前已產(chǎn)生進位,這時讀得的TH0就不對了;同樣,先讀就不對了;同樣,先讀TH0后讀后讀TL0也可也可能出錯。如何解決這個問題?能出錯。如何解決這個問題?567.2可編程時鐘輸出模塊及其應(yīng)用可編程時鐘輸出模塊及其應(yīng)用 在控制系統(tǒng)中,有時需要為單片機外部的器在控制系統(tǒng)中,有時需要為單片機外部的器件提供時鐘控制,為此,件提供時鐘控制,為此,STC15F2K60S2單片單片機提
48、供了機提供了4路路可編程時鐘輸出功能??删幊虝r鐘輸出功能。 MCLKO/P5.4, CLKOUT0/P3.5,CLKOUT1/P3.4, T2CLKO/P3.0。 只有內(nèi)部只有內(nèi)部R/C時鐘頻率為時鐘頻率為12MHz以下時,以下時,MCLKO/P5.4才能正常輸出。才能正常輸出。57一、可編程時鐘輸出的相關(guān)寄存器一、可編程時鐘輸出的相關(guān)寄存器 1、主時鐘輸出、主時鐘輸出 主時鐘可以是內(nèi)部高精度主時鐘可以是內(nèi)部高精度R/C時鐘,也可以是時鐘,也可以是外部輸入的時鐘或外部晶體振蕩產(chǎn)生的時鐘。外部輸入的時鐘或外部晶體振蕩產(chǎn)生的時鐘。MCLKO/P5.4的時鐘輸出控制由的時鐘輸出控制由CLK_DIV寄
49、寄存器的存器的MCKO_S1和和MCKO_S0位控制。通過位控制。通過 設(shè)置設(shè)置MCKO_S1和和MCKO_S0可將可將MCLKO/P5.4 管腳配置為主時鐘輸出,同時,還可以設(shè)置輸管腳配置為主時鐘輸出,同時,還可以設(shè)置輸 出頻率。出頻率。58時鐘分頻寄存器時鐘分頻寄存器CLK_DIV(也稱為(也稱為PCON2,地址為,地址為97H,復(fù)位值為,復(fù)位值為0000 x000B)的各位定義如下:)的各位定義如下:位號位號D7D6D5D4D3D2D1D0位名稱位名稱MCKO_S1MCKO_S0 ADRJ TX_RX -CLKS2 CLKS1 CLKS059主時鐘的輸出頻率由主時鐘的輸出頻率由MCKO_
50、S1和和MCKO_S0控制??刂啤CKO_S1MCKO_S0內(nèi)部內(nèi)部R/C振蕩時鐘的輸出頻率振蕩時鐘的輸出頻率00 無主時鐘輸出無主時鐘輸出01主時鐘輸出頻率主時鐘輸出頻率= MCLK/110主時鐘輸出頻率主時鐘輸出頻率= MCLK/211主時鐘輸出頻率主時鐘輸出頻率= MCLK/4表表7-2 主時鐘的輸出頻率設(shè)置主時鐘的輸出頻率設(shè)置其中,其中,MCLK指主時鐘頻率。指主時鐘頻率。IO口輸出的頻率最高可達口輸出的頻率最高可達13.5MHz。602、T2CLKO/P3.0、T1CLKOU/P3.4和和T0CLKOU/P3.5的時鐘輸出的時鐘輸出T2CLKO/P3.0、T1CLKOU/P3.4和
51、和T0CLKOU/P3.5的的時鐘輸出分別由外部中斷使能和時鐘輸出寄存器時鐘輸出分別由外部中斷使能和時鐘輸出寄存器INT_CLKO (也稱為也稱為AUXR2)的的T2CLKO、T1CLKO和和T0CLKO位控制。位控制。CLKOUT0的輸出時鐘頻率由定時器的輸出時鐘頻率由定時器0控制,控制,CLKOUT1的輸出時鐘頻率由定時器的輸出時鐘頻率由定時器1控制,控制,T2CLKO的輸出時鐘頻率由定時器的輸出時鐘頻率由定時器2控制控制定時器需要工作在定時器方式定時器需要工作在定時器方式0(16位自動重裝模式)位自動重裝模式)或方式或方式2(8位自動重裝載模式),不允許定時器中斷,位自動重裝載模式),不
52、允許定時器中斷,以免以免CPU反復(fù)進中斷。反復(fù)進中斷。61外部中斷使能和時鐘輸出寄存器外部中斷使能和時鐘輸出寄存器INT_CLKO(地址為(地址為8FH,復(fù)位值為,復(fù)位值為X0000000B)各位的)各位的定義如下:定義如下:位號位號D7D6D5D4D3D2D1D0位名稱位名稱-EX4EX3EX2-T2CLKOT1CLKOT0CLKO621)T2CLKO:是否將:是否將P3.0腳設(shè)置為定時器腳設(shè)置為定時器2(T2)的時鐘輸)的時鐘輸出出T2CLKO。 T2CLKO=1 設(shè)設(shè)P3.0引腳為引腳為T2的時鐘輸出的時鐘輸出 輸出頻率輸出頻率=T2溢出率溢出率/2 如果如果T2_C/T=0,定時器,定
53、時器/計數(shù)器計數(shù)器T2對內(nèi)部系統(tǒng)時鐘計數(shù),則:對內(nèi)部系統(tǒng)時鐘計數(shù),則:T2工作在工作在1T模式時的輸出頻率模式時的輸出頻率=(SYSclk) / (65536-RL_TH2, RL_TL2)/2T2工作在工作在12T模式時的輸出頻率模式時的輸出頻率= (SYSclk) /12/ (65536-RL_TH2, RL_TL2)/2 如果如果T2_C/T=1,定時器,定時器/計數(shù)器計數(shù)器T2對外部脈沖輸入對外部脈沖輸入(P3.1/T2)計數(shù),計數(shù),則輸出時鐘頻率則輸出時鐘頻率= (T2_Pin_CLK) / (65536-RL_TH2, RL_TL2)/2T2CLKO=0 不允許不允許P3.0引腳為
54、引腳為T2的時鐘輸出的時鐘輸出63當(dāng)當(dāng)T1CLKO=1時,將時,將P3.4/T0腳配置為定時器腳配置為定時器1的時鐘輸出的時鐘輸出T1CLKO。 輸出時鐘頻率輸出時鐘頻率= T1溢出率溢出率/2。 定時器定時器/計數(shù)器計數(shù)器T1工作在定時器模式工作在定時器模式0(16位自動重裝模式)時,如果位自動重裝模式)時,如果C/T=0,定時器定時器/計數(shù)器計數(shù)器T1對內(nèi)部系統(tǒng)時鐘計數(shù),則:對內(nèi)部系統(tǒng)時鐘計數(shù),則:T1工作在工作在1T模式時的輸出頻率模式時的輸出頻率=(SYSclk) / (65536-RL_TH1, RL_TL1)/2T1工作在工作在12T模式時的輸出頻率模式時的輸出頻率= (SYScl
55、k) /12/ (65536-RL_TH1, RL_TL1)/2如果如果C/T =1,定時器,定時器/計數(shù)器計數(shù)器T1對外部脈沖輸入對外部脈沖輸入(P3.5/T1)計數(shù),計數(shù), 則輸出時鐘頻率則輸出時鐘頻率= (T1_Pin_CLK) / (65536-RL_TH1, RL_TL1)/2 定時器定時器/計數(shù)器計數(shù)器T1工作在模式工作在模式2(8位自動重裝模式)時,位自動重裝模式)時, 如果如果C/T=0,定時器,定時器/計數(shù)器計數(shù)器T1對內(nèi)部系統(tǒng)時鐘計數(shù),則:對內(nèi)部系統(tǒng)時鐘計數(shù),則: T1工作在工作在1T模式時的輸出頻率模式時的輸出頻率 = (SYSclk) / (256-TH1)/2 T1工
56、作在工作在12T模式時的輸出頻率模式時的輸出頻率= (SYSclk)/12/(256-TH1)/2如果如果C/T=1,定時器,定時器/計數(shù)器計數(shù)器T1是對外部脈沖輸入是對外部脈沖輸入(P3.5/T1)計數(shù),則:計數(shù),則: 輸出時鐘頻率輸出時鐘頻率= (T1_Pin_CLK) / (256-TH1) / 2當(dāng)當(dāng)T1CLKO=0時,不允許時,不允許P3.4/T0管腳被配置為定時器管腳被配置為定時器1的時鐘輸出。的時鐘輸出。 2)T1CLKO:是否允許將:是否允許將P3.4腳配置為定時器腳配置為定時器1(T1)的時鐘)的時鐘輸出輸出T1CLKO。設(shè)置方法與。設(shè)置方法與T2相同。相同。643)T0CL
57、KO:是否允許將:是否允許將P3.5腳配置為定時器腳配置為定時器0(T0)的時鐘)的時鐘輸出輸出T0CLKO。 當(dāng)當(dāng)T0CLKO=1時,將時,將P3.5/T1管腳配置為定時器管腳配置為定時器0的時鐘輸出的時鐘輸出T0CLKO,輸,輸出時鐘頻率出時鐘頻率=T0溢出率溢出率/2。 定時器定時器/計數(shù)器計數(shù)器T0工作在定時器模式工作在定時器模式0(16位自動重裝模式)時,如果位自動重裝模式)時,如果C/T =0,定時器,定時器/計數(shù)器計數(shù)器T0對內(nèi)部系統(tǒng)時鐘計數(shù),則:對內(nèi)部系統(tǒng)時鐘計數(shù),則:T0工作在工作在1T模式時的輸出頻率模式時的輸出頻率= (SYSclk)/(65536-RL_TH0, RL_
58、TL0)/2T0工作在工作在12T模式時的輸出頻率模式時的輸出頻率= (SYSclk) /12/ (65536-RL_TH0, RL_TL0)/2 如果如果C/T=1,定時器,定時器/計數(shù)器計數(shù)器T0對外部脈沖輸入對外部脈沖輸入(P3.4/T0)計數(shù),則:計數(shù),則: 輸出時鐘頻率輸出時鐘頻率= (T0_Pin_CLK) / (65536-RL_TH0, RL_TL0)/2 定時器定時器/計數(shù)器計數(shù)器T0工作在定時器模式工作在定時器模式2(8位自動重裝模式)時,如果位自動重裝模式)時,如果C/T=0,則:則: T0工作在工作在1T模式時的輸出頻率模式時的輸出頻率= (SYSclk) / (256
59、-TH0) / 2 T0工作在工作在12T模式時的輸出頻率模式時的輸出頻率= (SYSclk) / 12 / (256-TH0) / 2如果如果C/T=1,定時器,定時器/計數(shù)器計數(shù)器T0對外部脈沖輸入(對外部脈沖輸入(P3.4/T0)計數(shù),則:)計數(shù),則: 輸出時鐘頻率輸出時鐘頻率= (T0_Pin_CLK) / (256-TH0) / 2當(dāng)當(dāng)T0CLKO=0時,不允許時,不允許P3.5/T1管腳被配置為定時器管腳被配置為定時器0的時鐘輸出。的時鐘輸出。65二、可編程時鐘輸出的編程實例二、可編程時鐘輸出的編程實例1、如果要使用主時鐘輸出,例如,從、如果要使用主時鐘輸出,例如,從P5.4輸出時
60、鐘輸出時鐘信號,頻率是信號,頻率是SYSclk,只需加入下面的語句即可:,只需加入下面的語句即可: MOV CLK_DIV,#40H ;在匯編語言程序中在匯編語言程序中 CLK_DIV = 0 x40; /在在C語言程序中語言程序中662、如果需要從、如果需要從T0CLKO/P3.5引腳輸出時鐘,需引腳輸出時鐘,需要在用戶程序中進行下面的設(shè)置:要在用戶程序中進行下面的設(shè)置:設(shè)置定時器設(shè)置定時器0的工作方式為方式的工作方式為方式0或方式或方式2(將(將TMOD低低4位設(shè)為位設(shè)為0或者或者2););設(shè)置設(shè)置16位或位或8位重裝載值(分別設(shè)置位重裝載值(分別設(shè)置TL0和和TH0););啟動定時器啟動
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北京裝飾裝修合同范本
- 慢阻肺護理查房
- 小班愛眼護眼活動總結(jié)
- 藥物滲漏不良事件分析
- 2025年人力資源管理試題含答案
- 膜性腎病的臨床護理
- 醫(yī)學(xué)人衛(wèi)教材配套建設(shè)要點
- 人音版小學(xué)音樂五年級上冊《外婆的澎湖灣》教學(xué)設(shè)計
- 七年級英語語法總結(jié)模版
- 教室衛(wèi)生大掃除活動總結(jié)模版
- 國家開放大學(xué)(中央電大)報名登記表(附填寫說明)
- 中間產(chǎn)品儲存期驗證方案
- AQ1029-2019 煤礦安全監(jiān)控系統(tǒng)及檢測儀器使用管理規(guī)范-2
- 醫(yī)院超市管理制度
- 加速壽命計算公式(可靠性)
- 2023年遂寧市船山區(qū)五年級數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 建筑施工質(zhì)量問題管控清單
- 汽車吊安全管理規(guī)定
- 孩子青春期同性戀如何矯正
- 美容院邀約話術(shù)及美容院邀約客戶話術(shù)及技巧
- 2鍋爐水壓試驗方案
評論
0/150
提交評論