<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于MSP430F11X的低功耗低成本實(shí)時(shí)時(shí)鐘

基于MSP430F11X的低功耗低成本實(shí)時(shí)時(shí)鐘

作者: 時(shí)間:2012-02-22 來(lái)源:網(wǎng)絡(luò ) 收藏

晶體的指定負載電容也影響RTC的精度,晶體的負載電容是晶體所需電容的總和,而不是晶體所提供電容的總和,晶體需要適當的負載電容以便在指定的頻率起振。所有的MSP430器件所用的32768Hz振蕩器已經(jīng)集成了額定電容值為12pF的負載。這就為晶體提供了全部12pF的負載,它意味著(zhù)為了獲取最佳的 RTC精度,必須指定所連接的32768Hz的晶體使用12pF的負載電容。

在RTC容限要求更高的應用領(lǐng)域,可以使用一個(gè)更易調整的電容,在制造時(shí)進(jìn)行調節。

更高級別的陶瓷(即NP0型)電容和聚酯軟片電容較適用于定時(shí)應用領(lǐng)域,因為它們和通用陶瓷電容相比具有更少的介質(zhì)損耗和更佳的溫度系數。

可擴展型

MSP430F111 是極低、低價(jià)格的微控制器,可理想的適用于器件。將MSP430作為RTC的一個(gè)主要優(yōu)點(diǎn)是它與專(zhuān)用的RTC器件相比具有可擴展性。所有的 MSP430x11x期間都包括一個(gè)16位RISC CPU、16位看門(mén)狗定時(shí)器、16位定時(shí)器A(帶3個(gè)捕捉/比較寄存器和模擬比較器)、最小128B的RAM、最小2Kb的ROM和最少14個(gè)腳通用 I/O口。很明顯MSP430能提供其它專(zhuān)用RTC所無(wú)法比擬的靈活性。

除此之外,定時(shí)器A模塊能提供斜率A/D轉換、PWM輸出和工作速率高達115200波特率的UART??撮T(mén)狗定時(shí)器也能作為一個(gè)簡(jiǎn)單的定時(shí)器,并且通用I/O口和所有外圍設備具有可擴展的中斷能力。

軟件設計

RTC的應用程序代碼相當簡(jiǎn)單,包括一個(gè)初始化子程序、一個(gè)主循環(huán)、一個(gè)計算時(shí)、分、秒的計數子程序和一個(gè)處理來(lái)自定時(shí)器A的1s中斷的中斷服務(wù)子程序。

初始化子程序可初始化MSP430的的不同部分??撮T(mén)狗定時(shí)器被禁止,定時(shí)器A模塊被配置為可連續從0數到32768,每次到達32768時(shí)便給出一個(gè)中斷?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/時(shí)鐘">時(shí)鐘模塊也被設置。

主循環(huán)是一個(gè)無(wú)窮循環(huán),每當定時(shí)器A發(fā)出一個(gè)中斷時(shí),它便調用時(shí)鐘計數子程序,否則將CPU置于休眠方式。當CPU休眠時(shí),定時(shí)器A繼續計數。

定時(shí)器A中斷服務(wù)程序(ISR)處理狀態(tài)寄存器(SR)位,該位在進(jìn)入ISR之前被壓入堆棧。這可使CPU在剛從ISR返回時(shí)處于有效方式,而不是休眠方式。ISR也可清零定時(shí)器A中斷標志。

時(shí)鐘計數子程序將每一個(gè)定時(shí)器A中斷計為1秒。

源程序

STARTMOV#Stack,SP
CALL#Setup;初始化設置
MainloopBIS#LPM3,SR;CPU進(jìn)入低模式3
CALL#Clock;中斷處理后進(jìn)入時(shí)鐘計算
JMPMainloop;再次進(jìn)入省電模式
ClockSETC;設進(jìn)位位
DADC.bSECOND;秒加1
CMP.b#060d,SECOND;判斷是否滿(mǎn)1分鐘
JLOClockend;若不滿(mǎn)則跳出
CLR.bSECOND;清空秒計數器
DADC.bMINUTE;分加1
CMP.b#60d,MINUTE;判斷是否滿(mǎn)1小時(shí)
JLOClockend;若不滿(mǎn)則跳出
CLR.bMINUTE;清空分鐘計數器
DADC.bHOUR;小時(shí)加1
CMP.b#024d,HOUR;判斷是否滿(mǎn)24小時(shí)
JLOClockend;若不滿(mǎn)則跳出
CLR.bHOUR;清空小時(shí)計數器
ClockendRET
;設置模塊和控制寄存器
SetupMOV#WDTPW+WDTHOLD,WDTCTL;禁止看門(mén)狗
MOV.b#08Ch,BCSCTL1;設置振蕩器和時(shí)鐘控制寄存器
MOV.b#000h,BCSCTL2;選擇DCOCLK為MCLK時(shí)鐘源
SetupTAMOV#0106h,TACTL;設置定時(shí)器A控制寄存器
MOV#CCRE0,CCTL0;中斷使能
MOV#8000h,CCR0;設置時(shí)間間隔
BIS#10h,TACTL;啟動(dòng)TA,開(kāi)始增計數模式
ClearRAMMOV.b#00h,SECOND;清空秒、分、時(shí)計數器
MOV.b#00h,MINUTE
MOV.b#00h,HOUR
EINT ;中斷使能
RET



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>