




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、作者:盛多錚單位:安徽師范大學(xué)電子信息工程系說(shuō)明:文檔僅供學(xué)習(xí)和參考用,任何商業(yè)使用務(wù)必經(jīng)過(guò)作者本人同意,否者將承擔(dān)法律責(zé)任寒假的時(shí)候開(kāi)始接觸飛思卡爾系列單片機(jī),市場(chǎng)上還沒(méi)有以MC9S12XS128為例介紹的書(shū)籍,我買(mǎi)了一本蘇州大學(xué)王宜懷老師寫(xiě)的嵌入式系統(tǒng)一一使用HCS12微控制器的設(shè)計(jì)與應(yīng)用,這本書(shū)寫(xiě)的很好,各模塊的編程都講解的很詳細(xì)。但是書(shū)畢竟好多地方還是翻譯手冊(cè)的,固然沒(méi)有手冊(cè)寫(xiě)的那么詳細(xì),而且書(shū)中的例子是以DG128為例給出的。由于自己的英文水平也不是那么的好,只能一邊參考中文書(shū)籍,一邊對(duì)照著9s128的Datasheet看。為了讓后來(lái)的飛思卡爾學(xué)習(xí)者在入門(mén)的時(shí)候少走些彎路,這里將自己
2、在各模塊學(xué)習(xí)時(shí)候的一些收獲總結(jié)如下,僅供參考。個(gè)人覺(jué)得SCI模塊還是很簡(jiǎn)單的,設(shè)計(jì)到的寄存器不是很多,所以就先講SCI模塊的應(yīng)用吧。不論是哪個(gè)模塊的應(yīng)用,在編寫(xiě)程序的時(shí)候總是要設(shè)計(jì)到MCU的初始化,所謂MCUinit,無(wú)非是設(shè)置總線(xiàn)的時(shí)鐘,設(shè)置PLL,決定是否允許IRQ中斷和看門(mén)狗。所以要講SCI模塊的編程,還得先介紹一下CRG模塊的知識(shí)。下面是手冊(cè)上給出的關(guān)于CRG模塊的寄存器:Figure8*2givesanoverviewonallS12XECRGregisters.Bit7654321BHOR0x0000SYHRWR0x0001REFDVwR0x0002POSTDIVWR0x0003C
3、RGFLGWR0x£)004CRGINTWR0x0005CLKSELWR0x0006PLLCTLWR0x0007RTICTLWR0x0008COPCTLWrR(IxflOOeFORBYP2W,ROkOOOActctl2wROxOOOBARMCOPW2FORBYPandCTCTLsVCQFRQI1:0SYNDIV5:0REFFRQ1:0|REFDIV5:000aPOSTDIV4:0|RTIFPORFLVRFLOCKIFLOCKILAFSCMIFSCMRTIE00LOCKIE00SCMIE0PLLSELPSTPXCLKS0PLLWAI0RTIWAICOPWAICMEPLLONFM1FM0
4、FSTWKPPREPCESCMERTDECRTR6RTR5RTR4RTR3RTR2RTR1RTROWCOPRSBCKa00CR2CR1CR0WRTKfASK000000000000000Q0000D000Bit7BiiaBttSBit4Bit2Bit1BitOreintgfidedlkjrfactorytestpurpo&esonly.=Unimpleiment&dorReserved在編程時(shí)經(jīng)常要用到的寄存器有:CRG合成器寄存器(SYNR)CRG參考分頻寄存器,(REFDV)CRG標(biāo)志寄存器(CRGFLG)CRG時(shí)鐘選擇寄存器(CLKSEL)PLL控制寄存器(PLLCTL)
5、看門(mén)狗控制寄存器(COPCTL)實(shí)時(shí)中斷寄存器(RTICTL)S12XECRGPostDividerRegister(POSTDIV,這個(gè)寄存器不知道中文名稱(chēng)叫什么,反正也不影響編程呵呵)根據(jù)需要設(shè)置的時(shí)鐘頻率來(lái)設(shè)置SYNR和REFDV,其計(jì)算公式為f=v(SYNDIV-l)VCO'黑TOSCX(REFDIV*1)f=PLL2xPOSTDIV/_fPLI.BUS其中在POSTDV寄存器的值設(shè)為0時(shí),fVCO和fPLL相等,比如說(shuō),外部晶振是9.8304MHZ,SYNR和REFDIV的值分別為1和0,貝UBUS的頻率為19.6608MHZ。對(duì)于CRGFLG寄存器,手冊(cè)上給出的關(guān)于各位的描
6、述是這樣的:FieldDescription7RTIFRealTimeInterruptFlagRTIFisto1attheendofltieRTIperiod.Thisflagcanionlybeclearedbywritonga1.Writinga0hasnoeffectIfenabted(RTIE-1),RTIFcausesaninterruptrequest0RTItime-outhasnotyetoccurred.1RTItims<nuthasoccurred.6PORFPoweronResotFlagPORFissetto1whenapowGironresetoccurs.T
7、hisflagcanonlybeclearedbywritinga1.Writinga0has.noeffect.0Ptweronresethas.notoccurred1Roweronresethasoccurred.5LVRFLewVoltageResetFlagLVRFissetto1whenalewvoltageresetoccursThisflagcanonly!>eclearedfrywritingaLWritinga0hasnoeffect.0LowvoltagsrGsethasnotoccurred.1Lowvoltageresethasoccurred4LOCKIFIP
8、LLLockInterruplFlagLOCKIF伶to*/fbenLQCKstatusbitchanges.ThiHagcnonlybeclearedbywritinga1,Wriiina0hasnoeffectIfenabledLOCKIE-1.LOCKIFcausesaninterruptrequest.0NcchangeinLOCKbiL1LOCKbithaschanged.3LOCKLockStatusBitLOCKreflectsIhecurrentstateofIPLLlockcondition.ThisbitisdearedinSelfClockModa.Writsshaven
9、oeffect.0VCOCLKisnolwithinIhedesiredtoleranceoftheJargetfrequency.1VCOCLKiswithintiledesiredtoleranceofthetarg-elfrequency.2ILAFIllegalAddressResetFlagHLAFIssetto1whenanIllegaladdressresetoouraRefertoS12XMMCBlotikGuidefardetais.Thisflagcanonlybaclearedbywritinga1.Writinga0hasnoeffect.0Illegaladdress
10、reðasnotoccijrrecl.1Illegaladdressreselhasoccurred.1SCMIFSelfClockModeInl&iTuptFlag一SCMIFi$s,etto1whenSCM孰alusbitchangesThis(lagcanonlybectearedbywritinga1,Writinga0hasnoeffectIfenabled(SCMIE-1),SCMIFcausesaninlerruptrequesl.0NochangeinSCMbit1SCMbithaschainged.0SCMSelfClockModeStatusBitSC
11、M陽(yáng)fleetsitiBcurrentclockingmode.Writ&shavenoeffeot.0MCUisoperatingnomalllywithOSCCLKavailable1MCUisoperatinghSelfClockModewithOSCCLKInanunknownstaleAllclocksarederivedfromPLLCLKrunningatitsminimumfrequency£鋪儲(chǔ).一般在初始化MCU的時(shí)候用的較多的是LOCK位,該位反應(yīng)了VCOCLK是否已經(jīng)達(dá)到了我們所期望的在誤差允許范圍的頻率值,也就是說(shuō)PLL模塊是否已經(jīng)穩(wěn)定,該位為1時(shí)才
12、能將總線(xiàn)的時(shí)鐘源選擇為PLL時(shí)鐘。對(duì)于時(shí)鐘選才I寄存器CLKSEL,編程時(shí)用的最多的是第7位(PLLSEL),該位用于確定系統(tǒng)的時(shí)鐘來(lái)源。為0:總線(xiàn)時(shí)鐘來(lái)源于外部晶振;為1;總線(xiàn)時(shí)鐘來(lái)源于PLL模塊。還有一個(gè)使用較多的寄存器是PLL控制寄存器(PLLCTL),常用的是寄存器的第6位,用于設(shè)置PLL是否打開(kāi)。對(duì)于入門(mén)者而言,了解這么多已經(jīng)基本能滿(mǎn)足單片機(jī)初始化編程的需要了呵呵。講這么多了,都知道說(shuō)的再多都沒(méi)有具體的例子實(shí)在,下面是SCI模塊中MCU初始化程序:/MCUInit.cXS128芯片初始化函數(shù)功能:/芯片初始化設(shè)置:通過(guò)設(shè)置CLKSEL寄存器,確定內(nèi)部時(shí)鐘的時(shí)鐘源;通過(guò)PLL/編程,設(shè)
13、置PLLCLK;通過(guò)設(shè)置COPCTL,設(shè)置是否允許看門(mén)狗。/(1)外部晶振=9.8304MHZ,BusClock=19.6608MHZ/(2)禁止看門(mén)狗/參數(shù):無(wú)/返回:無(wú)頭文件#includeMCUInit.h"/芯片初始化頭文件VoidMCUInit(void)/禁止總中斷DISABLE_INTERRUPTS;在PLL穩(wěn)定前設(shè)置系統(tǒng)時(shí)鐘來(lái)源于OSCCLKCLKSEL&=0x7f;此時(shí)BUSClock=OSCCLK/2/禁止PLLPLLCTL&=0xbf;/PLLCTL.6(PLLON)設(shè)為0,關(guān)PLL根據(jù)需要的時(shí)鐘頻率設(shè)置SYNR和REFDV寄存器計(jì)算公式:PLL
14、CLK=2*OSCCLK*(SYNR+1)/(REFDV+1)SYNR=0x01;REFDV=0x00;/打開(kāi)PLLPLLCTL|=(1<<6);/等待PLL模塊達(dá)到穩(wěn)定狀態(tài),然后將系統(tǒng)的時(shí)鐘源設(shè)為PLL模塊While(!(CRGFLG&(1<<7);CLKSEL|=(1<<7);關(guān)閉看門(mén)狗COPCTL=0x00;好了,至此我想聰明的你已經(jīng)基本掌握了與MCU初始化相關(guān)的內(nèi)容了吧,下面我們正式開(kāi)始SCI模塊的介紹吧。串口通信是單片機(jī)與外部通信的一種重要方式,9s12XS128單片機(jī)內(nèi)置2個(gè)串彳T口SCI0和SCI1,分別是PS0(RXD0),PS1(T
15、XD0),PS2(RXD1),PS3(TXD1)。關(guān)于串口通信方面的一些基礎(chǔ)知識(shí)就不多做介紹,這里主要就編程方面的相關(guān)應(yīng)用展開(kāi)。首先介紹相關(guān)的寄存器1、波特率寄存器Table1d=2.SCiBDHandSCIBDLFieldDescriptionsHoldDescription7IRENInfraredEnableBit-Thisbitenablas'disablesthsinfranadmoduOation/demodulationsubmodule.0IRdbaUed1IRenabledTNP1:0TransmitterNarrowPuIkqBits=Theseanablewhet
16、hertheSCItransmitsa1/16,3/16,1/32or1!4narrowpulseSeeTable14-3.4:07:0SeR12:QSCIBaudRateBitsThebaudratefortheSCI由detenrinedbythebitsinthisregisterThebaudrateiscalculaTedtwodifferentwaysdapandingnnthestateofitisIRENbit.Thefernxjlasfor«lcuistirig(hebaudrateare.WhenIREN=Dthen,SCIbaudrate=SCIbusclock
17、5BR12,0)WhenREN=1than,SCIbaudrate=SCIbusdock132xSBR12:1)Note:Thebaudgansrator-isdisabledafterresetandnotstart0duntilthaTEbitorthsREbitissatforthaFirsitime.ThebaudralegeneralorIsdisabledwhen(S0R12.D-0andIREN=0)or(SBR12:1)=0andIREN=i).Note:WritingtoSCiBDHhasnoEffectwithoutwritingtoSCIBDL.becauBewritin
18、gtoSCiBDHpintsthedat日inatemporarylocationuntilSCIBDLisrittsnto.9S12XS128的波特率寄存器由SCIBDH和SCIBDL兩部分組成,其中波特率的值由SC舊DH得第五位和SCIBDL的8位組成的13位的SBR來(lái)確定,當(dāng)SCIBDH.7(IREN)為0時(shí),波特率的計(jì)算公式為波特率=總線(xiàn)頻率/(16*SBR12:0)一般總線(xiàn)頻率是已知的,所以可以根據(jù)想要得到的波特率來(lái)計(jì)算出SBR的值。例如:當(dāng)總線(xiàn)時(shí)鐘為19.6608時(shí),要想波特率為9600,則SBR=19660800/(16*9600)=128,化為二進(jìn)制為10000000,所以SC
19、IBDH=0x00,SCIBDL=0x80。這里要注意編程時(shí)要先寫(xiě)入SCIBDL的值,然后才能寫(xiě)SCIBDH。2、SCI控制寄存器1765*321QLOOPSSCISWAIRSRCMWAKEILTPEPT00000000Figure14-5.SCIControlReglfitar1(SCICR1)SCICR1主要用于設(shè)置是否選擇循環(huán)模式,是否允許SCI,字符長(zhǎng)度選擇,喚醒方式選擇,奇偶校驗(yàn)相關(guān)設(shè)置。一般在編程日配置成0x00,即設(shè)置允許SCI,正常碼輸出,8位數(shù)據(jù),無(wú)校驗(yàn)。3、SCI控制寄存器276543210T匠TCIERIEILIETERERWUSBK00000000Figure14-9.
20、SCIControlRegister2(SCICR2)SCICR2主要用于設(shè)置是否使能相關(guān)中斷請(qǐng)求以及是否使能接收和發(fā)送,復(fù)位時(shí)所有的位都為0,即禁止所有中斷,連接收(SCICR2.2)和發(fā)送(SCICR2.3)本身也是禁止的,所以在SCI初始化時(shí)一般向SCICR2寫(xiě)入0x0C,即禁止中斷,只使能發(fā)送和接收。4、SCI狀態(tài)寄存器(SCISR1)75432i0TORETCRDRFIDLEORNFFEPF110D0aD0UnimplemeniedorReservsdFigure14*10,SCIStatusRegister1(SCISR1)對(duì)于SCI狀態(tài)寄存器,我們使用最多的是第7位和第5位,分別
21、是發(fā)送數(shù)據(jù)寄存器空標(biāo)志位和接收數(shù)據(jù)滿(mǎn)標(biāo)志位,用于判斷數(shù)據(jù)是否可以發(fā)送下一幀的數(shù)據(jù)和是否已接收到數(shù)據(jù)。TDRE=1,說(shuō)明數(shù)據(jù)已經(jīng)移至移位寄存器中,可以向數(shù)據(jù)寄存器中寫(xiě)入新的數(shù)據(jù);RDRF=1,說(shuō)明可以接收數(shù)據(jù)了。如果你還想對(duì)其他位的作具體的了解,那就去看原版的手冊(cè)吧呵呵。OOOO5、數(shù)據(jù)寄存器(SCIDRH,SCIDRL)Table14-13.SCIDRHandSCIDRLFieldDescriptionsFWdDescriptionSCIDRH7RSReceivedBit8R8&theninthbtreceivedwrenIheSCI唇configured七9*ttdataformat
22、(M=i).SCIDRHT8TransmitBit8-T6istheninthcazabittransmittedwhentt用SCIisconfigdredfor9-bitdataformat三1).SCIDRL7:0印劃TR:01R7:R0Receivedbt&seventhroughzerofor9»bitor樂(lè)占:daisformatsT7;T0-bitstevftnthroughzerofor9*bhor6-DIformats從表中不難看出哈,對(duì)于SCIDRH,只有最高的兩位是有意義的,分別用于9位數(shù)據(jù)格式傳數(shù)下(M=1)的最高位數(shù)據(jù)的發(fā)送和接收(但是一般情況下我們
23、并不使用這個(gè)寄存器)。SCIDRL用于8位數(shù)據(jù)的發(fā)送和接收。好了,花了這么多的篇幅無(wú)非是結(jié)合手冊(cè)簡(jiǎn)單的介紹了幾個(gè)與編程相關(guān)的寄存器,下面我們來(lái)看看SCI模塊應(yīng)用的步驟吧:TheS(,"asosetsaHag.iheIransmitUatmnygisiterqmptyfljg丁DRE%e'tfrytimeittrsindatafrnmthebuffetSCIDRHL)tothetransmiucrshiftrctiisier.ThetransmitdriverroutinemayrzspnndluthisflagbywritinganotherbytetotheTtansmit
24、terbmfifer(SCIDRHSCIDRL),whiletheshiftregisterisstillshiftinguulthefirstbyte.TcinitiateanSCILrarLinissiun;1. ConfiguretheSCI:u) Seleclabaudrale.Writeihisvalueto(heSCIbaudregisiers(SCI0DHL)tobeginthebaudnitecncratcjr.RememberbaLthebauilrulegcntTHturisdisablrdwhenihcbaudniteiszmj.Writing田theSCIBDI1hds
25、noefituwithuutalsowritingtuSCIBDL.v) WritetoSCICRItoconfigurewordlength,parity,andotherconliguratidnbits(LOOPS,RSRJV.WAKEJLT,吒,PTj,w) Enablelhetransmilter,intemipls,receive,andwakeupdsrequired,byrilinglotheSCHCR2registerbiis(TIECIEIEJLIEERE.R.WL-,SBK).Apreamblectridlechantcterwill"曾beshiftedout
26、什fihctransmillrrshiftrcislrr.2. TransmitProcedureforeachbyte:a) PolltheTDREflagbyreadingtheSC1SRIorresponding)theTDREinierrupt.Keepinmindthatthe丁DREbiireliftstoone.b) IftheTDREflagisset,writethedatatobetransmittedtoSCIDRHL,wheretheninthhitiswritlentutheTBbitinSCIDFt.IIifthrSCIisin9-bitdalaIbrmaLAnew
27、transmissiunwillnulresuhuntiltheTDREflaghasbeencleared.3. Repealstep2foreachsubsequentiransmissicn.上面的英文很簡(jiǎn)單,這里故意作此安排,目的是讓大家知道,手冊(cè)上的有些東西還是能看懂的,有的時(shí)候要慢慢地試著去習(xí)慣原版的內(nèi)容。下面給出例子程序/SCl.c串口通信功能:將串口接收到的數(shù)據(jù)發(fā)送出去/函數(shù):SCIInit,SCISend1,SCISendN,SCIRev1,SCIRevN/SCIInit:SCI模塊初始化功能:開(kāi)SCI0,關(guān)SCI1;8位數(shù)據(jù)幀格式;正常碼輸出;波特率為9600;使能首發(fā);/查詢(xún)方式收發(fā)/VoidSCIInit(Void)(SCI0BDL=0x80;設(shè)置波特率為9600,其中總線(xiàn)時(shí)鐘為19.6606MHZSCI0BDH=0x00;SCI0CR1=0x00;/允許SCI,設(shè)置8位數(shù)據(jù)格式,無(wú)奇偶校驗(yàn)SCI0CR2=0x0C;t=SCI0DRL;讀SCI0數(shù)據(jù)寄存器(清0)t=SCI0SR1;讀SCI0狀態(tài)寄存器(清0)/SCISend1發(fā)送一字節(jié)的數(shù)據(jù)功能:串行發(fā)送一字節(jié)/參數(shù):A:要發(fā)送的數(shù)據(jù)返回:無(wú)/VoidSCISend1(ucharA)(if(SCI0SR1&(1<<7)!=0)(SCI0DRL=A;Break;/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC TR 63502:2024 EN Guidelines for parameters measurement of HVDC transmission line
- 2025-2030年中國(guó)鉛鋅行業(yè)十三五投資分析及發(fā)展風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025-2030年中國(guó)針織面料市場(chǎng)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)酵母核糖核酸市場(chǎng)運(yùn)行趨勢(shì)及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)速溶固體飲料市場(chǎng)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2025-2030年中國(guó)豆腐市場(chǎng)運(yùn)行狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)血液透析機(jī)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及發(fā)展前景規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)脫咖啡因綠茶市場(chǎng)發(fā)展策略規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)美白護(hù)膚市場(chǎng)運(yùn)行狀況及投資戰(zhàn)略研究報(bào)告
- 2025年上海市建筑安全員-A證考試題庫(kù)及答案
- 第10輯:句子表達(dá)效果(原句vs改句)解題指導(dǎo)-2023年高考語(yǔ)文一輪復(fù)習(xí)修辭手法與句子表達(dá)效果專(zhuān)練
- 2024年輔警招考時(shí)事政治考題及答案(100題)
- 2024年中考數(shù)學(xué)《二次函數(shù)的實(shí)際應(yīng)用》真題含解析版
- GB 30254-2024高壓三相籠型異步電動(dòng)機(jī)能效限定值及能效等級(jí)
- 非物質(zhì)文化遺產(chǎn)拓印 課件
- 空氣動(dòng)力學(xué)數(shù)值方法:有限元法(FEM):邊界條件處理與應(yīng)用
- 教科版科學(xué)三年級(jí)下冊(cè)《 各種各樣的運(yùn)動(dòng) 》課件
- (正式版)CB∕T 4548-2024 船舶行業(yè)企業(yè)相關(guān)方安全管理要求
- 部編版八年級(jí)物理(上冊(cè))期末試卷(帶答案)
- NB-T10342-2019水電站調(diào)節(jié)保證設(shè)計(jì)導(dǎo)則
- 當(dāng)代世界經(jīng)濟(jì)與政治 第八版 課件 第四章 發(fā)展中國(guó)家的經(jīng)濟(jì)與政治
評(píng)論
0/150
提交評(píng)論