第7章MC9S12單片機ECT模塊_第1頁
第7章MC9S12單片機ECT模塊_第2頁
第7章MC9S12單片機ECT模塊_第3頁
第7章MC9S12單片機ECT模塊_第4頁
第7章MC9S12單片機ECT模塊_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章 IO接口及增強型捕捉定時器模塊第第7 7章章 MC9S12MC9S12單片機單片機ECTECT模塊模塊山東大學控制科學與工程學院山東大學控制科學與工程學院2010.72010.7第七章 IO接口及增強型捕捉定時器模塊n MC9S12MC9S12系列單片機增強型定時器模塊是在標準定時系列單片機增強型定時器模塊是在標準定時器模塊的基礎上添加了新的功能。器模塊的基礎上添加了新的功能。n 定時器的核心是一個定時器的核心是一個1616位的可編程計數(shù)器位的可編程計數(shù)器,計數(shù)的,計數(shù)的頻率可以通過分頻來調整。頻率可以通過分頻來調整。n 用途很多用途很多普通定時器的工作,例如脈沖計數(shù)、定時等普通定時器

2、的工作,例如脈沖計數(shù)、定時等可以用來測量輸入的脈沖寬度可以用來測量輸入的脈沖寬度產(chǎn)生我們需要的脈沖波形。產(chǎn)生我們需要的脈沖波形。增強型定時器增強型定時器ECTECT模塊模塊第七章 IO接口及增強型捕捉定時器模塊n ECTECT模塊的組成:模塊的組成: 1 1個預分頻器個預分頻器 1 1個個1616位自由運行計數(shù)器位自由運行計數(shù)器 8 8個個1616位位IC/OCIC/OC通道通道 2 2個個1616位(位(4 4個個8 8位)脈沖位)脈沖累加器累加器 1 1個個1616位模數(shù)遞減計數(shù)器位模數(shù)遞減計數(shù)器第七章 IO接口及增強型捕捉定時器模塊n 輸入捕捉功能是用來監(jiān)測外部的事件和輸入信號。輸入捕捉

3、功能是用來監(jiān)測外部的事件和輸入信號。n 當外部事件發(fā)生或信號發(fā)生變化時,在指定的輸入捕捉引腳當外部事件發(fā)生或信號發(fā)生變化時,在指定的輸入捕捉引腳上發(fā)生一個指定的沿跳變(可以指定該跳變是上升沿還是下上發(fā)生一個指定的沿跳變(可以指定該跳變是上升沿還是下降沿)。定時器捕捉到特定的沿跳變后,降沿)。定時器捕捉到特定的沿跳變后,把計數(shù)寄存器當前把計數(shù)寄存器當前的值鎖存到通道寄存器。的值鎖存到通道寄存器。n 如果輸入捕捉控制寄存器中設定允許輸入捕捉中斷,系統(tǒng)會如果輸入捕捉控制寄存器中設定允許輸入捕捉中斷,系統(tǒng)會產(chǎn)生一次輸入捕捉中斷,產(chǎn)生一次輸入捕捉中斷,利用中斷處理程序可以得到事件發(fā)利用中斷處理程序可以得

4、到事件發(fā)生的時刻或信號發(fā)生變化的時刻。生的時刻或信號發(fā)生變化的時刻。觸發(fā)沿選擇觸發(fā)沿選擇觸發(fā)事件觸發(fā)事件16位捕捉鎖存器位捕捉鎖存器16位計數(shù)器位計數(shù)器計數(shù)器時鐘計數(shù)器時鐘輸入捕捉輸入捕捉第七章 IO接口及增強型捕捉定時器模塊n 在特定的時刻在管腳上輸出特定電平,用來控制外電路工作。在特定的時刻在管腳上輸出特定電平,用來控制外電路工作。 原理是:原理是:輸出比較寄存器輸出比較寄存器的值和計數(shù)器的值每隔的值和計數(shù)器的值每隔4 4個總線周期個總線周期比較一次,當兩個值相等的時候,會在該通道的引腳上比較一次,當兩個值相等的時候,會在該通道的引腳上輸出預輸出預先規(guī)定的電平先規(guī)定的電平。 如果輸出比較中

5、斷允許,還會產(chǎn)生一個硬件的定時中斷。如果輸出比較中斷允許,還會產(chǎn)生一個硬件的定時中斷。 輸出比較最簡單和最常用的功能就是產(chǎn)生一定間隔的脈沖輸出比較最簡單和最常用的功能就是產(chǎn)生一定間隔的脈沖。1616位輸出比較寄存器位輸出比較寄存器比較器比較器1616位計數(shù)器位計數(shù)器計數(shù)器時鐘計數(shù)器時鐘輸出比較輸出比較第七章 IO接口及增強型捕捉定時器模塊輸入捕捉/輸出比較通道n 有8個輸入捕捉輸出比較通道。共有8個外部引腳,分別為IOC0IOC7,與PORTT復用。n 通過選擇TIOS寄存器的IOSx位可以選擇是輸出比較還是輸入捕捉。n 對于輸入捕捉:帶緩沖的輸入捕捉通道不帶緩沖的輸入捕捉通道第七章 IO接口

6、及增強型捕捉定時器模塊n 不帶緩沖的輸入捕捉通道 8個輸入捕捉,其中4個(PT4PT7)帶有一個捕捉寄存器用來記錄管腳上電平變化時自由計數(shù)器的鎖存值。 捕捉寄存器TCx 當輸入覆蓋控制寄存器(ICOVW)的NOVWx位清0時,每發(fā)生一次輸入捕捉,新的計數(shù)器的值就會覆蓋原來的輸入捕捉寄存器的內容; 當該位置1時,除非輸入捕捉寄存器為空,否則新的值不能寫入(使輸入捕捉寄存器為空的方法是讀取該寄存器)。這樣就避免了新的計數(shù)值覆蓋舊的計數(shù)值。 ICOVW復位時為0 x00。第七章 IO接口及增強型捕捉定時器模塊n 帶緩沖的輸入捕捉通道帶緩沖的輸入捕捉通道PT0PT3PT0PT3是帶緩沖的輸入捕捉通道。

7、是帶緩沖的輸入捕捉通道。 捕捉寄存器捕捉寄存器TCxTCx 保持寄存器保持寄存器TCxHTCxH 。 可以在不產(chǎn)生中斷的情況下,連續(xù)記錄兩次自由可以在不產(chǎn)生中斷的情況下,連續(xù)記錄兩次自由計數(shù)器的值。計數(shù)器的值。 入口設置了延遲計數(shù)器入口設置了延遲計數(shù)器 用來提高抗干擾能力用來提高抗干擾能力 第七章 IO接口及增強型捕捉定時器模塊鎖存方式:鎖存方式:每個有效的引腳事件只將自由定時器的值放入捕每個有效的引腳事件只將自由定時器的值放入捕捉寄存器捉寄存器 TCxTCx,而而 TCxTCx 到保持寄存器到保持寄存器 TCxHTCxH 的傳的傳送必須依賴強制鎖存命令才能實現(xiàn)送必須依賴強制鎖存命令才能實現(xiàn)當

8、模數(shù)計數(shù)器減為當模數(shù)計數(shù)器減為“0”0”向模數(shù)計數(shù)器寫入向模數(shù)計數(shù)器寫入“$0000”$0000”寫強制鎖存位寫強制鎖存位ICLATICLAT(輸入控制系統(tǒng)控制寄存器(輸入控制系統(tǒng)控制寄存器ICSYSICSYS)輸入捕捉寄存器的值將鎖存到相應通道的保持寄輸入捕捉寄存器的值將鎖存到相應通道的保持寄存器中,并將輸入捕捉寄存器的值清零。存器中,并將輸入捕捉寄存器的值清零。 兩種工作模式兩種工作模式:(:( TCx 到保持寄存器到保持寄存器 TCxH )第七章 IO接口及增強型捕捉定時器模塊n隊列方式隊列方式TCxTCx 與與 TCxHTCxH 形成了一個類似先進先出的形成了一個類似先進先出的隊列,每

9、個捕捉結果從隊列,每個捕捉結果從 TCxTCx 進入,然進入,然 后隨后隨著下一個捕捉結果的到來移入著下一個捕捉結果的到來移入 TCxHTCxH。程序可以從程序可以從 TCxHTCxH 取得結果,也可以直接取得結果,也可以直接從從 TCxTCx 取得捕捉結果。取得捕捉結果。第七章 IO接口及增強型捕捉定時器模塊n 4 個 8 位的通道 PAC0-PAC3 組成n 可以通過級聯(lián)形成兩個 16 位通道 PACA、PACBn 通過檢測相應管腳上的有效邊緣來記錄脈沖的個數(shù)。n 各通道的 8 位累加器與 4 個緩沖 IC 通道相關聯(lián)的,它們共享邊沿檢測與延遲電路。脈沖累加器脈沖累加器第七章 IO接口及增

10、強型捕捉定時器模塊n 兩種工作模式兩種工作模式 鎖存方式:鎖存方式: 通過鎖存命令,將通過鎖存命令,將脈沖累加計數(shù)器脈沖累加計數(shù)器的值鎖的值鎖存到相應通道的存到相應通道的保持寄存器保持寄存器中中 隊列方式隊列方式 當讀取某通道保持寄存器的值時,相應脈當讀取某通道保持寄存器的值時,相應脈沖累加器的值將被寫入保持寄存器。沖累加器的值將被寫入保持寄存器。第七章 IO接口及增強型捕捉定時器模塊n16 位遞減模數(shù)計數(shù)器(MDC)可以用作時鐘基準,產(chǎn)生周期性的中斷請求。n也可用于將 IC 寄存器和脈沖累加器的值鎖存到各自的保持寄存器中。模數(shù)遞減計數(shù)器模數(shù)遞減計數(shù)器第七章 IO接口及增強型捕捉定時器模塊n

11、模數(shù)遞減計數(shù)器(MCCNT)n 模數(shù)遞減標志寄存器(MCFLG)n 模數(shù)遞減控制寄存器(MCCTL)n 模數(shù)計數(shù)器由初值遞減,遞減到0時,會產(chǎn)生相應的中斷。n 遞減頻率由總線時鐘經(jīng)分頻得到。n 初值可以由用戶寫入第七章 IO接口及增強型捕捉定時器模塊n 在模數(shù)模式允許后(MODMC=1),向模數(shù)遞減計數(shù)器的寫操作會更新預置數(shù)的值,模數(shù)計數(shù)器遞減到0時,就會裝載最新的預置數(shù),n 裝載的操作也可以由置MCCTL寄存器的FLMC位為1來強制執(zhí)行。n 總定時時間=預置數(shù)總線周期中斷次數(shù)第七章 IO接口及增強型捕捉定時器模塊n 在中斷程序中,需要清除相應的中斷標志位(MCFLG),并將中斷次數(shù)減1,當中

12、斷次數(shù)減為0時,一次延時就完成了。第七章 IO接口及增強型捕捉定時器模塊第七章 IO接口及增強型捕捉定時器模塊三個例子三個例子舉三個例子講述本節(jié)內容 流水燈顯示 使用輸入捕捉功能,對外來脈沖進行計數(shù) 使用輸出比較功能,輸出一個具有一定寬度的高電平脈沖第七章 IO接口及增強型捕捉定時器模塊ECTECT計數(shù)寄存器(計數(shù)寄存器( TCNT TCNT )nTCNT為自由計數(shù)器的計數(shù)值,本例通過讀取它的值實現(xiàn)延時。n這是一個16位的加法計數(shù)器,最大值為65535。n任意時刻可讀,正常模式下寫操作無效。第七章 IO接口及增強型捕捉定時器模塊ECTECT控制寄存器控制寄存器1 1(TSCR1TSCR1)n必

13、須設置TSCR1才可以使主定時器工作,需要在ECT模塊初始化時就設置好。TEN=1:主定時器使能。0=主定時器禁止,進入低功耗狀態(tài)。TSWAI=0:等待模式時主定時器繼續(xù)工作,方便調試。0=停止工作。TSFRZ=0:凍結模式時主定時器繼續(xù)工作。0=停止工作。TFFCA=0:自動清除標志位。1=手動清除。本例設置TSCR1=0 x80。第七章 IO接口及增強型捕捉定時器模塊ECTECT控制寄存器二(控制寄存器二(TSCR2TSCR2)nTOI:禁止定時器溢出中斷。1=允許。nTCRE:定時計數(shù)器復位允許 。0=禁止復位,計數(shù)器自由計數(shù)。1=允許復位。進行完一次輸出比較時,可以使定時計數(shù)器復位nP

14、R2、PR1、PR0:預分頻因子選擇第七章 IO接口及增強型捕捉定時器模塊void TimerOverflow(void)unsigned char i=1,j=0 x80;while(i!=0)&(j!=0)PORTA=(i|j);i=1;while(TCNT!=0 x0000); /延時while(TCNT=0 x0000);void main(void)EnableInterrupts;TSCR1=0 x80; /定時器使能TSCR2=0 x07; /分頻系數(shù)為128DDRA=0 xff;PORTA=0 xff;for(;)TimerOverflow();流水燈的顯示流水燈的顯示

15、PORTA輸出調用函數(shù)設置控制寄存器1設置控制寄存器2延時控制第七章 IO接口及增強型捕捉定時器模塊 while(TCNT!=0 x0000); while(TCNT=0 x0000);這兩句的含義是:TCNT開始計數(shù)后值不為0,等待直到TCNT溢出返回0,然后再等到TCNT不為0。為什么要弄兩個while?第七章 IO接口及增強型捕捉定時器模塊例二:輸入捕捉例二:輸入捕捉n 利用輸入捕捉0通道對外來的方波信號進行捕捉,采用中斷的形式。中斷發(fā)生后,讀取捕捉后的計數(shù)值,并通過PORTB口使LED燈點亮以指示中斷成功。n 通道0設置為輸入捕捉,采用雙沿觸發(fā)(上下沿均觸發(fā)),IC0開中斷,可以進入中

16、斷服務程序。方波信號由PORTA_BIT6產(chǎn)生,PORTA_BIT6和IOC0硬件連接。第七章 IO接口及增強型捕捉定時器模塊輸入控制系統(tǒng)寄存器輸入控制系統(tǒng)寄存器-ICSYS-ICSYSnSHxy=0:正常操作。1=x通道和y通道將產(chǎn)生一樣的輸入動作,x通道的設置同樣適用于y。nTFMOD=0:當出現(xiàn)有效的輸入捕獲事件,TFLG1中的對應中斷標志位CxF就置1。1=隊列模式時才使用。nPACMX=0:8位脈沖累加器溢出后自動回0。1=不自動回0,停留在0 xFF。脈沖累加器對IC通道捕獲的有效邊沿數(shù)量進行計數(shù)。第七章 IO接口及增強型捕捉定時器模塊輸入控制系統(tǒng)寄存器輸入控制系統(tǒng)寄存器-ICSY

17、S-ICSYSnBUFEN=1:使用輸入捕獲緩沖區(qū)。0=不使用。(輸入捕捉和脈沖累加器的保持寄存器)nLATQ=0:輸入捕獲隊列模式使能。產(chǎn)生一次成功的輸入捕獲時,IC通道寄存器中保留的計數(shù)值會被送到保持器中,然后IC寄存器會接收新的計數(shù)值。1=鎖存模式使能。nICSYS=0 x02; /IC緩沖使能第七章 IO接口及增強型捕捉定時器模塊TFLG1TFLG1:主定時器中斷寄存器:主定時器中斷寄存器1 1 BIT76543210RC7FC6FC5FC4FC3FC2FC1FC0FWRESET00000000nTFLG1指示了中斷發(fā)生在哪個通道,需要對相應位清零時,可以對它進行置1操作。 C7F-C

18、0F:IC/OC的中斷標志。n當TSCR寄存器中的TFFCA位被置位時,對于輸入捕捉和輸出比較通道的讀寫操作,將清除對應通道的CxF位。第七章 IO接口及增強型捕捉定時器模塊定時器輸入捕捉和輸出比較寄存器定時器輸入捕捉和輸出比較寄存器nTC0-TC7寄存器:用來鎖存自由計數(shù)器的值,當?shù)玫接行У倪呇赜|發(fā)時,我們可以通過讀這些寄存器來獲得輸入捕捉計數(shù)值;通過寫這些寄存器來設置輸出比較的計數(shù)值。n任意時刻可讀。在輸出比較模式任何時刻可寫。在輸入捕捉模式對寄存器的寫操作沒有意義。當寄存器復位后,寄存器值等于$0000。 第七章 IO接口及增強型捕捉定時器模塊IC/OCIC/OC通道選擇寄存器通道選擇寄

19、存器-TIOS-TIOSIOSx:1=通道x為輸出比較; 0=通道x為輸入捕獲。第七章 IO接口及增強型捕捉定時器模塊控制寄存器控制寄存器3/4 TCTL3/43/4 TCTL3/4EDGnA/B:輸入捕捉邊沿控制。本例設置0 x03(EDG0A=1,EDG0B=1)。即IC0通道采用上升,下降沿都觸發(fā)。n代表通道序號。第七章 IO接口及增強型捕捉定時器模塊定時器中斷使能寄存器定時器中斷使能寄存器-TIE-TIECxI:1=第x個通道中斷允許;0=第x個通道中斷禁止。第七章 IO接口及增強型捕捉定時器模塊例二:輸入捕捉例二:輸入捕捉IC0的初始化:的初始化:void ic_init(void)

20、TSCR1= 0 x90; /主定時器使能,對TCNT訪問即可清除標志 TSCR2=0 x07; /分頻因子=128 ICSYS=0 x02; /IC緩沖使能(保持寄存器) TIOS=0; /通道設置為輸入捕獲TCTL4= 0 xff; /采用上升、下降沿觸發(fā) TIE=0b00000001; /通道0開中斷第七章 IO接口及增強型捕捉定時器模塊例二:輸入捕捉例二:輸入捕捉初始化好后,需要在main函數(shù)中調用初始化函數(shù)ic_init()。以下是在main函數(shù)中,如何使用PORTA_BIT6來產(chǎn)生一個方波信號。DDRA=0 xff;/設置PORTA的方向寄存器,為輸出PORTA=0 x00;/PO

21、RTA的輸出初始化為低電平DDRB=0 xff;/PORTB設置為LED燈的控制信號PORTB=0 x00;/LED全滅for(;)for(i=0;i6000;i+)PORTA_BIT6=1;/循環(huán)中設置信號為高電平for(i=0;i6000;i+)PORTA_BIT6=0;/循環(huán)中設置信號為低電平,產(chǎn)生方波 第七章 IO接口及增強型捕捉定時器模塊例二:輸入捕捉例二:輸入捕捉方波信號已經(jīng)成功得產(chǎn)生了,下面是中斷服務程序:#pragma CODE_SEG NON_BANKED/必須有這句void interrupt 8 ic0_int(void)TFLG1_C0F=1;/中斷標志清除ic4=TC0;/通過讀TC0寄存器來響應中斷,ic4、ic40為用戶定義的變量dic4=ic4-ic40; ic40=ic4; PORTB=0 x55;/用LED燈來指示已經(jīng)進入了中斷/*以下放置其他

溫馨提示

  • 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

提交評論