ARM——秒表設(shè)計._第1頁
ARM——秒表設(shè)計._第2頁
ARM——秒表設(shè)計._第3頁
ARM——秒表設(shè)計._第4頁
ARM——秒表設(shè)計._第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Easy ARM2131開發(fā)板實驗報告實驗名稱:部:物理與機電工程學(xué)院專業(yè)班級:07電子信息工程(2 )班14學(xué)生姓名:學(xué) 號:2006050427指導(dǎo)教師:涂二生老師完成時間:2010年5月6日報告成績:A.ad hSui,2 > ®POTtP 3_3V VNIMJP1TSP:C<U&畑Mzjg臼j白A I 巧.ibF>« 竺21:8:二« -LMEIIHIIIHIIIIH匕亠eiSjSaoa斗' 1|J5bat口|5'-r*PEL 1PD.7POlSPCU4口 EX QPD.«Pa子PMPD.SP&&

2、amp;«ktt5pauPQa»戸OLii«甩小pob口雖L斗POL LQKlTHk Lfi*POL 1?Pf&LflPaisPOJPOLJCPCBPdM1*fG Z3rfL»sw口 0 jaPG10皿2<1*pa a?TOIBPCk ZQpdl zaP&13皿30lPOl 3PC14切.Id口工.莎panP】Pl-13poaQ1.2CIV«'円柑】TOlITpt.aipcda珂片Pl - 2dnUSTuuer-pGTCii JkiKCVlKUOST圖1.18 EasyARM2l3l元件布局圖(結(jié)合UARTO、定時

3、器0設(shè)計的實驗)實驗?zāi)康模?72 3 4 51)結(jié)合UART0和定時器0,設(shè)計一個秒表 復(fù)習(xí)UART0和定時器0的工作原理和應(yīng)用 熟悉掌握ARM中的程序應(yīng)用,將理論結(jié)合實際 通過本次實驗,將以前學(xué)的進行結(jié)合使用,以檢驗自己的學(xué)習(xí)質(zhì)量 更加熟練了 ARM的實驗環(huán)境實驗儀器:硬件:Easy-ARM實驗開發(fā)板一套計算機一臺(內(nèi)裝有 ADS1.2及EasyJTAG仿真器)軟件:Windows xp系統(tǒng),ADS1.2集成開發(fā)環(huán)境實驗原理:1. 中斷:LPC2131通過向量中斷控制器(VIC)管理中斷。外設(shè)中斷信號需要經(jīng)過 2個開關(guān)才能到達ARM內(nèi)核,真正產(chǎn)生異常,邏輯示意圖如圖4.129所示。如 果在V

4、IC中使能了相應(yīng)外設(shè)的中斷,外設(shè)中斷才能到達 VIC并向內(nèi)核發(fā)送中斷 請求;只有使能了內(nèi)核中斷IRQ或者FIQ,內(nèi)核才能真正產(chǎn)生異常。產(chǎn)±口昂1使用VIC的IRQ中斷處理過程如圖4.130所示:用戶程序首先要初始化VIC使能相關(guān)中斷,然后正常運行用戶程序(如 圖4.130中的);當有IRQ中斷產(chǎn)生時,VIC將會根據(jù)中斷源設(shè)置VICVectAddr寄存器為 相應(yīng)中斷服務(wù)程序的地址(如圖4.130中的),切換處理器工作模式為IRQ模式,并跳轉(zhuǎn)到異常向量表的IRQ中斷入口 0x00000018 處(如圖4.130 中的);讀取VICVectAddr寄存器的值然后放入PC程序指針,跳轉(zhuǎn)到相應(yīng)

5、中斷服務(wù)程序(如圖4.130中的);并返回原中斷點(如圖4.130中斷服務(wù)中執(zhí)行相應(yīng)的中斷處理,清除中斷標志,(如圖4.130中的); 中斷服務(wù)完成后,切換回原來的模式,中的)。圖4J,30 憧用VIC的IRQ申範處理過握2. UARTO 查詢:(1)特性:16字節(jié)收發(fā)FIFO ;寄存器位置符合16C550工業(yè)標準;接收器FIFO觸發(fā)點可為1,4, 8和14字節(jié); 內(nèi)置波特率發(fā)生器;LP C2131包含使能實現(xiàn)軟件流控制的機制。(2)結(jié)構(gòu):UART接收器模塊UxRx監(jiān)視串行輸入線RxD的有效輸入。UART Rx移位寄 存器(UxRSR )通過RxD接收有效的字符。當UxRSR接收到一個有效字符

6、時, 它將該字符傳送到UARTRx緩沖寄存器FIFO中,等待CPU或主機通過主機接口 進行訪問。UART發(fā)送器模塊UxTx接收CPU或主機寫入的數(shù)據(jù)并將數(shù)據(jù)緩存到 UART Tx保持寄存器FIF( UxTHR )中。UART Tx移位寄存器(UxTSR )讀取UxTHR 中的數(shù)據(jù)并將數(shù)據(jù) 通過串行輸出管腳TxD發(fā)送。UART波特率發(fā)生器模塊UxBRG產(chǎn)生UART Tx模塊所使用的定時。UxBRG 模塊時鐘源為VPB時鐘(pcik)。主時鐘與UxDLL和UxDLM寄存器所定義的除 數(shù)相除得到UART Tx模塊使用的時鐘。該時鐘為16倍過采樣時鐘NBAUDOUT。中斷接口包含寄存器UxIER和Ux

7、IIR。中斷接口接收幾個由UxTx和UxRx發(fā)出 的單時鐘寬度的使能信號。UxTx和UxRx的狀態(tài)信息保存在 UxLSR中。UxTx和UxRx的控制信息保存在 UxLCR中。UART的結(jié)構(gòu)如圖4.16所示:VPB接口提供CPU或主機與UART之間的通信連接。UART淺睛莖L 發(fā)生曙綾決 JUART樓攻模決八;瞪Ubt.EAUKtNTft牛斷接口UxSCRkLljfTxMTXRDY #巧(D UxTHRLbtPSRHOU. A4UfiAUDOUTRCLKR& 可HUkRSR*T)UxFCRNRXFLD¥ 會,RxDPSElPSFER'jRJTE*丹嚴2】ARt.lft荃

8、4花UART方推圖3. 定時器:(1)概述:LPC2131具有2個32位可編程定時/計數(shù)器,均具有4路捕獲、4比較路匹配 并輸出電路。定時器對外設(shè)時鐘(pcik)周期進行計數(shù),可選擇產(chǎn)生中斷或根據(jù) 4個匹配寄存器的設(shè)定,在到達指定的定時值時執(zhí)行其它動作(輸出高/低電平、翻轉(zhuǎn)或者無動作)。它還包括4個捕獲輸入,用于在輸入信號發(fā)生跳變時捕獲定 時器值,并可選擇產(chǎn)生中斷??捎糜趯?nèi)部事件進行計數(shù)的間隔定時器,或者通過捕獲輸入實現(xiàn)脈寬調(diào)制,亦可作為自由運行的定時器。定時器0和定時器1除了外設(shè)基地址以外,其它都相同。(2)定時器特性:帶可編程32位預(yù)分頻器的32位定時器/計數(shù)器;具有多達4路32位的捕獲

9、通道-當輸入信號跳變時可取得定時器的瞬時 值,也可選擇使捕獲事件產(chǎn)生中斷;4個32位匹配寄存器:匹配時定時器繼續(xù)工作,可選擇產(chǎn)生中斷;匹配時停止定時器,可選擇產(chǎn)生中斷;匹配時復(fù)位定時器,可選擇產(chǎn)生中斷。多達4個對應(yīng)于匹配寄存器的外部輸出,具有下列特性:匹配時設(shè)置為低電平;匹配時設(shè)置為高電平;匹配時翻轉(zhuǎn);匹配時無動作。(3) 結(jié)構(gòu)定時器 于定時器0)If*f恃我奇冬A 04""1 4捕蕊面存紙1捕itflf與箍24捕狂寄為藕日1TCisCt和定時器1的方框圖,如下圖所示:(注:捕獲寄存器 3不能用1 匹£«非帝0 1H 億LW厚番1TSyjflf孚舊 21

10、且配奇導(dǎo)話31H1鬼者【奇#番1(蛉難匹虻奇厚爵斷寄殍燕V'ATl-C)TCVAMWA- T注:掩莪菇族3疋:綻羽于定卜:再打$4.85建時器方嗨$(4 )定時器基本操作方法:計算定時器的時鐘頻率,設(shè)置PR寄存器進行分頻操作;設(shè)置比較匹配通道的初值及其工作模式, 若是使用捕獲功能,則設(shè)置捕 獲方式;若使用定時器的相關(guān)中斷,則設(shè)VIC,使能中斷; 設(shè)置TCR,啟動定時器。如前所述,定時計數(shù)器時鐘頻率計算如下:計數(shù)吋鐘頻率=冬豈N + 其中,N為PR的值。四、實驗內(nèi)容:結(jié)合了 UARTO和定時器,自編程序設(shè)計的一個可以記錄20個時間值的秒表。五、實驗步驟:1)2)3)八、按照開發(fā)板說明連接

11、計算機,打開ADS1.2和H-JTAG軟件,給開發(fā)板上電、 調(diào)試。載入編好的程序,運行ADS.12軟件;觀察實驗現(xiàn)象,看程序是否正常運作,有沒有達到實驗預(yù)計的功能。實驗程序流程圖:七、程序:1.程序說明:本程序是結(jié)合了 UART0和定時器,自編程序設(shè)計的一個可以記錄 20個時間 值的秒表。2.實驗程序(表格內(nèi)和字體加粗部分為增加修改的程序):#i nclude "con fig.h"#i nclude "stdio.h"#defi neUART_B PS115200uint32 K1=<<16;ui nt32 K2=<<17;ui

12、 nt32 K3=<<18;uin t32 h=0,m=0,s=0,ss=0,i=1;char str20,strr30/串口通訊波特率/*函數(shù)名稱 函數(shù)功能 入口參數(shù) 出口參數(shù)IRQ_TimerO()定時器0中斷服務(wù)程序,取反LED9控制口。 無無*/void _irq IRQ_Timer0 (void) s+;if(ss=100)ss=0;s+; if(s=60)s=0;m+; if(m=60)m=0;h+; if(h=24)h=0;T0IR = 0x01;VICVectAddr = 0x00; /*/* 清除中斷標志 */*通知VIC中斷處理結(jié)束*/函數(shù)名稱函數(shù)功能入口參數(shù)出

13、口參數(shù)DelayNS() 長軟件延時。 dly 延時參數(shù),值越大,延時越久 無*/void DelayNS (uint32 dly) uint32 i;for ( ; dly>0; dly-)for (i=0; i<50000; i+);/* 函數(shù)名稱 * 函數(shù)功能 率115200 。* 入口參數(shù) * 出口參數(shù):UART0_Init():串口初始化,設(shè)置為 8位數(shù)據(jù)位, 1位停止位,無奇偶校驗,波特:無:無*/void UART0_Init (void)uint16 Fdiv;U0LCR = 0x83;/ DLAB=1, 允許設(shè)置波特率Fdiv = (Fpclk / 16) / U

14、ART_BPS; / 設(shè)置波特率U0DLM = Fdiv / 256;U0DLL = Fdiv % 256;U0LCR = 0x03;/*UART0_SendByte() 向串口發(fā)送字節(jié)數(shù)據(jù),并等待發(fā)送完畢,查詢方式。 dat 要發(fā)送的數(shù)據(jù)無UART0_SendStr() 向串口發(fā)送一字符串 str 要發(fā)送的字符串的指針 無函數(shù)名稱函數(shù)功能入口參數(shù)出口參數(shù)*/ void UART0_SendByte (uint8 dat) U0THR = dat;/ 等待數(shù)據(jù)發(fā)送完畢while (U0LSR & 0x40) = 0); void PC_DispChar(uint8 x,uint8 y,

15、uint8 chr,uint8 color) UART0_StendByte(0xff); UART0_StendByte(x);UART0_StendByte(y; UART0_StendByte(chr);UART0_StendByte(color); /*函數(shù)名稱函數(shù)功能入口參數(shù)出口參數(shù)*/ void UART0_SendStr (uint8 x,uint8 y,uint8 color, char *str)while (1)if (*str = '0') break; / 遇到結(jié)束符,退出PC_DispChar(x+,y,*str+,color); / 發(fā)送數(shù)據(jù) if(

16、x>=80) x=0;y+;void reset() h=0;m=0;s=0;ss=0;for(i=1;i<21;i+)spirntf(strr,"%2d-%2d:%2d:%2d:%2d",i,h,m,s,ss); UART0_SendStr(0,i,0x30,strr);i=1;void xianshi()spirntf(str,"%2d:%2d:%2d:%2d",i,h,m,s,ss);UART0_SendStr(1,0,0x30,str);main()使用定時器實現(xiàn) 1秒鐘定時,控制 LED9 閃爍。中斷方式。 需要將跳線JP11連接B

17、EEP 。/* 函數(shù)名稱* 函數(shù)功能* 調(diào)試說明*/ int main (void)/* 設(shè)置管腳連接 GPIO */PINSEL0 = 0x00000005;IRQEnable();/* 定時器0初始化 */T0TCT0PRT0MCRT0MR0= 0;= 0;= 0x03;= Fpclk /100;/*/* 定時器設(shè)置為 0 */* 時鐘不分頻 */設(shè)置T0MR0匹配后復(fù)位T0TC,并產(chǎn)生中斷標志*/ /* 0.5 秒鐘定時 */* IRQ 中斷使能 */*設(shè)置定時器0中斷IRQ */VICIntSelect = 0x00;VICVectCntl0 = 0x20 | 0x04;VICVect

18、Addr0 = (uint32)IRQ_Timer0;VICIntEnable = 1 << 0x04;/* 所有中斷通道設(shè)置為 IRQ 中斷 */ /*設(shè)置定時器 0中斷通道分配最高優(yōu)先級 */ /* 設(shè)置中斷服務(wù)程序地址 */* 使能定時器 0中斷 */ rest() while(IO0PIN&K1); DelayNs(80); while(!(IO0PIN&K1);T0TCR = 0x01;/* 啟動定時器 */ while (1)if(IO0PIN&K1)=0)while(!(IO0PIN&K1);DelayNs(80);T0TCR = 0x00;while(IO0 PIN&K1)if(IO0 PIN&K3)=0) rest();xia nshi();while(!(IO 0P IN&K1);DelayNs(80);T0TCR =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論