版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
西安郵電大學(xué)〔計(jì)算機(jī)學(xué)院〕課程設(shè)計(jì)試驗(yàn)報(bào)告專業(yè)名稱: 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí): 計(jì)科1405學(xué) 號(hào): XXXXXXX姓 名: XXX指引教師: XXX試驗(yàn)日期:12111222第一周:開發(fā)板硬件裝配PACKPACKLCP2132NXP〔飛利浦創(chuàng)立〕ARM7TDMI-S32RISC和應(yīng)用編程〔IAP〕,16KBRAM,UART,一種帶全調(diào)制解調(diào)器接口。兩個(gè)I2CSPI32I/OCPU60MHzPLL。板子總體分了電源電路,晶振電路,復(fù)位電路,LED串口電路,JTAG調(diào)試電路等幾某些,如以以下圖所示1EasyARM2132開發(fā)板完整電路圖如以以下圖所示1.電源電路:LPC2132DCPOWER11.電源電路:LPC2132DCPOWER15VUSB1N5819如右圖所示。電路另一邊有一種紅色發(fā)光二極管,當(dāng)電源接通后,二極管會(huì)點(diǎn)亮。復(fù)位電路CMOS2K位串行EEPOM400KHzI2CCAT10251Vcc2:RESETVccRESET〔WP〕。WPnRSTLPC2132RST1CAT1025LPC2132系統(tǒng)時(shí)鐘電路LPC2132范疇:1~30MHz,Y1-11.0592MHz,PLL調(diào)整系統(tǒng)時(shí)鐘,通過片內(nèi)PLL60MHzCPUY2-32.768KHZJTAGJTAGJTAGLPC2132按鍵及顯示電路LPC213244LED4LEDDP3V31470RJP1JP12連通時(shí)候,LED1一側(cè)與芯片P0.17口就會(huì)連通,P0.17口輸出P0.17,LED1KEY1KEY2、KEY3一邊接地,另一邊接了4K7電阻然后與正極相連,還接了JP2跳線組,假設(shè)JP212P0.16KEY1時(shí)候,P0.16P0.16由于按鍵檢測(cè)電路可以編寫為檢測(cè)與否有低電平來推斷按鍵與否按下。UARTUSB用。JP6P0.0CH340GRXDCH340GX1X0接入了X1-12MHz晶振。①焊接最小系統(tǒng)對(duì)最小系統(tǒng)進(jìn)展測(cè)試。假設(shè)點(diǎn)亮,使用萬(wàn)用表測(cè)量U13.29V~3.31V,原3.30V,表白電源電路模塊正常。然后用示波器觀測(cè)晶振引腳波形,查看晶振與否正常。②焊接外接電路板。然后將正負(fù)極分別與排針焊接在一起;將蜂鳴器正負(fù)極分別于排針焊接;將按鍵兩邊與排針焊接在一起。LEDDP3.3VGNDLEDDP3.3VGND開關(guān)電路完好。③LED焊接LED電路,將LED1-LED7焊接在開發(fā)板上面,然后焊接R4-R7四個(gè)測(cè)試方法:JP11357LED1-LED4萬(wàn)用表檢測(cè)與否有短路。④焊接開關(guān)34K7R1、R2、R3JP2測(cè)試方法:給開發(fā)板供電,用萬(wàn)用表檢測(cè) KEY1-KEY3電壓,正常范疇?wèi)?yīng)當(dāng)是3.28V-3.31V,當(dāng)KEY1鍵按下時(shí)候,JP21電壓應(yīng)當(dāng)為0V;當(dāng)KEY2鍵按當(dāng)KEY3鍵按下時(shí)候,JP24電壓應(yīng)當(dāng)為0V。⑤焊接串口模塊CH340G接在一起,必要格外留神操作。測(cè)試方法:給開發(fā)板供電,然后USB口輸入,如以以下圖:⑥JTAG檢測(cè)方法:JTAGH-JTAGServer,點(diǎn)擊搜尋可以檢測(cè)到芯片。如以以下圖:在H-Flasher“FlashSelectionLPC2132,檢測(cè)到器件類型顯示于本窗口。1LEDLEDLED3LED32、硬件調(diào)試體會(huì)焊接過程中需要足夠急躁,不能看到別同窗進(jìn)度比自己快就急躁,提高自己焊接力氣,把握焊接技巧,焊接出最正確,最完善電路板。其次周:軟件編程與調(diào)試一、調(diào)試環(huán)境搭建①ADS1.2IDE②File->New,asmforlpc2132板建立一種工程〔ZQL_LIB1〕,指定工程途徑〔圖例中工程途徑為D:\ARM_Lib_Bak\ARM_asm〕。③點(diǎn)擊確認(rèn)<按鈕>,創(chuàng)立工程。④ZQL_LIB1main.S,翻開該文獻(xiàn)。⑤Edit->Perferences,設(shè)立字體和字號(hào)。⑥main.S“addtheusercodehere.行下建立顧客匯編程序代碼。⑦Erros&Warnings0,此時(shí)即可對(duì)工程進(jìn)展仿真。二、調(diào)試方法①單步運(yùn)營(yíng);在AXD調(diào)試器主窗口,選取Execute->Step〔或快捷鍵<F10>〕,解決器執(zhí)行一行代碼;②設(shè)立斷點(diǎn);在AXD調(diào)試器“代碼調(diào)試窗口”雙擊目的代碼行,假設(shè)消滅紅色實(shí)心圓點(diǎn),則表達(dá)斷點(diǎn)設(shè)立成功;然后選取Execute->Go全速運(yùn)營(yíng),解決器執(zhí)行程序停頓在斷點(diǎn)行;③運(yùn)營(yíng)到光標(biāo)行;在AXDAXDExecute->RuntoCursorARM存放器和存儲(chǔ)單元數(shù)值變化,具體操作方法在反面試驗(yàn)中會(huì)作具體簡(jiǎn)介。二、完畢試驗(yàn)內(nèi)容本人重要負(fù)責(zé)內(nèi)容:GPIOGPIO1、GPIO試驗(yàn)?zāi)縇PC2132工程模板使用。EasyJTAG仿真器安裝和使用。③可以在EasyARM教學(xué)試驗(yàn)開發(fā)平臺(tái)上運(yùn)營(yíng)第一種程序。LPCARM7GPIO把握。試驗(yàn)原理LPC2132系列ARM7微把握器全部GPIO口,均為雙向I/O口。引腳可以依照需要配備為I/O口或其他功能,和GPIO有關(guān)存放器一共有6個(gè)見下表:通過編程把握BEEP〔P0.7〕輸出低電平,從而實(shí)現(xiàn)蜂鳴器持續(xù)發(fā)聲。試驗(yàn)過程①啟動(dòng)ADS1.2IDEARMExecutableImageforlpc2132工程模板BeepCon_C。usermain.c。DebugInRam生成目的,然后編譯鏈接工程。EasyARMP0.7Beep跳線短接Project->DebugAXDJTAG仿真調(diào)試。⑥全速運(yùn)營(yíng)程序,程序?qū)?huì)在main.c主函數(shù)中停頓〔由于main函數(shù)起始處默認(rèn)設(shè)立有斷點(diǎn)〕。⑦單擊ContextVariable圖標(biāo)按鈕〔或者選取ProcessorViews->Variables〕翻開變量觀測(cè)窗口,通過此窗口可以觀測(cè)局部變量和全局變量。選取SystemViews->DebuggerInternalsLPCARM7微把握器片內(nèi)外存放器窗口。⑧可以單步運(yùn)營(yíng)程序,可以設(shè)立/取消斷點(diǎn);或者全速運(yùn)營(yíng)程序,停頓程序運(yùn)營(yíng),觀測(cè)變量值,推斷蜂鳴器把握與否對(duì)的。問題分析與解決方法GPIOIO0DIRP0.7無法輸出低電平信號(hào),故而蜂鳴器沒有發(fā)聲,添加這行代碼后,成功實(shí)現(xiàn)功能。2、定期器與中斷把握試驗(yàn)?zāi)竣偕鐻PCARM70試驗(yàn)原理01秒定期,把握蜂鳴器蜂鳴。承受中斷方式實(shí)現(xiàn)定期把握。備注:EasyARM2132試驗(yàn)板上系統(tǒng)時(shí)鐘默以為11.0592MHz;系統(tǒng)中已定義了符號(hào)常量Fpclk=11059200試驗(yàn)過程①啟動(dòng)ADS1.2ARMExecutableImageforlpc2132TimeOut_C。user組中main.c中編寫主程序代碼。DebugInExram生成目的,然后編譯連接工程。④選取【Project】->【Debug】,啟動(dòng)AXD進(jìn)展JTAG仿真調(diào)試。LPC2132P0.7⑥全速運(yùn)營(yíng)程序,蜂鳴器會(huì)響一秒,停一秒,然后再響一秒……依次循環(huán)。代碼如下:#include“config.h“#include“config.h“#defineBEEP 1<<7/*P0.7BEEP*//*******************************************************************************************函數(shù)名稱:IRQ_Timer0**函數(shù)功能:定期器0中斷效勞程序,取反LED2把握口。**入口參數(shù):無**出口參數(shù):無*******************************************************************************************/void irqIRQ_Timer0(void){if((IO0SET&BEEP)==0)IO0SET=BEEP; /*BEEP*/elseIO0CLR=BEEP;T0IR=0x01; /*去除中斷標(biāo)志*/VICVectAddr=0x00;
/*VIC中斷解決完畢*/}/********************************************************************************************函數(shù)名稱:main**函數(shù)功能:使用定期器實(shí)現(xiàn)1LED9閃耀。中斷方式。**調(diào)試說明:需要將跳線JP11BEEP。******************************************************************************************/intmain(void){{PINSEL1=0x00000000;/*GPIO*/IO0DIR =BEEP;/*設(shè)立BEEP把握口輸出*/IRQEnable;/*IRQ中斷使能*//*0初始化*/T0TC=0;/*0*/T0PR=0;/*時(shí)鐘不分頻*/T0MCR =0x03;/*T0MR0匹配后復(fù)位T0TC,并產(chǎn)生中斷標(biāo)志*/T0MR0 =Fpclk;/*1Fpclk11059200*/T0TCR =0x01;/*啟動(dòng)定期器*//*0IRQ*/VICIntSelect=0x00;/*IRQ中斷*/VICVectCntl0=0x20|0x04;/*設(shè)立定期器0中斷通道分派最高優(yōu)先級(jí)*/VICVectAddr0=(uint32)IRQ_Timer0;/*設(shè)立中斷效勞程序地址*/VICIntEnable=1<<0x04;/*0中斷*/while(1);return0;}問題分析與解決方法下板后蜂鳴器不發(fā)聲,檢查后覺察是蜂鳴器一邊接了低電平,另一邊接了P0.7引腳,輸出低電平后,倆邊都是低,因此蜂鳴器不發(fā)聲,重接線后恢復(fù)正常。3、外中斷把握試驗(yàn)?zāi)縇PC系列ARM7微把握器向量中斷把握器及外中斷應(yīng)用技術(shù)。試驗(yàn)原理主程序閃耀LED,EINT/停頓BEEP試驗(yàn)過程①跳線LED1、Key1Beep分別連接到P1.18、P0.16P0.7管腳;使用KEY1外中斷;②啟動(dòng)ADS1.2ARMExecutableImageforlpc2132TimeEINT_C。③在usermain.c中編寫主程序代碼;使用系統(tǒng)宏IRQEnableIRQ中斷。④裝載并使能外中斷;DebugInExram生成目的,然后編譯連接工程。⑥選取【Project】->【Debug】,啟動(dòng)AXD進(jìn)展JTAG仿真調(diào)試。⑦全速運(yùn)營(yíng)程序,LED⑧每一次按鍵Key,蜂鳴器就會(huì)轉(zhuǎn)換靜音或鳴響狀態(tài)。代碼如下:#include“config.h“#include“config.h“#define BEEPCON1<<7 //P0.7Beep,低電平蜂鳴#define LED11<<18//P1.18LED1,低電燈亮/*****************************************************************************名稱:DelayNS*功能:長(zhǎng)軟件延時(shí)*入口參數(shù):dly---延時(shí)參數(shù),值越大,延時(shí)越久*出口參數(shù):無****************************************************************************/void DelayNS(uint32 dly){ uint32 i;for(;dly>0;dly--){for(i=0;i<5000;i++);}}/****************************************************************************名稱:IRQ_EINT0BEEPCON把握口。入口參數(shù):無出口參數(shù):無****************************************************************************/void irqIRQ_Eint0(void){if((IO0SET&BEEPCON)==0) //BEEPCON管教輸出狀態(tài)IO0SET=BEEPCON;elseIO0CLR=BEEPCON;while((EXTINT&0x01)!=0)EXTINT=0x01; //去除EINT0中斷標(biāo)志VICVectAddr=0x00; //告知VIC中斷解決完畢}/****************************************************************************文件名:main.c功能:主程序閃耀LED1;KEY1仿照外中斷方式,每次外中斷大事反轉(zhuǎn)Beep鳴響狀態(tài)。說明:****************************************************************************/intmain(void){intx;PINSEL0=0x00000000;//設(shè)立管腳連接GPIOPINSEL10x00000001;//設(shè)立管腳P0.16為EINT0IO0DIR=BEEPCON;IO1DIR=LED1;
//設(shè)立P0.7為輸出//設(shè)立P1.18為輸出EXTMODE = 0x00;IRQEnable;VICDefVectAddr=(int)IRQ_Eint0; //設(shè)立EINT0為非向量IRQ中斷EXTINT=0x01; //去除EINT0中斷標(biāo)志VICIntEnable=1<<0x0e; //使能EINT0中斷while(1){//EINT0中斷if(x!=0){IO1SET=LED1;x=0;}else{IO1CLR=LED1;x=1;}DelayNS(100);}}return(0);}問題分析與解決方法LED閃耀正常,但是按鍵后蜂鳴器沒有任何反映,通過一步步排查,最終覺察,引腳定義到了KEY3,但是按鍵卻按下了KEY1,更改引腳定義后,問題解決。4、UART試驗(yàn)?zāi)客ㄟ^試驗(yàn),把握UART1試驗(yàn)原理0HelloEasyARM2132!”,然后返回上位機(jī)顯示。試驗(yàn)過程①啟動(dòng)ADS1.2,使用ARMExecutableImageforlpc2132工程模板建立一種工程DataRet_C。②在user組中main.c中編寫主程序代碼,在工程中config.h文獻(xiàn)中參與#include<stdio.h>。DebugInRam生成目的,然后編譯連接工程。EasyARM2132JP6TxD0RxD0UART0通信試驗(yàn)。LPC2132CZ2(UART0)PCCOM1連接。PCEasyARMCOM1115200->【發(fā)送數(shù)據(jù)】,在彈動(dòng)身送數(shù)據(jù)窗口中點(diǎn)擊“高檔”即可翻開承受窗口。⑥選取【Project】->【DebugAXDJTAG仿真調(diào)試。PCEasyARM軟件發(fā)送如“HelloEasyARM2132!”字樣字符串,EasyARM2132開發(fā)板承受到數(shù)據(jù)后,并將承受到數(shù)據(jù)回發(fā)給PC機(jī)。代碼如下:#include“config.h”#defineUART_BPS 115200 //串口通信波特率/****************************************************************************名 功 能:長(zhǎng)軟件延時(shí)出口參數(shù):無
延時(shí)參數(shù),值越大,延時(shí)越久****************************************************************************/void DelayNS(uint32 dly){uint32 i;for(;dly>0;dly--)for(i=0;i<5000;i++);}/***********************************************************************************函數(shù)名稱:UART0_Init**函數(shù)功能:串口初始化,設(shè)立為8位數(shù)據(jù)位,1115200*********************************************************************************/voidUART0_Init(void){uint16Fdiv;U0LCR0x83; //DLAB1,容許設(shè)立波特率FdivFpclk/16/UART_BPS; 設(shè)立波特率U0DLMFdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;}/***********************************************************************************函數(shù)名稱:UART0_GetByte**函數(shù)功能:從串口承受1字節(jié)數(shù)據(jù),使用查詢方式承受**入口參數(shù):無**出口參數(shù):承受到數(shù)據(jù)**********************************************************************/uint8UART0_GetByte(void){uint8rcv_dat;while((U0LSR0x01)0); 等待承受標(biāo)志置位rcv_datU0RBR;return(rcv_dat);}/***********************************************************************************函數(shù)名稱:UART0_GetStr**函數(shù)功能:從串口承受**入口參數(shù):s 指向承受數(shù)據(jù)數(shù)組指針n 承受個(gè)數(shù)**出口參數(shù):無**********************************************************************/voidUART0_GetStr(uint8*s,uint32n){for(;n>0;n--)*s++=UART0_GetByte;}/***********************************************************************************函數(shù)名稱:UART0_SendByte**函數(shù)功能:向串口發(fā)送字節(jié)數(shù)據(jù)
要發(fā)送數(shù)據(jù)**********************************************************************/voidUART0_SendByte(uint8dat){U0THRdat; //寫入數(shù)據(jù)while((U0LSR&0x400); //等待數(shù)據(jù)發(fā)送完畢}/***********************************************************************************函數(shù)名稱:UART0_SendStr**函數(shù)功能:向串口發(fā)送一字符串
要發(fā)送字符串指針**********************************************************************/voidUART0_SendStr(uint8const*str){while(1){if(*str==‘\0’)break; //遇到完畢符,退出UART0_SendByte(*str++); //發(fā)送數(shù)據(jù)}}/****************************************************************************名稱:mainUART0HelloEasyARM2132!”,并發(fā)送回上位機(jī)顯示PCEasyARM.exe。****************************************************************************/intmain(void){uint8snd[32];PINSEL0=0x00000005;UART0_Init;
//設(shè)立I/OUART0//串口初始化UART0_GetStr(snd,18); DelayNS(10);UART0_SendStr(snd); DelayNS(10);while(1);while(1);return(0);}問題分析與解決方法代碼運(yùn)營(yíng)后,PCUSB接口接觸不良,接USB解決。5.綜合試驗(yàn):交通燈我負(fù)責(zé)是蜂鳴器函數(shù),中斷效勞程序,GPIO初始化函數(shù),鍵盤掃描模塊。最終效果圖如下:蜂鳴器函數(shù)模塊:定義一種BEEP引腳P0.8P0.8uint32BEEP=1; P0.把握蜂鳴器,低電平有效voidsay{ 蜂鳴器函數(shù)IO0CLR=BEEP;DelayNS(10);IO0SET=}中斷效勞程序模塊:1displaydisplay數(shù),display傳入?yún)?shù)就是數(shù)碼管要顯示數(shù)字,然后每秒調(diào)用一次display函數(shù),實(shí)現(xiàn)倒計(jì)時(shí)。voidTimeInit//中斷效勞程序初始化函數(shù){IRQEnable IR中斷使能定期器0T0TC=T0PR=時(shí)鐘不分頻T0MCR=0x0;設(shè)立T0MR0T0TC,并產(chǎn)生中斷標(biāo)志T0MR0=Fpck1秒鐘定期T0TCR=0x0;啟動(dòng)定期器設(shè)立定期器0IRQVICIntSelect=0x0 IRQ中斷VICVectCntl0=0x200x4 0中斷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)燃燒電池氧分析儀行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)家用燃?xì)鈱S媚z管行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)彎玻璃數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度老舊違建拆除及環(huán)境整治項(xiàng)目合作協(xié)議書3篇
- 二零二五版電子元器件物品質(zhì)押融資合同3篇
- 2025版消防應(yīng)急廣播系統(tǒng)安裝與維護(hù)承包合同范本3篇
- 二零二五版林業(yè)資源保護(hù)土地承包協(xié)議3篇
- 2025版物業(yè)委托經(jīng)營(yíng)管理合同范本(含社區(qū)醫(yī)院)3篇
- 二零二五年度企業(yè)職工失業(yè)保險(xiǎn)補(bǔ)貼協(xié)議書3篇
- 《眼科》主治醫(yī)師考試測(cè)試題(含答案)
- 化學(xué)-河南省TOP二十名校2025屆高三調(diào)研考試(三)試題和答案
- 智慧農(nóng)貿(mào)批發(fā)市場(chǎng)平臺(tái)規(guī)劃建設(shè)方案
- 小學(xué)數(shù)學(xué)分?jǐn)?shù)四則混合運(yùn)算300題帶答案
- 林下野雞養(yǎng)殖建設(shè)項(xiàng)目可行性研究報(bào)告
- 2023年水利部黃河水利委員會(huì)招聘考試真題
- Python編程基礎(chǔ)(項(xiàng)目式微課版)教案22
- 01J925-1壓型鋼板、夾芯板屋面及墻體建筑構(gòu)造
- 欠電費(fèi)合同范本
- 2024年新高考地區(qū)數(shù)學(xué)選擇題填空壓軸題匯編十八含解析
- 大型商場(chǎng)招商招租方案(2篇)
- 2022年袋鼠數(shù)學(xué)競(jìng)賽真題一二年級(jí)組含答案
評(píng)論
0/150
提交評(píng)論