版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)編程題匯編(帶答案).一。從一數(shù)到十COUNT EQU0x30003100;定義變量COUNT的基地址 AREAExample1,CODE,READONLY;聲明代碼段Example1為只讀 ENTRY;標(biāo)識(shí)程序入口 CODE32;聲明32位ARM指令START LDRR1,=COUNT;將0X30003100賦給R1 MOVR0,#0;執(zhí)行R0=0 STRR0,[R1];存儲(chǔ)R0寄存器的數(shù)據(jù)到R1指向的存儲(chǔ)單元LOOP LDRR1,=COUNT;將0X30003100賦給R1 LDRR0,[R1];將R1中的數(shù)值作為地址,取出此地址中的數(shù)據(jù)保存到R0中 ADDR0,R0,#1;執(zhí)行R0=R0+1 CMPR0,#10;將R0與10進(jìn)行比較 MOVHSR0,#0;若R0大于等于10,則R0=0 STRR0,[R1];存儲(chǔ)R0寄存器的數(shù)據(jù)到R1指向的地址單元 BLOOP;跳轉(zhuǎn)到LOOP END;匯編文件結(jié)束二,9的8次冪XEQU9;初始化X為9nEQU8;初始化N為8 AREA Example3,CODE,READONLY;生明代碼段Example3為只讀 ENTRY;標(biāo)識(shí)程序入口路 CODE32;聲明32位ARM指令START LDR S P,=0x30003F00;把0x30003F00賦給SP(R13) LDRR0,=X;把9賦給R0 LDRR1,=n;把8賦給R1 BLPOW;跳轉(zhuǎn)到POW,并把下一條指令地址存入到R14中HALT BHALT;等待跳轉(zhuǎn)POW STMFDSP!,{R1-R12,LR};將R1-R12入棧,滿(mǎn)遞減堆棧 MOVSR2,R1;將R1賦給R2,并影響標(biāo)志位 MOVEQR0,#1;若Z=1,則R0=1 BEQPOW_END;若Z=1,跳轉(zhuǎn)到POW_END MOVR1,R0;將R0中值賦給R1 SUBR2,R2,#1;將R2-1的只賦給R2POW_L1 BLDO_MUL;跳轉(zhuǎn)到DO-MUL,并把下一條指令地址存入R14中 SUBSR2,R2,#1;將R2-1的值賦給R2,并影響標(biāo)志位 BNEPOW_L1;若Z=0,跳轉(zhuǎn)到POW_L1POW_ENDLDMFDSP!,{R1-R12,PC};數(shù)據(jù)出棧,存入到R1-R12,PC中DO_MULMULR0,R1,R0;把R1*R0的值賦給R0 MOVPC,LR;LR中的值賦給PC END;匯編結(jié)束三:從一一直加到一百程序清單(一)C語(yǔ)言實(shí)驗(yàn)參考程序#defineuint8unsignedchar;定義一個(gè)無(wú)符號(hào)字符常量uint8#defineuint32unsignedint;定義一個(gè)無(wú)符號(hào)整形常量unint32#defineN100;定義一個(gè)常量N=100(宏定義,100用N代替)uint32sum;;定義sum為無(wú)符號(hào)整型常量(聲明一個(gè)unsignedint型的變量sum)voidMain(void);主函數(shù){uint32i;;定義無(wú)符號(hào)整型常量i(聲明一個(gè)unsignedint型的變量i)sum=0;;sum初始值為0for(i=0;i<=N;i++);i在N內(nèi)自增加1(i從0開(kāi)始,i<=N時(shí)循環(huán)成立){sum+=i;};把sum+i賦給sumwhile(1);;為真循環(huán)}程序清單(二)簡(jiǎn)單的啟動(dòng)代碼IMPORT|Image$$RO$$Limit|;R0輸出段存儲(chǔ)區(qū)域界限IMPORT|Image$$RW$$Base|;RW輸出段運(yùn)行時(shí)起始地址IMPORT|Image$$ZI$$Base|;ZI輸出段運(yùn)行時(shí)起始地址IMPORT|Image$$ZI$$Limit|;ZI輸出段存儲(chǔ)區(qū)域界限IMPORTMain;主函數(shù) T0CTCR=0x00; T0TC=0; T0PR=99; T0MCR=0x02<<3; T0MR1=Fpclk/100; T0EMR|=0xc2; T0TCR=0x01; While(1); }17、 使用學(xué)過(guò)的知識(shí)設(shè)計(jì)設(shè)計(jì)一個(gè)汽車(chē)用“車(chē)速表”,寫(xiě)出你的設(shè)計(jì)方案并編程實(shí)現(xiàn)。提示:可用霍爾元件將車(chē)輪的轉(zhuǎn)動(dòng)轉(zhuǎn)換為脈沖。車(chē)輪每轉(zhuǎn)動(dòng)一圈會(huì)產(chǎn)生一個(gè)方波脈沖。 答:轉(zhuǎn)動(dòng)脈沖:void__irqIRQ_Timer0(void){if((IO0SET&BEEP)==0)IO0SET=BEEP;/*關(guān)閉BEEP*/elseIO0CLR=BEEP;T0IR=0x01;/*清除中斷標(biāo)志*/VICVectAddr=0x00;/*通知VIC中斷處理結(jié)束*/}intmain(void){intspped=1;PINSEL1=0x00000000;/*設(shè)置管腳連接GPIO*/IO0DIR=BEEP;/*設(shè)置BEEP控制口輸出*/IRQEnable();/*IRQ中斷使能*//*定時(shí)器0初始化*/T0TC=0;/*定時(shí)器設(shè)置為0*/T0PR=0;/*時(shí)鐘不分頻*/T0MCR=0x03;/*設(shè)置T0MR0匹配后復(fù)位T0TC,并產(chǎn)生中斷標(biāo)志*/T0MR0=Fpclk/spped;/*0.5秒鐘定時(shí)*/T0TCR=0x01;/*啟動(dòng)定時(shí)器*//*設(shè)置定時(shí)器0中斷IRQ*/VICIntSelect=0x00;/*所有中斷通道設(shè)置為IRQ中斷*/VICVectCntl0=0x20|0x04;/*設(shè)置定時(shí)器0中斷通道分配最高優(yōu)先級(jí)*/VICVectAddr0=(uint32)IRQ_Timer0;/*設(shè)置中斷服務(wù)程序地址*/VICIntEnable=1<<0x04;/*使能定時(shí)器0中斷*/while(1){if((IO0PIN&KEY1)==0){spped=10;T0MR0=Fpclk/spped;/*0.5秒鐘定時(shí)*/T0TC=0;/*定時(shí)器設(shè)置為0*/}elseif((IO0PIN&KEY2)==0){spped=20;T0MR0=Fpclk/spped;/*0.5秒鐘定時(shí)*/T0TC=0;/*定時(shí)器設(shè)置為0*/}elseif((IO0PIN&KEY3)==0){spped=30;T0MR0=Fpclk/spped;/*0.5秒鐘定時(shí)*/T0TC=0;/*定時(shí)器設(shè)置為0*/}elseif((IO0PIN&KEY4)==0){spped=40;T0MR0=Fpclk/spped;/*0.5秒鐘定時(shí)*/T0TC=0;/*定時(shí)器設(shè)置為0*/}};return0;}汽車(chē)車(chē)速:intmain(void){intVx;PINSEL0=(PINSEL0&(~(3<<20)))|(2<20);PINSEL0=PINSEL0&(0<<24);T0CTCR&=0xf0;T0TC=0;T0PR=99;T0MCR=0x03;T0MR0=Fpclk/300;T1CTCR=(T1CTCR&(~0x0f)|0xf1);T1TC=0;T1MCR=0x00;T1CCR&=~0x07;T0TCR=0x01;T1TCR=0x01;while(1){if((T0IR&0x01)==1){T0IR=0x01;Vx=T1TC;T1TC=0;VtotalLen+=Vx;VthisLen+=Vx;Vspeed=(Vx*L*3.6)/HrN;}if((IO0PIN&KClr)==0)VthisLen=0;}return0;}1、編寫(xiě)一程序,用查詢(xún)的方式,對(duì)S3C2410的A/D轉(zhuǎn)換器的第3通道連續(xù)進(jìn)行100次A/D轉(zhuǎn)換,然后將其結(jié)果求平均值。設(shè)預(yù)分頻為49。注意:A/D轉(zhuǎn)換器有獨(dú)立的模擬信號(hào)輸入引腳AIN0AIN9。ADCCON格式如下:15 14 13……6 5 4 3 2 1 0ECFLG PRSCEN PRSCVL SEL_MUX STDBM READ_START ENABLE_STARTADCDAT0格式如下:15 14 13 12 11 10 9……0UPDOWN AUTO_PST XY_PST 保留(0) 轉(zhuǎn)換結(jié)果ADCCON、ADCDAT0的地址宏定義為:#define rADCCON (*(volatileunsigned*)0x58000000)#define rADCDAT0 (*(volatileunsigned*)0x5800000c)#definepref 49 #definech 3 intadc(void){ rADCCON=(1<<14)|(pref<<6)|(ch<<3)|1; //允許預(yù)分頻,啟動(dòng)轉(zhuǎn)換 while(rADCCON&0x01==1); //查詢(xún)是否已經(jīng)啟動(dòng)轉(zhuǎn)換 while(rADCCON&0x8000==0); //查詢(xún)轉(zhuǎn)換是否結(jié)束 return rADCDAT0&0x3ff; //讀取轉(zhuǎn)換結(jié)果 }voidmain(){ intadc_data=0,i; for(i=0;i<100;i++) adc_data+=adc(); adc_data=adc_data/100; printf("adcaverageis:%d\n",adc_data);}1、編寫(xiě)程序,將存儲(chǔ)器從0x400000開(kāi)始的200個(gè)字?jǐn)?shù)據(jù),傳送到0x400600開(kāi)始的區(qū)域。解: MOV R0,#0x400000 LDR R1,=0x400600 MOV R7,#200LP: LDR R2,[R0],#4 STR R2,[R1],#4 SUBS R7,R7,#1 BNE LPHERE:B HERE2、編寫(xiě)一程序,查找存儲(chǔ)器從0x500000開(kāi)始的200個(gè)字中為5的數(shù)目,將其結(jié)果存到0x600000中。 解: MOV R0,#0x500000 MOV R1,#0 MOV R7,#200LP LDR R2,[R0],#4 CMP R2,#5 BNE NEXT ADD R1,R1,#1NEXT SUBS R7,R7,#1 BNE LP MOVR0,#0x600000 STRR1,[R0] B$3、實(shí)現(xiàn)1+2+……+N。 NEQU5; ;常量的定義 AREAExample,CODE,READONLY ;定義段名屬性等 ENTRY ;程序入口 CODE32 ;ARM代碼 START ;行標(biāo)定義 LDRR0,=N ;R0賦值 MOVR2,R0 ;R2充當(dāng)計(jì)數(shù)器 MOVR0,#0 ;R0←0 MOVR1,#0 ;R1←0 LOOP ;行標(biāo) CMPR1,R2 ;比較R1R2 BHIADD_END ;如果R1>R2跳轉(zhuǎn)到ADD_END ;分支的實(shí)現(xiàn) ADDR0,R0,R1 ;R0←R0+R1 ADDR1,R1,#1 ;R1←R1+1 BLOOP ;無(wú)條件跳轉(zhuǎn)至LOOP ;循環(huán)的實(shí)現(xiàn) ADD_END ;行標(biāo)定義 BADD_END ;無(wú)條件跳轉(zhuǎn)ADD_END END ;代碼結(jié)束以實(shí)驗(yàn)平臺(tái)PXA270為設(shè)計(jì)環(huán)境,試寫(xiě)出一段代碼,能控制八段數(shù)碼管以遞減方式點(diǎn)亮顯示(15分)#include<stdio.h>#include"register_variant.h"#defineLED_CS2 (*((volatileunsignedshortint*)(0x10300000))) //LED1andLED2#defineLED_CS3 (*((volatileunsignedshortint*)(0x10400000))) //LED3andLED4voidDelay(unsignedintx){ unsignedinti,j,k; for(i=0;i<=x;i++) for(j=0;j<0xff;j++) for(k=0;k<0xff;k++);}voiddummyOs(void){ LED_CS2=0x2479;//12 LED_CS3=0x1930;//34 while(1)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省揚(yáng)州市2024-2025學(xué)年高二(上)學(xué)業(yè)水平合格性模擬考試物理試卷(含答案)
- 河北省衡水市2024-2025學(xué)年高三上學(xué)期期末物理試題(無(wú)答案)
- 2022年高考物理大一輪總復(fù)習(xí)(江蘇專(zhuān)版-)題庫(kù)-第二章-相互作用-第2課時(shí)
- 安徽省合肥第四十六中學(xué)2024-2025學(xué)年九年級(jí)第一學(xué)期12月份月考語(yǔ)文試卷(含答案)
- 【KS5U原創(chuàng)】新課標(biāo)2021年高二物理暑假作業(yè)5《恒定電流二》
- 2021貴陽(yáng)市高考英語(yǔ)閱讀、閱讀表達(dá)一輪自練題(5)-及答案
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 【全程復(fù)習(xí)方略】2021年春高中物理選修3-4-課時(shí)達(dá)標(biāo)·效果檢測(cè)-12.2-波的圖像
- 2022部編版四年級(jí)語(yǔ)文下冊(cè)全冊(cè)一課一練同步練習(xí)(有答案)+知識(shí)點(diǎn)歸納
- 2025年0096北京美欣科技有限公司
- 2024年醫(yī)院副院長(zhǎng)工作總結(jié)范文(2篇)
- UL1017標(biāo)準(zhǔn)中文版-2018吸塵器UL中文版標(biāo)準(zhǔn)
- 生物安全柜的使用及維護(hù)培訓(xùn)
- 【MOOC】診斷學(xué)-山東大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 《NOIP圖的基礎(chǔ)算法》課件
- 人體寄生蟲(chóng)表格總結(jié)超全(原蟲(chóng)部分)
- 《建筑工程QC課題》課件
- 病歷質(zhì)控流程
- 合作投資酒店意向合同范例
- 2024年度新能源汽車(chē)充電物流合同
- 2024年學(xué)校意識(shí)形態(tài)工作總結(jié)模版(3篇)
評(píng)論
0/150
提交評(píng)論