版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 微控網(wǎng) 微控網(wǎng)中國 MSP430 單片機(jī)專業(yè)MSP430F 常用模塊應(yīng)用原理微控網(wǎng) DC 策劃于:2006-3-7最后更新:2009-4-16 V8.2 微控網(wǎng)為了更好地引導(dǎo) MSP430 單片機(jī)者的入門,微控設(shè)計(jì)網(wǎng)為大家整理了一個份 MS430 單片機(jī)入門資料,希望能夠幫助到的國內(nèi)單片機(jī)者朋友。如果你在學(xué)習(xí)或應(yīng)用 MSP430 單片機(jī)過程中想與成果或交流技術(shù)問題,歡迎進(jìn)入的微控技術(shù)。歡迎微控設(shè)計(jì)網(wǎng) MSP430 單片機(jī)開發(fā)工具DC 版主模塊列表復(fù)位模塊時鐘模塊IO 端口模塊WDT 看門狗模塊Timer A 定時器模塊 6- 比較器 A 模塊ADC12 數(shù)模轉(zhuǎn)換模塊USART 串行異步通訊模
2、塊CPU 模塊及全局資料MSP430 其它應(yīng)用介紹 微控網(wǎng)1-復(fù)位模塊MSP430 單片機(jī)系統(tǒng)復(fù)位電路從上 MSP430 系統(tǒng)復(fù)位電路功能模塊圖中可以看到了兩個復(fù)位信號,一個是上電復(fù)位信號POR(er On Reset)和上電清除信號 PUC(er Up Clear)。POR 信號是器件的復(fù)位信號,此信號只有在以下的事件發(fā)生時才會產(chǎn)生:器件上電時。RST/NMI 引腳配置為復(fù)位模式,當(dāng) RST/NMI 引腳生產(chǎn)低電平時。當(dāng)POR 信號產(chǎn)生時,必然會產(chǎn)生 PUC 信號;而 PUC 信號的產(chǎn)生時不會產(chǎn)生 POR 信號。會引起產(chǎn)生 PUC 信號的事件:POR 信號發(fā)生時。 啟動看門狗時,看門狗定時器
3、計(jì)滿時。 向看門狗寫入錯誤的安全參數(shù)值時。向片內(nèi) FLASH 寫入錯誤的安全參數(shù)值時。MSP430 單片機(jī)系統(tǒng)復(fù)位后器件的初始當(dāng)POR 信號或 PUC 信號發(fā)生時引起器件復(fù)位后,器件的初始化狀態(tài)為:RST/NMI 引腳配置為復(fù)位模式。 I/O 引腳為輸入模式。 微控網(wǎng) 裝態(tài)寄存器復(fù)位。 程序計(jì)數(shù)器(PC)裝入復(fù)位向量地址 0 xE,CPU 從此地址開發(fā)始執(zhí)行。其它模塊的寄存器初始化,查器件手冊。POR 和 PUC 兩者的關(guān)系:POR 信號的產(chǎn)生會導(dǎo)致“系統(tǒng)復(fù)位”并“產(chǎn)生 PUC 信號”。而 PUC 信號不會引起 POR 信號的產(chǎn)生。無論是POR 信號還是PUC 信號觸發(fā)的復(fù)位,都會使 MSP4
4、30 從地址 0 xE 處復(fù)位中斷向量,程序從中斷向量所指的地址處開始執(zhí)行。觸發(fā) PUC 信號的條件中,除了 POR 產(chǎn)生觸發(fā)PUC 信號外,其他的豆科一通過作出相應(yīng)的處理。系統(tǒng)復(fù)位(指 POR)后的狀態(tài)為:相應(yīng)的中斷向量來判斷是何種原因引起的 PUC 信號,以便(1) RST/NMI 管腳功能被設(shè)置為復(fù)位功能; (2)所有 I/O 管腳被設(shè)置為輸入;(3)模塊被初始化,其寄存器值為相關(guān)手冊上的默認(rèn)值;狀態(tài)寄存器 SR 復(fù)位;看門狗激活,進(jìn)入工作模式; (6)程序計(jì)數(shù)器 PC 載入 0 xE 處的地址,微處理器從此地址開始執(zhí)行程序。典型的復(fù)位電路有一下 3 種:在 RST/NMI 管腳上接 1
5、00K 歐的上拉電阻。在1的基礎(chǔ)上再接 0.1uf 的電容,電容的一端接地,可以使復(fù)位更加可靠。在2的基礎(chǔ)上,再在電阻上并接一個型號為 IN4008 的二極管,可以可靠的實(shí)現(xiàn)系統(tǒng)斷電后立即上電。2-時鐘模塊 微控網(wǎng)MSP430F1XX 系列時鐘模塊圖時基模塊結(jié)構(gòu)如上圖:MSP430 系列單片機(jī)基礎(chǔ)時鐘主要是由低頻晶體振蕩器,高頻晶體振蕩器,數(shù)字控制振蕩器(DCO),鎖頻環(huán)(FLL)及 FLL+等模塊。由于 430 系列單片機(jī)中的型號不同,而時鐘模塊也將有所不同。雖然不同型號的單片機(jī)的時基模塊有所不同,但這些模塊產(chǎn)生出來的結(jié)果是相同的.在 MSP430F13、14 中是有 TX2 振蕩器的,而
6、MSP430F11X,F11X1中是用LFXT1CLK 來代替 XT2CLK 時鐘信號的.在時鐘模塊中有 3 個(對于F13,F14)時鐘信號源(或 2 個時鐘信號源,對于 F11X、F11X1):1-LFXT1CLK: 低頻/高頻時鐘源.由外接晶體振蕩器,而無需外接兩個振蕩電容器.較常使用的晶體振蕩器是 32768HZ。2-XT2CLK:高頻時鐘源.由外接晶體振蕩器。需要外接兩個振蕩電容器,較常用的晶體振蕩器是 8MHZ。3-DCOCLK:數(shù)字可控制的RC 振蕩器。 微控網(wǎng)MSP430 單片機(jī)時鐘模塊提供 3 個時鐘信號輸出,以供給片內(nèi)各部電路使用。1-ACLK: 輔助時鐘信號.由圖所示,A
7、CLK 是從 FLXT1CLK 信號由 1/2/4/8 分頻器分所得到的.由 BCSCTL1 寄存器設(shè)置 DIVA 相應(yīng)為來決定分頻因子.ACLK 可用于提供功能模塊作時鐘信號使用.CPU2-MCLK: 主時鐘信號.由圖所示,MCLK 是由 3 個時鐘源所提供的。他們分別是LFXT1CLK,XT2CLK(F13、F14,如果是 F11,F11X1 則由 LFXT1CLK 代替),DCO 時鐘源信號提供.MCLK 主要用于 MCU 和相關(guān)系統(tǒng)模塊作時鐘使用。同樣可設(shè)置相關(guān)寄存器來決定分頻因子及相關(guān)的設(shè)置。3-SMCLK: 子系統(tǒng)時鐘, SMCLK 是由 2 個時鐘源信號所提供. 他們分別是XT2
8、CLK(F13、F14)和 DCO,如果是 F11、F11X1 則由 LFXT1CLK 代替 TX2CLK。同樣可設(shè)置相關(guān)寄存器來決定分頻因子及相關(guān)的設(shè)置。MSP430X1X1 系列產(chǎn)品中,其中 XT1 時鐘源引腳接法有如 3 種應(yīng)用。F13、14 的 XT1 相同。需要注意的是,LFXT1 只有工作在高頻模式下才需要外接電容。對以引腳較少的 MSPX1XX 系列產(chǎn)品中有著不同時基模塊,具體如下: MSP430X11X1:LFXT1CLK , DCOMSP430F12X: LFXT1CLK , DCOMSP430F13X/14X/15X/16X:LFXT1CLK , DCO , XT2CLKM
9、SP430F4XX: LFXT1CLK , DCO , XT2CLK , FLL+時鐘發(fā)生器的原理說明:問題的提出:1、高頻、以便能對系統(tǒng)硬件請求和事件作出快速響應(yīng)2、低頻率,以便將電流消耗降制至最少3、穩(wěn)定的頻率,以滿足定時器的應(yīng)用。4、低Q 值振蕩器,以保證開始或停止操作沒有延時MSP430 采用了一個折衷的辦法:就是用一個低頻晶鎮(zhèn)振,將其倍頻在高頻的工作頻率上。一般采用這種技術(shù)的實(shí)用方法有兩種,一個是說、鎖相環(huán)、 一個是鎖頻環(huán),而鎖相環(huán)采用模擬的控制容易引起“失鎖”和易引起電容量的改變。而 TI 采用的是鎖頻環(huán)技術(shù),它采用數(shù)字控制器DCO 和頻率積分來產(chǎn) 生高頻的運(yùn)行時鐘頻率。低功耗設(shè)置
10、的技巧問題:1、LPM4:在振蕩器關(guān)閉模式期間,處理機(jī)的所有部件工作停止,此時電流消耗最小。此時只有在系統(tǒng)上電電路檢測到低點(diǎn)電平或任一請求異步響應(yīng)中斷的外部中斷事件時才會從新工作。因此在設(shè)計(jì)上應(yīng)含有可能需要用到的外部中斷才采用這種模式。否則發(fā)生不可預(yù)料的結(jié)果。2、LPM3:在 DC 發(fā)生器關(guān)閉期間,只有晶振是活動的。但此時設(shè)置的基本時序條件的 DC 發(fā)生器的 DC 電流被關(guān)閉。由于此電路的DC 關(guān)閉到啟動 DC0 要花一端時間 (ns-us)設(shè)計(jì),使功耗被抑制。注:當(dāng)從3、LPM2:在此期間,晶鎮(zhèn)振和 DC 發(fā)生器是工作的,所以可實(shí)現(xiàn)快速啟動。4、LPM1:在此振蕩器已經(jīng)工作,所以不存在啟動時
11、間延時問題。結(jié)合上述特點(diǎn),在寫程序時要綜合考慮低功好耗特性,對外部事件的安排也很重要。你必須在功能實(shí)現(xiàn)上綜合考慮才能達(dá)到你預(yù)期的效果。使用 C 語言可用如下的語 微控網(wǎng)句:_BIS_SR(LMP3_bits)和_BIC_SR(LPM3 bits)LPM3 和 LPM3_EXIT它們的定義是一樣的。這里說明在 C 語言環(huán)境中有些定義的函數(shù)是不可見的。但你可以從 in430.h 文件看到它們的定義。DCOCTL DCO 控制寄存器DCO.0-DCO.4定義 8 種頻率之一,可以分段調(diào)節(jié) DCOCLK 頻率,相鄰兩種頻率相差10%。而頻率由注入直流發(fā)生器的電流定義。MOD.0-MOD.4 定義在 3
12、2 個DCO 周期中的 Fdco+1 周期個數(shù),而在下的 DCO 周期中為 Fdco 周期,控制改換 DCO 和 DCO+1 選擇的兩種頻率。如果 DCO 常數(shù)為 7,表示已經(jīng)選擇最高頻率,此時不能利用 MOD.0-MOD.4 進(jìn)行頻率調(diào)整。BCSCTL1 基本時鐘系統(tǒng)控制寄存器 1XT2OFF 控制XT2 振蕩器的開啟與關(guān)閉。 TX2OFF=0,XT2 振蕩器開啟。TX2OFF=1,TX2 振蕩器關(guān)閉(默認(rèn)為 TX2 關(guān)閉)XTS控制 LFXT1 工作模式,選擇需結(jié)合實(shí)際晶體振蕩器連接情況。XTS=0,LFXT1 工作在低頻模式(默認(rèn))。XTS=1,LFXT1 工作在高頻模式(必須連接有高頻
13、相應(yīng)的高頻時鐘源)。DIVA.0 DIVA.1 控制 ACLK 分頻。0123不分頻(默認(rèn))2 分頻4 分頻8 分頻XT5V 此位設(shè)置為 0。Resl1.0,Resl1.1,Resl1.2 三位控制某個內(nèi)部電阻以決定標(biāo)稱頻率。Resl=0,選擇最低的標(biāo)稱頻率。.Resl=7,選擇最高的標(biāo)稱頻率。BCSCTL2 基本時鐘系統(tǒng)控制寄存器 2SELM.1 SELM.0 選擇 MCLK 時鐘源76543210SELM.1SELM.0DIVM.1DIVM.0SELSDIVS.1DIVS.0DCOR76543210XT2OFFTXSDIVA.1DIVA.0XT5VRsel.2Resl.1Resl.0765
14、43210DCO.2DCO.1DCO.0MOD.4MOD.3MOD.2MOD.1MOD.0 微控網(wǎng)012時鐘源為 DCOCLK(默認(rèn))時鐘源為 DCOCLK時鐘源為 LFXT1CLK(對于 MSP430F11/12X),時鐘源為 XT2CLK(對于 MSP430F13/14/15/16X);3 時鐘源為 LFTXTICLK。DIVM.1 DIVM.0 選擇 MCLK 分頻0123分頻(默認(rèn))分頻4 分頻8 分頻SELS 選擇 SMCLK 時鐘源時鐘源為 DCOCLK(默認(rèn))時鐘源為 LFXT1CLK(對于 MSP430F11/12X),時鐘源為 XT2CLK(對于 MSP430F13/14/1
15、5/16X)。DIVS.1 DIVS.0 選擇 SMCLK 分頻。0124分頻分頻4 分頻8 分頻DCOR 選擇 DCO 電阻內(nèi)部電阻外部電阻PUC 信號之后,DCOCLK 被自動選擇 MCLK 時鐘信號,根據(jù)需要,MCLK 的時鐘源可以另外設(shè)置為 LFXT1 或者 XT2。設(shè)置順序如下:1234為止。復(fù)位 OscOff清除 OFIFG延時等待至少 50us再次檢查 OFIFG,如果仍然置位,則重復(fù)3、4步驟,直到 OFIFG=0時基模塊應(yīng)用范例(1)本例程是設(shè)置時鐘模塊的工作方式和相關(guān)的控制寄存器.以 MSP430F149 和 C程序編寫.設(shè)置主時鐘信號 MCLK=TX2,子時鐘信號 SMC
16、LK=DCOCLK,將 MCLK 從MSP430F149 的P5.4 口輸出,在F14X 系列中 P5.4 和MCLK 是復(fù)用的,(相關(guān)的資料可查得) #include 看 微控網(wǎng)void main (void)unsignedi;WDTCL P5DIR P5SEL=WDTPW+WDTHOLD; 0 x10;0 x10;&= XT2OFF;/停止看門狗/設(shè)置 P5.4 輸出/設(shè)置 P5.4 口為模塊用作 MCLK 信號輸出BCSCTL1/使 TX2 有效,TX2 上電時默認(rèn)為關(guān)閉的.doIFG1 &=OFIFG;/清振蕩器失效標(biāo)志/延時,待穩(wěn)定.for(i= 0 xff; i0; i-);wh
17、ile (IFG1 & OFIFG)!=0);/若振蕩器失效標(biāo)志有效BCSCTL2 |= SELM1;for(;);/使 MCLK = XT2時基模塊應(yīng)用范例(2)XT1 時鐘源外接高頻晶體振蕩器并使其工作在高頻模式.利用P2.0 的復(fù)用引腳功能輸出 ACLK(高頻).同時 P1.1 輸出一個 #include void main(void).unsignedi;WDTCTL = WDTPW + WDTHOLD; BCSCTL1 |= XTS;/ 設(shè)置時基寄存器 1,使 ACLK/ 停止看門狗= LFXT1 = HF XTAL,也就是高頻模式./ 設(shè)置 P2.0 方向寄存器為輸出P2DIR P
18、2SEL P1DIR|=|=|=0 x01;0 x01;0 x02;/設(shè)置 P2.0 口為模塊用作 ACLK 信號輸出/設(shè)置 P1.1 方向寄存器為輸doIFG1 &= OFIFG;for (i = 0 xFF; i/ 0; i-);/清振蕩器失效標(biāo)志延時,待穩(wěn)定while (IFG1 & OFIFG);/若振蕩器失效標(biāo)志有效? 微控網(wǎng)BCSCTL2 |= SELM_3;/ 設(shè)置時基寄存器 2,使主時鐘信號 MCLK = LFXT1(可靠的)for (;)P1OUT |= 0 x02; P1OUT &= 0 x02;/無窮循環(huán)/P1.1 = 1P1.1 = 03-IO 端口數(shù)字輸入輸出端口使用
19、特性:1、所有端口都可以單獨(dú)進(jìn)行編程。2、可以進(jìn)行輸入輸出和中斷條件的任意組合3、對具有中斷功能的引腳輸入沿可進(jìn)行選擇4、具有第 2 功能選擇,以適合不同 I/O 口操作。5、所有指令支持端口控制寄存器的讀寫操作注:1、對輸入寄存器寫入會增加電流的消耗。2、由于各端口的功能各不相同,因此它們的內(nèi)部電路原理也不相同,具體可參考數(shù)據(jù)手冊。 微控網(wǎng)MSP430 的端口MSP430 端口功能PxDIR 方向寄存器為輸入模式為輸出模式在 PUC 后全都為復(fù)位,作為輸入時,只能讀;作為輸出時,可讀可定。PxIN 輸入寄存器輸入寄存器是只讀的,用戶不能對它寫入,只能腳方向必須為輸入。其 IO 內(nèi)容。此時引7
20、6543210PxINPxINPxINPxINPxINPxINPxINPxIN76543210P7DIRP6DIRP5DIRP4DIRP3DIRP2DIRP1DIRP0DIR端口功能P1、P2I/O、中斷功能、其他片內(nèi)外設(shè)功能P3、P4、P5、P6I/O、其他片內(nèi)外設(shè)功能S、COMI/O、驅(qū)動液晶器件P1P2P3P4P5P6SCOMMSP430F11XMSP430F12XMSP430F13/14/15/16MSP430F4XXMSP430F20XMSP430F21XMSP430F22X 微控網(wǎng)PxOUT 輸出寄存器這是 IO 端口的輸出緩沖器,在時輸出緩存的內(nèi)容與腳引方向定義無關(guān)。改變方向寄存
21、器的內(nèi)容,輸出緩存的內(nèi)容不受影響。PxIFG 中斷標(biāo)專寄存器標(biāo)志相應(yīng)引腳是否有待處理中斷信息。沒有中斷請求有中斷請求PxIES 中斷觸發(fā)沿選擇寄存器上升沿使相應(yīng)標(biāo)志置位下降沿使相應(yīng)標(biāo)志置位PxIE 中斷使能寄存器0中斷1 允許中斷PxSEL 功能選擇寄存器0 選擇引腳為 I/O 功能。1 選擇引腳為模塊功能關(guān)于端口 P3、P4、P5、P6端口 P3、P4、P5、P6 是沒有中斷功能的,其它功能與 P1、P2 相同。所以在此不再作詳盡說明。關(guān)于端口 COM、S這些端口實(shí)現(xiàn)與 LCD 片的驅(qū)動接口,COM 端是 LCD 片的公共端,S 端為 LCD片的段碼端。LCD 片輸出端也可以用軟件配置為數(shù)字
22、輸出端口,詳情使用請查看其手冊。76543210P7SELP6SELP5SELP4SELP3SELP2SELP1SELP0SEL76543210P7IEP6IEP5IEP4IEP3IEP2IEP1IEP0IE76543210P7IESP6IESP5IESP4IESP3IESP2IESP1IESP0IES76543210P7IFGP6IFGP5IFGP4IFGP3IFGP2IFGP1IFGP0IFG76543210P7OUTP6OUTP5OUTP4OUTP3OUTP2OUTP1OUTP1OUT 微控網(wǎng)4-WDT 看門狗看門狗定時器實(shí)際上是一個特殊的定時器,它的的功能是當(dāng)程序運(yùn)行發(fā)生故障時序時能使
23、系統(tǒng)從新啟動。其原理就是發(fā)生的故障的時間滿足規(guī)定的定時時間后,產(chǎn)生一個非中斷,使系統(tǒng)的復(fù)位。這樣當(dāng)在調(diào)試程序或預(yù)計(jì)程序運(yùn)行在某段內(nèi)部可能瞬時發(fā)生時序錯誤時(如外部電路干擾)選用設(shè)置看門狗定時中斷可以避免程序跑飛看門狗的定時時間可以通過 WDTCTL 中的低三位(、IS1、IS0)選擇,當(dāng)系統(tǒng)時鐘為 1MHz 時,最大可設(shè)置為 1 秒鐘,最小可設(shè)置 64 微秒。WDTCTL 是一個 16 位寄存器,其高字節(jié)為口令,口令為 5AH,當(dāng)對它寫入操作時必須寫口令才能操作,否則會導(dǎo)致系統(tǒng)復(fù)位。另外該模塊還具有定時器的功能。你可通過 TMSET 位進(jìn)行選擇。你可通過設(shè)置 CNTCL來使T 從 0 開始計(jì)數(shù)
24、。其定時按選定的時間周期產(chǎn)生中斷請求。當(dāng) WDT 工作在定時器模式時,WDTCTL 中斷標(biāo)志位在定時間到時置位,因該模式下定時器中斷源是單源的,當(dāng)?shù)玫街袛喾?wù)時其 WDTCTL 標(biāo)志位復(fù)位。T 計(jì)數(shù)單元 微控網(wǎng)這是 16 位增計(jì)數(shù)器,由 MSP430 所選定的時鐘電路產(chǎn)生的固定周期時鐘信號對計(jì)數(shù)器進(jìn)行加法計(jì)數(shù)。如果計(jì)數(shù)器事先被預(yù)置的初始狀態(tài)不同,那么從開始計(jì)數(shù)到計(jì)數(shù)溢出為止所用的時間就不同。T 不能直接通過軟件存取,必須通過看門狗定時器的控制寄存器 WDTCTL 來控制。WDTCTL 控制寄存器WDTCTL 由高 8 位口令和低 8 位控制命令組成。要寫入操作 WDT 的控制命令,出于安全原因
25、必須先正確寫入高字節(jié)看門狗口令??诹顬?5AH,如果口令寫錯將導(dǎo)致系統(tǒng)復(fù)位。讀 WDTCTL 時不需要口令。這個控制寄存器還可以用于設(shè)置 NMI 引腳功能。ISO,IS1選擇看門狗定時器的定時輸出。其中 是2(15)2(13)2(9)2(6)T 的輸入時鐘源周期。0123T T T Tx x x x選擇 SMCLK ACLKT 的時鐘源01由 IS0,IS1,3 可確定 WDT 定時時間。WDT 最多只能定時 8 種和時鐘源相關(guān)的時間。下表列出了 WDT 可選的定時時間(晶體為 32768HZ,SMCLK=1MHZ)。 WDT 的定時時間表CNTCL 當(dāng)該位為 1 時,清除T。TMSEL 工作
26、模式選擇0 看門狗模式IS1IS0定時時間/ms0110.056Tsmclk x 2(6)0100.5Tsmclk x 2(9)1111.9Taclk x 2(6)0018Tsmclk x 2(13)11016Taclk x 2(9)00032Tsmclk x 2(15) (PUC 復(fù)位后的值)101250Taclk x 2(13)1001000Taclk x 2(15)15-876543210口令HOLDNMIESNMITMSELCNTCLIS1IS015-0 微控網(wǎng)1 定時器模式NMI 選擇 RST/NMI 引腳功能,在 PUC 后被復(fù)位。0 RST/NMI 引腳為復(fù)位端1 RST/NMI
27、 引腳為邊沿觸發(fā)的非中斷輸入。NMIES 選擇中斷的邊沿觸發(fā)方式上升沿觸發(fā) NMI 中斷下降沿觸發(fā) NMI 中斷HOLD 停止看門狗定時器工作,降低功耗。0 WDT 功能激活1 時鐘輸入,計(jì)數(shù)停止5-定時器各種定時器功能定時器 A定時器功能看門狗定時器基本定時,當(dāng)程序發(fā)生錯誤時執(zhí)行一個受控的系統(tǒng)重啟動。基本定時器基本定時,支持各種模塊工作在低頻率、低功耗條件下。定時器 A基本定時,支持同時進(jìn)行的多種時序控制、多個捕獲、比較功能和多種輸出波形(),可以以硬件方式支持串行通信。定時器 B基本定時,功能基本同定時器 A,但比較定時器 A 靈活,功能更強(qiáng)大。 微控網(wǎng) 微控網(wǎng)Timer_A 的寄存器由于
28、 MSP430 系列單片機(jī)不同系列可能包含不同數(shù)目的捕獲/比較器,這里列出含有 3 個捕獲/比較器 Timer_A 的寄存器。在 MSP430 系列單片機(jī)中帶有功能強(qiáng)大的定時器資源,這定時器在單片機(jī)應(yīng)用系統(tǒng)中起到重要的作用。 利用 MSP430(以下稱為 430)單片機(jī)的定時器可以用來實(shí)現(xiàn)計(jì)時,延時,信號頻率測量,信號觸發(fā)檢測,脈沖脈寬信號測量,信號發(fā)生。另外通過軟件編寫可以用作串口的波特率發(fā)生器。后面用定時器 A 作為一個波特率發(fā)生器,來編寫一個串口例程給初學(xué)者參考。以加強(qiáng)初學(xué)者對定時器 A 的理解和應(yīng)用。在 430 的大系列產(chǎn)品中,不同的子系列產(chǎn)品定時器資源有所不同;在 F11X,F(xiàn)11X
29、1寄存器縮寫讀定類型地址初態(tài)Timer_A 控制寄存器TACTLR/W160HPOR 復(fù)位Timer_A 計(jì)數(shù)器TARR/W170HPOR 復(fù)位捕撈/比較控制寄存器 0CCTL0R/W162HPOR 復(fù)位捕撈/比較寄存器 0CCR0R/W172HPOR 復(fù)位捕撈/比較控制寄存器 1CCTL1R/W164HPOR 復(fù)位捕撈/比較寄存器 1CCR1R/W174HPOR 復(fù)位捕撈/比較控制寄存器 2CCTL2R/W166HPOR 復(fù)位捕撈/比較寄存器 2CCR2R/W176HPOR 復(fù)位中斷向量寄存器TAIVR/W12EHPOR 復(fù)位 微控網(wǎng)中是不帶定時器 B 資源的。430 的定時器主要分為 3
30、部分模塊:看門狗定時器,定時器 A,定時器 B。定時器 A 主要資源特點(diǎn)有 16 位定時計(jì)數(shù)器,其計(jì)數(shù)模式有 4 種。多種計(jì)數(shù)時鐘信號供選擇。3 個可配置輸入的捕獲/比較功能寄存器和 8 種輸出模式的 3 個可配置輸出單片。以上各塊定時器資源可作多種組合使用,以實(shí)現(xiàn)強(qiáng)大的功能。定時器資源功能說明看門狗定時器(WDT):主要用于程序在生錯誤時用作單片機(jī)系統(tǒng)復(fù)位重起的。另外,也可作為一個基本定時器使用。定時器 A:作基本定時器使用,結(jié)合捕獲/比較功能模塊可實(shí)現(xiàn)時序控制,可編程波形信號發(fā)生輸出??勺鞔诓ㄌ芈拾l(fā)生器使用。定時器 B:作基本定時器使用,與定時器 A 基本相同,但是功能方面有某些功能會比
31、 A 增強(qiáng)些??搓P(guān)于定時器 B 應(yīng)用范例。定時器_A(三個比較/捕獲寄存器)定時器_A 模塊資源:一個 16 位計(jì)數(shù)器 TAR、三個捕獲/比較寄存器 CCRx 三個捕獲/比較控制寄存器 CCTLx工作模式:停止模式增計(jì)數(shù)模式:定時計(jì)數(shù)器增到 CCR0。(你可在此期間設(shè)置 CCRx 來產(chǎn)生中斷標(biāo)記,但計(jì)數(shù)是一定走到 CCR0 后在循環(huán)進(jìn)行,以下也一樣)。連續(xù)計(jì)數(shù)模式:從 0 到 65535 連續(xù)增計(jì)數(shù)模式。增/減模式:先增 CCR0 后減至 0 模式。(當(dāng)條件滿足后中斷標(biāo)志置位)該工作模式可通過控制寄存器 TACTL 中的 MC1 和 MC0 選擇計(jì)數(shù)器 TAR:就是存放定時器的計(jì)數(shù)值,雖然它只
32、有 16 位寄存器,但可設(shè)置為 8、10、14 位的計(jì)數(shù)長度。該定數(shù)器是該模塊的,它與包括定時器、捕獲/比較模塊打交道。如用于比較時要于它比較,捕獲時是將它的值捕獲保存。可用字進(jìn)行讀寫。比較模式:這是該定時 器的默認(rèn)模式,在此所有的捕獲硬件停止工作。如果此時相應(yīng)定時器中斷允許打開的話,同時開始啟動定時器,定時計(jì)數(shù)器 TAR 中的數(shù)值等于比較寄存器的值時,則產(chǎn)生中斷請求。如沒有中斷允許,只是響應(yīng)的中斷標(biāo)志 CCIFGx 置位。同時 EQUx 信該號位為真。否則為假利用它可以控制輸出產(chǎn)生占空比可變的形輸出。當(dāng)選用了比較模式時:波比較模式常用在用軟件設(shè)定時中斷間隔,來處理有關(guān)的事情,如 鍵盤掃描、事
33、件查詢處理、也可結(jié)合輸出產(chǎn)生脈沖時序發(fā)生信號,信號等。一個典型的例子就是利用不斷的裝載到TxCCRx 中的數(shù)據(jù)與TAR 的值比較來產(chǎn)生中斷處理信號。捕獲模式:主要用于利用信號的正沿、負(fù)沿或正負(fù)沿的任一組合,測量外部或內(nèi)部事件,也 微控網(wǎng)可以由軟件停止。外部觸發(fā)事件可以用 CCISx 選擇 CCIxA,CCIxB,GND,和 Vcc 源。完成捕獲后相應(yīng)的中斷標(biāo)志 CCIFGx 置為位。捕獲模式應(yīng)用:捕獲是當(dāng)外部有信號進(jìn)來后(觸發(fā)),將定時器 TxR 的值捕獲到自己的鎖存寄存器 TxCCRx 中,你可以隨時讀出。 TxCCRx 為 16 位可讀可寫。捕獲模式用于事件的精確定位,它可用在速度(或頻率
34、)或時間測量中。一個典型的例子就是通過兩次捕獲外部事件來獲得外部脈沖信號的寬度。最簡單的例子是:捕獲模式選擇任意沿,CCISx1=1,變化 CCISx0(及輸入選擇 Vcc和 GND),這樣在發(fā)生 Vcc 與 GND 切換(有高低電平觸發(fā)時)產(chǎn)生捕獲條件。異步通訊:再一個例子就是同時應(yīng)用比較模式和捕獲模式用軟件實(shí)現(xiàn) UART 通訊。即利用定時器比較模式來模擬通訊時序的波特率來發(fā)送數(shù)據(jù),同時采用捕獲模式來接收數(shù)據(jù),并及時轉(zhuǎn)換比較模式來選定調(diào)整接收波特率,達(dá)到接收一個字節(jié)的目的。時鐘源選擇:它是通過定時控制器 TACTL 中的兩位完成,當(dāng)從新上電或發(fā)生 POR 時(系統(tǒng)復(fù)位)或用軟件通過 CLR
35、位使分頻器復(fù)位。在正常操作時分頻器的狀態(tài)是不可見的。工作模式的選擇:增計(jì)數(shù)模式:當(dāng)計(jì)數(shù)器增計(jì)數(shù)到 CCR0 時捕獲比較中斷 CCIFG 標(biāo)志置位。連續(xù)計(jì)數(shù)模式:從 0 開始到 0FH 在從 0 開始,當(dāng)回到 0 時 TAIFG 置位( TAIFG為溢出標(biāo)志)但并不中斷,只有 TAIE=1 時才產(chǎn)生中斷??梢栽O(shè)置不同的 CCR0 的值來產(chǎn)生中斷 CCIFG。 微控網(wǎng)增/減計(jì)數(shù)模式:增減計(jì)數(shù)模式,當(dāng)增到 CCR0 時 CCIF0 置位,當(dāng)減到 0 時 TAIFG 置位(溢出標(biāo)志)TAIFG 為TACTL 控制寄存器1、0 選擇定時器輸入分頻器的時鐘源Timer_A 時鐘源ID1,ID0 輸入分頻選
36、擇00011011不分頻2 分頻4 分頻8 分頻MC1,MC0 計(jì)數(shù)模式控制位00011011停止模式 增計(jì)數(shù)模式連續(xù)計(jì)數(shù)模式增/減計(jì)數(shù)模式CLR 定時器清除位POR 或 CLR 置位時定時器和輸入分頻器復(fù)位。CLR 由硬件自動復(fù)位,其讀出始終為 0。定時器在下一個有效輸入沿開始工作。如果不是被清除模式控制暫停,則定時器以增計(jì)數(shù)模式開始工作。TAIE 定時器中斷允許位0定時器溢出中斷10輸入時鐘源說明00TACLK用特定的外部引腳信號01ACLK輔助時鐘10SMCLK子系統(tǒng)時鐘11INCLK見器件說明15-109876543210未用10ID1ID0MC1MC0未用CLRTAIETAIFG 微
37、控網(wǎng)1 允許定時器溢出中斷TAIFG 定時器溢出標(biāo)志位增計(jì)數(shù)模式: 當(dāng)定時器由 CCR0 計(jì)數(shù)到到 0 時,TAIFG 置位。連續(xù)計(jì)數(shù)模式:當(dāng)定時器由 0FH 計(jì)數(shù)到 0 時,TAIFG 置位。增/減計(jì)數(shù)模式:當(dāng)定時器由 CCR0 減計(jì)數(shù)到 0 時,TAIFG 置位。TAR 16 位計(jì)數(shù)器這是計(jì)數(shù)器的主體,內(nèi)部可讀寫。修改 TIMWER_A:當(dāng)計(jì)數(shù)時鐘不是 MCLK 時,寫入應(yīng)該在計(jì)數(shù)器停止計(jì)數(shù)時寫,因?yàn)樗c CPU 時鐘不同步,可能引起時間競爭。TIMER_A 控制位的改變:如果用 TACLK 控制寄存器中的控制位來改變定時器工作,修改時定器應(yīng)停止,特別是修改輸入選擇位、輸入分頻器和定時器清
38、除位時。輸入時鐘和軟件所用的系統(tǒng)時鐘異步可能引起時間競爭,使定時器響應(yīng)出錯。 CCTLx 捕獲/比較控制寄存器CCIS1-0SCSSCCIxCAPOUTMODxCCIExCCIxOOVCCIFxCAPTMOD1-0TIMER_A 有多個捕獲比較模塊,每個模塊都有自己的控制寄存器 CCTLxCAPTMOD1-0 選擇捕獲模式00011011捕獲模式上升沿捕獲 下降沿捕獲上升沿與下降沿都捕獲CCISI1-0 在捕獲模式中用來定提供捕獲事件的輸入端00011011選擇 CCIxA選擇 CCIxB選擇 GND 選擇 VCCSCS 選擇捕獲信號與定時器時鐘同步、異步關(guān)系異步捕獲同步捕獲異步捕獲模式允許在
39、請求時立即將 CCIFG 置位和捕獲定時器值,適用于捕獲信號的周期遠(yuǎn)大于定時器時鐘周期的情況。但是,如果定時器時鐘和捕獲信號發(fā)生時間競爭,則捕獲寄存器的值可能出錯。在實(shí)際中經(jīng)常使用同步捕獲模式,而且捕獲總是有效的。15-0 微控網(wǎng)SSCIx 比較相等信號 EQUx 將選擇中的捕獲、比較輸入信號 CCIx(CCIxA,CCIxB,Vcc 和 GND)進(jìn)行鎖存,然后可由 SCCIx 讀出。CAP 選擇捕獲模式還是比較模式。比較模式捕獲模式注意:同時捕獲和捕獲模式選擇如果通過捕獲比較寄存器 CCTLx 中的 CAP 使工作模式從比較模式變?yōu)椴东@模式,那么不應(yīng)同時進(jìn)行捕獲;否則,在捕獲比較寄存器中的值
40、是不可預(yù)料的,令順序?yàn)椋?修改控制寄存器,由比較模式換到捕獲模式。2捕獲的指OUTMODx 選擇輸出模式000001010011100101110111輸出置位翻轉(zhuǎn)/復(fù)位置位/復(fù)位翻轉(zhuǎn)/置位復(fù)位翻轉(zhuǎn)/置位復(fù)位/置位定時器時鐘上升沿時 OUTx 在各模式下的狀態(tài)輸出模式EQU0EQUxOUTx 狀態(tài)(或觸發(fā)器輸入端 D)0(OUTx 位)1X0OUTx(不變)X11(置位)200OUTx(不變)01/OUTx(與以前相反)100111(置位)300OUTx(不變)011(置位)100111(置位)4X0OUTx(不變)X1/OUTx(與以前相反)5X0OUTx(不變)X10600OUTx(不變)
41、 微控網(wǎng)CCIx 捕獲比較模的輸入信號捕獲模式:由 CCIS0 和 CCIS1 選擇的輸入信號通過該位讀出。比較模式:CCIx 復(fù)位。OUT 輸出信號輸出低電平輸出如果 OUTMODx 選擇輸出模式 0(輸出),則該位對應(yīng)于輸入狀態(tài)。COV 捕獲溢出標(biāo)志輸出低電平輸出當(dāng) CAP=0 時,選擇比較模式。捕獲信號發(fā)生復(fù)位,沒有使 COV 置位的捕獲事件。當(dāng) CAP=1 時,選擇捕獲模式,如果捕獲寄存器的值被讀出再次發(fā)生捕獲事件,則 COV 置位。程序可檢測 COV 來斷定原值讀出前是否又發(fā)生捕獲事件。讀捕獲寄存器時不會使溢出標(biāo)志復(fù)位,須用軟件復(fù)位。CCIFGx 捕獲比較中斷標(biāo)志捕獲模式:寄存器 C
42、CRx 捕獲了定時器 TAR 值時置位。比較模式:定時器 TAR 值等于寄存器 CCRx 值時置位。CCRx 捕獲/比較寄存器在捕獲比較模塊中,可讀可寫。其中 CCR0 經(jīng)常用作周期寄存器,其他 CCRx 相同。TAIV 定器器 A 中斷向量寄存器Timer_A 有兩個中斷向量,一個單獨(dú)分配給捕獲比較寄存器 CCR0,另一個作為共用的中斷向量用于定時器和其他的捕獲比較寄存器。CCR0 中斷向量具有最高的優(yōu)先級,因?yàn)?CCR0 能用于定義是增計(jì)數(shù)和增減計(jì)數(shù)模式的周期。因此,他需要最快速度的服務(wù)。CCIFG0 在被中斷服務(wù)時能自動復(fù)位。CCR1-CCRx 和定時器共用另一個中斷向量,屬于多源中斷,
43、對應(yīng)的中斷標(biāo)志CCIFG1-CCIFGx 和 TAIFG1 在讀中斷向量字 TAIV 后,自動復(fù)位。如果不TAIV 寄15-54-100-0中斷向量015-001/OUTx(與以前相反)101110 微控網(wǎng)存器,則不能自動復(fù)位,須用軟件清除;如果相應(yīng)的中斷允許位復(fù)位(不允許中斷),則將不會產(chǎn)生中斷請求,但中斷標(biāo)志仍存在,這時須用軟件清除。關(guān)于中斷掛起和返回不包括處理約需要 1116 個時鐘周期。TIMER_A 中斷優(yōu)先級例 1定時器 A 自動溢出簡述:利用 Timer_A 直接計(jì)數(shù)產(chǎn)生溢出,然后中斷處理。ACLK = TACLK = 32768Hz, MCLK = SMCLK = defau例
44、程:CO 800kHz/*#include void main(void)WDTCTL = WDTPW + WDTHOLD; P1DIR |= 0 x01;/停止看門狗定時器/ 設(shè)P1.0 為輸出/ ACLK, 定時器 A 計(jì)數(shù)模式,且開中斷功能TACTL = TA_1 + MC_2 + TAIE;_BIS_SR(LPM3_bits + GIE);/進(jìn)入 LPM3 低功耗模式和開總中斷允許/ Timer_A3 中斷向量 (TAIV)處理程序 #pragma vector=TIMERA1_VECTOR errupt void Timer_A(void)switch( TAIV )case2:br
45、eak;/應(yīng)用 switch 語句來處理多中斷源的向量/向量列表通過 case 語句來分多中斷源的/ CCR1 比較/捕獲寄存器的中斷/本例子未用到。/ CCR2 比較/捕獲寄存器的中斷,case4:break;,中斷優(yōu)先級中斷源縮寫TAIV 的內(nèi)容最高捕獲/比較器 1CCIFG12捕獲/比較器 1CCIFG14捕獲/比較器 xCCIFGx最低定時器溢出TAIFG110沒有中斷將掛起0 微控網(wǎng)/本例子未用到。case 10:P1OUT = 0 x01;/定時器A 在計(jì)滿 16 位時將產(chǎn)生計(jì)數(shù)溢出中斷/進(jìn)入中斷,向量值為 10。此中斷處理break;/*例 2CCR0 捕獲/比較寄存器-比較功能
46、中斷定用簡述:本程序是利用了定時器 A 模塊中的 CCR0 捕獲/比較寄存器的值與定時器 A 的值進(jìn)行比較。如果比較相等就產(chǎn)生 CCR0 中斷,進(jìn)入 Timer A0 中斷服務(wù)程序進(jìn)行中斷處理。以 P1.0作為指示,反轉(zhuǎn)速度= 32768/(2*1000) = 16.384 。ACLK = TACLK = 32768Hz, MCLK = SMCLK = defauCO 800kHz本程序imer A)采用增計(jì)數(shù)模式。在增計(jì)數(shù)模式時,當(dāng) TA 中的計(jì)數(shù)值與 CCR0 的值相等時(或 TACCR0 的值時),TA 被清零并且重新由 0 開始計(jì)數(shù)。在此同時,CCR0 產(chǎn)生中斷。產(chǎn)生 CCIFG0 標(biāo)
47、志置位,及 TAIFG 定時器 A 溢出標(biāo)志置位。CCIFG0,TAIFG 在被中斷服務(wù)程序處理時是自動復(fù)位。如本例中執(zhí)行 errupt void Timer_A (void)時,CCIFG0 已被清除標(biāo)志位。例程:/*#include void main(void)WDTCTL = WDTPW + WDTHOLD; P1DIR |= 0 x01;CCTL0 = CCIE; CCR0 = 1000-1;/停止看門狗定時器/設(shè)P1.0 為輸出/CCR0 開中斷允許/向 CCR0 捕獲/比較寄存器裝入初值,用于比較/選ACLK 為定時器 A 時鐘源, 增計(jì)數(shù)模式TACTL = TA_1 + MC_
48、1;_BIS_SR(LPM3_bits + GIE);/進(jìn)入 LPM3 模式/ 開中斷允許/ Timer A0 中斷服務(wù)程序#pragma vector=TIMERA0_VECTOR errupt void Timer_A (void)P1OUT = 0 x01;/反轉(zhuǎn) P1.0 微控網(wǎng)/*例 3CCR0 捕獲/比較寄存器-比較功能中斷定用簡述:ACLK = TACLK = 32kHz, MCLK = SMCLK = defau實(shí)現(xiàn)輸出P1.1= CCR0 = 32768/(2*4) = 4096Hz P1.2= CCR1 = 32768/(2*16) = 1024Hz P1.3= CCR2
49、= 32768/(2*100) = 163.84HzP1.0= overflow = 32768/(2*65536) = 0.25HzCO 800kHz此程序中主要用到了 CCR0,CCR1,CCR0 捕獲/比較寄存器的值與 TA 的值進(jìn)行比較。 TA 的計(jì)數(shù)模式為連續(xù)計(jì)數(shù)。此模式適合產(chǎn)生多個不同時序信號,只要將改變 CCRX 中的值就可以。在本例中,CCRX 每次中斷里增長了下一次中斷發(fā)生時的時差值。另外,還需設(shè)置 TA模塊輸出單元 OUTx 的輸出模式,本例設(shè)置的輸出模式為反轉(zhuǎn)模式。需要注意的,CCR0 是一個單獨(dú)分配的中斷向量。而 CCR1-CCRx 和 TA 的中斷向量是共用的,這是一
50、個多源中斷。CCIFG1-CCIFGx 和 TAIFG1 中斷標(biāo)志在讀中斷向量 TAIV 后,硬件會自動復(fù)位這些標(biāo)志;CCR0 中斷服務(wù)程序執(zhí)行后 CCIFG0 標(biāo)志也被復(fù)位。CCR0 和 CCR1-CCRx,TA 的中斷服務(wù)程序是分開的。 errupt void Timer_A0(void) errupt void Timer_A1(void)例程:/* #includevoid main(void)WDTCTL = WDTPW + WDTHOLD; P1SEL |= 0 x0E;P1DIR |= 0 x0F;CCTL0 = OUTMOD_4 + CCIE; CCTL1 = OUTMOD_4
51、 + CCIE; CCTL2 = OUTMOD_4 + CCIE;/停止看門狗定時器/設(shè)P1.1 - P1.3 為模塊功能/設(shè) P1.0 - P1.3 方向?yàn)檩敵? CCR0 輸出為反轉(zhuǎn)模式,/ CCR1 輸出為反轉(zhuǎn)模式,/ CCR2 輸出為反轉(zhuǎn)模式,/ ACLK, 連續(xù)計(jì)數(shù)模式,開中斷允許開中斷允許開中斷允許開 TA 中斷允許TACTL = TA_1 + MC_2 + TAIE;_BIS_SR(LPM3_bits + GIE);/進(jìn)入 LPM3/開總中斷允許 微控網(wǎng)/ Timer A0 中斷服務(wù)程序#pragma vector=TIMERA0_VECTOR errupt void Timer
52、_A0 (void)CCR0 += 4;/向 CCR0 增加偏移量/ Timer_A3 中斷服務(wù)程序#pragma vector=TIMERA1_VECTOR errupt void Timer_A1(void)switch( TAIV )case2: CCR1 += 16;break;case4: CCR2 += 100;break;case 10: P1OUT = 0 x01;break;/向CCR1 增加偏移量/向CCR2 增加偏移量/ Timer_A3 定時器 A 溢出/*例 4CCR1 CCR2 捕獲/比較寄存器產(chǎn)生波形簡述:利用定時器 A 的自動產(chǎn)生波形輸出,而無需采用軟件程序來服
53、務(wù)生產(chǎn)。本程序 CCR0 的值作為的周期寬度,而 CCR1,CCR2 的值作為的占空寬。適當(dāng)修改軟件可以容易實(shí)現(xiàn)動態(tài)輸出或外加少量的 RC 元件要以實(shí)現(xiàn) DAC 功能。ACLK = TACLK = LFXT1 = 32768Hz, MCLK = defau例程:CO 800kHz./* #includevoid main(void)WDTCTL = WDTPW + WDTHOLD; P1DIR |= 0 x0C;P1SEL |= 0 x0C;/停止看門狗定時器/設(shè)P1.2/設(shè)P1.2和 P1.3 為輸出和P1.3 TA1/2 為模塊功能CCR0 = 512-1;/裝入周期值CCTL1 = OU
54、TMOD_7; CCR1 = 384;/設(shè) CCR1 輸出單元為復(fù)位/置位輸出模式/裝入CCR1的占空值CCTL2 = OUTMOD_7;/設(shè) CCR2 輸出單元為復(fù)位/置位輸出模式 微控網(wǎng)CCR2 = 128;/裝入CCR2的占空值TACTL = TA_1 + MC_1;/時鐘源選擇 ACLK, 定時器 A 增計(jì)數(shù)模式_BIS_SR(LPM3_bits);/進(jìn)入 LPM3 低功耗模式/*例 5定時器 A 模塊的 CCR0 捕獲/比較寄存器的捕獲功能應(yīng)用簡述:利用 CCR0 捕獲/比較寄存器的捕獲功能對 ACLK/8 信號進(jìn)行捕獲,分別捕獲 16 次數(shù)據(jù)到數(shù)組中。在每次捕獲到數(shù)據(jù)時都用新數(shù)據(jù)對
55、舊數(shù)相比較,并將兩數(shù)據(jù)的差異數(shù)據(jù)存入數(shù)組中,同時保存新數(shù)據(jù)。完成 16 次數(shù)據(jù)捕獲后 LED 取反。例程:/*#include unsigned unsigned unsigned new_cap=0; old_cap=0; cap_diff=0;unsigned unsigneddiff_array16; capture_array16;/ 差異數(shù)組/ 捕獲數(shù)組unsigned char index=0;unsigned char count = 0;void main(void)volatile unsignedi;WDTCTL = WDTPW + WDTHOLD; for (i=0; i
56、20000; i+)P1DIR = 0 x01; P1OUT &= 0 x01; P1SEL = 0 x02; P2DIR = 0 x01; P2SEL |= 0 x01;BCSCTL1 |= DIVA_3;/停止看門狗定時器/延時,等待晶體振蕩器稱定/置P1.0 為輸出,P1.1 為輸入/ LED 關(guān)/設(shè)P1.1 為TA0 功能/設(shè)P2.0 方向?yàn)檩敵?設(shè) P2.0 為 ACLK 輸出/將ACLK/8 分頻CCTL0 = CM_1 + SCS + CCIS_0 + CAP + CCIE;/上升邊+ 同步+ CCI0A (P1.1 信號源) + 捕獲功能 + 捕獲中斷允許 微控網(wǎng)TACTL =
57、 TA_2 + MC_2;/ SMCLK 時鐘+連續(xù)計(jì)數(shù)模式_BIS_SR(LPM0_bits + GIE);/進(jìn)入 LPM0 +開總中斷允許#pragma vector=TIMERA0_VECTOR errupt void TimerA0(void)new_cap = TACCR0;cap_diff = new_cap - old_cap;/將中斷時TACCR0 值裝入 new_cap/差異值=新值-舊值diff_arrayindex = cap_diff; capture_arrayindex+ = new_cap; if (index = 16)index = 0; P1OUT = 0
58、x01;old_cap = new_cap; count +;if (count = 32)count = 0;_NOP();/向差異數(shù)組寫入差異值/向捕獲數(shù)組寫入捕獲值/數(shù)組是否已滿?(1-16)/清索引變量/反轉(zhuǎn)P1.0/捕獲新值/*6-比較器 A以下圖可以看出比較器 A 的結(jié)構(gòu)大概可以分 4 部分低通慮波器,基準(zhǔn)電壓部分和中斷部分組成。,分別為模擬輸入,比較器 A,首先,整個比較器 A 的工作必需由 CAON 位置為 1 時才能工作的,此位屬 CACTL1 控制寄存器。單片機(jī)上電時此位是為 0 的,也就是說比較器是不工作的。以下大概講述幾個部分電路的功能和一些相關(guān)信息。模擬輸入電路:外部
59、模擬引腳信號 CA0,CA1(正負(fù)端)可以分別由 P2CA0,P2CA1 位控制開或關(guān)。經(jīng)過軟件的設(shè)置可以分別與內(nèi)部的幾個基準(zhǔn)電壓進(jìn)行比較(0.5VCC,0.25VCC,三極管門值電壓)或外部其中的電壓進(jìn)行比較。應(yīng)用的硬件比較可以分為以下三種組合:兩個外部引腳輸入信號進(jìn)行比較其中一個外部引腳信號與內(nèi)部的 0.5VCC 或 0.25VCC 比較其中一個外部引腳信號與內(nèi)部基準(zhǔn)電壓比較 微控網(wǎng)參考電壓發(fā)生器參考電壓電路是可以由 CARSEL,CARERF0,CARERF1 位來控制電壓的產(chǎn)生。通過軟件設(shè)置可以選擇幾種電壓輸出到比較器的輸入中作為比較,當(dāng)然此參考電壓也可以通過單片機(jī)的引腳往外部提供參考
60、電壓之用。比較器 A比較器 CAON 位控制開關(guān),CAEX 位控制位控制方向。低通慮波器低通慮波器只需一個 CAF 位來控制此慮波器的功能開與關(guān)。此慮波器功能是用于消除比較器輸出信號的毛剌,以保證信號的質(zhì)量和中斷請求的可靠性。中斷請求比較器 A 模塊是具有中斷功能的,如比較器功能 CAIE 中斷允許開了,在 CAIF 信號產(chǎn)生時將生產(chǎn)中斷(當(dāng)然 GIE 要為 1 時)。比較器 A 模塊是具有中斷獨(dú)立向量的,是一個單獨(dú)的中斷, CUP 接受請求后會硬件自動清除中斷標(biāo)志位 CAIFG。 微控網(wǎng)CACTL1 比較器 A 控制寄存器 1CAEX 比較器的輸入端,控制比較器 A 的輸入信號和輸出方向。C
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高性能混凝土材料承包協(xié)議3篇
- 2024版物流運(yùn)輸購銷合同范本
- 2025年新員工試用期間勞動合同范本3篇
- 主體墻面刷漆施工專項(xiàng)合同版B版
- 2025年度貨運(yùn)司機(jī)安全責(zé)任合同3篇
- 二零二五年度二手商品攤位租賃與交易平臺合作協(xié)議3篇
- 二零二五年餐廳員工加班及休息時間合同范本3篇
- 2024聘用培訓(xùn)講師合作協(xié)議書包含師資評估體系3篇
- 2024茶葉行業(yè)市場開拓與推廣合同
- 2024的證券居間合同
- 《國有控股上市公司高管薪酬的管控研究》
- 餐飲業(yè)環(huán)境保護(hù)管理方案
- 人教版【初中數(shù)學(xué)】知識點(diǎn)總結(jié)-全面+九年級上冊數(shù)學(xué)全冊教案
- 食品安全分享
- 礦山機(jī)械設(shè)備安全管理制度
- 計(jì)算機(jī)等級考試二級WPS Office高級應(yīng)用與設(shè)計(jì)試題及答案指導(dǎo)(2025年)
- 造價框架協(xié)議合同范例
- 糖尿病肢端壞疽
- 心衰患者的個案護(hù)理
- 醫(yī)護(hù)人員禮儀培訓(xùn)
- 無人機(jī)飛行安全協(xié)議書
評論
0/150
提交評論