飛思卡爾培訓(xùn)課件_第1頁(yè)
飛思卡爾培訓(xùn)課件_第2頁(yè)
飛思卡爾培訓(xùn)課件_第3頁(yè)
飛思卡爾培訓(xùn)課件_第4頁(yè)
飛思卡爾培訓(xùn)課件_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

飛思卡爾智能車_單片機(jī)篇1飛思卡爾單片機(jī)8位單片機(jī)51,宏晶,C8051,AVR16位單片機(jī)飛思卡爾9S12XS128,ARM,430,DSP2000最小系統(tǒng)板BDM調(diào)試器2飛思卡爾單片機(jī)MC9S12sx128:16位單片機(jī)系統(tǒng)時(shí)鐘:晶振16M,總線時(shí)鐘可到80M模塊時(shí)鐘:可對(duì)系統(tǒng)時(shí)鐘分頻功能及模塊IO端口PWMECTPITATDSCI3管腳圖5單片機(jī)端口配置6最小系統(tǒng)管腳接線圖7常用引腳9背面焊接10IO口設(shè)置概述PORTA,PORTB做IO,T,P,AD功能不變AB口IO設(shè)置輸入輸出:(1位對(duì)應(yīng)一個(gè)端口)方向寄存器A口-DDRA,B口-DDRB0輸入,1輸出輸出時(shí)的驅(qū)動(dòng)能力(1位對(duì)應(yīng)一組端口)A口-RDRIV[0];B口-RDRIV[1];1全額驅(qū)動(dòng)能力,0縮減(全額/3)驅(qū)動(dòng)能力上拉電阻控制(1位對(duì)應(yīng)一組端口)A口-PUCR[0];B口-PUCR[1];1使用,0不使用11第一個(gè)練習(xí)點(diǎn)亮一盞燈PB3口輸出DDRB=0x0f;亮燈:PORTB=0x00;復(fù)位高電平13飛思卡爾單片機(jī)使用官網(wǎng):飛思卡爾半導(dǎo)體開(kāi)發(fā)工具CodeWarrior下載:CW_S12_v5.0_Special(3).exe安裝:----BDM調(diào)試器安裝驅(qū)動(dòng):USBDMrelease\driver首創(chuàng)科技光盤資料14最小系統(tǒng)板使用電路板電源系統(tǒng)板及插座電阻,LED15171819寫程序、編譯、連接、下載2122程序調(diào)試界面23單片機(jī)時(shí)鐘25總線時(shí)鐘頻率總線時(shí)鐘:可編程改變(一般最大80M)時(shí)鐘合成寄存器SYNR低4位時(shí)鐘分頻寄存器REFDV低4位PLLCLK=2*OSCCLK*(1+SYNR)/(1+REFDV)

BUSCLK=PLLCLK/2

26時(shí)鐘設(shè)置典型程序2//80M主頻CLKSEL_PLLSEL=0;//系統(tǒng)時(shí)鐘=晶振/2PLLCTL_PLLON=1;//允許鎖相環(huán)SYNR=0xc0|0x09;REFDV=0x80|0x01;POSTDIV=0x00;_asm(nop);_asm(nop);while(!(CRGFLG_LOCK==1));//等待系統(tǒng)穩(wěn)定CLKSEL_PLLSEL=1;//系統(tǒng)時(shí)鐘=PLLCLK/229PWM模塊作用:硬件方法產(chǎn)生PWM,控制電機(jī)U030PWM產(chǎn)生原理計(jì)數(shù)器周期比較值原理:當(dāng)計(jì)數(shù)器值=比較值時(shí),電平翻轉(zhuǎn)連續(xù)增計(jì)數(shù)方式連續(xù)增減計(jì)數(shù)方式計(jì)數(shù)值比較值0周期31PWM產(chǎn)生起始電平:高計(jì)數(shù)值比較值0周期PWM32PWM產(chǎn)生原理起始電平:低計(jì)數(shù)值比較值0周期PWM33PWM模塊8路PWM8位34PWM寄存器設(shè)置PWM允許:1允許,0禁止極性:0起始低,1起始高居中對(duì)齊:0左對(duì)齊,1居中對(duì)齊周期寄存器PWMPERx:8位比較值寄存器PWMDTYx:8位35PWM時(shí)鐘時(shí)鐘選擇CLOCKA/B:對(duì)總線時(shí)鐘分頻36PWM時(shí)鐘SA與SB由CLOCKA/B分頻得到37PWM模塊級(jí)聯(lián)4路PWM16位38PWM級(jí)聯(lián)CONxy=1,表示xy級(jí)聯(lián),組成16位PWM01,23,45,67級(jí)聯(lián)PWM允許,極性,居中對(duì)齊寄存器,PWM輸出分別繼承1,3,5,7周期寄存器PWMPERxy:16位比較值寄存器PWMDTYxy:16位39PWM寄存器40練習(xí)利用1個(gè)8位PWM通道,左對(duì)齊方式,起始高電平,產(chǎn)生一個(gè)頻率=10kHz,占空比=1/4的PWM波形。計(jì)算:周期=24000000/10000=2400超過(guò)8位,分頻:2400/256=9.4,16分頻周期=2400/16=150比較值:150/4=37T=100us41寄存器設(shè)置PP0通道:PWME_PWME0=1左對(duì)齊:PWMCAE_CAE0=0;極性起始高電平:PWMPOL_PPOL0=1;時(shí)鐘選擇:PWMCLK_PCLK0=0,CLKAA分頻1/16:PWMPRCLK_PCKA=4周期:PWMPER0=150比較值:PWMDTY0=3742程序PWME=1;//PP0通道:PWMCAE=0;//左對(duì)齊:PWMPOL=0;//極性起始高電平:PWMCLK=0;//時(shí)鐘選擇,CLKAPWMPRCLK=0x04;//A分頻1/16:PWMPER0=150;//周期:PWMDTY0=37;//比較值:兩種寄存器設(shè)置方法所有寄存器定義可查MC9S12XS128.H繼續(xù)練習(xí):使用級(jí)聯(lián)PWM生成PWM波形,50Hz43單片機(jī)中斷voidmian(){ 初始化 For(;;) { 后臺(tái)程序 。。。 }}中斷程序中斷程序1中斷程序2中斷程序3特定事件1特定事件2特定事件3開(kāi)中斷清中斷標(biāo)記特定事件發(fā)生Voidinterrupt中斷號(hào)程序名(){。。。。。。}4445中斷程序定位一般情況下,中斷程序必須定位于non-banked區(qū)域,通過(guò)使用#pragmaCODE_SEGNON_BANKED可以把中斷程序定位于non-banked區(qū)域,同時(shí)你必須確保sectionNON_BANKED不能出現(xiàn)在.prm文件中。在中斷程序的末尾,你需要添加#pragmaCODE_SEGDEFAULT,否則的話,后面的函數(shù)也會(huì)被定位在non-banked區(qū)域。也即,中斷服務(wù)程序必須被#pragmaCODE_SEGNON_BANKED與#pragmaCODE_SEGDEFAULT包圍。#pragmaCODE_SEGNON_BANKEDvoidinterrupt中斷號(hào)中斷程序名(){中斷程序代碼}#pragmaCODE_SEGDEFAULT46TIM模塊

ECT模塊輸入捕捉比較輸出16位脈沖累加器參考:47TIM時(shí)鐘和定時(shí)器時(shí)鐘分頻定時(shí)器使能0停止1使能計(jì)數(shù)器TCNT原理使能后從0-0xFFFF-0-0xFFFF循環(huán)計(jì)數(shù)48TIM時(shí)鐘和定時(shí)器當(dāng)PRTN=1,定時(shí)器由PTPSR精密分頻49TIM輸入捕捉IC捕捉跳變沿,跳變時(shí)刻裝入寄存器通道功能選擇0輸入捕捉1輸出比較邊沿設(shè)置8組跳變時(shí)刻保存TC0-TC750TIM輸出比較OC輸出比較設(shè)定一個(gè)值[16],當(dāng)計(jì)數(shù)器值=該值時(shí),做特定輸出通道功能選擇0輸入捕捉1輸出比較比較值:TC0-7比較動(dòng)作8組TC=TCNT+T51TIM輸出比較OC輸出比較引腳斷路寄存器OCPDOCPDx=0,允許該通道上輸出比較動(dòng)作在該通道產(chǎn)生;OCPDx=1,禁止該通道輸出比較動(dòng)作在該通道產(chǎn)生,但輸出比較標(biāo)志位仍然置位。即只與輸出引腳斷開(kāi)連接。52OC之強(qiáng)制比較與OC7控制53IC-OC中斷中斷允許(捕捉中斷和比較中斷)0禁止1允許中斷標(biāo)記中斷號(hào)8-15對(duì)應(yīng)0-7通道定時(shí)器溢出中斷允許中斷號(hào)16定時(shí)器溢出中斷標(biāo)記5416位脈沖累加器對(duì)外部IC7脈沖進(jìn)行計(jì)數(shù),結(jié)果在PACNT中使用使能PAEN=1,該位不受TEN影響PAMOD=0事件計(jì)數(shù)模式PEDGE=0:PT7下降沿計(jì)數(shù)PEDGE=1:PT7上升沿計(jì)數(shù)PAMOD=1門控計(jì)時(shí)累加模式PEDGE=0:高電平計(jì)時(shí);1:低電平計(jì)時(shí)PAOVI溢出中斷允許位PAI邊沿中斷允許位中斷標(biāo)志寄存器,中斷號(hào)17,185516位脈沖累加器的時(shí)鐘時(shí)鐘設(shè)置PCLK:預(yù)分頻因子定義的TIM時(shí)鐘。PACLK:總線時(shí)鐘64分頻PCLK56TIM寄存器57TIM寄存器58PIT模塊4個(gè)24位定時(shí)器(遞減計(jì)數(shù))8位時(shí)基+16位定時(shí)器構(gòu)成參考:59PIT寄存器PITCFLMTPITCFLMT_PITE=1;PIT模塊使能PITCEPITCE_PCEx=1;選擇通道使能,x=0,1,2,3PITMUXPITMUX_PMUXx=0;通道x選擇時(shí)基0,1-時(shí)基160PIT寄存器PITMTLD0,PITMTLD18位定時(shí)器初值PITLD0,PITLD1,PITLD2,PITLD316位定時(shí)器初值61PIT定時(shí)器初值裝載正常,當(dāng)計(jì)數(shù)器下溢后,裝載新的計(jì)數(shù)器值。PFLMTx=1,立即裝載8位計(jì)數(shù)器值。當(dāng)PFLTx=1,立即裝載16位計(jì)數(shù)器值。62PIT中斷PITINTEPITINTE_PINTEx=1;使能下溢中斷PITTFPITTF_PTFx=1;清除對(duì)應(yīng)通道中斷標(biāo)志(寫1)保險(xiǎn)使用方法,開(kāi)通多路PIT中斷時(shí)PITTF=0x01;PITTF=0x02;PITTF=0x04;PITTF=0x08;63PIT設(shè)置及中斷使用步驟先關(guān)閉PIT設(shè)置PIT寄存器使能PIT模塊如果某路PIT使能了中斷,必須有中斷函數(shù)PIT對(duì)應(yīng)中斷號(hào)PIT0-66,PIT1-67,PIT2-68,PIT3-6964PIT寄存器65練習(xí)使用IC捕獲PWM邊沿,計(jì)算PWM周期。使用IC捕獲PWM邊沿,在中斷中控制B口電平,使燈1秒閃爍。使用PIT編寫PWM輸出100Hz方波使用PIT模塊計(jì)時(shí)24000000/100=240000=0x03a980使用PB口輸出66ATD參考:模擬量數(shù)字量67ATD原理68ATD原理結(jié)果寄存器0結(jié)果寄存器1結(jié)果寄存器2結(jié)果寄存器3結(jié)果寄存器4結(jié)果寄存器5結(jié)果寄存器6結(jié)果寄存器7AN0AN1AN2AN3AN4AN5AN6AN7采樣保持AD轉(zhuǎn)換AD時(shí)鐘總線時(shí)鐘分頻產(chǎn)生中斷保存結(jié)果中斷標(biāo)志程序外部信號(hào)啟動(dòng)AD69ATD時(shí)鐘及采樣ATD0CTL4ATD時(shí)鐘:ATD采樣時(shí)間ATD0CTL1 1:采樣前放電 0:不放電SMP[7-5]PRS[4-0]SMP_DIS[4]70ATD采樣精度、結(jié)果保存格式ATD0CTL1ATD0CTL3 0左對(duì)齊 1右對(duì)齊SRES[6-5]DJM[7]71ATD轉(zhuǎn)換通道選擇通道模式ATD0CTL5

0單通道,1多通道開(kāi)始通道ATD0CTL5轉(zhuǎn)換序列長(zhǎng)度ATD0CTL3MULT[4]CDCCCBCAS8CS4CS2CS1C72轉(zhuǎn)換序列折返多通道采樣時(shí),一個(gè)序列中多次采樣某通道。WRAP位決定在轉(zhuǎn)換完某通道后折回到AN0通道。73轉(zhuǎn)換模式與轉(zhuǎn)換啟動(dòng)ATD0CTL50單次轉(zhuǎn)換1連續(xù)轉(zhuǎn)換對(duì)ATD0CTL5寫會(huì)啟動(dòng)一個(gè)轉(zhuǎn)換隊(duì)列也可通過(guò)外部信號(hào)啟動(dòng)對(duì)ATD寄存器寫一般會(huì)終止當(dāng)前轉(zhuǎn)換隊(duì)列SCAN[5]74ATD轉(zhuǎn)換完成與中斷轉(zhuǎn)換完成標(biāo)記ATD0STAT01隊(duì)列轉(zhuǎn)換完成該標(biāo)記可查詢AD完成中斷允許ATD0CTL20禁止中斷1允許中斷,開(kāi)中斷必須有中斷程序AD中斷號(hào)22SCF[7]ASCIE[1]75ATD結(jié)果保存結(jié)果寄存器ATD0DRxATD0CTL31循環(huán)保存0固定保存第一個(gè)結(jié)果保存在ATD0DR0后面結(jié)果順序存放FIFO[2]76外部觸發(fā)ATD可固定采樣時(shí)間,便于PID調(diào)節(jié)ATD0CTL2外部觸發(fā)使能ETGIGE0禁止外部觸發(fā)1允許外部觸發(fā)外部觸發(fā)配置ETRIGLE[4]ETRIGP[3]ETRIGE[2]77外部觸發(fā)ATD信號(hào)通道ATD0CTL1ETRIGSEL[7]ETRIGCH[3-0]78ATD其它問(wèn)題特殊通道VRH,VRL,(VRH+VRL)/2ATD的比較功能當(dāng)AD值大于等于或小于等于某預(yù)定值時(shí),產(chǎn)生一個(gè)中斷。建議使用硬件比較器替代,如電池電壓檢測(cè)。79ATD寄存器80練習(xí)對(duì)一個(gè)電壓值進(jìn)行采樣使用軟件啟動(dòng)使用外部信號(hào)啟動(dòng)外部信號(hào)可使用PWM產(chǎn)生在中斷程序中讀取結(jié)果81程序技巧程序構(gòu)成主模塊子模塊1相似程序放在一個(gè)子模塊上子模塊2不常修改的程序放在子模塊上代碼錯(cuò)行編寫for,if,switch等語(yǔ)句即{的下一行代碼向后錯(cuò)一個(gè)TAB,}向前提一個(gè)TAB代碼注釋變量起名把子模塊添加進(jìn)工程在主程序中聲明子模塊中的程序在主程序中條用子程序82變量值查看簡(jiǎn)單技巧在窗口內(nèi)雙擊模塊變量,可顯示其值單擊Data1或Data2顯示區(qū),在對(duì)話框中鍵入模塊變量名,即可查看其值。83程序斷點(diǎn)設(shè)置在調(diào)試窗口,選中代碼行,右擊后添加斷點(diǎn),也可刪除斷點(diǎn)。程序運(yùn)行至斷點(diǎn)處停止,把鼠標(biāo)懸停在某變量上,即可查看其值。F10單步運(yùn)行84SCI硬件連接單片機(jī)-單片機(jī)單片機(jī)-PC機(jī)單片機(jī)單片機(jī)PC232電平轉(zhuǎn)換USB接口轉(zhuǎn)換單片機(jī)電平轉(zhuǎn)換85SCI模塊86SCI基本使用初始化:數(shù)據(jù)格式:8位,無(wú)校驗(yàn)發(fā)送接收波特率設(shè)置,SCI寄存器設(shè)置發(fā)送空閑時(shí)寫數(shù)據(jù)到數(shù)據(jù)寄存器接收完成后從數(shù)據(jù)寄存器讀數(shù)據(jù)一般使用查詢發(fā)送:查詢空閑時(shí)寫數(shù)據(jù)發(fā)送中斷接收:接收中斷時(shí)讀取數(shù)據(jù)87波特率設(shè)置SCI0BDH-L:13bitSBR常用波特率960088控制寄存器SCI0CR1LOOPSRSRCSCIWAI等待模式下0使能SCI,1禁止SCIM數(shù)據(jù)位0:8位數(shù)據(jù);1:9位數(shù)據(jù)WAKE喚醒方式:0

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論