




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
boot實(shí)驗(yàn)報(bào)告本次實(shí)驗(yàn)由于時(shí)間限制,共完成了三種不同的變化方式,但是課后又設(shè)計(jì)了一些其他的變化方式。1、從左到右,再?gòu)挠业阶罅翢簦粩嘌h(huán)#defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))#defineLED_VALUE(0xff)inti;voidDelay(unsignedintx){ unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++);}voiddummyOs(void){ while(1) { LED_CS4=0xff; for(i=1;i<=8;i++) { LED_CS4=(LED_VALUE<<i)-1; Delay(200); } for(i=7;i>1;i--) { LED_CS4=(LED_VALUE<<i)-1; Delay(200); } } }2、先從左到中,后從右到中,不斷循環(huán)#defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))#defineLED_VALUE(0xff)inti;voidDelay(unsignedintx){ unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++);}voiddummyOs(void){ while(1) { LED_CS4=0xff; for(i=0;i<4;i++) { LED_CS4=(LED_VALUE<<i)-1; Delay(200); } for(i=7;i>=4;i--) { LED_CS4=(LED_VALUE<<i)-1; Delay(200); } } }3、從左到右,從右到左,隔一個(gè)跳#defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))#defineLED_VALUE(0xff)inti;voidDelay(unsignedintx){ unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++);}voiddummyOs(void){ while(1) { LED_CS4=0xff; for(i=1;i<8;i=i+2) { LED_CS4=(LED_VALUE<<i)-1; Delay(200); } for(i=7;i>1;i=i-2) { LED_CS4=(LED_VALUE<<i)-1; Delay(200); } } }課后補(bǔ)做:1、從左到右燈滅#defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))#defineLED_VALUE(0xff)inti;voidDelay(unsignedintx){ unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++);}voiddummyOs(void){ while(1) { LED_CS4=0x00; for(i=8;i>=1;i--) { LED_CS4=(LED_VALUE>>i)+1; Delay(200); } } }2、從左到右,再?gòu)挠业阶鬅魷纾粩嘌h(huán)#defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))#defineLED_VALUE(0xff)inti;voidDelay(unsignedintx){ unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++);}voiddummyOs(void){ while(1) { LED_CS4=0x00; for(i=8;i>=1;i--) { LED_CS4=(LED_VALUE>>i)+1; Delay(200); } for(i=1;i<7;i++) { LED_CS4=(LED_VALUE>>i)+1; Delay(200); } } }實(shí)驗(yàn)總結(jié):數(shù)碼管顯示實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康脑趯?shí)驗(yàn)一引導(dǎo)程序的基礎(chǔ)上進(jìn)一步了解ARM體系結(jié)構(gòu)和編程方法;掌握外設(shè)訪問(wèn)的方法;理解8段數(shù)碼管的顯示原理實(shí)驗(yàn)內(nèi)容1顯示同組的兩位同學(xué)的四位學(xué)號(hào)20322033;2顯示一組大于九的四位十六進(jìn)制數(shù)字,如abcd。3使跑碼燈從左到右順序亮。實(shí)驗(yàn)代碼#include<stdio.h>#include"register_variant.h"#defineLED_CS2 (*((volatileunsignedshortint*)(0x10300000))) //LED1andLED2#defineLED_CS3 (*((volatileunsignedshortint*)(0x10400000))) //LED3andLED4#defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))#defineLED_VALUE(0xff)voidDelay(unsignedintx){ unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++);}inti=0;voiddummyOs(void){ LED_CS2=0x8f8f;//00 LED_CS3=0x8f8f;//00 while(1) { //Delay(100); LED_CS2=0x4024;//20 LED_CS3=0x2430;//32 LED_CS4=(LED_VALUE<<i)-1; if(i<=8)i++; elsei=0; Delay(200); LED_CS2=0x4024;//20 LED_CS3=0x3030;//33 LED_CS4=(LED_VALUE<<i)-1; if(i<=8)i++; elsei=0; Delay(200); LED_CS2=0x4024;//20 LED_CS3=0x2430;//32 LED_CS4=(LED_VALUE<<i)-1; if(i<=8)i++; elsei=0; Delay(200); LED_CS2=0x4024;//20 LED_CS3=0x3030;//33 LED_CS4=(LED_VALUE<<i)-1; if(i<=8)i++; elsei=0; Delay(200); LED_CS2=0x0308;//Ab LED_CS3=0x0646;//CE LED_CS4=(LED_VALUE<<i)-1; if(i<=8)i++; elsei=0; Delay(200); LED_CS2=0x0308;//Ab LED_CS3=0x0646;//CE LED_CS4=(LED_VALUE<<i)-1; if(i<=8)i++; elsei=0; Delay(200); }}實(shí)驗(yàn)總結(jié):鍵盤實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康模毫私庵比腈I盤與矩陣鍵盤的原理了解鍵盤寄存器的功能掌握鍵盤輸入的編程方法實(shí)驗(yàn)要求:對(duì)所有16個(gè)按鍵進(jìn)行編碼,如使用一位數(shù)字[0-F,也可以用兩位]當(dāng)按鍵后,在七段數(shù)碼管上顯示對(duì)應(yīng)的鍵盤編碼。在跑碼燈上顯示相應(yīng)二進(jìn)制數(shù)。實(shí)驗(yàn)代碼:#include<stdio.h>#include"register_variant.h"#defineLED_CS2(*((volatileunsignedshortint*)(0x10300000)))//LED1andLED2#defineLED_CS3(*((volatileunsignedshortint*)(0x10400000)))//LED3andLED4#defineKPDK_VALUE(*((volatileunsignedchar*)(0x41500008)))//DirectKeypad#defineKAPS_VALUE(*((volatileunsignedchar*)(0x41500020))) #defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))voidbutton_statusFetch(void){ charm=0,n=0; unsignedshortintkbd_buff; m=KPDK_VALUE; n=KAPS_VALUE; switch(m) { case0x40: //key-press1 kbd_buff=0x8F79; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0x7F; break; case0x02: //key-press2 kbd_buff=0x248F; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0xBF; break; case0x04: //key-press3 kbd_buff=0x8F30; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0x3F; break; case0x20: //key-press4 kbd_buff=0x198F; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0xDF; break; default:kbd_buff=0x8F8F;break; } switch(n) { case0x00: //key-press5 kbd_buff=0x8F12; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0x5F; break; case0x01: //key-press6 kbd_buff=0x028F; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0x9F; break; case0x02: //key-press7 kbd_buff=0x8F78; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0x1F; break; case0x05: //key-press8 kbd_buff=0x008F; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0xEF; break; case0x10: //key-press9 kbd_buff=0x8F18; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0x6F; break; case0x11: //key-press10 kbd_buff=0x088F; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0xAF; break; case0x12: //key-press11 kbd_buff=0x8F03; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0x2F; break; case0x15: //key-press12 kbd_buff=0x468F; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0xCF; break; case0x20: //key-press13 kbd_buff=0x8F21; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0x4F; break; case0x21: //key-press14 kbd_buff=0x068F; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0x8F; break; case0x22: //key-press15 kbd_buff=0x8F0E; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0x0F; break; case0x25: //key-press16 kbd_buff=0x408F; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0xF7; break; default:kbd_buff=0x8F8F;break; } }voiddummyOs(void){ intled_sharp; inttemp=~0; LED_CS2=temp; LED_CS3=temp; while(1) { led_sharp=ledShareInterval; for(;led_sharp>0;led_sharp--) { button_statusFetch(); } }}實(shí)驗(yàn)總結(jié):中斷實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康?理解中斷向量表的結(jié)構(gòu)理解中斷處理的過(guò)程學(xué)習(xí)編寫中斷處理程序的方法實(shí)驗(yàn)內(nèi)容:基本內(nèi)容:修改源程序,通過(guò)中斷方式響應(yīng)按鍵,當(dāng)1-16鍵按下時(shí),數(shù)碼管顯示0-F。設(shè)計(jì)主程序,使8個(gè)LED以一定的時(shí)間間隔從右到左依次點(diǎn)亮,循環(huán)顯示;(實(shí)驗(yàn)一的內(nèi)容)編寫中斷服務(wù)程序,達(dá)到如下效果:以中斷形式驅(qū)動(dòng)按鍵,當(dāng)有鍵按下時(shí),在七段數(shù)碼管上,顯示對(duì)應(yīng)的16個(gè)鍵盤編碼值0-9a-f(實(shí)驗(yàn)二、三的內(nèi)容),然后回到主程序。實(shí)驗(yàn)代碼:Interrupt.c中#include<stdio.h>#defineLED_CS2 (*((volatileunsignedshortint*)(0x10300000))) //LED1andLED2#defineLED_CS3 (*((volatileunsignedshortint*)(0x10400000))) //LED3andLED4#defineLED_CS4 (*((volatileunsignedchar*)(0x10500000)))#defineKPDK_VALUE (*((volatileunsignedchar*)(0x41500008))) //DirectKeypad#defineKPAS_VALUE (*((volatileunsignedchar*)(0x41500020))) //MatrixKeypad#defineLED_VALUE(0xff) voidDelay(unsignedintx) { unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++); }voidIRQ_Function(void){ chari,j; unsignedshortintkbd_buff; i=KPDK_VALUE; j=KPAS_VALUE; switch(i) { case0x40: //key-press1 kbd_buff=0x408f; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0x7F; break; case0x02: //key-press2 kbd_buff=0x798f; LED_CS2=kbd_buff; LED_CS3=0x8F8F; LED_CS4=0xBF; break; case0x04: //key-press3 kbd_buff=0x248f; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0x3F; break; case0x20: //key-press4 kbd_buff=0x8F30; LED_CS3=kbd_buff; LED_CS2=0x8F8F; LED_CS4=0xDF; break; default: switch(j) { case0x00: //key-press5 LED_CS2=0x198f; LED_CS3=0x8f8f; LED_CS4=0x5F; break; case0x01: //key-press6 LED_CS2=0x128f; LED_CS3=0x8f8f; LED_CS4=0x9F; break; case0x02: //key-press7 LED_CS2=0x028f; LED_CS3=0x8f8f; LED_CS4=0x1F; break; case0x05: //key-press8 LED_CS2=0x788f; LED_CS3=0x8f8f; LED_CS4=0xEF; break; case0x10: //key-press9 LED_CS2=0x008f; LED_CS3=0x8f8f; LED_CS4=0x6F; break; case0x11: //key-press10 LED_CS2=0x108f; LED_CS3=0x8f8f; LED_CS4=0xAF; break; case0x12: //key-press11 LED_CS2=0x088f; LED_CS3=0x8f8f; LED_CS4=0x2F; break; case0x15: //key-press12 LED_CS2=0x038f; LED_CS3=0x8f8f; LED_CS4=0xCF; break; case0x20: //key-press13 LED_CS2=0x468f; LED_CS3=0x8f8f; LED_CS4=0x4F; break; case0x21: //key-press14 LED_CS2=0x218f; LED_CS3=0x8f8f; LED_CS4=0x8F; break; case0x22: //key-press15 LED_CS2=0x068f; LED_CS3=0x8f8f; LED_CS4=0x0F; break; case0x25: //key-press16 LED_CS2=0x0e8f; LED_CS3=0x8f8f; LED_CS4=0xF7; break; } } Delay(200);}voiddummyOs(void){ unsignedshortinttemp=0x8F8F; LED_CS2=temp; LED_CS3=temp; while(1) { inti=0; LED_CS4=0xff; for(i=7;i>=0;i--) { LED_CS4=(LED_VALUE<<i)-1; Delay(100); } } } Handler_IRQ.s中 IMPORT IRQ_Function IMPORT ICMR EXPORT IRQ_Handler AREAIRQ_Handler,CODE,READONLY ;**************************** SUB LR, LR, #0x4 STMFDSP!,{R0-R12,LR} BL IRQ_Function LDR R0,=0x41500000 LDRR1,[R0]//加入這兩句代碼 LDMFDSP!,{R0-R12,PC}^ ;******************************* END實(shí)驗(yàn)總結(jié):linux環(huán)境PXA270端口驅(qū)動(dòng)詳解實(shí)驗(yàn)?zāi)康?、了解PXA270微處理器GPIO的功能2、熟悉PXA270微處理器GPIO驅(qū)動(dòng)程序的編寫方法3、掌握驅(qū)動(dòng)程序的加載過(guò)程和方法二、實(shí)驗(yàn)內(nèi)容1、編譯數(shù)碼管顯示模塊驅(qū)動(dòng)程序和測(cè)試程序;2、將程序下載到270板目標(biāo)平臺(tái)的內(nèi)核中3、加載驅(qū)動(dòng)模塊4、執(zhí)行測(cè)試程序5、修改應(yīng)用程序,顯示自己的末4位學(xué)號(hào)。三、實(shí)驗(yàn)步驟此實(shí)驗(yàn)需要在第八、第九和第十一個(gè)實(shí)驗(yàn)的基礎(chǔ)上才能完成,即270試驗(yàn)箱所需的狀態(tài)包括bootloader、kernel和文件系統(tǒng)。1、按ppt所給的實(shí)驗(yàn)步驟操作:之后,將Makefile文件里的前三行內(nèi)容改為:CC=/opt/xscalev1/bin/arm-linux-gccINCLUDEDIR=/XSBase270/kernel/linux-2.4.21-51Board_EDR/includeCFLAGS=-D__KERNEL__-DMODULE-Wall-O2執(zhí)行makeclean執(zhí)行make打開(kāi)minicom,重啟270,可以看到51Boardlogin:以root登陸,傳輸文件XSB_EDR_8SEG.o和XSB_EDR_8SEG_test傳輸完后創(chuàng)建設(shè)備節(jié)點(diǎn),加載驅(qū)動(dòng)模塊:[root@51Board~]#mknod/dev/xsb_edr_8segc611[root@51Board~]#insmodXSB_EDR_8SEG.o四個(gè)數(shù)碼管按順序顯示:00001111...99991234234534562、修改應(yīng)用程序,顯示自己的末四位學(xué)號(hào):打開(kāi)XSB_EDR_8SEG_test.c文件,因?yàn)闄C(jī)房沒(méi)裝visualc++,所以以寫字板的打開(kāi)方式打開(kāi),并修改其內(nèi)容如下:/************************************************-------------editbyhubiying&huoyuting----------------------------------------2011.10.20------------------------*************************************************/#include<stdio.h>#include<fcntl.h>#include<linux/kernel.h>#include<unistd.h>typedefunsignedcharu8;#defineI2C_DEV "/dev/xsb_edr_8seg"#defineNUM_00x3f#defineNUM_10x06#defineNUM_20x5b#defineNUM_3~0x30#defineNUM_4~0x19#defineNUM_5~0x12#defineNUM_6~0x2#defineNUM_7~0x78#defineNUM_8~0x0#defineNUM_9~0x10//charnumber[]={NUM_0,NUM_1,NUM_2,NUM_3,NUM_4,NUM_5,NUM_6,NUM_7,NUM_8,//NUM_9};charnumber1[]={NUM_2,NUM_0,NUM_3,NUM_2};//2032charnumber2[]={NUM_2,NUM_0,NUM_3,NUM_3};//2033//*********以下兩個(gè)函數(shù)完成老師預(yù)先設(shè)定的顯示功能**********voidappear_same(intfd){chari,j,base=0;for(j=0,base=0;j<=9;j++,base++) /*設(shè)置j為從0到9故能循環(huán)9次,而每次中所用的base沒(méi)有變化,故每次輸出中四個(gè)數(shù)一致,但次與次間,base加1,故沒(méi)顯示一次,中間因調(diào)用sleep停頓一會(huì)兒后顯示的四個(gè)數(shù)比上一次大1。*/ {for(i=1;i<=6;i++) ioctl(fd,i,number+base); //調(diào)用ioctl函數(shù),使7段數(shù)碼管輸出設(shè)定數(shù)字 sleep(1); }} //該函數(shù)完成使7段數(shù)碼管輸出四個(gè)相同的數(shù),//并從0到9變化,中間設(shè)置了停頓voidappear_roll(intfd){chari,j,base=0;for(j=0,base=0;j<=9;j++,base++) {for(i=1;i<=6;i++) ioctl(fd,i,number+(base+i-1)%10); /*base每次加1,故每次調(diào)用ioctl時(shí),base+i-1的余數(shù)增加1,即每次顯示的起始數(shù)加1第一次從1開(kāi)始顯示1234,第二次從2開(kāi)始顯示2345…*/ sleep(1); }} //該函數(shù)實(shí)現(xiàn)了顯示從1到6的循環(huán)滾動(dòng)輸出:1234,2345,3456i
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年紡織品創(chuàng)新檢測(cè)技術(shù)試題及答案
- 助理廣告師考試信息收集與分析技巧試題及答案
- 品牌形象與廣告內(nèi)容的一致性試題及答案
- 商業(yè)設(shè)計(jì)師在職業(yè)發(fā)展中的應(yīng)對(duì)策略試題及答案
- 國(guó)考延期相關(guān)試題及答案
- 不同材質(zhì)在設(shè)計(jì)中的應(yīng)用試題及答案
- 2024年設(shè)計(jì)師視覺(jué)傳播題目及答案
- 助理廣告師廣告形式考題試題及答案
- 合同爭(zhēng)議測(cè)試題及答案
- 紡織品設(shè)計(jì)師考試中的知識(shí)轉(zhuǎn)化能力試題及答案
- 銀級(jí)考試題目p43測(cè)試題
- 有限空間作業(yè)及應(yīng)急物資清單
- 思想道德與法治教案第一章:領(lǐng)悟人生真諦把握人生方向
- 61850報(bào)文解析-深瑞版-131016
- 0-6歲兒童隨訪表
- 江西新定額2017土建定額說(shuō)明及解釋
- 國(guó)家電網(wǎng)有限公司十八項(xiàng)電網(wǎng)重大反事故措施(修訂版)-2018版(word文檔良心出品)
- 語(yǔ)文四年級(jí)下冊(cè)《失落的一角》繪本閱讀 課件(共61張PPT)
- 附件一∶ 教育部專家實(shí)地評(píng)估案頭必備材料
- 余甘果的栽培與加工工藝
- 中考英語(yǔ)雙向細(xì)目表
評(píng)論
0/150
提交評(píng)論