飛思卡爾單片機(jī)應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第1頁(yè)
飛思卡爾單片機(jī)應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第2頁(yè)
飛思卡爾單片機(jī)應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第3頁(yè)
飛思卡爾單片機(jī)應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第4頁(yè)
飛思卡爾單片機(jī)應(yīng)用實(shí)驗(yàn)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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)介

1、精品文檔你我共享AAAAAA飛思卡爾單片機(jī)應(yīng)用實(shí)驗(yàn)指導(dǎo)書機(jī)械工程學(xué)院機(jī)械電子工程教研室精品文檔你我共享AAAAAA911 1139 =1 8);SCI1BDL= (un sig ned char)(ubgs & OxOOFF);/無(wú)校驗(yàn),正常模式(開始信號(hào)+ 8位數(shù)據(jù)(先發(fā)最低位)+停止信號(hào))SCI1C1= 0;/允許發(fā)送,允許接收,查詢方式收發(fā)SCI1C2= (0| SCI1C2_TE_MASK| SCI1C2_RE_MASK );void SCISe nd1(u nsig ned char ch) 精品文檔你我共享AAAAAAwhile(!(SCI1S1 & SCI1S1_TDRE_MAS

2、K);判斷發(fā)送緩沖區(qū)是否為空SCI1D = ch; void SCISe ndN(un sig ned char n, un sig ned char ch) un sig nedi;for (i = 0; i n; i+)SCISe nd1(chi);un sig ned charSCIRe1( un sig ned char *p)un sig ned int k;un sig ned chari;for (k = 0; k = 0 x0b)/ 接收失敗i = 0 xff;*p = 0 x01;return i;un sig ned charSCIReN (un sig ned n,un

3、sig ned char ch)un sig ned char m;un sig ned char fp;/ 接收標(biāo)志m = 0;while (m n)chm = SCIRe1( &fp); if (fp = 1) return 1;/接收失敗 m+;return 0;/接收成功精品文檔你我共享PTDPTBPTBPTDPTDPTBIPTG0PTG1PTG2PTG3PTG4PTD2PTD3PTD71K1K實(shí)驗(yàn)三 鍵盤中斷及LED數(shù)碼塊實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模? .熟練運(yùn)用嵌入式開發(fā)系統(tǒng)環(huán)境、c語(yǔ)言及調(diào)試方式。2 .復(fù)習(xí)串行通信接口( SCI )的內(nèi)容。3 加強(qiáng)鍵盤中斷基本原理及編程原理的理解。4 理解

4、“行掃描”法的原理并能進(jìn)行鍵值識(shí)別和鍵值編碼。5.理解鍵盤接線原理圖(如圖 3-1)。6 .理解LED數(shù)碼塊的顯示原理,初步掌握 LED數(shù)碼塊顯示編程方法。實(shí)驗(yàn)箱提供一個(gè)16鍵鍵盤,用于鍵盤中斷信號(hào)的輸入。系統(tǒng)提供兩種接線方式: 當(dāng)將鍵盤接入上一排插孔時(shí)為固定接線,鍵盤接線原理圖如圖3-1所示。 當(dāng)將鍵盤接入下一排插孔時(shí)為手動(dòng)接線,連線的位置在鍵盤的左邊。實(shí)驗(yàn)箱提供四個(gè) LED數(shù)碼塊,PB0PB7為段碼接口, PTDO、PTD1、PTD4、PTD5為位碼 控制接口。e d h c g CS3叫 AAAAAAPTBffTB:PTBPTB2PTBpTD3+ 5V12m23m34m4列線行線m1 M

5、CU 內(nèi)部上拉電阻79CS110CS211a8b121K ICS0123456精品文檔你我共享AAAAAA鍵盤及LED數(shù)碼塊原理圖二. 實(shí)驗(yàn)要求:1 仔細(xì)閱讀本實(shí)驗(yàn)指導(dǎo)書。2 .復(fù)習(xí)有關(guān)的鍵盤中斷和串行通信接口(SCI)的章節(jié)。3 .熟悉AW6鍵盤模塊的工作方法及編程。4 .根據(jù)實(shí)驗(yàn)內(nèi)容要求編寫好程序,為實(shí)驗(yàn)做充分地準(zhǔn)備。三. 實(shí)驗(yàn)設(shè)備及其連接1 . PC機(jī)一臺(tái)2 .飛思卡爾嵌入式實(shí)驗(yàn)開發(fā)系統(tǒng)一臺(tái)3 .串行通信線一根四. 實(shí)驗(yàn)內(nèi)容1.理解并運(yùn)行按鍵掃描及鍵值鍵碼發(fā)送樣例程序(將按鍵的鍵值及鍵碼從串行口發(fā)送到 PC機(jī)端的串口工具軟件);2 .編制一個(gè)中斷方式的16鍵鍵盤程序,使用“行掃描”法識(shí)別

6、按鍵;采用鍵盤中斷方式。 PTD7,3,2及PTG4鍵盤4根列線,PTG3-0接鍵盤4根行線。要求按下的 一個(gè)鍵的鍵值和鍵面定義值(鍵的 ASCII碼值)通過(guò)串口在PC方軟件界面顯示,同時(shí)用小燈顯示 按鍵的鍵面定義值(鍵的 ASCII碼值),PTB7-PTB(口與小燈相連;3 .理解并運(yùn)行LED數(shù)碼塊樣例程序(在 LED數(shù)碼塊上顯示“ 2011”);4 .參考按鍵及LED數(shù)碼塊樣例程序,設(shè)計(jì)一個(gè)按鍵顯示程序。將按鍵的鍵碼在LED數(shù)碼塊上顯示。7段LED顯示字型碼字型碼顯示 字符hgfedcba共陰極共陽(yáng)極001111113FC01000011006F9210110115BA4310011114

7、FB0411001106699511011016D92611111017D827000011107F8811111117F80911011116F90精品文檔你我共享AAAAAAA11101117788B11111007C83C011100139C6D10111105EA1E11110017986F1110001718E五編程提示1利用構(gòu)件式方法編程,可以使程序結(jié)構(gòu)清晰,可移植性好;2 .矩陣式鍵盤采用掃描法來(lái)確定哪一個(gè)鍵被按下,鍵盤的接口硬件確定后,每個(gè)鍵的鍵 值就確定了,但每個(gè)鍵的鍵碼可以根據(jù)需要定義;3.PTD7,3,2及PTG4-PTG與鍵盤中斷輸入引腳復(fù)用,設(shè)置鍵盤中斷允許寄存器,當(dāng)

8、鍵盤有 鍵被按下時(shí),立即產(chǎn)生中斷,中斷程序處理按鍵事件,比如確定哪個(gè)鍵被按下,然后轉(zhuǎn)換為該 鍵的定義值。4 .鍵盤的鍵面標(biāo)示碼(鍵碼)鍵盤掃描的鍵值對(duì)應(yīng)關(guān)系通過(guò)列表對(duì)應(yīng)起來(lái),即鍵盤定義 表對(duì)應(yīng)表示。當(dāng)通過(guò)“行掃描”法獲得某個(gè)鍵的鍵值時(shí),通過(guò)查表法就可以得到它的定義值。 六.實(shí)驗(yàn)報(bào)告要求1.按實(shí)驗(yàn)報(bào)告格式認(rèn)真完成實(shí)驗(yàn)報(bào)告,要求畫出工程的總體流程圖;2 .本實(shí)驗(yàn)中用的是鍵盤中斷編程方式,也可以使用查詢編程方式,請(qǐng)盡量少修改代碼改 用查詢編程方式重新編寫相應(yīng)的子程序和主程序。提示:注意重鍵問(wèn)題。2 .識(shí)別是否有鍵按下以及哪個(gè)鍵被按下有哪些方法?3 .有哪些方法可以用來(lái)消除鍵盤抖動(dòng)?4.AW60勺鍵盤

9、中斷模塊用行掃描方式最多能夠?qū)崿F(xiàn)幾列的鍵盤?七.參考例程:void mai n(void)1關(guān)總中斷Disable In terrupts;精品文檔你我共享AAAAAA2芯片初始化MCUI nit();/3模塊初始化3.1 SCI初始化SCI1I nit(SYSTEM_CLOCK,9600);/3.2鍵盤初始化KB In it();/4開中斷/4.1開鍵盤中斷KBI1SC |=(11);4.2開總中斷En able In terrupts;/5主循環(huán)while (1)鍵盤模塊初始化void KBI nit(void)PTDD &= 0b01110011;PTGD &= 0b11100000;P

10、TDDD &= 0b01110011;PTGDD &= 0b11101111;PTDPE |= 0b10001100;PTGPE |= 0b00010000;PTGDD |= 0b00001111;KBI1SC &=(11);KBI1PE = (0|KBI1PE_KBIPE7_MASK|KBI1PE_KBIPE6_MASK|KBI1PE_KBIPE5_MASK |KBI1PE_KBIPE4_MASK);KBI1SC = (0|KBI1SC_KBACK_MASK);鍵盤一次掃描uint8 KBSca n1(void)uint8 lin e,i,tmp,tmp1,tmp2;lin e=0b1111

11、1110;for (i = 1; i = 4; i+)當(dāng)前掃描的一行,輸出低電平PTGD = line;/輸出開始掃描asm(NOP);/用SCI1,系統(tǒng)時(shí)鐘為時(shí)鐘源,波特率為9600/鍵盤口復(fù)位定義列線(7-4位)為輸入/輸入引腳 例線)有內(nèi)部上拉電阻行線(3-0位)為輸出/屏蔽鍵盤中斷(KBIE = 0)/允許輸入引腳 例線)的中斷可進(jìn)入清除鍵盤中斷請(qǐng)求(KBACK = 1)/使第一根行線為0(低電平)最多將掃描4根行線精品文檔你我共享AAAAAA精品文檔你我共享AAAAAA返回掃描的鍵值asm(NOP);讀取鍵盤口數(shù)據(jù)寄存器tmpl = PTDD;輸入掃描結(jié)果tmp2 = PTGD;整合

12、掃描結(jié)果,即鍵盤輸入引腳的4位tmp = (tmpl & 0 x80);tmpl &= 0 x0C;tmpl = (tmp13);tmp |= tmpl;tmp |= (tmp2 & 0 x1f);通過(guò)觀察4根列線中是否出現(xiàn)低電平來(lái)判斷當(dāng)前行有無(wú)按鍵if (tmp & 0 xF0) != 0 xF0) break; elseline = (li ne 1) | 0 x01;if (i = 5) tmp = 0 xFF;return (tmp);/當(dāng)前行有鍵按下退出循環(huán)不再掃描/當(dāng)前行無(wú)按鍵,準(zhǔn)備掃描下一行/無(wú)按鍵,以后將返回0 xFF鍵盤進(jìn)行N次掃描(去抖)uint8 KBSca nN (ui

13、 nt8 KB_cou nt) -uint8 i, KB_value_last, KB_value_ now;/先掃描一次得到的鍵值,便于下面比較if (0 = KB_cou nt | 1 = KB_cou nt) return KBSca n1();KB_value_now = KB_value_last = KBSca n1();/以下多次掃描消除誤差-for (i=0; iKB_cou nt-1; i+) -KB_value_ now = KBSca n1();if (KB_value_ now = KB_value_last) return KB_value_ now;elseKB_v

14、alue_last = KB_value_ now;/返回出錯(cuò)標(biāo)志 return 0 xFF;鍵碼表:const uint8 KBtable= 自已添入鍵值鍵碼表精品文檔你我共享AAAAAA0 x00;/鍵碼表結(jié)束標(biāo)志鍵碼轉(zhuǎn)換uin t8 KBDef(ui nt8 valve)uin t8 KeyPress; uint8 i;i = 0;KeyPress = 0 xff;while (KBtablei != 0 x00)if(KBtablei = valve)KeyPress = KBtablei+1;鍵定義值/在鍵盤定義表中搜索欲轉(zhuǎn)換的鍵值/在表中找到相應(yīng)的鍵值/取出對(duì)應(yīng)的鍵定義值,直至表尾

15、break;i += 2;指向下一個(gè)鍵值,繼續(xù)判斷/關(guān)總中斷/屏蔽鍵盤中斷/掃描鍵值存于value中/發(fā)送鍵值鍵值轉(zhuǎn)化為定義值并發(fā)送/鍵盤初始化鍵盤中斷/開放鍵盤中斷開總中斷 return KeyPress;鍵盤中斷程序(自行設(shè)計(jì))in terrupt 22 void isrKeyBoard(void) uint8 value;ui nt16 i;for(i=0; i1000; i+);Disable In terrupts;KBI1SC &=(11);value = KBSca nN(10);SCI1Se nd1(value);SCI1Se nd1(KBDef(value);KB In it

16、();KBI1SC |=(11); En able In terrupts ; LED顯示: void main( void) LEDBUF0=2;LEDBUF1=0;LEDBUF2=1;精品文檔你我共享AAAAAA89,0 x6F;LEDBUF3=1:Disable In terrupts;MCUI nit();LED in it();En able In terrupts; while(1)LEDshow(LEDBUF);LED.C中包含三個(gè)函數(shù)及段碼表和位碼表:void LEDinit(void)PTBDD = 0 xFF;數(shù)據(jù)口為輸出PTDDD |= 0 x33;/位選口為輸出void

17、 LEDshow(uint8 *Buf)uin t8 i,c;/ui nt16 j;for (i = 0;i = 3;i+)c = Bufi-0;LEDshow1(3-i,c);延時(shí)Delay(10); void LEDshow1(uint8 i, uint8 c) PTDD = CStablei;PTBD = Dtablec;顯示碼表(共陰極)const uint8 Dtable10=/012345670 x3F,0 x06,0 x5B,0 x4F,0 x66, 0 x6D,0 x7D,0 x07,0 x7F/片選表(電平為低片選)const ui nt8 CStable4=/01230 x

18、DF,0 xEF,0 xFD,0 xFE;公共函數(shù)中包含一個(gè)延時(shí)程序:void Delay(uint16 count) ui nt8 i ;ui nt16 j;for(j=0; jco un t; j+)精品文檔你我共享AAAAAAfor(i=0; i200; i+)精品文檔你我共享AAAAAA實(shí)驗(yàn)五定時(shí)器輸入捕捉與輸出比較功能實(shí)驗(yàn)一. 實(shí)驗(yàn)?zāi)康模? .熟練運(yùn)用嵌入式開發(fā)系統(tǒng)環(huán)境、C語(yǔ)言及調(diào)試方式;2 理解定時(shí)器工作原理;3 初步掌握定時(shí)器輸入捕捉與輸出比較功能及程序設(shè)計(jì)方法;4 進(jìn)一步熟悉LED數(shù)碼塊顯示編程原理及方法。二. 實(shí)驗(yàn)要求:1 仔細(xì)閱讀本實(shí)驗(yàn)指導(dǎo)書。2 復(fù)習(xí)有關(guān)的定時(shí)器章節(jié)。3

19、熟悉定時(shí)器模塊的原理及定時(shí)器模塊輸入捕捉及輸出比較功能及及編程方法。4 根據(jù)實(shí)驗(yàn)內(nèi)容要求編寫好程序,為實(shí)驗(yàn)做充分地準(zhǔn)備。三. 實(shí)驗(yàn)設(shè)備及其連接1 . PC機(jī)一臺(tái)2 飛思卡爾嵌入式實(shí)驗(yàn)開發(fā)系統(tǒng)一臺(tái)3. PTD0插孔接一個(gè)LED丁,PTE2(定時(shí)器1通道0)接一個(gè)撥動(dòng)開關(guān)。4.PTE3(定時(shí)器1通道1 )接口連接到一個(gè)LED丁。四. 實(shí)驗(yàn)內(nèi)容1 理解并運(yùn)行輸入捕捉樣例程序(經(jīng)PTDOh插孔連接一個(gè)LED丁,當(dāng)接在定時(shí)器1通道0上的開關(guān)上下?lián)軇?dòng)時(shí),捕捉通道上的上升沿與下降沿,捕捉到時(shí)讓LED丁亮一會(huì)然后熄滅);2 .理解并運(yùn)行輸出捕捉樣例程序(根據(jù)接在PTD7 PTD6E的兩個(gè)撥動(dòng)開關(guān)的狀態(tài),在定時(shí)

20、器1通道1上分別在比較成功輸出拉高、比較成功輸出拉低、比較成功時(shí)輸出翻轉(zhuǎn)三種不同情 況下,觀察接在通道1PTE3的LED丁的不同狀態(tài)。注意撥動(dòng)開關(guān)推到上面為1,推到下面為0);3 在理解上面兩個(gè)樣例程序的基礎(chǔ)上,自行設(shè)計(jì)一個(gè)運(yùn)用定時(shí)器1通道1的輸出比較功能輸出一個(gè)頻率固定方波, 由定時(shí)器1的通道0對(duì)其進(jìn)行輸入捕捉,并將捕捉到的脈沖數(shù)在 LED數(shù)碼 塊上顯示。五. 編程提示根據(jù)功能要求,將定時(shí)器模塊的相關(guān)寄存器列出并確定設(shè)定值,因是要對(duì)輸入的脈沖計(jì)數(shù),精品文檔你我共享AAAAAA所以應(yīng)該設(shè)置通道只捕捉上升沿或下降沿,當(dāng)捕捉到時(shí)可用中斷方式對(duì)脈沖計(jì)數(shù)加1 (也可用查詢方式)。當(dāng)計(jì)數(shù)達(dá)到9999時(shí)計(jì)

21、數(shù)值應(yīng)復(fù)位到0。LED數(shù)碼塊顯示部分可參考前面實(shí)驗(yàn)程序,即將脈沖計(jì)數(shù)值轉(zhuǎn)換成 BC碼,送入顯示緩沖區(qū),然后調(diào)用顯示子程序即可。六實(shí)驗(yàn)報(bào)告要求1 按實(shí)驗(yàn)報(bào)告格式認(rèn)真完成實(shí)驗(yàn)報(bào)告,要求畫出工程的總體流程圖;回答下列問(wèn)題:2 回答下列問(wèn)題(1 )通道的輸出比較輸出的三種形式有什么差別,如果希望用輸出比較功能形成一個(gè)脈 沖輸出源,應(yīng)該選擇什么方式,輸出的脈沖有什么特點(diǎn)?(2)本實(shí)驗(yàn)是利用輸入捕捉功能對(duì)通道上輸入的脈沖計(jì)數(shù),如果要計(jì)算輸入脈沖的頻率 要如何進(jìn)行?如果輸入脈沖的周期較長(zhǎng),要注意什么問(wèn)題?如何解決?(3 )本實(shí)驗(yàn)對(duì)脈沖計(jì)數(shù)可用查詢方式和中斷方式,比較兩種方式的不同,你更愿意用什 么方式,為什

22、么?七參考例程:輸入捕捉參考例程:Ma in .C/總頭文件#i nclude In cludes.h/在此添加全局變量定義 /主函數(shù)void mai n(void)1關(guān)總中斷Disable In terrupts;/禁止總中斷2芯片初始化MCUI nit();3模塊初始化BL in it();TPM1Ch0I nit();/(1)小燈控制引腳(I/O)初始化/(2)定時(shí)器1通道0初始化4開放中斷精品文檔你我共享AAAAAATPM1C0SC|=TPM1C0SC_CH0IE_MASK;/ 允許定時(shí)器1通道0的輸入捕捉中斷精品文檔你我共享AAAAAA(2)開放總中斷En able In terru

23、pts;115主循環(huán)while (1)Bli ni t.c#i nclude MC9S08AW60.h void BLi ni t(void)PTDD=0 xff;PTDDD=0b00000001;TPM.c#in clude TPM.h/ -*/函數(shù)名:TPM1Ch0Init/功能:初始化定時(shí)器通道/參數(shù):/返回:無(wú)/說(shuō)明:無(wú)/ -*void TPM1Ch0I ni t()/設(shè)置定時(shí)器狀態(tài)和控制寄存器分頻因子64,設(shè)置為系統(tǒng)時(shí)鐘,禁止溢出中斷,清溢出標(biāo)志TPM1SC=0b00001110;/設(shè)置定時(shí)器通道狀態(tài)和控制寄存器/選擇輸入捕捉方式,捕捉上升沿,允許通道中斷TPM1C0SC=0b010

24、01000;Isc.c#i nclude In cludes.hin terrupt 5 void T1Ch0 ln( void)精品文檔你我共享AAAAAAuin t8 temp ; Disable In terrupts;禁止總中斷PTDD&=PTDD_PTDDO_MASK ; delay(IOO);PTDD|=PTDD_PTDD0_MASK ;/清除輸入捕捉標(biāo)志位temp = TPM1C0SC;TPM1C0SC&= TPM1C0SC_CH0F_MASK;接在PTD0上的LED亮/延時(shí)/接在PTD0上的LED暗(1)讀該寄存器向輸入捕捉標(biāo)志位寫0En able In terrupts;Ge

25、n eral.c開放總中斷#i nclude Ge neral.h/包含通用函數(shù)頭文件/ -/函數(shù)名:/功/參能:數(shù):Delay()延時(shí)count(小于 65535)*/返回:無(wú)*/-*void delay( uin t16 count)uint16 i,j;for(j=0; jco un t; j+) for(i=0; i=6;TPM1outC In it(1,i); delay(200);TPM c#in clude TPM.h/ -/函數(shù)名 TPM1Ch0I nit*功能初始化定時(shí)器通道*參數(shù)*返回?zé)o*說(shuō)明無(wú)*/ -*void TPM1ChOI ni t()/設(shè)置定時(shí)器狀態(tài)和控制寄存器分

26、頻因子64,設(shè)置為系統(tǒng)時(shí)鐘,禁止溢出中斷,清溢出標(biāo)志TPM1SC=0b00001110;/設(shè)置定時(shí)器通道狀態(tài)和控制寄存器/選擇輸入捕捉方式,捕捉上升沿,允許通道中斷TPM1C0SC=0b01001000;void TPM1I nit()TPM1SC=0b00001111;TPM1MODH=Ox7f;TPM1MODL=Oxff;void TPM1outCI nit(ui nt8 CHo,ui nt8 Edge)/設(shè)置定時(shí)器狀態(tài)和控制寄存器分頻因子64,設(shè)置為系統(tǒng)時(shí)鐘,禁止溢出中斷,清溢出標(biāo)志uint8 TPM1C n=0b00010000;if (Edge3) Edge=3;Edge=2;swi

27、tch(CHo)case 0: TPM1C0VH=0 x3f;TPM1C0VL=0 xff;TPM1C0SC=TPM1C n|Edge;break; case 1: TPM1C1VH=0 x3f;TPM1C1VL=0 xff;TPM1C1SC=TPM1C n|Edge;break;精品文檔你我共享AAAAAAcase 2: TPM1C2VH=0 x3f;TPM1C2VL=0 xff;TPM1C2SC=TPM1C n|Edge;break;case 3: TPM1C3VH=0 x3f;TPM1C3VL=0 xff;TPM1C3SC=TPM1C n|Edge;break;case 4: TPM1C

28、4VH=0 x3f;TPM1C4VL=0 xff;TPM1C4SC=TPM1C n|Edge;break;case 5: TPM1C5VH=0 x3f;TPM1C5VL=0 xff;TPM1C5SC=TPM1C n|Edge;break; PDnit.cPTD7,PTD6設(shè)置為輸入,有上拉電阻#i nclude MC9S08AW60.hvoid PD_I nit()PTDD=0b11111111;PTDPE=0b11000000;PTDDD=0b00111111;General C#in clude Ge neral.h包含通用函數(shù)頭文件/ -/ 函數(shù)名:Delay()功能:延時(shí)參數(shù):coun

29、t(小于 65535)返回:無(wú)/ -void delay( uin t16 count)uint16 i,j;for(j=0; jco un t; j+)for(i=0; i200; i+)5實(shí)驗(yàn)六 AD轉(zhuǎn)換與PWM綜合實(shí)驗(yàn)一. 實(shí)驗(yàn)?zāi)康模? .熟練運(yùn)用嵌入式開發(fā)系統(tǒng)環(huán)境、c語(yǔ)言及調(diào)試方式;2 理解定時(shí)器模塊及 AD模塊工作原理;3 .初步掌握定時(shí)器PWM輸出功能及程序設(shè)計(jì)方法;4 .初步掌握AD模塊進(jìn)行單通道AD轉(zhuǎn)換功能及程序設(shè)計(jì)方法;5 進(jìn)一步熟悉LED數(shù)碼塊顯示編程原理及方法。精品文檔你我共享AAAAAA二. 實(shí)驗(yàn)要求:1 仔細(xì)閱讀本實(shí)驗(yàn)指導(dǎo)書。2 復(fù)習(xí)有關(guān)的定時(shí)器及AD專換章節(jié)。3 熟

30、悉定時(shí)器模塊的原理及 PW功能及編程方法。4 .熟悉AD莫塊原理、結(jié)構(gòu)、AD專換功能和編程方法。4 根據(jù)實(shí)驗(yàn)內(nèi)容要求編寫好程序,為實(shí)驗(yàn)做充分地準(zhǔn)備。三. 實(shí)驗(yàn)設(shè)備及其連接1 . PC機(jī)一臺(tái)2 飛思卡爾嵌入式實(shí)驗(yàn)開發(fā)系統(tǒng)一臺(tái)3. PE2(定時(shí)器1通道)接口連接到一個(gè) LED丁,觀察PW輸出占空比變化的 PW時(shí),LED丁 的變化。4. 通過(guò)實(shí)驗(yàn)箱上電位器輸出插孔將電位器電壓輸入到AD專換模塊的15號(hào)通道PTD7對(duì)電位器輸出電壓進(jìn)行 AD專換,并將轉(zhuǎn)換后得到的數(shù)值再還原為電壓值在LED數(shù)碼塊上顯示。四. 實(shí)驗(yàn)內(nèi)容1.理解并運(yùn)行PWI例程序(經(jīng)PTD上插孔連接一個(gè)LED丁,當(dāng)接在定時(shí)器1通道0上的開關(guān)

31、 上下?lián)軇?dòng)時(shí),捕捉通道上的上升沿與下降沿,捕捉到時(shí)讓LED丁亮一會(huì)然后熄滅);2 理解并運(yùn)行AD專換樣例程序(將用測(cè)試線連接電位器輸出插也及PTD7,旋轉(zhuǎn)電位器調(diào)節(jié)其輸出電壓,在LED數(shù)碼塊上顯示對(duì)應(yīng)的電壓值。);3 .在理解上面兩個(gè)樣例程序的基礎(chǔ)上,自行設(shè)計(jì)用電位器控制PWI占空比,PW輸出接在一個(gè)LED丁上,并在LED數(shù)據(jù)塊電位器輸出電壓值,觀察 LED丁的亮度與電壓值的關(guān)系。五. 編程提示1.在改變PWI的周期和占空比之前要禁止使用 TPM( TPMxS的CLKSB CLKSA00),然后設(shè) 置占空比、周期等,再重新寫 TPMxSC否則改變不起作用。2 .實(shí)驗(yàn)箱上的LED數(shù)碼塊的接口連接

32、是固定的,要注意AD專換通道與LED數(shù)碼塊接口不要沖突。3 當(dāng)GPIO乍為L(zhǎng)ED俞出段碼驅(qū)動(dòng)接口時(shí),共陰級(jí)數(shù)碼塊可考慮在輸出接口上加上位電阻增 強(qiáng)驅(qū)動(dòng)能力。六. 實(shí)驗(yàn)報(bào)告要求1按實(shí)驗(yàn)報(bào)告格式認(rèn)真完成實(shí)驗(yàn)報(bào)告,要求畫出工程的總體流程圖;精品文檔你我共享AAAAAA回答下列問(wèn)題:2 回答下列問(wèn)題(1) 定時(shí)器通道的PW輸出與輸出比較有什么共同及不同處?如果用于小直流電機(jī)的速度 控制,應(yīng)該用什么方式?(2) 在本實(shí)驗(yàn)中,如果 AD專換中需要有數(shù)值比較功能,當(dāng)通道送入電壓超過(guò)4.5V時(shí)需要 報(bào)警,即讓一個(gè)LED丁閃爍,應(yīng)該如何設(shè)計(jì)?七參考例程:PWM輸出程序:Main .c/總頭文件#in elude

33、in cludes.hvoid main( void) Disable In terrupts;MCUInit();MCU 初始化TPM1PWMI nit(O);/定時(shí)器1初始化En able In terrupts;while(1)ui nt8 i;for(i=0;i=200;i+)if (i5) CHn=5;switch(CH n)case 0:TPM1C0SC=0b00110100;break;case 1:TPM1C1SC=0b00110100;break;case 2:TPM1C2SC=0b00110100;break;case 3:TPM1C3SC=0b00110100;break

34、;case 4:TPM1C4SC=0b00110100;break;case 5:TPM1C5SC=0b00110100;break;void TPM1PWMRu n(ui nt8 CHn ,ui nt8 perce nt,ui nt16 ModP) uin t16 duty,MP;uin t8 dutyH,dutyL;MP=ModP ;TPM1SC=0 x00;TPM1CNTH=0 x00;TPM1CNTL=0 x00;TPM1MODL=(ui nt8)(ModP);TPM1MODH=(ui nt8)(ModP8);duty=(ui nt16)(MP/100)*perce nt);dutyL

35、=(ui nt8)(duty);dutyH=(ui nt8)(duty8);if (CH n5) CHn=5;switch(CH n)case 0:TPM1COVH=dutyH;TPM1COVL=dutyL;TPM1COSC=ObOO1111OO;break;case 1:TPM1C1VH=dutyH;TPM1C1VL=dutyL;TPM1C1SC=ObOO1111OO;break;case 2:TPM1C2VH=dutyH;TPM1C2VL=dutyL;TPM1C2SC=0b00111100;break;case 3:精品文檔你我共享AAAAAATPM1C3VH=dutyH;TPM1C3VL=dutyL;TPM1C3SC=0b00111100;break;case 4:TPM1C4VH=dutyH;TPM1C4VL=dutyL;TPM1C4SC=ObOO1111OO;break;case 5:TPM1C5VH=dutyH;TPM1C5VL=dutyL;TPM1C5SC=0b00111100;break;TPM1SC=ObO

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論