




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、傳播優(yōu)秀word版文檔 ,希望對您有幫助,可雙擊去除!單片機原理及應(yīng)用模擬卷 1除非特別聲明,編程題可以使用匯編語言編寫,也可以使用c語言編寫1、 分析程序的執(zhí)行結(jié)果,將結(jié)果填寫到空格中。org0000hmov30h,#50hmovr0,#30hmova,r0;(a= 50h )mova,#79hmovb,#20h ;(a= 79h b= 20h )divab;(a= 03h b= 19h )pushbmovb,#0ahmulab;(a= 1eh b= 0 )popbadda,b ;(a=37h b=19h )mov30h,a;(30h單元的內(nèi)容=37h )mov20h,30hclr01h;(
2、20h單元的內(nèi)容= 37h )mova,20h;(psw中p的內(nèi)容= 1 )cplarra;( psw中c的內(nèi)容= 0 )swapa;(a= 46h )addca,#0f0h;(a= 36h );(psw中p的內(nèi)容= 0 );( psw中c的內(nèi)容= 1 )rla;(a= 6ch );(psw中p的內(nèi)容= 0 );( psw中c的內(nèi)容= 0 )loop:ajmploop2、 將mcs51內(nèi)部ram60h65h單元存放的12個16進制數(shù)變?yōu)閍scii碼,放到0090h單元開始的外部ram中。使用匯編語言編寫 org 0000hajmp main org 0030h mian: mov r0,#50
3、h mov r1,#06h mov r2,#02hmov dptr,#2800h mov a,r0 mov b,a ch:anl a,#0fh push acc sub a,#0ah jnc ad37 pop acc add a,#30h jmp sav ad37: pop acc add a,#37h sav: djnz r2,ll movx dptr,a inc dptr swap b mov b,a jmp ch ll:inc r0 djnz r1,done done:hlt end 3、 某一故障檢測系統(tǒng),當(dāng)出現(xiàn)故障1時,線路1上出現(xiàn)上升沿;當(dāng)出現(xiàn)故障2時,線路2上出現(xiàn)下降沿。沒有故障
4、時,線路1為低電平,線路2為高電平。出現(xiàn)故障時,相應(yīng)的指示燈變亮。故障消失后,指示燈熄滅。試用msc1211為單片機實現(xiàn)該故障檢測功能,畫出電路原理圖,并寫出相應(yīng)程序。解答:如下圖所示:故障1從p32輸入,利用int0, 故障2從p33輸入,利用int1,使用l1作為故障1的指示燈,l2作為故障2的指示燈。程序清單: org 0000h ajmp mian org 0003h ajmp gu1 org 0013h ajmp gu2 org 1000h main: mov tcon,#05h mov ie,#85h here: setb p1.0 setb p1.1 gu1:clr p1.0 j
5、b p3.2,gu1 reti gu2: clr p1.1 jb p3.3,gu2 reti end 4、 利用msc1211或8051設(shè)計應(yīng)答方式下的多機通訊程序。通訊參數(shù):晶振為11.0592mhz,9600,n,8,1。通訊過程如下:主機首先發(fā)送從機地址,從機收到地址后進行比較,如果地址相符,則將從機地址回發(fā)給主機作為應(yīng)答信號。主機收到從機的地址應(yīng)答信號后,將內(nèi)存單元中的120個數(shù)據(jù)發(fā)送給從機,并進行數(shù)據(jù)塊校驗(將各個數(shù)據(jù)進行異或),若校驗正確,則從機發(fā)送00h給主機,否則發(fā)送0ffh給主機,主機重新發(fā)送數(shù)據(jù)。(應(yīng)在適當(dāng)?shù)牡胤郊映绦蜃⑨專┙猓褐鳈C程序如下:org0000hljmpmain
6、t;跳至主程序入口地址org0023h;串行口中斷服務(wù)程序入口ljmpintstmaint: movscon,#90h;置工作方式2,并允許接收movtmod,#20h;置t1工作方式2movth1,#0fdhmovtl1,#0fdhmovdptr,#addr;設(shè)置數(shù)據(jù)塊首址addr的地址指針movr0,#120;設(shè)置發(fā)送字節(jié)數(shù)movr1,#00h;設(shè)置校驗和的初值movr2,#namesetbtb8;置位tb8位,作為發(fā)送地址楨信息特征setbtr1setbea;cpu開中斷setbes;允許串行口中斷mova,r2;發(fā)送地址楨信息movsbuf,asjmp$;中斷服務(wù)程序intst:mov
7、 a,tb8;判斷是發(fā)送地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)loop0cjnea,01h,loop0clrti;地址楨信息發(fā)送完后清發(fā)送中斷l(xiāng)oop0:jbri,loop1;檢查是否是接受中斷?若ri=1則轉(zhuǎn)入接受乙機發(fā)送應(yīng)答信息clrti;因ri=0,表明是甲機發(fā)送中斷數(shù)據(jù)的中斷請求。cpu響應(yīng)中斷,在中斷服務(wù)程序中應(yīng)清中斷標(biāo)志mova,tb8;cjnea,#01h,loo3;若為發(fā)送數(shù)據(jù)中斷則轉(zhuǎn)loop3繼續(xù)發(fā)送數(shù)據(jù)ljmpendt;甲機發(fā)送一數(shù)據(jù)完畢跳至中斷返回程序loop1:clrri;清接受中斷標(biāo)志mov a,tb8;判斷是發(fā)送地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)loop2cjnea,#01h,loop
8、4;若tb8為0則接受的為乙機數(shù)據(jù)校驗應(yīng)答mova,sbuf;取乙機的應(yīng)答數(shù)據(jù)cjnea,r2,loop2;若乙機應(yīng)答信息不是從機地址,則地址傳送不正確,則轉(zhuǎn)loop2程序重新發(fā)送地址信息,否則清tb8,發(fā)送數(shù)據(jù)clrtb8loop3:movxa,dptr;取下一個數(shù)movsbuf,a;啟動串行口,發(fā)送新的數(shù)據(jù)xrla,r1movr1,aincdptr;修改地址指針decr0;修改發(fā)送字節(jié)數(shù)記數(shù)值cjner0,#00h,endt;判別120個字節(jié)數(shù)據(jù)都發(fā)送完沒有。如果沒有發(fā)送完則跳至中斷返回程序。繼續(xù)發(fā)送mova,r1movsbuf,a;數(shù)據(jù)全部發(fā)送完畢則發(fā)送校驗和ljmpendtloop4:
9、mova,sbuf;取乙機的應(yīng)答數(shù)據(jù)cjnea,#00h,loop5;若數(shù)據(jù)發(fā)送不正確,則轉(zhuǎn)loop5重新發(fā)送clres;全部發(fā)送完畢,禁止串行口中斷l(xiāng)oop5:movdptr,#addr;設(shè)置數(shù)據(jù)塊首址addr的地址指針movr0,#120;設(shè)置發(fā)送字節(jié)數(shù)movr1,#00h;設(shè)置校驗和的初值ljmploop2loop2:mova,r2;發(fā)送地址楨信息movsbuf,aretiendt:retiend從機程序如下:org0000hljmpmainr;跳至主程序入口地址org0023h;串行口中斷服務(wù)程序入口ljmpintsrmainr:movscon,#0b0h;置工作方式2,并允許接收mo
10、vtmod,#20h;置t1工作方式2movth1,#0fdhmovtl1,#0fdhmovdptr,#addr;設(shè)置數(shù)據(jù)塊接收首址為addrmovr0,#120;設(shè)置接收字節(jié)數(shù)movr2,#namemovr1,#00h;設(shè)置校驗和的初值setbrb8;置位rb8位,作為接受地址信息特征setbtr1setbea;cpu開中斷setbes;允許串行口中斷sjmp$;中斷服務(wù)程序intsr:mov a,rb8;判斷是接收地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)loop0cjnea,01h,loop0clrri;地址楨信息接受完后清接收中斷mova,sbufxrla,r2jzloop;若地址相符則轉(zhuǎn)loop,否
11、則中斷返回ljmpendrloop:clrsm2clrrb8mova,r2movsbuf,a;想主機發(fā)送從機地址ljmpendrloop0:jbri,loop1;檢查是否是接受中斷?若ri=1則轉(zhuǎn)入接受甲機發(fā)送的數(shù)據(jù)clrti;因ri=0,表明是乙機發(fā)送中斷數(shù)據(jù)的中斷請求。cpu響應(yīng)中斷,在中斷服務(wù)程序中應(yīng)清中斷標(biāo)志ljmpendr;甲機發(fā)送一數(shù)據(jù)完畢跳至中斷返回程序loop1:clrri;清接受中斷標(biāo)志decr0jzloop2;數(shù)據(jù)未接收完則中斷返回,若接收完則轉(zhuǎn)loop2,校驗mova,sbuf;取甲機發(fā)送的數(shù)據(jù)movxdptr,axrla,r1movr1,aloop2:mova,sbuf
12、:取甲機發(fā)送的校驗和xrla,r1jzrightljmpwrongright:mova,#00hmovsbuf,aljmpendrwrong:mova,#0ffh movsbuf,amovdptr,#addr;設(shè)置數(shù)據(jù)塊接收首址為addrmovr0,#120;設(shè)置接收字節(jié)數(shù)ljmpendrendr: retiend5、 利用msc1211的a/d構(gòu)成數(shù)據(jù)采集系統(tǒng)。使用模擬通道0進行連續(xù)數(shù)據(jù)采集,采集8次后取得平均值,存放到預(yù)先分配好的100個內(nèi)存單元中,這100個單元存滿后,再從第一個單元進行覆蓋保存。寫出完整的程序清單(應(yīng)在適當(dāng)?shù)牡胤郊映绦蜃⑨專=猓?include<reg1211.
13、h>#include<stdio.h>extern void autobaud(void);/聲明外部函數(shù)extern void bipolar(void);float a100=0,w8=0;int out=0;long result,temp;int j;int auxinterrupts(void)interrupt6 using1/中斷服務(wù)程序if(pai=6)/處理ad中斷 wout+=bipolar();temp=wout;sumr0=temp&0xff;sumr1=(temp>>8)&0xff;sumr2=(temp>>16)&0xff;sumr3=(temp>>24)&0xff;if(out=8)sum=sumr3<<24+sumr2<<16+sumr1<<8+sumr0;sum/=8;aj+=sum;if(j>=100)j=0;min(void)float dummy;int decimation;decimationg=1440;/抽取因子pdcon&=0x77;/打開adcaclk=9;/模擬采樣頻率admux=0;/使用通道0adcon0=0x30;/內(nèi)部基準(zhǔn)2.5v,緩沖器關(guān),bod關(guān),pga=0adcon1=0x
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土建瓦工勞務(wù)分包合同
- 常年法律顧問合同
- 2025年撫州貨運資格證模擬考試題庫下載
- 2025年徐州市汽車租賃合同5篇
- 公司副食品購銷合同7篇
- 專利技術(shù)的授權(quán)與使用條款協(xié)議
- 無償保管合同范本-倉儲保管合同8篇
- 電力合同范本模板
- 適合小學(xué)英語的試卷
- 設(shè)備驅(qū)動程序市場分析及競爭策略分析報告
- 中小學(xué)領(lǐng)導(dǎo)班子包級包組包班制度
- 汽車掛靠經(jīng)營合同協(xié)議書模板
- 基坑土方開挖專項施工方案(完整版)
- 電網(wǎng)工程設(shè)備材料信息參考價(2024年第四季度)
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 數(shù)據(jù)中心運維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 2024-2025學(xué)年山東省濰坊市高一上冊1月期末考試數(shù)學(xué)檢測試題(附解析)
- 電玩城培訓(xùn)課件
- 2025年全年日歷-含農(nóng)歷、國家法定假日-帶周數(shù)豎版
- 小學(xué)生播音員課件
- 2024年重大事項內(nèi)部會審制度(3篇)
評論
0/150
提交評論