嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩9頁(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)介

嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告班級(jí):學(xué)號(hào):姓名:成績(jī):指導(dǎo)教師:1.實(shí)驗(yàn)一1.1 實(shí)驗(yàn)名稱博創(chuàng)UP-3000實(shí)驗(yàn)臺(tái)基本結(jié)構(gòu)及使用方法1.2 實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)嵌入式系統(tǒng)開發(fā)流程。2.熟悉UP-net3000實(shí)驗(yàn)平臺(tái)的核心硬件電路和外設(shè)。3.增加對(duì)各個(gè)外設(shè)的了解,為今后各個(gè)接口實(shí)驗(yàn)打下基礎(chǔ)。1.3 實(shí)驗(yàn)環(huán)境博創(chuàng)UP-NETARM3000嵌入式開發(fā)平臺(tái)1.4實(shí)驗(yàn)內(nèi)容及要求嵌入式系統(tǒng)開發(fā)流程概述熟悉UP-net3000實(shí)驗(yàn)平臺(tái)的核心硬件電路和外設(shè)ARMJTAG的安裝與使用通過(guò)操作系統(tǒng)自帶的通訊軟件超級(jí)終端,檢驗(yàn)各個(gè)外設(shè)的工作狀態(tài)通過(guò)本次課程對(duì)各個(gè)外設(shè)的了解,為今后各個(gè)接口實(shí)驗(yàn)打下基礎(chǔ)1.5實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟硬件安裝軟件安裝(1)超級(jí)終端:運(yùn)行Windows系統(tǒng)下的超級(jí)終端(HyperTerminal)應(yīng)用程序,新建一個(gè)通信終端;在接下來(lái)的對(duì)話框中選擇ARM開發(fā)平臺(tái)實(shí)際連接的PC機(jī)串口;完成新建超級(jí)終端的設(shè)置以后,可以選擇超級(jí)終端文件菜單中的保存,將當(dāng)前設(shè)置保存為一個(gè)特定超級(jí)終端到桌面上,以備后用。JTAG驅(qū)動(dòng)程序的安裝:執(zhí)行armJtag目錄下armJtagSetup.exe程序,選擇安裝目錄,安裝JTAG軟件。1.6實(shí)驗(yàn)過(guò)程與分析了解嵌入式系統(tǒng)開發(fā)流程對(duì)硬件的安裝對(duì)軟件的安裝1.7實(shí)驗(yàn)結(jié)果總結(jié)通過(guò)本次實(shí)驗(yàn)對(duì)嵌入式系統(tǒng)開發(fā)流程進(jìn)行了了解,并且對(duì)硬件環(huán)境和軟件環(huán)境進(jìn)行了安裝配置,通過(guò)本次實(shí)驗(yàn)對(duì)以后的接口實(shí)驗(yàn)打了基礎(chǔ)。編寫主函數(shù)3.6實(shí)驗(yàn)過(guò)程與分析定義ZLG7289寄存器#defineZLG7289_CS#defineZLG7289_KEY#defineZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)#defineZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;rSIOCON=ZLG7289SIOCtrl;}while(0)(2)主函數(shù)中需要在開始初始化zlg7289。編寫驅(qū)動(dòng)和鍵值映射之后,在一個(gè)循環(huán)里面從鍵盤中讀取按鍵的號(hào)碼,根據(jù)鍵值映射讀出按鍵的值。然后在主函數(shù)中,將讀出的按鍵值在數(shù)碼管上顯示出來(lái)。(3)Main函數(shù)的主要功能部分,GetKey()函數(shù)得到按鍵值是調(diào)用zlg7289獲取鍵盤事件和核心。3.7實(shí)驗(yàn)結(jié)果總結(jié)通過(guò)實(shí)驗(yàn)最終LED燈上能顯示數(shù)字,即實(shí)現(xiàn)了通過(guò)鍵值控制LED燈3.8心得體會(huì)通過(guò)本次實(shí)驗(yàn)對(duì)ZLG7289芯片的內(nèi)部結(jié)構(gòu)有了更進(jìn)一步的了解,對(duì)ZLG7289驅(qū)動(dòng)鍵盤和LED的方法也更進(jìn)一步的進(jìn)行了學(xué)習(xí)。4.實(shí)驗(yàn)四4.1 實(shí)驗(yàn)名稱電機(jī)轉(zhuǎn)動(dòng)控制及中斷實(shí)驗(yàn)4.2 實(shí)驗(yàn)?zāi)康氖煜RM本身自帶的六路即三對(duì)PWM,掌握相應(yīng)寄存器的配置編程實(shí)現(xiàn)ARM系統(tǒng)的PWM輸出和I/O輸出,前者用于控制直流電機(jī),后者用于控制步進(jìn)電機(jī)。了解直流電機(jī)和步進(jìn)電機(jī)的工作原理,學(xué)會(huì)用軟件的方法實(shí)現(xiàn)步進(jìn)電機(jī)的脈沖分配,即用軟件的方法代替硬件的脈沖分配器。掌握帶有PWM和I/O的CPU編程實(shí)現(xiàn)其相應(yīng)功能的主要方法。4.3 實(shí)驗(yàn)環(huán)境(1)ADS1.2開發(fā)環(huán)境(2)博創(chuàng)UP-NETARM3000嵌入式開發(fā)平臺(tái)(3)PC(4)串口線4.4實(shí)驗(yàn)內(nèi)容及要求學(xué)習(xí)步進(jìn)電機(jī)和直流電機(jī)的工作原理,了解實(shí)現(xiàn)兩個(gè)電機(jī)轉(zhuǎn)動(dòng)對(duì)于系統(tǒng)的軟件和硬件要求。學(xué)習(xí)ARM知識(shí),掌握PWM的生成方法,同時(shí)也要掌握I/O的控制方法。編程實(shí)現(xiàn)ARM芯片的一對(duì)PWM輸出用于控制直流電機(jī)的轉(zhuǎn)動(dòng),通過(guò)A/D旋鈕控制其正反轉(zhuǎn)及轉(zhuǎn)速編程實(shí)現(xiàn)ARM的四路I/O通道實(shí)現(xiàn)環(huán)形脈沖分配用于控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),通過(guò)A/D旋鈕轉(zhuǎn)角控制步進(jìn)電機(jī)的轉(zhuǎn)角。通過(guò)超級(jí)終端來(lái)控制直流電機(jī)與步進(jìn)電機(jī)的切換。4.5實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟(1)新建工程,將“電機(jī)轉(zhuǎn)動(dòng)控制實(shí)驗(yàn)”中的文件添加到工程(2)編寫直流電機(jī)初始化數(shù)(MotorCtrl.c)(3)控制直流電機(jī)與步進(jìn)電機(jī)4.6實(shí)驗(yàn)過(guò)程與分析(1)通過(guò)把從串口中得到控制信息的代碼修改成從zlg7289芯片中讀取小鍵盤信息,從而利用試驗(yàn)臺(tái)的小鍵盤來(lái)控制步進(jìn)電機(jī)和直流電機(jī)的切換(2)A/D轉(zhuǎn)換可以把電信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)來(lái)控制電機(jī)的轉(zhuǎn)速。for(;;) { loop: //if((rUTRSTAT0&0x1)) //有輸入,則返回 if(rPDATG&ZLG7289_KEY)//17鍵小鍵盤控制電機(jī) { *Revdata=RdURXH0(); gotobegin; } Delay(10);ADData=GetADresult(0); if(abs(lastADData-ADData)<20) gotoloop;Delay(10);count=-(ADData-lastADData)*3; //(ADData-lastADData)*270/1024為ad旋鈕轉(zhuǎn)過(guò)的角度,360/512為步距角, //由于接了1/8減速器,兩者之商再乘以8為步進(jìn)電機(jī)相應(yīng)轉(zhuǎn)過(guò)的角度 if(count>=0) {//轉(zhuǎn)角大于零 for(j=0;j<count/8;j++) { for(i=0;i<=7;i++) { SETEXIOBITMASK(stepdata[i],0xf0); Delay(200); } } } else {//轉(zhuǎn)角小于零 count=-count; for(j=0;j<count/8;j++) { for(i=7;i>=0;i--) { SETEXIOBITMASK(stepdata[i],0xf0); Delay(200); } } }lastADData=ADData; } }S3C44B0X具有6個(gè)16bit定時(shí)器,每個(gè)定時(shí)器可以基于中斷模式或DMA模式運(yùn)行。在定時(shí)中斷服務(wù)程序中寫需要定時(shí)處理的程序,每隔一段時(shí)間就會(huì)運(yùn)行一次。4.7實(shí)驗(yàn)結(jié)果總結(jié)利用A/D轉(zhuǎn)換器實(shí)現(xiàn)了對(duì)直流電機(jī)和步進(jìn)電機(jī)的控制,利用實(shí)驗(yàn)設(shè)備上自帶的小鍵盤實(shí)現(xiàn)了A/D轉(zhuǎn)換器對(duì)兩個(gè)電機(jī)控制的切換。4.8心得體會(huì)通過(guò)本次實(shí)驗(yàn),熟悉了ARM自帶的六路(三對(duì))PWM,并對(duì)直流電機(jī)和步進(jìn)電機(jī)的工作原理有了進(jìn)一步的了解。5.實(shí)驗(yàn)五5.1 實(shí)驗(yàn)名稱LCD驅(qū)動(dòng)及觸摸屏實(shí)驗(yàn)5.2 實(shí)驗(yàn)?zāi)康恼莆誏CD顯示原理及顯示驅(qū)動(dòng)的嵌入式系統(tǒng)編程實(shí)現(xiàn)方法;學(xué)習(xí)基于ARM的LCD顯示驅(qū)動(dòng)控制方法,通過(guò)對(duì)ARM內(nèi)置的LCD控制器進(jìn)行編程實(shí)現(xiàn)驅(qū)動(dòng)LCD顯示屏;學(xué)習(xí)觸摸屏基本原理,理解觸摸屏的輸出標(biāo)定以及與LCD顯示器配合的過(guò)程,編程對(duì)觸摸屏進(jìn)行控制。5.3 實(shí)驗(yàn)環(huán)境(1)ADS1.2開發(fā)環(huán)境(2)博創(chuàng)UP-NETARM3000嵌入式開發(fā)平臺(tái)(3)PC(4)串口線5.4實(shí)驗(yàn)內(nèi)容及要求學(xué)習(xí)LCD顯示器的基本原理,理解其驅(qū)動(dòng)控制方法編程對(duì)觸摸屏進(jìn)行控制,實(shí)現(xiàn):1.點(diǎn)擊觸摸屏上兩點(diǎn)后,兩點(diǎn)之間畫出一條直線。2.點(diǎn)擊觸摸屏并在其上移動(dòng),顯示移動(dòng)軌跡(3)編程實(shí)現(xiàn)總線方式驅(qū)動(dòng)模塊的LCD和ARM內(nèi)置的LCD控制器來(lái)驅(qū)動(dòng)LCD5.5實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟新建工程定義有關(guān)常量與宏#defineLCDWIDTH320#defineLCDHEIGHT240U32*pLCDBuffer16=(U32*)0xc000000;//一級(jí)緩存指針U32LCDBuffer[LCDHEIGHT][LCDWIDTH];//二級(jí)緩存編寫LCD初始化函數(shù)編寫LCD刷新函數(shù)編寫主函數(shù)5.6實(shí)驗(yàn)過(guò)程與分析(1)通過(guò)不斷刷新的方式獲得LCD液晶屏幕的動(dòng)畫。即刷新函數(shù)將二級(jí)緩存LCDBuffer的數(shù)據(jù)由32位彩色圖形信息轉(zhuǎn)換成8位256色的圖形信息,然后放到pLCDBuffer16指向的一級(jí)緩存。(2)觸摸屏的先得到觸屏輸出的電信號(hào)的值,然后轉(zhuǎn)換為實(shí)際的屏幕坐標(biāo),再根據(jù)動(dòng)作來(lái)決定如何處理緩存信息,刷新LCD。LCD二級(jí)緩存矩陣:for(i=0;i<9;i++){switch(i){case0:jcolor=0x00000000;//黑色break;case1:jcolor=0x000000e0;//紅色break;case2:jcolor=0x0000d0e0;//橙色break;case3:jcolor=0x0000e0e0;//黃break;case4:jcolor=0x0000e000;//綠色break;case5:jcolor=0x00e0e000;//青色break;case6:jcolor=0x00e00000;//藍(lán)色break;case7:jcolor=0x00e000e0;//紫色break;case8:jcolor=0x00e0e0e0;//白色break;}for(k=0;k<240;k++)for(j=i*32;j<i*32+32;j++)LCDBuffer[k][j]=jcolor;}jcolor=0x000000ff;for(i=0;i<240;i++){if(i==80||i==160)jcolor<<=8;for(j=288;j<320;j++)LCDBuffer[i][j]=jcolor;}5.7實(shí)驗(yàn)結(jié)果總結(jié)本次實(shí)驗(yàn)由于坐標(biāo)設(shè)定的問(wèn)題并沒(méi)有成功實(shí)現(xiàn)觸摸痕跡的顯示,但在測(cè)試過(guò)程中,在觸摸屏上點(diǎn)擊或移動(dòng)時(shí)會(huì)在超級(jí)終端上有顯示。5.8心得體會(huì)雖然本次實(shí)驗(yàn)不太成功實(shí)現(xiàn),但對(duì)LCD屏幕和觸摸屏的工作原理有了進(jìn)一步的了解,更好的掌握了LCD顯示原理及顯示驅(qū)動(dòng)的嵌入式系統(tǒng)編程實(shí)現(xiàn)方法。6.實(shí)驗(yàn)六6.1 實(shí)驗(yàn)名稱ucos-II裁剪實(shí)驗(yàn)6.2 實(shí)驗(yàn)?zāi)康恼莆咋蘡os-II裁剪的基本原理與嵌入式編程實(shí)現(xiàn)方法;學(xué)習(xí)如何根據(jù)具體情況對(duì)μcos-II操作系統(tǒng)進(jìn)行裁剪,從而得到即滿足需要,又非常緊湊的應(yīng)用軟件系統(tǒng)。6.3 實(shí)驗(yàn)環(huán)境(1)ADS1.2開發(fā)環(huán)境(2)博創(chuàng)UP-NETARM3000嵌入式開發(fā)平臺(tái)(3)PC(4)串口線6.4實(shí)驗(yàn)內(nèi)容及要求通過(guò)對(duì)μcos-II配置文件(OS_CFG.H)中相關(guān)的配置常量進(jìn)行設(shè)置,實(shí)現(xiàn)對(duì)μcos-II的裁剪給出裁剪的詳細(xì)過(guò)程與裁剪結(jié)果說(shuō)明,并生成裁剪后的操作系統(tǒng)文件。6.5實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟(1)新建工程,將ucosII移植的文件添加到工程中。(2)編輯os_cfg.h頭文件。(3)將裁減后的系統(tǒng)所需用到的功能宏定義配置常量置為1,實(shí)現(xiàn)系統(tǒng)的裁減。(4)編譯生成新的ucosII系統(tǒng)。6.6實(shí)驗(yàn)過(guò)程與分析(1)配置功能常量,將裁剪后的系統(tǒng)需要用到的功能配置常量設(shè)為1(2)裁減信號(hào)量數(shù)據(jù)(3)配置數(shù)據(jù)結(jié)構(gòu)OS_MAX_TASKS,若程序中用到了三個(gè)任務(wù),則該值的最小值為3OS_LOWEST_PRIO設(shè)置程序中最低任務(wù)的優(yōu)先級(jí)OS_TASK_IDLE_STK_SIZE設(shè)置UC/OS操作系統(tǒng)中空閑任務(wù)堆棧的容量OS_TASK_STAT_STK_SIZE設(shè)定統(tǒng)計(jì)任務(wù)的任務(wù)堆棧容量6.7實(shí)驗(yàn)結(jié)果總結(jié)通過(guò)本次實(shí)驗(yàn),裁減了系統(tǒng),修改了某些數(shù)據(jù)結(jié)構(gòu)相關(guān)的常量,節(jié)省了內(nèi)存空間6.8心得體會(huì)通過(guò)本次實(shí)驗(yàn)主要學(xué)習(xí)到了如何根據(jù)具體情況對(duì)μcos-II操作系統(tǒng)進(jìn)行裁剪,從而得到即滿足需要,又非常緊湊的應(yīng)用軟件系統(tǒng)。7.實(shí)驗(yàn)七7.1 實(shí)驗(yàn)名稱ucos-II移植實(shí)驗(yàn)7.2 實(shí)驗(yàn)?zāi)康牧私猞藽/OS-II內(nèi)核的主要結(jié)構(gòu),掌握ARM的C語(yǔ)言和匯編語(yǔ)言的編程方法;了解ARM7處理器結(jié)構(gòu);掌握將μC/OS-II內(nèi)核移植到ARM7處理器上的基本原理與嵌入式編程實(shí)現(xiàn)方法7.3 實(shí)驗(yàn)環(huán)境(1)ADS1.2開發(fā)環(huán)境(2)博創(chuàng)UP-NETARM3000嵌入式開發(fā)平臺(tái)(3)PC(4)串口線7.4實(shí)驗(yàn)內(nèi)容及要求(1)將μC/OS-II內(nèi)核移植到ARM7微處理器S3C44B0上。(2)編寫兩個(gè)簡(jiǎn)單任務(wù),在超級(jí)終端上觀察兩個(gè)任務(wù)的切換。7.5實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)步驟(1)新建工程(2)該實(shí)驗(yàn)的文件分為兩類,其一是STARTUP目錄下的系統(tǒng)初始化、配置等文件,其二是uCOS-II的全部源碼,arch目錄下的3個(gè)文件是和處理器架構(gòu)相關(guān)的3.定義驅(qū)動(dòng)函數(shù)(tchscr.c)(3)設(shè)置os_cpu.h中與處理器和編譯器相關(guān)的代碼(4)用C語(yǔ)言編寫6個(gè)操作系統(tǒng)相關(guān)的函數(shù)(5)用匯編語(yǔ)言編寫4個(gè)與處理器相關(guān)的函數(shù)(6)編寫一個(gè)簡(jiǎn)單的多任務(wù)程序來(lái)測(cè)試一下移植是否成功(7)編譯并下載移植后的uCOS-II7.6實(shí)驗(yàn)過(guò)程與分析首先需要對(duì)相關(guān)寄存器做詳細(xì)的設(shè)定用匯編語(yǔ)言編寫與處理器相關(guān)的函數(shù)用分時(shí)的方法同時(shí)運(yùn)行兩個(gè)任務(wù)OS_STKTaskName_Stack[STACKSIZE]={0,};//任務(wù)堆棧voidTaskName(void*Id);//任務(wù)函數(shù)#defineTaskName_PrioN//任務(wù)優(yōu)先級(jí)在main()函數(shù)中調(diào)用OSStart()函數(shù)之前用下列語(yǔ)句創(chuàng)建任務(wù):OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_Stack[STACKSIZE-1],TaskName_Prio);OSTaskCreate()函數(shù)的原型是:INT8UOSTaskCreate(void(*task)(void*pd),void*p_arg,OS_STK*ptos,INT8Uprio);編寫任務(wù)函數(shù)7.7實(shí)驗(yàn)結(jié)果總結(jié)通過(guò)實(shí)驗(yàn)達(dá)到了ucosII系統(tǒng)移植的目的,并編寫了一個(gè)簡(jiǎn)單的多任務(wù)程序,分時(shí)運(yùn)行。7.8心得體會(huì)通過(guò)本次實(shí)驗(yàn)了解了μC/OS-II內(nèi)核的主要結(jié)構(gòu),掌握了ARM的C語(yǔ)言和匯編語(yǔ)言的編程方法。實(shí)驗(yàn)八8.1 實(shí)驗(yàn)名稱各接口模塊相互銜接綜合實(shí)驗(yàn)8.2 實(shí)驗(yàn)?zāi)康幕仡櫞?、鍵盤、LED接口、A/D、電機(jī)轉(zhuǎn)動(dòng)、定時(shí)器中斷、LCD接口及觸摸屏驅(qū)動(dòng)控制等接口模塊驅(qū)動(dòng)設(shè)計(jì)及開發(fā)方法綜合應(yīng)用以上全部或者部分模塊,實(shí)現(xiàn)一個(gè)嵌入式綜合應(yīng)用系統(tǒng),要求至少用到8個(gè)模塊中的5個(gè)8.3 實(shí)驗(yàn)環(huán)境(1)ADS1.2開發(fā)環(huán)境(2)博創(chuàng)UP-NETARM3000嵌入式開發(fā)平臺(tái)(3)PC(4)串口線8.4實(shí)驗(yàn)內(nèi)容及要求綜合應(yīng)用串口、鍵盤、LED接口、A/D、電機(jī)轉(zhuǎn)動(dòng)、定時(shí)器中斷、LCD接口及觸摸屏驅(qū)動(dòng)

溫馨提示

  • 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)論