第7章IO接口及增強型捕捉定時器模塊ppt課件_第1頁
第7章IO接口及增強型捕捉定時器模塊ppt課件_第2頁
第7章IO接口及增強型捕捉定時器模塊ppt課件_第3頁
第7章IO接口及增強型捕捉定時器模塊ppt課件_第4頁
第7章IO接口及增強型捕捉定時器模塊ppt課件_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第七章 IO接口及增強型捕捉定時器模塊1實驗內(nèi)容 實驗實驗6 6:掌握:掌握9S129S12單片機單片機IOIO口的基本程序調(diào)試,學(xué)會使用口的基本程序調(diào)試,學(xué)會使用BDMBDM和實際實驗系統(tǒng)編程和實際實驗系統(tǒng)編程下載:下載:事先看一下實驗板原理圖和事先看一下實驗板原理圖和CodeWarrior V5.09S12DG128B.doc或或CodeWarrior V5.0CodeWarrior V5.0開發(fā)環(huán)境快速入門開發(fā)環(huán)境快速入門- -工程創(chuàng)建工程創(chuàng)建 for for 9S12XDT512.doc9S12XDT512.doc(一部分同學(xué)的實驗板是帶協(xié)處理器的(一部分同學(xué)的實驗板是帶協(xié)處理器的9S

2、12XDT5129S12XDT512),拿),拿到實驗板后先看一下板上單片機的型號。到實驗板后先看一下板上單片機的型號。1.1.編寫并實現(xiàn)編寫并實現(xiàn)LEDLED排燈排燈(D2D10)(D2D10)顯示程序,實現(xiàn)花燈顯示,即顯示程序,實現(xiàn)花燈顯示,即0101010101010101和和1010101010101010動態(tài)顯示動態(tài)顯示0 0表示燈滅,表示燈滅,1 1表示燈亮);表示燈亮);2.2.編寫并實現(xiàn)編寫并實現(xiàn)LEDLED排燈排燈(D2D10)(D2D10)顯示程序,分別實現(xiàn)從左向右逐個點亮和從顯示程序,分別實現(xiàn)從左向右逐個點亮和從右到左逐個點亮的流水燈顯示;右到左逐個點亮的流水燈顯示;3.

3、3.編寫并實現(xiàn)編寫并實現(xiàn)LEDLED排燈排燈(D2D10)(D2D10)顯示程序,實現(xiàn)按鍵與顯示程序,實現(xiàn)按鍵與LEDLED的關(guān)聯(lián),即的關(guān)聯(lián),即4 4個按個按鍵鍵S3S6S3S6控制控制4 4個個LEDLED燈,按鍵按下相應(yīng)的燈亮,松開相應(yīng)的燈滅。燈,按鍵按下相應(yīng)的燈亮,松開相應(yīng)的燈滅。要求要求1. 1. 用到延時的地方需用軟件延時實現(xiàn)。用到延時的地方需用軟件延時實現(xiàn)。 2. 2. 有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。第七章 IO接口及增強型捕捉定時器模塊2實驗實驗7 7:掌握:掌握9S129S12單片機單片機ECTECT模塊的使用方法模塊的使用方法

4、要求要求1. 1. 描述什么是輸入捕捉和輸出比較,描述描述什么是輸入捕捉和輸出比較,描述9S129S12單片機單片機ECTECT模塊模塊主要寄存器設(shè)置;主要寄存器設(shè)置; 2. 2. 用用ECTECT模塊延時代替實驗?zāi)K延時代替實驗6 6中用到的軟件延時,實現(xiàn)實驗中用到的軟件延時,實現(xiàn)實驗6 6中中的各種的各種LEDLED排燈排燈(D2D10)(D2D10)顯示效果;顯示效果; 3. 3. 要有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。要有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。第七章 IO接口及增強型捕捉定時器模塊3實驗實驗8 8:掌握:掌握9S129S12單片機實現(xiàn)數(shù)碼管顯示單片機實現(xiàn)數(shù)碼管顯示要

5、求要求1. 1. 在四位數(shù)碼管上循環(huán)顯示共個數(shù)中的某連續(xù)四在四位數(shù)碼管上循環(huán)顯示共個數(shù)中的某連續(xù)四位,如下圖所示;位,如下圖所示; 2. 2. 程序中需要延時的地方用軟件延時實現(xiàn);程序中需要延時的地方用軟件延時實現(xiàn); 3. 3. 要有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。要有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。0 1 2 3 4 5 6 7 8 9 A B C D E 第七章 IO接口及增強型捕捉定時器模塊4實驗實驗9 9:掌握:掌握9S129S12單片機實現(xiàn)數(shù)碼管顯示單片機實現(xiàn)數(shù)碼管顯示要求要求1. 1. 在四位數(shù)碼管上循環(huán)顯示共個數(shù)中的某連續(xù)四在四位數(shù)碼管上循環(huán)顯示共個數(shù)中的某連續(xù)四位,

6、如下圖所示;位,如下圖所示; 2. 2. 程序中需要延時的地方用程序中需要延時的地方用ECTECT模塊延時實現(xiàn);模塊延時實現(xiàn); 3. 3. 要有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。要有完整的程序和注釋,并最后總結(jié)實現(xiàn)原理。0 1 2 3 4 5 6 7 8 9 A B C D E 第七章 IO接口及增強型捕捉定時器模塊5實驗實驗1010:掌握:掌握9S129S12單片機單片機ADAD和顯示綜合編程與調(diào)試和顯示綜合編程與調(diào)試要求要求1.1.實驗板上單片機實驗板上單片機ADAD模塊的模塊的AN15AN15引腳接了可調(diào)電位器引腳接了可調(diào)電位器RV1RV1見見實驗板原理圖),要求實現(xiàn)對可調(diào)電位器上的

7、電壓進行實驗板原理圖),要求實現(xiàn)對可調(diào)電位器上的電壓進行ADAD轉(zhuǎn)換轉(zhuǎn)換( 10 10位精度),并對采樣結(jié)果進行數(shù)字濾波,即對采樣多次位精度),并對采樣結(jié)果進行數(shù)字濾波,即對采樣多次如如1010次的結(jié)果排序并掐頭去尾求平均值,將濾波后的結(jié)果次的結(jié)果排序并掐頭去尾求平均值,將濾波后的結(jié)果轉(zhuǎn)換成十進制送四位數(shù)碼管顯示;轉(zhuǎn)換成十進制送四位數(shù)碼管顯示; 2. 2. 調(diào)節(jié)可調(diào)電位器,觀察數(shù)碼管顯示變化規(guī)律;調(diào)節(jié)可調(diào)電位器,觀察數(shù)碼管顯示變化規(guī)律; 3. 3. 要有完整的程序和注釋,畫出程序流程圖并最后總結(jié)實現(xiàn)要有完整的程序和注釋,畫出程序流程圖并最后總結(jié)實現(xiàn)原理。原理。AD采樣數(shù)字濾波第七章 IO接口及

8、增強型捕捉定時器模塊6第七章 IO接口及增強型捕捉定時器模塊 7-1 7-1 通用通用I/OI/O接口接口7-2 I/O7-2 I/O接口的功能及設(shè)置方法接口的功能及設(shè)置方法 7-3 7-3 增強型定時器增強型定時器ECTECT模塊模塊內(nèi)容提要內(nèi)容提要: :第七章 IO接口及增強型捕捉定時器模塊77-1 通用I/O接口第七章 IO接口及增強型捕捉定時器模塊8I/O檢測控制第七章 IO接口及增強型捕捉定時器模塊9PORTA、PORTB、PORTE和PORTK在芯片處于擴展方式下被用作總線信號 第七章 IO接口及增強型捕捉定時器模塊10PORTT、PORTP、PORTS、PORTM、PORTJ和P

9、ORTH被集成在端口集成模塊PIM內(nèi) ,與片內(nèi)其他功能模塊的引腳復(fù)用 第七章 IO接口及增強型捕捉定時器模塊11并行I/O口復(fù)用模塊PORTJCAN4,I2C模塊PORTPSPI1,PWM模塊PORTMCAN0,CAN1,CAN4,SPI0模塊PORTTECT模塊PORTSSCI模塊PORTADATD模塊MC9S12DG128單片機并行單片機并行I/O的復(fù)用功能的復(fù)用功能 第七章 IO接口及增強型捕捉定時器模塊127-2 I/O接口的功能及設(shè)置方法 通用I/O接口一般可以設(shè)置輸入輸出、驅(qū)動能力、內(nèi)部上拉或下拉電阻、中斷輸入等功能,每個I/O接口都有各自的寄存器。數(shù)據(jù)寄存器:并行數(shù)據(jù)寄存器:并行

10、I/O接口都有數(shù)據(jù)寄存器進行接口都有數(shù)據(jù)寄存器進行數(shù)據(jù)的讀取和發(fā)送數(shù)據(jù)的讀取和發(fā)送 并行I/O口 數(shù)據(jù)寄存器 PORTA PORTA PORTB PORTB PORTE PORTE PORTJ PTJ(Port J I/O Register:可讀寫),PTIJ(Port J Input Register:只讀) PORTP PTP,PTIP(意義類上) PORTM PTM,PTIM(意義類上) PORTT PTT,PTIT(意義類上) PORTS PTS,PTIS(意義類上) PORTHPTH, PTIH(意義類上)PORTAD PORTAD 第七章 IO接口及增強型捕捉定時器模塊13Port

11、 J I/O Register (PTJ)Read:Anytime.Write:Anytime.If the data direction bits of the associated I/O pins are set to 1, a read returns the value of the port register, otherwise the value at the pins is read.Port J Input Register (PTIJ)Read:Anytime.Write:Never, writes to this register have no effect.This

12、 register always reads back the status of the associated pins. This can be used to detect overload or short circuit conditions on output pins.第七章 IO接口及增強型捕捉定時器模塊14方向寄存器方向寄存器 MC9S12單片機中的I/O接口除了PORTAD只可作為輸入口外,一般都是雙向并行口,因此都配置了一個方向寄存器“DDRx”,I/O接口每個引腳的輸入輸出方向由各方向寄存器的對應(yīng)位來設(shè)置。方向寄存器的某位為“0表示相應(yīng)的引腳為輸入引腳;為“1表示相應(yīng)的

13、引腳為輸出引腳。 并行I/O口 方向寄存器 特點 PORTA DDRA - PORTB DDRB - PORTE DDRE 低2位只能作輸入 PORTJ DDRJ 高2位有效 PORTP DDRP - PORTM DDRM - PORTT DDRT - PORTS DDRS - PORTH DDRH - PORTAD - 只作輸入口 第七章 IO接口及增強型捕捉定時器模塊15驅(qū)動控制寄存器驅(qū)動控制寄存器 MC9S12單片機可以設(shè)置I/O接口的驅(qū)動能力,當(dāng)I/O接口為輸出口時此功能有效。此寄存器的相應(yīng)位為“1”,則表示全額驅(qū)動能力;為“0”,則表示縮減驅(qū)動能力,后者的驅(qū)動能力是前者的三分之一。

14、并行I/O口 驅(qū)動控制寄存器 特點 PORTA RDRIV.BIT0 1bit控制整個I/O口 PORTB RDRIV.BIT1 1bit控制整個I/O口 PORTE RDRIV.BIT4 1bit控制整個I/O口 PORTJ RDRJ - PORTP RDRP - PORTM RDRM - PORTT RDRT - PORTS RDRS - PORTH RDRH - PORTAD - - 第七章 IO接口及增強型捕捉定時器模塊16拉電阻控制寄存器拉電阻控制寄存器 MC9S12單片機的各個I/O接口內(nèi)置了拉電阻,可以通過編程來設(shè)置是否使用拉電阻。拉電阻的主要作用是當(dāng)電路驅(qū)動器關(guān)閉時給線路節(jié)點一

15、個固定電平,可以提高總線的抗電磁干擾能力。拉電阻控制寄存器的相應(yīng)位為“1”,則使用拉電阻;為“0”,則不使用拉電阻。另外,可以使用極性選擇寄存器選擇拉電阻的極性,即選擇拉電阻為上拉或者下拉,相應(yīng)位為“1則表示下拉電阻,為“0則表示上拉電阻。留意,PORTA、PORTB和PORTE只能使用上拉電阻,所以并不設(shè)有極性選擇寄存器。 第七章 IO接口及增強型捕捉定時器模塊17并行I/O口 拉電阻控制寄存器 極性選擇寄存器 特點 PORTA PUCR.BIT0 -(只能使用上拉) 1bit控制整個I/O口 PORTB PUCR.BIT1 -(只能使用上拉) 1bit控制整個I/O口 PORTE PUCR

16、.BIT4 -(只能使用上拉) 1bit控制整個I/O口 PORTJ PERJ -(只能使用上拉) - PORTP PERP -(只能使用上拉) - PORTM PERM PPSM - PORTT PERT PPST - PORTS PERS PPSS - PORTH PERH PPSH - PORTAD - - - 第七章 IO接口及增強型捕捉定時器模塊18中斷允許、標(biāo)志寄存器中斷允許、標(biāo)志寄存器 MC9S12單片機的I/O接口PORTJ、PORTP、PORTH。具有中斷功能,可以通過軟件編程來允許或禁止。相應(yīng)位為“1表示允許中斷,“0表示禁止中斷。具有中斷能力的I/O口都有各自的中斷標(biāo)志寄

17、存器。對應(yīng)位為“1表示有中斷發(fā)生,“0表示無中斷發(fā)生。另外,還有中斷邊沿選擇寄存器,相應(yīng)位為“1表示上升沿中斷,“0表示下降沿中斷。當(dāng)檢測到有效中斷邊沿時,中斷標(biāo)志寄存器PIFJ相應(yīng)位被置一,產(chǎn)生中斷并進入相應(yīng)的中斷服務(wù)程序。 并行I/O口 中斷使能寄存器 中斷標(biāo)志寄存器 邊沿選擇寄存器 PORTJ PIEJ PIFJ PPSJ PORTP PIEP PIFP PPSP PORTH PIEH PIFH PPSH 第七章 IO接口及增強型捕捉定時器模塊19課本6.1.2 程序舉例第七章 IO接口及增強型捕捉定時器模塊208 緩沖器第七章 IO接口及增強型捕捉定時器模塊21 #include #i

18、nclude void interrupt 24 PJI(void); /* 聲明中斷函數(shù)*/void main(void) EnableInterrupts; DDRJ=0 x00;/*PORTJ作為輸入*/ DDRB=0 xFF;/*PORTB作為輸出*/ PORTB=0 xff;/*燈全滅*/ DDRA=0 xff;/*PORTA輸出*/ PORTA=0 x00;/*PORTA全為低電平*/ PPSJ=0 xff;/*上升沿中斷*/ PIEJ=0 xff;/*中斷使能*/for(;)PORTA=0b11000000;/*產(chǎn)生中斷*/ #pragma CODE_SEG NON_BANKED

19、 void interrupt 24 PJI(void)/*中斷服務(wù)程序,中斷向量號為24*/PORTB=0 xf0;/*LED燈高四滅,低四亮*/ #pragma CODE_SEG DEFAULT /9S12中斷程序必須定位于non- /banked 區(qū)域,必須有這兩個pragma語句第七章 IO接口及增強型捕捉定時器模塊22課本6.1.2 程序說明使用PORTJ口的中斷功能。設(shè)置PORTA口為輸出口,PORTA的第6腳和PORTJ的第6腳硬件相連,PORTB為輸出口,用來控制8個LED燈,PORTJ開中斷,并且設(shè)置為上升沿觸發(fā)。首先PORTA初始化為0,PORTB為0 xff,此時LED燈

20、全滅。在循環(huán)中設(shè)置PORTA第6位為高電平,產(chǎn)生中斷,在中斷服務(wù)程序中設(shè)置LED燈低4位亮,高4位不亮,表示已經(jīng)進入中斷。 第七章 IO接口及增強型捕捉定時器模塊23如何得知中斷向量號?向量號0向量號1向量號24依次向下數(shù)中斷向量表書上有)第七章 IO接口及增強型捕捉定時器模塊24本課程實驗板原理圖見pdf文件另參考“實驗板上所用芯片中的文檔前面那個例程不適用本課程實驗板第七章 IO接口及增強型捕捉定時器模塊25讓實驗板上的小燈讓實驗板上的小燈D10D2循環(huán)點亮循環(huán)點亮#include /* common defines and macros */#include /* derivative

21、information */#pragma LINK_INFO DERIVATIVE mc9s12dg128bvoid deley(unsigned int d) int i; for(i=0;i=1; if(d=0) d=0 x80; for(;) /* wait forever */ /* please make sure that you never leave this function */第七章 IO接口及增強型捕捉定時器模塊26該程序也可寫成如下:該程序也可寫成如下:#include /* common defines and macros */#include /* deriv

22、ative information */#pragma LINK_INFO DERIVATIVE mc9s12dg128b#define PortA *(volatile unsigned char *)0)#define DdrA *(volatile unsigned char *)2)void deley(unsigned int d) int i; for(i=0;i=1; if(d=0) d=0 x80; for(;) /* wait forever */第七章 IO接口及增強型捕捉定時器模塊27IC/OC的定義:Input Capture/Output Compare 輸入捕捉和輸

23、出比較IC用來監(jiān)測外部的事件和輸入信號。當(dāng)外部事件發(fā)生或信號發(fā)生變化時,在指定的輸入捕捉引腳發(fā)生一個指定的沿跳變可以指定該跳變是上升沿還是下降沿)。定時器捕捉到特定的沿跳變后,把計數(shù)寄存器當(dāng)前的值鎖存到通道寄存器。ECT模塊有8個IC通道分別為IC0-IC7,IC0-IC3是標(biāo)準(zhǔn)的帶有保持器的緩沖通道,而IC4-IC7不帶有保持器。OC用程序的方法在規(guī)定的時刻輸出需要的電平,實現(xiàn)對外部電路的控制。通道為OC0-OC7。ECT模塊的外部引腳:共有8個外部引腳,分別為IOC0IOC7,與PORTT復(fù)用。7-3 增強型定時器ECT模塊第七章 IO接口及增強型捕捉定時器模塊28ECT 模塊結(jié)構(gòu)模塊結(jié)構(gòu)

24、一個16位向上帶可編程預(yù)分頻的主計數(shù)器.一個16位的帶可編程預(yù)分頻的模數(shù)向下計數(shù)器8個獨立的定時器通道,每個通道具備輸入捕捉和輸出比較功能4個8位脈沖累加器,也可設(shè)置成2個16位脈沖累加器.通過對寄存器編程可以實現(xiàn)不同的功能第七章 IO接口及增強型捕捉定時器模塊29定時器結(jié)構(gòu)定時器結(jié)構(gòu)預(yù)分頻選擇 PR2:0M Clock1 2 4 8 16 32 64 128TCNT15.0DATA BUSPINRRRR1 計數(shù)器使能0 計數(shù)器禁止TEN TSWAI TSFRZ TFFCATSCR1 -定時器控制寄存器RST: 0 0 0 0 0 0 0 0TCNT CLK.TENB0.B7 B8.B15R

25、= Reserved$0006Address Offset $0004, 05$FFFE$FFFF$0000*TOF模塊時鐘計數(shù)器寄存器脈沖累加器計時器溢出時,對溢出標(biāo)志位置位,如允許中斷,則向CPU發(fā)出中斷請求第七章 IO接口及增強型捕捉定時器模塊30定時器,預(yù)分頻,計數(shù)器定時器,預(yù)分頻,計數(shù)器寄存器:1. TCNT 16 位自由運行/模計數(shù)器B15.B0RST: 0.0 Address Offset $0004, $00051 定時器溢出中斷使能0 定時器中斷禁止$000D3. TSCR2 RST: 0 0 0 0 0 0 0 0 1 定時器由OC7比較符合時復(fù)位0 定時器自由運行TCRE

26、 - 允許使用PWM功能B7.B0TOI 0 0 0 TCRE PR2 PR1 PR02. TFLG2定時器溢出標(biāo)志位,寫 1 清零TOF 0 0 0 0 0 0 0B7.B0RST: 0 0 0 0 0 0 0 0$000F標(biāo)志寄存器除以1248163264128000011110101010100110011PR2 PR1 PR0 預(yù)分頻系數(shù)選擇第七章 IO接口及增強型捕捉定時器模塊31編程步驟編程步驟用途: 產(chǎn)生定時器溢出中斷初始化設(shè)定預(yù)分頻系數(shù)定時器溢出中斷使能定時器使能中斷函數(shù)清標(biāo)志位用戶自己的代碼void ECT_Init(void) TSCR2_PR = 7; /prescale

27、 factor is 8, bus clock/128 TSCR2_TOI = 1; /timer overflow interrupt enable TSCR1_TEN = 1; /timer enablevoid interrupt 16 Int_TimerOverFlow(void) TFLG2_TOF = 1; /clear timer overflow flag /用戶自己的代碼用戶自己的代碼 .第七章 IO接口及增強型捕捉定時器模塊32定時器溢出中斷例程可在實驗板上運行)定時器溢出中斷例程可在實驗板上運行)#include /* common defines and macros

28、*/#include /* derivative information */#pragma LINK_INFO DERIVATIVE mc9s12dg128b#pragma CODE_SEG NON_BANKED /9S12中斷程序必須定位于中斷程序必須定位于non-banked 區(qū)域區(qū)域interrupt 16 void Int_TimerOverFlow(void) TFLG2_TOF = 1; /clear timer overflow flag /用戶自己的代碼用戶自己的代碼 PORTA=PORTA;#pragma CODE_SEG DEFAULT /9S12中斷程序必須定位于中斷程

29、序必須定位于/non-banked 區(qū)域,必須有這兩個區(qū)域,必須有這兩個pragma語句語句第七章 IO接口及增強型捕捉定時器模塊33void main(void) EnableInterrupts; TSCR2_PR0 = 1; TSCR2_PR1 = 1; TSCR2_PR2 = 0; /prescale factor TSCR2_TOI = 1; /timer overflow interrupt enable TFLG2_TOF = 1; TSCR1_TEN = 1; /timer enable DDRA=0 xFF; PORTA=0 xFF; for(;)第七章 IO接口及增強型捕捉

30、定時器模塊34輸出比較功能輸出比較功能16位自由運行計數(shù)器16位輸出比較寄存器 比如設(shè)置為:0 x5678 ,軟件可以修改引腳控制邏輯中斷請求CxF狀態(tài)標(biāo)志位置位,當(dāng)比較發(fā)生時值相等時)CxI中斷屏蔽(通過軟件使能) 共有8個輸出比較通道 每個通道有自己的向量表和控制寄存器 在特定的時刻輸出一個信號當(dāng)比較寄存器的值和計數(shù)器的值相等時,采取行動比如:當(dāng)TCNT=0 x5678TCNTTCxPinOCx比較比較器相等置位OROR清零翻轉(zhuǎn)第七章 IO接口及增強型捕捉定時器模塊35輸出比較寄存器輸出比較寄存器 C7F C6F C5F C4F C3F C2F C1F C0FOM7OL7OM6OL6OM5

31、OL5OM4OL41. TC7 TC02. TFLG13. TIE4. TCTL1 比較/捕捉標(biāo)志位寫 1清除中斷狀態(tài)標(biāo)志位 比較/捕捉屏蔽位 0 = 屏蔽中斷請求 1 = 中斷請求允許 OMXOLXAction on OCx00110101No Action OCxToggle OCxDrive OCx LODrive OCx HI輸出模式和輸出電平 (O7OC0)B6B5B4B3B7B2B1B05. TCTL2B6B5B4B3B7B2B1B0RST: 0 0 0 0 0 0 0 0$0008RST: 0 0 0 0 0 0 0 0RST: 0 0 0 0 0 0 0 0RST: 0 0 0

32、 0 0 0 0 0$000C$000E$0009Address Offset$0010 - $0011 - -$001E - $001F16 位捕捉/比較寄存器 (TC7) 16 位捕捉/比較寄存器 (TC0) - C7I C6I C5I C4I C3I C2I C1I C0IB6B5B4B3B7B2B1B0OM3OL3OM2OL2OM1OL1OM0OL0B6B5B4B3B7B2B1B0FOC7 FOC6 FOC5 FOC4 FOC3 FOC2 FOC1 FOC06. CFORCB7 B6 B5 B4 B3 B2 B1 B0RST: 0 0 0 0 0 0 0 0$0001輸出強制比較寄存器

33、第七章 IO接口及增強型捕捉定時器模塊36輸出比較輸出比較, OC7-OC0中斷: 清除中斷,對TFLG1 其中的CxF寫1不要使用位操作使用OC7-OC0向量表單片機復(fù)位時: 自由運行計數(shù)器(TCNT)被初始化為$0000,并且被禁止 輸出比較寄存器被初始化為$0000捕捉/比較引腳與比較功能斷開中斷被禁止標(biāo)志位被清零強制比較位被清零第七章 IO接口及增強型捕捉定時器模塊37輸出比較輸出比較, 通道通道7 OC7 (1 of 2)用途: 1、多個輸出比較引腳的控制2、通過2個輸出比較來控制1個引腳,可以輸出短脈沖在每個時鐘周期內(nèi),輸出比較寄存器7和自由運行的計數(shù)器進行比較如果它們的值相等,那

34、么:1、中斷標(biāo)志位被置12、輸出引腳OC7-OC0的狀態(tài)被改變 或/和 產(chǎn)生中斷OC7可以影響多個引腳OC7-OC0)當(dāng)OC7和OC7-OC0某個引腳的動作有沖突時,OC7的動作將被執(zhí)行 第七章 IO接口及增強型捕捉定時器模塊38輸出比較輸出比較 7 (2 of 2) C7I C6F C5F C4F C3F C2F C1F C0F OC7M7 OC7M6 OC7M5 OC7M4 OC7M3 OC7M2 OC7M1 OC7M04. TIE 定時器中斷允許使能5. OC7M - OC7MASKB7.B0 1 - TC7 -16 位比較寄存器7. RST: 0 0 0 0 0 0 0 0RST: 0

35、 0 0 0 0 0 0 0$0002$000C C7F C6F C5F C4F C3F C2F C1F C0FRST: 0 0 0 0 0 0 0 0$000EB7.B02. TCNT - 16-位計數(shù)器B15.B0RST: 0. .0$0004, $05B7.B03. TFLG1 標(biāo)志位 OC7D7 OC7D6 OC7D5 OC7D4 OC7D3 OC7D2 OC7D1 OC7D06. OC7D - OC7DATARST: 0 0 0 0 0 0 0 0$0003B7.B0OC7MASK 根據(jù)寄存器的設(shè)置,可以控制任意一路或全部輸出比較引腳 OC7DATA 當(dāng)OC7比較事件發(fā)生時,引腳的邏

36、輯電平第七章 IO接口及增強型捕捉定時器模塊39定時器溢出時電平翻轉(zhuǎn)定時器溢出時電平翻轉(zhuǎn)TOV7 TOV6 TOV5 TOV4 TOV3 TOV2 TOV1 TOV0 TOVx 定時器溢出時,電平翻轉(zhuǎn)只有當(dāng)通道被配置成輸出比較時,才有效Address Offset $0007RST: 0.01. TTOV -定時器溢出時電平翻轉(zhuǎn)寄存器$000D2. TSCR2 定時器系統(tǒng)控制寄存器 RST: 0 0 0 0 0 0 0 0 B7.B0TOI 0 0 0 TCRE PR2 PR1 PR01 定時器由 OC7 比較事件發(fā)生來復(fù)位0 定時器自由運行第七章 IO接口及增強型捕捉定時器模塊40輸入捕捉輸

37、入捕捉, IC7-IC0 (1 of 3)用途:1、測量事件發(fā)生的間隔時間2、對實時時間進行響應(yīng)輸入捕捉能感應(yīng)到引腳上的電平的變化如果發(fā)現(xiàn)電平變化,那么:1、計數(shù)器的值被保存到到輸入捕捉寄存器中,狀態(tài)標(biāo)志位被置12、如果中斷允許,則向CPU發(fā)出中斷請求第七章 IO接口及增強型捕捉定時器模塊41ABS 應(yīng)用舉例應(yīng)用舉例PT0PT1PT2SENSOR 1SENSOR 2SENSOR 3SENSOR 4PB1PB2PB3PB4BRAKEFLUIDPUMPSYSTEMSIGNALCONDITIONINGLOGIC IC/PASIGNALCONDITIONINGLOGICSIGNALCONDITIONI

38、NGLOGICSIGNALCONDITIONINGLOGICPT3左前輪 右前輪 左后輪右后輪HCS12TIMER 定時器輸入捕捉測量車輪轉(zhuǎn)速 發(fā)送命令到剎車壓力調(diào)節(jié)閥來調(diào)節(jié)壓力 IC/PA IC/PA IC/PA如果左右輪速脈沖周期不等那么調(diào)節(jié)電磁閥第七章 IO接口及增強型捕捉定時器模塊42輸入捕捉功能輸入捕捉功能比較/捕捉 單元16位自由運行計數(shù)器16位輸入捕捉鎖存器捕捉發(fā)生時,狀態(tài)位置1向CPU發(fā)出中斷請求Edge沿選擇檢測ICxCxFCxI上升/下降沿可選中斷屏蔽當(dāng)外部事件發(fā)生時,或外部信號輸入發(fā)生變化時,記錄當(dāng)前時間TCNTTCx延時計數(shù)器 0 0 0 0 0 0 DLY1 DLY0

39、Bit 7 6 5 4 3 2 1 0DLYCT 延時計數(shù)器控制寄存器DLY1:0 - Delay Counter Values 00 = Disabled 01 = 256 M Clocks 10 = 512 M Clocks 11 = 1024 M ClocksAddress Offset $0029注: 如果輸入信號電平和跳變之前的電平相反時,延時計數(shù)器在當(dāng)前時鐘計數(shù)時刻產(chǎn)生一個脈沖,它用來去除噪聲OROR16位保持寄存器運用: ABS 剎車. 雷達(dá)測距,發(fā)動機引腳 共有8個輸入捕捉通道 每個通道有自己的向量表和控制寄存器第七章 IO接口及增強型捕捉定時器模塊43輸入捕捉輸入捕捉, IC

40、7-IC0 (2 of 3)B2B1B0EDGxB 輸入捕捉沿控制(IC7IC0)EDGxAICx EDGE0101無邊沿 ICx 制止上升沿下降沿任何沿4. TCTL3 C7F C6F C5F C4F C3F C2F C1F C0FC7I C6I C5I C4I C3I C2I C1I C0I2. TFLG13. TIE1. TC7 TC0EDG7B EDG7A EDG6B EDG6A EDG5B EDG5A EDG4B EDG4A5. TCTL4EDG3B EDG3A EDG2B EDG2A EDG1B EDG1A EDG0B EDG0AB6B5B4B3B7B2B1B0RST: 0 0 0

41、 0 0 0 0 0RST: 0 0 0 0 0 0 0 0RST: 0 0 0 0 0 0 0 0RST: 0 0 0 0 0 0 0 0B6B5B4B3B7B2B1B0B6B5B4B3B7B2B1B0B6B5B4B3B7B2B1B0$000E$000C$000A$000BAddress Offset$0010 - $0011 - -$001E - $001F16 位捕捉/比較寄存器 (TC7) 16 位捕捉比較寄存器 (TC0) - 比較/捕捉標(biāo)志位寫 1清除中斷狀態(tài)標(biāo)志位 比較/捕捉屏蔽位 0 = 屏蔽中斷請求 1 = 中斷請求允許 0011第七章 IO接口及增強型捕捉定時器模塊44增強

42、型捕捉增強型捕捉ECT比標(biāo)準(zhǔn)的比標(biāo)準(zhǔn)的TIM增強的特點增強的特點 4個輸入捕捉通道有個輸入捕捉通道有16位緩沖寄存器位緩沖寄存器 4個個8位位 / 2個個16位脈沖累加器位脈沖累加器 16位帶位帶4位預(yù)分頻的模數(shù)向下計數(shù)器位預(yù)分頻的模數(shù)向下計數(shù)器 4個用戶選擇的延時計數(shù)器用來消除噪聲個用戶選擇的延時計數(shù)器用來消除噪聲 主定時器預(yù)分頻擴展至主定時器預(yù)分頻擴展至7位位 隊列和鎖定模式隊列和鎖定模式 主定時器輸入捕捉寄存器保持寄存器外部事件拷貝拷貝拷貝讀取數(shù)據(jù)讀取數(shù)據(jù)外部事件第七章 IO接口及增強型捕捉定時器模塊45輸入捕捉輸入捕捉/輸出比較選擇輸出比較選擇IOS7 IOS6 IOS5 IOS4 I

43、OS3 IOS2 IOS1 IOS0TIOS 定時器輸入捕捉/輸出比較選擇寄存器 IOSx = 1 輸出比較功能 = 0 輸入捕捉功能RST: 0 0 0 0 0 0 0 0$0000B6B5B4B3B7B2B1B0TIMER 定時器使能1 計數(shù)器使能0 計數(shù)器禁止TSCR1 定時器系統(tǒng)控制寄存器RST: 00$0006TEN TSWAI TSFRZ TFFCA Reserved TSWAI 在WAIT模式時,定時器停止 0 = 不停止 1 = 停頓TSBCK 在DEBUG模式時, 定時器停止 0 = 不停止 1 = 停頓TFFCA 定時器快速標(biāo)志位清除使能 0 = 定時器標(biāo)志位正常清零 1

44、= 輸入捕捉時讀取寄存器, 輸出比較時寫寄存器,可以對相應(yīng)通道標(biāo)志位清零第七章 IO接口及增強型捕捉定時器模塊46脈沖累加模式脈沖累加模式8 位計數(shù)器PAI 脈沖累加器輸入引腳 事件計數(shù)模式引腳作為計數(shù)器時鐘軟件選擇以什么沿來計數(shù)計數(shù)器溢出時,產(chǎn)生中斷可選) 8 位計數(shù)器PAI 脈沖累加器輸入引腳 時間累加模式引腳作為計數(shù)器軟件選擇主動電平作為門的輸入當(dāng)計數(shù)器溢出時產(chǎn)生中斷在使能的引腳上后面的邊緣時產(chǎn)生中斷 自由運行E/64時鐘PACNTPACNT對事件計數(shù)模式,PEDGE 選擇哪個PAI的沿用來增加 PACNT寄存器對門累加模式,PEDGE選擇哪個PAI 狀態(tài)用來禁止計數(shù)(比如. PEDGE

45、 = 1 - 禁止計數(shù) 當(dāng)PAI = HI). 第七章 IO接口及增強型捕捉定時器模塊47脈沖累加結(jié)構(gòu)脈沖累加結(jié)構(gòu)PINTCx PIN Logic DIV by 64Control Reg.+ 8/16 BIT CNTRHolding RegisterPOLARITYCONTROL PTxIRQDATABUS注 1: PTx 可以被用作脈沖累加,輸入捕捉或輸出比較這里 PTx = PT0 - PT3SELECTED CLOCKDelayCounterEdgeDetector 0 0 0 0 0 0 DLY1 DLY0Bit 7 6 5 4 3 2 1 0DLYCT - Delay Counte

46、r Control RegisterDLY1:0 - Delay Counter Values 00 = Disabled 01 = 256 M Clocks 10 = 512 M Clocks 11 = 1024 M ClocksAddress Offset $0029注: 如果輸入信號電平和跳變之前的電平相反時,延時計數(shù)器在當(dāng)前時鐘計數(shù)時刻產(chǎn)生一個脈沖,它用來去除噪聲第七章 IO接口及增強型捕捉定時器模塊48模向下計數(shù)器模向下計數(shù)器二進制向下計數(shù)器. 可以完全控制計數(shù)起始值 應(yīng)用于精確事件計時-用于產(chǎn)生周期性的標(biāo)志位和中斷主定時器單獨運行。時鐘來自總線時鐘,并經(jīng)過預(yù)分頻。可以被設(shè)置為定時中

47、斷或產(chǎn)生標(biāo)志位?;蜓b載初始值后向下計數(shù)到$0000。ParameterValueUnitsCrystal Frequency16MHzBus Frequency8MHzBus Tick Time125.0000nSPeriodic Interrupt Time191uSBus Ticks Required1528.00TicksModulus Counter Prescaler4Modulus Counter Start Value382裝載向下計數(shù)至0執(zhí)行動作MCCNT:模數(shù)減法計數(shù)寄存器第七章 IO接口及增強型捕捉定時器模塊49BIT76543210RMCZIMODMCRDMCLMCENM

48、CPR1MCPR0WICLATFLMCRESET00000000MCCTL:16位模數(shù)減法計數(shù)控制寄存器位模數(shù)減法計數(shù)控制寄存器MCZI:模數(shù)計數(shù)器減法溢出中斷允許: 0=禁止中斷。1=允許中斷。 MODMC:模數(shù)模式允許: 0=計數(shù)器從寫入的數(shù)值計數(shù)一次到$0000。 1=允許模數(shù)模式。當(dāng)計數(shù)器計到$0000時,則重新裝入最新寫入的計數(shù)值重新進行計數(shù)。RDMCL:模數(shù)計數(shù)器讀取選擇寄存器: 0=對計數(shù)器讀操作,返回當(dāng)前的計數(shù)數(shù)值。1=對計數(shù)器讀操作,返回預(yù)先加載的數(shù)值。ICLAT:輸入捕捉強制鎖存FLMC:強制把裝載寄存器中的值送入模數(shù)計數(shù)寄存器中MCEN:模數(shù)減法計數(shù)器允許: 0=制止。1

49、=允許。 MCPR1、MCPR0:模數(shù)計數(shù)器預(yù)分頻因子設(shè)置MCPR1MCPR0預(yù)分頻因子0010141081116第七章 IO接口及增強型捕捉定時器模塊50BIT76543210RMCZF000POLF3POLF2POLF1POLF0WRESET00000000MCFLG:16位模數(shù)減法計數(shù)器標(biāo)志寄存器位模數(shù)減法計數(shù)器標(biāo)志寄存器MCZF:模數(shù)計數(shù)器減法溢出標(biāo)志位當(dāng)計數(shù)器減法計數(shù)到$0000時,此位被置一。對這位人工置一可以進行清零,寫零無效。當(dāng)TSCR寄存器中的TFFCA位被置位時,對MCCNT寄存器的任何訪問將使MCZF標(biāo)志清零。POLF3-POLF0:第一次輸入捕捉極性狀態(tài)位POLF3-P

50、OLF0是只讀的,對它們進行寫操作無效。這四位指示了引起輸入捕捉操作的邊沿極性。POLF3-POLF0分別對應(yīng)了PORT3-PORT0的輸入。0=第一次輸入捕捉由下降沿觸發(fā)。1=第一次輸入捕捉由上升沿觸發(fā)。 第七章 IO接口及增強型捕捉定時器模塊51/利用模數(shù)減法計數(shù)器進行定時利用模數(shù)減法計數(shù)器進行定時#include /* common defines and macros */#include /* derivative information */#pragma LINK_INFO DERIVATIVE mc9s12dg128bunsigned int count1=0;#pragma

51、CODE_SEG NON_BANKED /9S12中斷程序必須定位中斷程序必須定位/于于non-banked 區(qū)域區(qū)域void interrupt 26 MDC_ISR(void) MCFLG = 0 x80; /清中斷標(biāo)志位清中斷標(biāo)志位 count1+; if(count1=20) /1s閃爍一次閃爍一次 PORTA=PORTA; count1=0; #pragma CODE_SEG DEFAULT /9S12中斷程序必須定位于中斷程序必須定位于non-/banked 區(qū)域,必須有這兩個區(qū)域,必須有這兩個pragma語句語句第七章 IO接口及增強型捕捉定時器模塊52void SET_PLL(

52、void) /總線時鐘頻率為總線時鐘頻率為8MHz CLKSEL=0 x00; PLLCTL=0 xe1; SYNR=3;/PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)=16MHz /實驗板上實驗板上OSCCLK4MHz REFDV=1; PLLCTL=0 x60; asm NOP; asm NOP; asm NOP; while(CRGFLG&0 x08)=0);/時鐘校正同步時鐘校正同步 CLKSEL=0 x80; /選定選定PLL時鐘,時鐘,Bus Clock=PLLCLK/2=8MHz 第七章 IO接口及增強型捕捉定時器模塊53void mai

53、n(void) SET_PLL(); MCCTL=0 xDF;/設(shè)定模數(shù)減法計數(shù)器工作方式,中斷使能,計數(shù)器使能設(shè)定模數(shù)減法計數(shù)器工作方式,中斷使能,計數(shù)器使能 /分頻系數(shù)為分頻系數(shù)為16 MCCNT=25000;/定時器賦初值定時器賦初值 (1/8M)*16*25000= 50ms EnableInterrupts;/開中斷開中斷 DDRA=0 xFF; PORTA=0 xFF; for(;)第七章 IO接口及增強型捕捉定時器模塊54定時器低功耗模式定時器低功耗模式TSCR 定時器系統(tǒng)控制寄存器RST: 00$0006TEN TSWAI TSFRZ TFFCA Reserved TSWAI

54、在WAIT模式時,定時器停止 0 = 不停止 1 = 停頓TSBCK 在DEBUG模式時, 定時器停止 0 = 不停止 1 = 停頓TFFCA 定時器快速標(biāo)志位清除使能 0 = 定時器標(biāo)志位正常清零 1 = 輸入捕捉時讀取寄存器, 輸出比較時寫寄存器,可以對相應(yīng)通道標(biāo)志位清零1 計數(shù)器使能0 計數(shù)器禁止第七章 IO接口及增強型捕捉定時器模塊55三個例子三個例子舉三個例子講述本節(jié)內(nèi)容(定時器模塊寄存器太多,逐個講解太費時間,效果也不好)流水燈顯示使用輸入捕捉功能,對外來脈沖進行計數(shù)使用輸出比較功能,輸出一個具有一定寬度的高電平脈沖第七章 IO接口及增強型捕捉定時器模塊56void TimerOv

55、erflow(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();流水燈的顯示流水燈的顯示PORTA輸出調(diào)用函數(shù)設(shè)置控制寄存器1設(shè)置控制寄存器2延時控制這個可在實驗板上運行第七章 IO接口

56、及增強型捕捉定時器模塊57ECT控制寄存器一控制寄存器一TSCR1)本例設(shè)置TSCR1=0 x80。TEN=1:主定時器使能。0=主定時器禁止,進入低功耗狀態(tài)。TSWAI=0:等待模式時主定時器繼續(xù)工作,方便調(diào)試。0=停止工作。TSFRZ=0:凍結(jié)模式時主定時器繼續(xù)工作。0=停止工作。TFFCA=0:自動清除標(biāo)志位。1=手動清除。必須設(shè)置TSCR1才可以使主定時器工作,需要在ECT模塊初始化時就設(shè)置好。第七章 IO接口及增強型捕捉定時器模塊58ECT控制寄存器二控制寄存器二TSCR2)TOI:0禁止定時器溢出中斷。1=允許。本例設(shè)置TOI=0。TCRE:定時計數(shù)器復(fù)位允許 。0=禁止復(fù)位,計數(shù)

57、器自由計數(shù)。1=允許復(fù)位。本例設(shè)置TCRE =0 。PR2、PR1、PR0:預(yù)分頻因子選擇本例設(shè)置PR2=1、PR1=1、PR0=1:分頻系數(shù)=27=128。第七章 IO接口及增強型捕捉定時器模塊59總線時鐘Bus Clock頻率是多少?見課件“第3章 MC9S12單片機的內(nèi)核及片上資源.ppt第31和32頁。第七章 IO接口及增強型捕捉定時器模塊60ECT計數(shù)寄存器(計數(shù)寄存器( TCNT )TCNT為自由計數(shù)器的計數(shù)值,本例通過讀取它的值實現(xiàn)延時。這是一個16位的寄存器,最大值為65535。 while(TCNT!=0 x0000); while(TCNT=0 x0000);這兩句的含義是

58、:TCNT開始計數(shù)后值不為0,等待直到TCNT溢出返回0,然后再等到TCNT不為0。為什么要弄兩個while?第七章 IO接口及增強型捕捉定時器模塊61例二:輸入捕捉例二:輸入捕捉利用輸入捕捉0通道對外來的方波信號進行捕捉,采用中斷的形式。中斷發(fā)生后,讀取捕捉后的計數(shù)值,并通過PORTB口使LED燈點亮以指示中斷成功。通道0設(shè)置為輸入捕捉,采用雙沿觸發(fā)上下沿均觸發(fā)),IC0開中斷,可以進入中斷服務(wù)程序。方波信號由PORTA_BIT6產(chǎn)生,PORTA_BIT6和IOC0硬件連接。第七章 IO接口及增強型捕捉定時器模塊62第七章 IO接口及增強型捕捉定時器模塊63第七章 IO接口及增強型捕捉定時器

59、模塊64例二:輸入捕捉例二:輸入捕捉IC0的初始化:的初始化:void ic_init(void)TSCR1= 0 x90; /主定時器使能主定時器使能 TSCR2=0 x07; /分頻因子分頻因子=128 ICSYS=0 x02; /IC緩沖使能緩沖使能 TIOS=0; /通道設(shè)置為輸入捕獲通道設(shè)置為輸入捕獲TCTL4= 0 xff; /采用上升、下降沿觸發(fā)采用上升、下降沿觸發(fā) TIE=0b00000001; /通道通道0開中斷開中斷本例使用了例一未使用過的寄存器:本例使用了例一未使用過的寄存器:ICSYS、TIOS、TCTL4和和TIE。第七章 IO接口及增強型捕捉定時器模塊65輸入控制系統(tǒng)寄存器輸入控制系統(tǒng)寄存器-ICSYSSHxy=0:正常操作。1=x通道和y通道將產(chǎn)生一樣的輸入動作,x通道的設(shè)置同樣適用于y。TFMOD=0:只要產(chǎn)生正確的輸入捕獲事件,TFLG1中的CxF位就置一。1=隊列模式時才使用。PACMX=0:8位脈沖累加器溢出后自動回0。1=不自動回0,停留在0XFF。脈沖累加器對IC通道捕獲的有效邊沿數(shù)量進行計數(shù)。BUFEN=1:使用輸入捕獲緩沖區(qū)。0=不使用。LATQ=0:輸入捕獲隊列模式使能。產(chǎn)生一次成功的輸入捕獲時,IC通道寄存器中

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論