版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)技術(shù)與應(yīng)用3.2 低功耗模式低功耗模式 MSP430系列單片機(jī)最主要的特征就是系列單片機(jī)最主要的特征就是低功耗低功耗,該特,該特性適合應(yīng)用于采用長(zhǎng)時(shí)間電池供電的工作場(chǎng)合性適合應(yīng)用于采用長(zhǎng)時(shí)間電池供電的工作場(chǎng)合。MSP430系統(tǒng)使用不同的系統(tǒng)使用不同的時(shí)鐘信號(hào)時(shí)鐘信號(hào):ACLK、MCLK和和SMCLK。這。這3種種不同頻率不同頻率的時(shí)鐘輸出給不同的模塊,從而的時(shí)鐘輸出給不同的模塊,從而更合理地利用系統(tǒng)的電源,實(shí)現(xiàn)整個(gè)系統(tǒng)的超低功耗更合理地利用系統(tǒng)的電源,實(shí)現(xiàn)整個(gè)系統(tǒng)的超低功耗。 MSP430單片機(jī)具有單片機(jī)具有7種低功耗模式種低功耗模式(LPM04、LPM3.5和和LPM4.5,后兩種模式
2、并非,后兩種模式并非全部系列都具有),通過(guò)不同全部系列都具有),通過(guò)不同程度的程度的休眠休眠,可降低系統(tǒng),可降低系統(tǒng)功耗。功耗。MSP430系列單片機(jī)系列單片機(jī)各個(gè)模塊運(yùn)行完全獨(dú)立各個(gè)模塊運(yùn)行完全獨(dú)立,定時(shí)器、輸入,定時(shí)器、輸入/輸出端口、輸出端口、A/D轉(zhuǎn)換、看門狗、液晶顯示器等都可轉(zhuǎn)換、看門狗、液晶顯示器等都可在在CPU休眠狀態(tài)下運(yùn)行休眠狀態(tài)下運(yùn)行。系統(tǒng)能以最低功耗運(yùn)行,當(dāng)需要系統(tǒng)能以最低功耗運(yùn)行,當(dāng)需要CPU工工作時(shí),任何模塊都可以通過(guò)中斷喚醒作時(shí),任何模塊都可以通過(guò)中斷喚醒CPU,完成工作后又,完成工作后又可以進(jìn)入相應(yīng)的休眠狀態(tài)可以進(jìn)入相應(yīng)的休眠狀態(tài)。這一特性是。這一特性是MSP430
3、系列單片機(jī)系列單片機(jī)最突出的優(yōu)點(diǎn),也是與其他單片機(jī)的最大區(qū)別最突出的優(yōu)點(diǎn),也是與其他單片機(jī)的最大區(qū)別。單片機(jī)技術(shù)與應(yīng)用3.2 低功耗模式低功耗模式 MSP430單片機(jī)能夠?qū)崿F(xiàn)低功耗的根本原因是在不同單片機(jī)能夠?qū)崿F(xiàn)低功耗的根本原因是在不同的低功耗模式下的低功耗模式下關(guān)閉不同的系統(tǒng)時(shí)鐘關(guān)閉不同的系統(tǒng)時(shí)鐘,關(guān)閉的系統(tǒng)時(shí),關(guān)閉的系統(tǒng)時(shí)鐘越多休眠模式越深。鐘越多休眠模式越深。 通過(guò)通過(guò)CPU狀態(tài)寄存器狀態(tài)寄存器SR中的中的SCG1、SCG0、OSCOFF和和CPUOFF這這4個(gè)控制位的配置來(lái)關(guān)閉系統(tǒng)個(gè)控制位的配置來(lái)關(guān)閉系統(tǒng)時(shí)鐘,使時(shí)鐘,使MSP430單片機(jī)從活動(dòng)模式進(jìn)入到相應(yīng)的低單片機(jī)從活動(dòng)模式進(jìn)入到相
4、應(yīng)的低功耗模式。再通過(guò)功耗模式。再通過(guò)中斷中斷方式從各種低功耗模式回到活方式從各種低功耗模式回到活動(dòng)模式動(dòng)模式?;顒?dòng)模式活動(dòng)模式低功耗模式低功耗模式SCG1、SCG0、OSCOFF、CPUOFF中斷中斷單片機(jī)技術(shù)與應(yīng)用3.2 低功耗模式低功耗模式注意:注意:在在任何一種低功耗模式下,任何一種低功耗模式下,CPU都被關(guān)閉,程序?qū)⑼V苟急魂P(guān)閉,程序?qū)⑼V箞?zhí)行,直到被中斷喚醒或單片機(jī)復(fù)位。因此在進(jìn)入任何一種低執(zhí)行,直到被中斷喚醒或單片機(jī)復(fù)位。因此在進(jìn)入任何一種低功耗模式之前,都必須功耗模式之前,都必須設(shè)置好喚醒設(shè)置好喚醒CPU的中斷條件、打開(kāi)中斷的中斷條件、打開(kāi)中斷允許位允許位、等待被喚醒,否則程序
5、將有可能永遠(yuǎn)停止運(yùn)行、等待被喚醒,否則程序?qū)⒂锌赡苡肋h(yuǎn)停止運(yùn)行。 另外,另外,MSP430的瞬間響應(yīng)特性是系統(tǒng)超低功耗事件驅(qū)動(dòng)方的瞬間響應(yīng)特性是系統(tǒng)超低功耗事件驅(qū)動(dòng)方式的重要保證。式的重要保證。單片機(jī)技術(shù)與應(yīng)用3.2.1 低功耗工作模式低功耗工作模式工作模式、控制位工作模式、控制位和時(shí)鐘的活動(dòng)狀態(tài)和時(shí)鐘的活動(dòng)狀態(tài)之間的相互關(guān)系。之間的相互關(guān)系。表示中斷表示中斷標(biāo)志位標(biāo)志位設(shè)置設(shè)置該模式下哪些該模式下哪些時(shí)鐘關(guān)閉,哪時(shí)鐘關(guān)閉,哪些時(shí)鐘開(kāi)啟些時(shí)鐘開(kāi)啟單片機(jī)技術(shù)與應(yīng)用工作模式工作模式控制位控制位CPU和時(shí)鐘狀態(tài)和時(shí)鐘狀態(tài)喚醒中斷源喚醒中斷源活動(dòng)模式活動(dòng)模式(AM)SCG1=0, SCG0=0, OS
6、COFF=0, CPUOFF=0CPU活動(dòng)活動(dòng)MCLK活動(dòng)活動(dòng)SMCLK活動(dòng)活動(dòng)ACLK活動(dòng)活動(dòng)DCO可用可用 FLL可用可用定時(shí)器、定時(shí)器、ADC、DMA、UART、WDT、I/O、比較器、外部中斷、比較器、外部中斷、RTC、串行通信、其他外設(shè)、串行通信、其他外設(shè)低功耗模式低功耗模式0(LPM0)SCG1=0, SCG0=0, OSCOFF=0, CPUOFF=1CPU禁止禁止MCLK禁止禁止SMCLK活動(dòng)活動(dòng)ACLK活動(dòng)活動(dòng)DCO可用可用 FLL可用可用定時(shí)器、定時(shí)器、ADC、DMA、UART、WDT、I/O、比較器、外部中斷、比較器、外部中斷、RTC、串行通信、其他外設(shè)、串行通信、其他外
7、設(shè)低功耗模式低功耗模式1(LPM1)SCG1=0, SCG0=1, OSCOFF=0, CPUOFF=1CPU禁止禁止MCLK禁止禁止SMCLK活動(dòng)活動(dòng)ACLK活動(dòng)活動(dòng)DCO可用可用 FLL禁止禁止定時(shí)器、定時(shí)器、ADC、DMA、UART、WDT、I/O、比較器、外部中斷、比較器、外部中斷、RTC、串行通信、其他外設(shè)、串行通信、其他外設(shè)低功耗模式低功耗模式2(LPM2)SCG1=1, SCG0=0, OSCOFF=0, CPUOFF=1CPU禁止禁止MCLK禁止禁止SMCLK禁止禁止ACLK活動(dòng)活動(dòng)DCO可用可用 FLL禁止禁止定時(shí)器、定時(shí)器、ADC、DMA、UART、WDT、I/O、比較器、
8、外部中斷、比較器、外部中斷、RTC、串行通信、其他外設(shè)、串行通信、其他外設(shè)低功耗模式低功耗模式3(LPM3)SCG1=1, SCG0=1, OSCOFF=0, CPUOFF=1CPU禁止禁止MCLK禁止禁止SMCLK禁止禁止ACLK活動(dòng)活動(dòng)DCO可用可用FLL禁止禁止定時(shí)器、定時(shí)器、ADC、DMA、UART、WDT、I/O、比較器、外部中斷、比較器、外部中斷、RTC、串行通信、其他外設(shè)、串行通信、其他外設(shè)低功耗模式低功耗模式4(LPM4)SCG1=1, SCG0=1, OSCOFF=1, CPUOFF=1CPU禁止禁止所有時(shí)鐘禁止所有時(shí)鐘禁止復(fù)位信號(hào)、外部中斷復(fù)位信號(hào)、外部中斷低功耗模式低功耗
9、模式3.5(LPM3.5)SCG1=1, SCG0=1, OSCOFF=1, CPUOFF=1當(dāng)當(dāng)PMMREGOFF = 1,無(wú),無(wú)RAM保持,保持,RTC可以啟用可以啟用(僅限(僅限MSP430F5xx)復(fù)位信號(hào)、外部中斷、復(fù)位信號(hào)、外部中斷、RTC低功耗模式低功耗模式4.5(LPM4.5)SCG1=1, SCG0=1, OSCOFF=1, CPUOFF=1當(dāng)當(dāng)PMMREGOFF = 1,無(wú),無(wú)RAM保持,保持,RTC禁止(僅禁止(僅限限MSP430F5xx)復(fù)位信號(hào)、外部中斷復(fù)位信號(hào)、外部中斷單片機(jī)技術(shù)與應(yīng)用 MSP430內(nèi)部各模塊運(yùn)行完全獨(dú)立。各片內(nèi)模塊可內(nèi)部各模塊運(yùn)行完全獨(dú)立。各片內(nèi)模
10、塊可通過(guò)禁止相應(yīng)寄存器中的控制位來(lái)關(guān)閉。通過(guò)禁止相應(yīng)寄存器中的控制位來(lái)關(guān)閉。 一旦改變了一旦改變了SR中的模式控制位(中的模式控制位(SCG0、SCG1、OSCOFF、CPUOFF),工作模式便立即改變,),工作模式便立即改變,有關(guān)模塊也因?yàn)橄鄳?yīng)的時(shí)鐘源被禁止而被關(guān)閉。有關(guān)模塊也因?yàn)橄鄳?yīng)的時(shí)鐘源被禁止而被關(guān)閉。 改變模式不影響所有的改變模式不影響所有的I/O引腳及引腳及RAM/寄存器的寄存器的值。值。SCG0SCG1CZNGIECPUOFFOSCOFF7 6 5 4 3 2 1 0保留保留V15 14 13 12 11 10 9 8SR狀態(tài)寄存器狀態(tài)寄存器單片機(jī)技術(shù)與應(yīng)用3.2.2 進(jìn)入和退出
11、低功耗模式進(jìn)入和退出低功耗模式 在活動(dòng)模式下,按低功耗模式在活動(dòng)模式下,按低功耗模式設(shè)定設(shè)定SR中的控制位中的控制位,MSP430就就進(jìn)入進(jìn)入設(shè)定的設(shè)定的低功耗模式低功耗模式,此時(shí),此時(shí)CPU寄存器的值保持不變,有關(guān)的模塊也因?yàn)橄鄳?yīng)的寄存器的值保持不變,有關(guān)的模塊也因?yàn)橄鄳?yīng)的時(shí)鐘源被禁止而被關(guān)閉。時(shí)鐘源被禁止而被關(guān)閉。 任意任意中斷中斷均可喚醒處于低功耗模式的均可喚醒處于低功耗模式的MSP430,使,使MSP430切換到切換到AM活動(dòng)模式,即活動(dòng)模式,即退出低功耗模式退出低功耗模式。單片機(jī)技術(shù)與應(yīng)用 硬件自動(dòng)中斷當(dāng)前服務(wù)硬件自動(dòng)中斷當(dāng)前服務(wù)PC入棧入棧SR入棧入棧中斷向量賦給中斷向量賦給PCG
12、IE、CPUOFF、OSCOFF和和SCG1清除清除IFG標(biāo)志位清除(單源中斷標(biāo)志)標(biāo)志位清除(單源中斷標(biāo)志) 執(zhí)行中斷處理子程序執(zhí)行中斷處理子程序 執(zhí)行執(zhí)行RETI指令(中斷返回)指令(中斷返回)SR出棧(恢復(fù)原來(lái)的標(biāo)志)出棧(恢復(fù)原來(lái)的標(biāo)志)PC出棧出棧在低功耗模式下,所有的在低功耗模式下,所有的I/O引腳和引腳和RAM寄存器將保寄存器將保持持不變不變??梢钥梢酝ㄟ^(guò)開(kāi)中斷后用中斷事件來(lái)喚醒通過(guò)開(kāi)中斷后用中斷事件來(lái)喚醒LMP0到到LMP4。系統(tǒng)響應(yīng)中斷的過(guò)程系統(tǒng)響應(yīng)中斷的過(guò)程單片機(jī)技術(shù)與應(yīng)用堆棧初始狀態(tài)堆棧初始狀態(tài)入棧時(shí)入棧時(shí)PC和和SR出棧前出棧前PC和和SR系統(tǒng)響應(yīng)中斷時(shí)的堆棧情況:系統(tǒng)
13、響應(yīng)中斷時(shí)的堆棧情況:?jiǎn)纹瑱C(jī)技術(shù)與應(yīng)用 中斷將中斷將CPU從休眠狀態(tài)中從休眠狀態(tài)中喚醒喚醒:在中斷處理過(guò)程中對(duì):在中斷處理過(guò)程中對(duì)控制位控制位GIE、CPUOFF、OSCOFF和和SCG1自動(dòng)清除自動(dòng)清除,從而使從而使CPU進(jìn)入活動(dòng)模式。進(jìn)入活動(dòng)模式。 系統(tǒng)低功耗模式的系統(tǒng)低功耗模式的保持保持:中斷響應(yīng)時(shí),將:中斷響應(yīng)時(shí),將SR入棧保存入棧保存,即保存系統(tǒng)某種低功耗狀態(tài)。中斷響應(yīng)結(jié)束時(shí),通,即保存系統(tǒng)某種低功耗狀態(tài)。中斷響應(yīng)結(jié)束時(shí),通過(guò)過(guò)RETI指令使指令使SR出棧出棧,恢復(fù)系統(tǒng)進(jìn)入中斷之前的低功,恢復(fù)系統(tǒng)進(jìn)入中斷之前的低功耗耗狀態(tài)。狀態(tài)。 系統(tǒng)根據(jù)需求在各種低功耗模式之間系統(tǒng)根據(jù)需求在各種低
14、功耗模式之間切換切換:在中斷處:在中斷處理子程序過(guò)程中,根據(jù)中斷結(jié)束之后要進(jìn)入的工作模理子程序過(guò)程中,根據(jù)中斷結(jié)束之后要進(jìn)入的工作模式對(duì)壓入堆棧的式對(duì)壓入堆棧的SR內(nèi)容進(jìn)行內(nèi)容進(jìn)行修改修改,當(dāng)前中斷事件處理,當(dāng)前中斷事件處理完畢,執(zhí)行完畢,執(zhí)行RETI指令時(shí),系統(tǒng)就按照出棧的指令時(shí),系統(tǒng)就按照出棧的SR內(nèi)容進(jìn)內(nèi)容進(jìn)入另一種工作模式。入另一種工作模式。單片機(jī)技術(shù)與應(yīng)用; 主程序主程序.; 初始化初始化操作開(kāi)始操作開(kāi)始; 初始化初始化完畢完畢BIS #GIE+CPUOFF,SR ; 主程序中設(shè)置低功耗模式主程序中設(shè)置低功耗模式0.; 主程序主程序在這里停止在這里停止; 中斷中斷子程序子程序; 中斷
15、處理中斷處理開(kāi)始開(kāi)始;中斷處理結(jié)束中斷處理結(jié)束B(niǎo)IS #GIE+CPUOFF+SCG1+SCG0,0(SP); 設(shè)置設(shè)置SR為低功耗模式為低功耗模式3RETI; 中斷中斷返回返回; 系統(tǒng)系統(tǒng)進(jìn)入低功耗模式進(jìn)入低功耗模式3 例例:系統(tǒng)初始化完畢之后工作于低功耗模式系統(tǒng)初始化完畢之后工作于低功耗模式0,中斷,中斷事件觸發(fā)到活動(dòng)模式,中斷處理結(jié)束后進(jìn)入到低功事件觸發(fā)到活動(dòng)模式,中斷處理結(jié)束后進(jìn)入到低功耗模式耗模式3。單片機(jī)技術(shù)與應(yīng)用在上述處理過(guò)程中,堆棧的變化情況,如下圖所示:在上述處理過(guò)程中,堆棧的變化情況,如下圖所示:堆棧初始狀態(tài)堆棧初始狀態(tài)入棧時(shí)入棧時(shí)PC和和SR出棧前出棧前PC和和SR單片機(jī)
16、技術(shù)與應(yīng)用; 主程序主程序.; 初始化初始化操作開(kāi)始操作開(kāi)始; 初始化初始化完畢完畢BIS #GIE+CPUOFF,SR ; 主程序中設(shè)置低功耗模式主程序中設(shè)置低功耗模式0L1; 操作操作1L2; 操作操作2; 中斷中斷子程序子程序; 中斷處理中斷處理開(kāi)始開(kāi)始;中斷處理結(jié)束中斷處理結(jié)束B(niǎo)IC #0000h,0(SP); 設(shè)置設(shè)置SR為活動(dòng)模式為活動(dòng)模式RETI; 中斷返回,系統(tǒng)進(jìn)入活動(dòng)模式中斷返回,系統(tǒng)進(jìn)入活動(dòng)模式 例例:如果期待主程序在中斷返回之后繼續(xù)執(zhí)行某些操如果期待主程序在中斷返回之后繼續(xù)執(zhí)行某些操作,可以在中斷處理子程序中改變作,可以在中斷處理子程序中改變SR的值為活動(dòng)模式的值為活動(dòng)模
17、式單片機(jī)技術(shù)與應(yīng)用 當(dāng)當(dāng)進(jìn)入進(jìn)入LPMx.5(LPM3.5和和LPM4.5)模式時(shí),電源管)模式時(shí),電源管理模塊(理模塊(PMM)的電壓調(diào)節(jié)器也)的電壓調(diào)節(jié)器也停止停止工作。所有的工作。所有的RAM、寄存器及、寄存器及I/O口的配置數(shù)據(jù)都將丟失口的配置數(shù)據(jù)都將丟失,所有的,所有的I/O口被鎖定口被鎖定在當(dāng)前狀態(tài)在當(dāng)前狀態(tài)。 LMP4.5可以通過(guò)可以通過(guò)上電、復(fù)位或具體的上電、復(fù)位或具體的I/O口口來(lái)喚醒。來(lái)喚醒。在在LPM3.5模式下,除了可以用模式下,除了可以用LPM4.5模式下的喚醒模式下的喚醒事件外,還可用事件外,還可用RTC喚醒事件喚醒事件來(lái)喚醒。來(lái)喚醒。 從從LPMx.5模式下模式下
18、退出退出都會(huì)產(chǎn)生一次都會(huì)產(chǎn)生一次BOR事件。因此,事件。因此,在退出在退出LPMx.5模式后,模式后,I/O口的狀態(tài)將一直保持鎖定口的狀態(tài)將一直保持鎖定狀態(tài)直到應(yīng)用程序解除鎖定,用戶應(yīng)根據(jù)需要重新配狀態(tài)直到應(yīng)用程序解除鎖定,用戶應(yīng)根據(jù)需要重新配置芯片。置芯片。進(jìn)入和退出低功耗模式(進(jìn)入和退出低功耗模式(LPMx.5)單片機(jī)技術(shù)與應(yīng)用進(jìn)入進(jìn)入LPMx.5前,需要前,需要進(jìn)行以下操作:進(jìn)行以下操作:(1)適當(dāng)配置適當(dāng)配置I/O口??凇?將將所有端口設(shè)置為通用所有端口設(shè)置為通用I/O口,實(shí)際應(yīng)用的每個(gè)端口,實(shí)際應(yīng)用的每個(gè)端口保證沒(méi)有懸空輸入管腳??诒WC沒(méi)有懸空輸入管腳。 如果如果希望通過(guò)希望通過(guò)I/
19、O口喚醒,需要恰當(dāng)配置具有中斷口喚醒,需要恰當(dāng)配置具有中斷能力的相關(guān)能力的相關(guān)I/O口。口。(2)在在LPMx.5模式下如果希望通過(guò)模式下如果希望通過(guò)RTC(實(shí)時(shí)時(shí)鐘)喚醒(實(shí)時(shí)時(shí)鐘)喚醒,則需要配置,則需要配置RTC中斷。中斷。進(jìn)入和退出低功耗模式(進(jìn)入和退出低功耗模式(LPMx.5)單片機(jī)技術(shù)與應(yīng)用3.2.3 低功耗應(yīng)用原則低功耗應(yīng)用原則一般的低功耗原則一般的低功耗原則 最大化延長(zhǎng)其在最大化延長(zhǎng)其在LPM3或或LPM4模式下的時(shí)間,用模式下的時(shí)間,用32KHz晶振作為晶振作為ACLK時(shí)鐘,時(shí)鐘,DCO用于用于CPU激活后激活后的突發(fā)短暫運(yùn)行的突發(fā)短暫運(yùn)行。 如果在應(yīng)用中有短暫性的周期工作并
20、對(duì)反應(yīng)速度不如果在應(yīng)用中有短暫性的周期工作并對(duì)反應(yīng)速度不敏感的場(chǎng)合,可以最大化的利用敏感的場(chǎng)合,可以最大化的利用 LPMx.5 模式來(lái)降模式來(lái)降低功耗。低功耗。 用用接口模塊代替軟件驅(qū)動(dòng)功能。例如接口模塊代替軟件驅(qū)動(dòng)功能。例如Timer_A 和和 Timer_B 可以自動(dòng)產(chǎn)生可以自動(dòng)產(chǎn)生 PWM和捕獲外部時(shí)序,而不和捕獲外部時(shí)序,而不占用占用 CPU 資源資源。單片機(jī)技術(shù)與應(yīng)用3.2.3 低功耗應(yīng)用原則低功耗應(yīng)用原則一般的低功耗原則一般的低功耗原則 用中斷控制程序運(yùn)行。用中斷控制程序運(yùn)行。 用可計(jì)算的分支代替標(biāo)志位測(cè)試產(chǎn)生的分支。用可計(jì)算的分支代替標(biāo)志位測(cè)試產(chǎn)生的分支。 用快速查表代替冗長(zhǎng)的軟
21、件計(jì)算。用快速查表代替冗長(zhǎng)的軟件計(jì)算。 在冗長(zhǎng)的軟件計(jì)算中使用單周期的在冗長(zhǎng)的軟件計(jì)算中使用單周期的CPU寄存器。寄存器。 避免頻繁的子程序和函數(shù)調(diào)用。避免頻繁的子程序和函數(shù)調(diào)用。 盡可能直接用電池供電。盡可能直接用電池供電。單片機(jī)技術(shù)與應(yīng)用3.2.3 低功耗應(yīng)用原則低功耗應(yīng)用原則在設(shè)計(jì)外設(shè)時(shí)還有一些常規(guī)原則在設(shè)計(jì)外設(shè)時(shí)還有一些常規(guī)原則 將不用的將不用的FETI輸入端連接到輸入端連接到VSS。 JTAG端口端口TMS、TCK和和TDI不要連接到不要連接到VSS。 CMOS輸入端不能有浮空節(jié)點(diǎn),將所有輸入端接適輸入端不能有浮空節(jié)點(diǎn),將所有輸入端接適當(dāng)?shù)碾娖疆?dāng)?shù)碾娖健?不論對(duì)于內(nèi)核還是對(duì)于各外圍模
22、塊,選擇盡可能低不論對(duì)于內(nèi)核還是對(duì)于各外圍模塊,選擇盡可能低的運(yùn)行頻率,如果不影響功能應(yīng)設(shè)計(jì)自動(dòng)關(guān)機(jī)。的運(yùn)行頻率,如果不影響功能應(yīng)設(shè)計(jì)自動(dòng)關(guān)機(jī)。單片機(jī)技術(shù)與應(yīng)用與低功耗模式相關(guān)的內(nèi)部函數(shù)與低功耗模式相關(guān)的內(nèi)部函數(shù)_bis_SR_register(LPM0_bits); 或或LPM0;/ 進(jìn)入低功耗模式進(jìn)入低功耗模式0_bis_SR_register(LPM1_bits); 或或LPM1;/ 進(jìn)入低功耗模式進(jìn)入低功耗模式1_bis_SR_register(LPM2_bits); 或或LPM2;/ 進(jìn)入低功耗模式進(jìn)入低功耗模式2_bis_SR_register(LPM3_bits); 或或LPM3
23、;/ 進(jìn)入低功耗模式進(jìn)入低功耗模式3_bis_SR_register(LPM4_bits); 或或LPM4;/ 進(jìn)入低功耗模式進(jìn)入低功耗模式4_bic_SR_register_on_exit(LPM0_bits);或或LPM0_EXIT; / 退出低功耗模式退出低功耗模式0_bic_SR_register_on_exit(LPM1_bits);或或LPM1_EXIT; / 退出低功耗模式退出低功耗模式1_bic_SR_register_on_exit(LPM2_bits);或或LPM2_EXIT; / 退出低功耗模式退出低功耗模式2_bic_SR_register_on_exit(LPM3_b
24、its);或或LPM3_EXIT; / 退出低功耗模式退出低功耗模式3_bic_SR_register_on_exit(LPM4_bits);或或LPM4_EXIT;/ 退出低功耗模式退出低功耗模式4_bis_SR_register(LPMx_bits + GIE);/ 常用常用,進(jìn)低功耗模式進(jìn)低功耗模式x,啟用中斷啟用中斷(x=04)#define LPM0_bits (CPUOFF)#define LPM1_bits (SCG0+CPUOFF)#define LPM2_bits (SCG1+CPUOFF)#define LPM3_bits (SCG1+SCG0+CPUOFF)#define
25、 LPM4_bits (SCG1+SCG0+OSCOFF+CPUOFF)低功耗模式定義低功耗模式定義單片機(jī)技術(shù)與應(yīng)用3.2.4 低功耗應(yīng)用舉例低功耗應(yīng)用舉例(1)利用軟件延時(shí)的方法實(shí)現(xiàn))利用軟件延時(shí)的方法實(shí)現(xiàn)LED閃爍閃爍#include void main(void) volatile unsigned int i; WDTCTL = WDTPW+WDTHOLD; / 關(guān)閉看門狗關(guān)閉看門狗 P1DIR |= BIT0; / 將將P1.0設(shè)置為輸出設(shè)置為輸出 while(1) / 主循環(huán)主循環(huán) P1OUT = BIT0; / 反轉(zhuǎn)反轉(zhuǎn)P1.0引腳輸出狀態(tài)引腳輸出狀態(tài) for(i=50000;i
26、0;i-); / 延時(shí)一段時(shí)間延時(shí)一段時(shí)間 例例:假設(shè)假設(shè)MSP430F5529單片機(jī)的單片機(jī)的P1.0引腳外接一個(gè)引腳外接一個(gè)紅色的小紅色的小LED,分別分別利用軟件延遲和定時(shí)器實(shí)現(xiàn)利用軟件延遲和定時(shí)器實(shí)現(xiàn)LED閃爍。閃爍。單片機(jī)技術(shù)與應(yīng)用(2)利用定時(shí)器延時(shí)實(shí)現(xiàn))利用定時(shí)器延時(shí)實(shí)現(xiàn)LED閃爍閃爍#include void main(void) WDTCTL = WDTPW + WDTHOLD; / 關(guān)閉看門狗關(guān)閉看門狗 P1DIR |= 0 x01; / 將將P1.0設(shè)為輸出設(shè)為輸出 TA0CCTL0 = CCIE; / CCR0中斷允許中斷允許 TA0CCR0 = 50000; TA0C
27、TL = TASSEL_2 + MC_1 + TACLR; / 參考時(shí)鐘選擇參考時(shí)鐘選擇SMCLK, /增增計(jì)數(shù)模式計(jì)數(shù)模式, 清除清除TAR計(jì)計(jì) /數(shù)器數(shù)器 _ _bis_SR_register(LPM0_bits + GIE); / 進(jìn)入進(jìn)入LPM0并使能全局中斷并使能全局中斷/TA0中斷服務(wù)程序中斷服務(wù)程序#pragma vector=TIMER0_A0_VECTOR_ _interrupt void TIMER0_A0_ISR(void) P1OUT = 0 x01; / 反轉(zhuǎn)反轉(zhuǎn)P1.0端口狀態(tài)端口狀態(tài)單片機(jī)技術(shù)與應(yīng)用 在利用軟件延時(shí)的方法實(shí)現(xiàn)在利用軟件延時(shí)的方法實(shí)現(xiàn)LED閃爍的程序
28、中,閃爍的程序中,CPU從從50000開(kāi)始一直在減計(jì)數(shù),直到開(kāi)始一直在減計(jì)數(shù),直到i等于等于0,反轉(zhuǎn),反轉(zhuǎn)一次一次P1.0端口狀態(tài),之后繼續(xù)計(jì)數(shù),從不停止。端口狀態(tài),之后繼續(xù)計(jì)數(shù),從不停止。 在利用定時(shí)器延時(shí)的方法實(shí)現(xiàn)在利用定時(shí)器延時(shí)的方法實(shí)現(xiàn)LED閃爍的程序中,閃爍的程序中,當(dāng)程序?qū)⒍〞r(shí)器當(dāng)程序?qū)⒍〞r(shí)器TA0配置完成之后,配置完成之后,MSP430單片機(jī)單片機(jī)就進(jìn)入就進(jìn)入LPM0模式,模式,CPU立刻被停止。只有當(dāng)定時(shí)立刻被停止。只有當(dāng)定時(shí)時(shí)間到(時(shí)間到(50000個(gè)個(gè)SMCLK時(shí)鐘周期),時(shí)鐘周期),CPU才被喚才被喚醒執(zhí)行醒執(zhí)行TA0中斷服務(wù)程序,進(jìn)而反轉(zhuǎn)中斷服務(wù)程序,進(jìn)而反轉(zhuǎn)P1.0端
29、口輸出狀端口輸出狀態(tài),之后再次進(jìn)入態(tài),之后再次進(jìn)入LPM0,等待定時(shí)時(shí)間到再反轉(zhuǎn),等待定時(shí)時(shí)間到再反轉(zhuǎn)P1.0端口輸出狀態(tài)。端口輸出狀態(tài)。單片機(jī)技術(shù)與應(yīng)用(1)采用等待的方法進(jìn)行串口發(fā)送)采用等待的方法進(jìn)行串口發(fā)送void USCI_A0_PutChar(char Chr);/* * 名名 稱:稱:USCI_A0_PutChar()* 功功 能:從串口發(fā)送能:從串口發(fā)送1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)* 入口參數(shù):入口參數(shù):Chr:待發(fā)送的待發(fā)送的1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)* 出口參數(shù):無(wú)出口參數(shù):無(wú)* 說(shuō)說(shuō) 明:該函數(shù)在發(fā)送數(shù)據(jù)的過(guò)程中會(huì)阻塞明:該函數(shù)在發(fā)送數(shù)據(jù)的過(guò)程中會(huì)阻塞CPU運(yùn)行運(yùn)行*/void USCI_
30、A0_PutChar(char Chr) UCA0TXBUF = Chr; while (!(UCA0IFG & UCTXIFG); / 等待該字節(jié)發(fā)送完畢等待該字節(jié)發(fā)送完畢 例例:MSP430F5529單片機(jī)單片機(jī)從從串口發(fā)送串口發(fā)送1個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù),先將數(shù)據(jù)寫入發(fā)送寄存器,等待發(fā)送完畢,然后,先將數(shù)據(jù)寫入發(fā)送寄存器,等待發(fā)送完畢,然后再發(fā)送下再發(fā)送下1個(gè)字節(jié)。個(gè)字節(jié)。利用利用低功耗模式替代程序流程中低功耗模式替代程序流程中的等待過(guò)程的等待過(guò)程。單片機(jī)技術(shù)與應(yīng)用(2)采用低功耗模式進(jìn)行串口發(fā)送)采用低功耗模式進(jìn)行串口發(fā)送void USCI_A0_PutChar(char Chr
31、);/* * 名名 稱:稱:USCI_A0_PutChar() * 功功 能:從串口發(fā)送能:從串口發(fā)送1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù) * 入口參數(shù):入口參數(shù):Chr:待發(fā)送的待發(fā)送的1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù) * 出口參數(shù):無(wú)出口參數(shù):無(wú) * 說(shuō)說(shuō) 明:利用低功耗模式發(fā)送明:利用低功耗模式發(fā)送1字節(jié)數(shù)據(jù),不會(huì)阻塞字節(jié)數(shù)據(jù),不會(huì)阻塞CPU運(yùn)行運(yùn)行*/void USCI_A0_PutChar(char Chr)UCA0TXBUF = Chr;_ _bis_SR_register(LPM3_bits + GIE); 例例:MSP430F5529單片機(jī)單片機(jī)從從串口發(fā)送串口發(fā)送1個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù),先將數(shù)據(jù)寫入發(fā)送寄存
32、器,等待發(fā)送完畢,然后,先將數(shù)據(jù)寫入發(fā)送寄存器,等待發(fā)送完畢,然后再發(fā)送下再發(fā)送下1個(gè)字節(jié)。個(gè)字節(jié)。利用利用低功耗模式替代程序流程中低功耗模式替代程序流程中的等待過(guò)程的等待過(guò)程。單片機(jī)技術(shù)與應(yīng)用(2)采用低功耗模式進(jìn)行串口發(fā)送)采用低功耗模式進(jìn)行串口發(fā)送/ USCI_A0中斷服務(wù)程序中斷服務(wù)程序#pragma vector=USCI_A0_VECTOR_ _interrupt void USCI_A0_ISR(void) switch(_ _even_in_range(UCA0IV,4) case 0:break; / 中斷向量中斷向量 0無(wú)中斷無(wú)中斷 case 2:break; / 中斷向量
33、中斷向量 2接收中斷接收中斷 case 4: / 中斷向量中斷向量 4發(fā)送中斷發(fā)送中斷_ _bic_SR_register_on_exit(LPM3_bits);break; default: break; 例例:MSP430F5529單片機(jī)單片機(jī)從從串口發(fā)送串口發(fā)送1個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù),先將數(shù)據(jù)寫入發(fā)送寄存器,等待發(fā)送完畢,然后,先將數(shù)據(jù)寫入發(fā)送寄存器,等待發(fā)送完畢,然后再發(fā)送下再發(fā)送下1個(gè)字節(jié)。個(gè)字節(jié)。利用利用低功耗模式替代程序流程中低功耗模式替代程序流程中的等待過(guò)程的等待過(guò)程。單片機(jī)技術(shù)與應(yīng)用 采用等待的方法采用等待的方法發(fā)送數(shù)據(jù)速度發(fā)送數(shù)據(jù)速度較慢且會(huì)阻塞較慢且會(huì)阻塞CPU的的運(yùn)行,同時(shí),運(yùn)行,同時(shí),CPU也將耗去大部分的電能也將耗去大部分的電能。 若若將等待過(guò)程替換成休眠模式,則可節(jié)省大量的將等待過(guò)程替換成休眠模式,則可節(jié)省大量的CPU耗電。假設(shè)使用耗電。假設(shè)使用ACLK作為串口模塊的時(shí)鐘,作為串口模塊的時(shí)鐘
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡(jiǎn)易勞務(wù)分包合同范本頁(yè)2024年
- 2024股份協(xié)議書樣本
- 失禁相關(guān)性皮炎
- 2024年醫(yī)療耗材采購(gòu)合同
- 保安公司用工協(xié)議樣本
- 農(nóng)藥分銷協(xié)議樣本
- 社區(qū)租房合同文本
- 房地產(chǎn)項(xiàng)目承包管理合同
- 潤(rùn)滑油采購(gòu)合同的環(huán)保要求
- 創(chuàng)作者版權(quán)聲明與保護(hù)合同
- 產(chǎn)品設(shè)計(jì)中材料選擇與開(kāi)發(fā)
- 工程結(jié)算匯總表及工程結(jié)算明細(xì)表(范本)
- 管線管廊布置設(shè)計(jì)規(guī)范
- 《會(huì)計(jì)平衡公式》教案
- 八年級(jí)黃金矩形(數(shù)學(xué)活動(dòng))ppt課件
- 銷售技巧個(gè)頂尖電梯銷售技巧
- 《幼兒園衛(wèi)生保健后勤材料資料》幼兒園保健醫(yī)生每日檢查工作記錄表
- 葡萄糖生產(chǎn)教程
- 需求價(jià)格彈性案例分析
- 企業(yè)內(nèi)部通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 計(jì)算機(jī)論文
- 重大決策合法性審查表.doc
評(píng)論
0/150
提交評(píng)論