




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、年級_;層次_;專業(yè)_;姓名_單片機原理及應用模擬卷 除非特別聲明,編程題可以使用匯編語言編寫,也可以使用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= 00h )popbadda,b ;(a= 37h b= 19h )mov30h,a;(30h單元的內(nèi)容= 37h )mov20h,30hclr01h;(20h單元的內(nèi)容
2、= 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中。使用匯編語言編寫 main:mov r0,#60hmov r2,#6mov dptr, #0090hhasc:mov a,r
3、0anl a,#0fh;屏蔽高四位add a,#0dh movc a,a+pc ;查表低四位轉(zhuǎn)換為ascii碼movx dptr,a;送如外部raminc dptrmov a,r0anl a,#0f0hswap aadd a,#6movc,a+pc;高四位轉(zhuǎn)換為ascii碼movx dptr,ainc r0inc dptrdjnz r2,hascendasctab:db 30h 31h 32h 33h 34 h 35h 36h 37h 38h 39h db41h 42h 43h 44h 45h 46h3、 某一故障檢測系統(tǒng),當出現(xiàn)故障1時,線路1上出現(xiàn)上升沿;當出現(xiàn)故障2時,線路2上出現(xiàn)下降沿
4、。沒有故障時,線路1為低電平,線路2為高電平。出現(xiàn)故障時,相應的指示燈變亮。故障消失后,指示燈熄滅。試用msc1211為單片機實現(xiàn)該故障檢測功能,畫出電路原理圖,并寫出相應程序。4、 用msc1211的t0定時/計數(shù)器,設計程序,實現(xiàn)在p1.0輸出周期為200ms的占空比為1:1的方波,輸出500個方波后停止輸出。參考答案:org0000hljmpmainorg000bh;t0口中斷服務程序入口地址ljmpint_t0main:movtmod,#00h;t0工作于方式0定時movtl0,#0chmovth0,#1eh;設定秒中斷周期為1msmova,200;設定輸出周期為200 msmovr2
5、,1000;輸出500個方波setbtr0setbet0setbeasetbp1.0sjmp$int_t0:movtl0,#0chmovth0,#1eh;t0重裝時間常數(shù)cplp1.0p1.0位取反decr2jzendp;若r2為0,則結(jié)束程序,否則返主程序繼續(xù)輸出reti;返主程序endp:end5、 利用msc1211的a/d構(gòu)成數(shù)據(jù)采集系統(tǒng)。使用模擬通道0進行連續(xù)數(shù)據(jù)采集,采集8次后取得平均值,存放到預先分配好的100個內(nèi)存單元中,這100個單元存滿后,再從第一個單元進行覆蓋保存。寫出完整的程序清單(應在適當?shù)牡胤郊映绦蜃⑨專?。參考答案?include<reg1211.h>
6、#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/中斷服務程序if(pai=6)/處理ad中斷 wout+=bipolar();temp=wout;sumr0=temp&0xff;sumr1=(temp>>8)&0xff;sumr2=(temp>>16)&am
7、p;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)部基準2.5v,緩沖器關,bod關,pga=0adcon1=0x01;/雙極性,自
8、動穩(wěn)定模式,偏移增益自校準adcon2=decimation&0xff;/寫入抽取因子低字節(jié)adcon3=(decimation>>8)&0x07;/寫入抽取因子高字節(jié)aie=&0x20;autobaud();/等待校準for(i=0;i<4;i+)while(!(aie&0x20)dummy=adresl;sscon=0;/清除求和寄存器eai=1;while(1);6、 變量k從0變到150,變化步長為10。對于每一個值,使用整形數(shù)算術運算計算8*k,k*k*k和(40*k/150)3。這三個值通過msc1211的d/a轉(zhuǎn)換后同步輸出(均使
9、用電壓輸出模式)。試編寫程序?qū)崿F(xiàn)。參考答案:include<reg1211.h>data unsignedint k,j,i;void main(void)pdcon&=0x48;adcon0=0x30;dacsel=6;dacsel=4;dacl=0x24;dacsel=5;dach=0x24;while(1)dacsel=0;dac=0x8000;for(j=0;j<100;j+)dac=0;for(k=0;k<151;k+=10)dacsel=1;dac=8*k;dacsel=2;dac=k*k*k;dacsel=3;i=40*k/150;dac=i*i*
10、i;dacsel=6;dacl=0xfc;單片機原理及應用模擬卷 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= 1e b= 00h )popbadda,b ;(a= 37h b= 19h )mov30h,a;(30h單元的內(nèi)容= 37h )loop:ajmploop2、 將mcs51內(nèi)部ram50h55h單元存放的12個16進制數(shù)變?yōu)閍sci
11、i碼,放到2800h單元開始的外部ram中。參考答案: org0000hljmpmainmain:movdptr,#70hmovr1,#1120hmovr0,#06top:mova,dptrpushaccanla,#0fh;取出四位二進制數(shù)pushaccclrcsubba,#0ahpopacc;彈回a中jcloop;該數(shù)10去loopadda,#07h;否則加07hloop:adda,#30h;加30hmovr2,apopaccanl#0f0h;取出下一個四位二進制數(shù)pushaccclrcsubba,#0ahpopacc;彈回a中jcloop;該數(shù)10去loop1adda,#07h;否則加07
12、hloop1:adda,#30h;加30hswapaorla,r2movxr1,a;將結(jié)果存到ram中incdptrincr1decr0jnztop;判斷轉(zhuǎn)換完沒有,未轉(zhuǎn)換完則轉(zhuǎn)top3、 編制四個十六進制單字節(jié)數(shù)相加后求平均的程序。假設4個16進制的單字節(jié)分別為a,b,c,d,計算結(jié)果方到e中#include <reg51.h>#define uchar unsigned charvoid main(void)uchar a,b,c,d,e;e=(a+b+c+d)/4;while(1);4、 用8031的t0定時/計數(shù)器,設計程序,實現(xiàn)在p1.0輸出50ms的方波,輸出100個方
13、波后停止輸出。參考答案:msc1211的t0定時/計數(shù)器,設計程序,實現(xiàn)在p2.0輸出周期為400ms的占空比為1:1的方波,輸出1000個方波后停止輸出。(20分)(12mhz,一個時間周期為2us)org0000hljmpmainorg000bh;t0口中斷服務程序入口地址ljmpint_t0main:movtmod,#00h;t0工作于方式0定時movtl0,#0chmovth0,#1eh;設定秒中斷周期為1msmova,400;設定輸出周期為400 msmovr2,2000;輸出1000個方波setbtr0setbet0setbeasetbp1.0sjmp$int_t0:movtl0,
14、#0chmovth0,#1eh;t0重裝時間常數(shù)cplp1.0p1.0位取反decr2jzendp;若r2為0,則結(jié)束程序,否則返主程序繼續(xù)輸出reti;返主程序endp:end5、 甲單片機利用方式1將內(nèi)部ram30h37h單元的ascii碼發(fā)送到乙機。編制甲機發(fā)送和乙機接收的程序(加奇校驗)。參考答案:利用msc1211或8051設計應答方式下的通訊程序。通訊參數(shù):晶振為11.0592mhz,每幀為11位,第九位數(shù)據(jù)為奇偶校驗用的補偶位。通訊過程如下:甲機首先發(fā)送一幀信息、乙機對接收的數(shù)據(jù)進行奇偶校驗,若補偶正確則乙機向甲機發(fā)出“00”作為回答信號,甲機接收到乙機的此信息后再發(fā)送下一個字節(jié)
15、。若奇偶校驗錯,則乙機發(fā)出“0ffh”作為回答信號,要求甲機再次發(fā)送原數(shù)據(jù),直至數(shù)據(jù)發(fā)送正確。甲機發(fā)送200個字節(jié)后才停止發(fā)送。甲機發(fā)送數(shù)據(jù)的首址為addrt,乙機接收數(shù)據(jù)的首址為addrr。(應在適當?shù)牡胤郊映绦蜃⑨專?0分)主程序(甲機):org0000hljmpmaintorg0023hljmpintse1main:movpcon,#80h;波特率加倍movscon,#90h;置工作方式2,并允許接收movdptr,#addrt;設置數(shù)據(jù)塊首址指針movr0,#00h;設置發(fā)送字節(jié)初值setbea;cpu開中斷setbesmovxa,dptr;取第一個發(fā)送數(shù)據(jù)movc,p;數(shù)據(jù)補偶mo
16、vtb8,cmovsbuf,a;啟動串行口,發(fā)送數(shù)據(jù)sjmp$;中斷服務程序intse1:jbri,loop;檢測是否是接收中斷?若ri1,轉(zhuǎn)入接收程序clrti;因ri0,表明是甲機發(fā)送數(shù)據(jù)中斷l(xiāng)jmpendt;甲機發(fā)送一數(shù)據(jù)完畢跳至中斷返回程序loop:clrrimova,sbuf;取乙機的應答數(shù)據(jù)subba,#01h;若乙機應答信息為00h,數(shù)據(jù)傳送正確,轉(zhuǎn)loop3jcloop3movxa,dptr;若乙機應答信息為0ffh,數(shù)據(jù)傳送不正確movc,pmovtb8,cmovsbuf,a;啟動串行口,重新發(fā)送一次數(shù)據(jù)ljmpendt;跳至中斷返回程序loop3:incdptr;修改地址指
17、針incr0movxa,dptr;下一個數(shù)據(jù)補偶movc,pmovtb8,cmovsbuf,a;啟動串行口,發(fā)送信的數(shù)據(jù)cjner0,#0c8h,endt;判斷200個字節(jié)是否發(fā)送完畢clres;全部發(fā)送完畢,禁止串行口中斷endt:retiend主程序(乙機):org0000hljmpmainrorg0023hljmpintse2org0100hmain:movpcon,#80h;波特率加倍movscon,#90h;置工作方式2,并允許接收movdptr,#addrr;設置數(shù)據(jù)塊首址指針movr0,#00h;設置發(fā)送字節(jié)初值setbea;cpu開中斷setbessjmp$;中斷服務程序int
18、se2:jbri,loop;檢測是否是接收中斷?若ri1,轉(zhuǎn)入接收程序clrti;因ri0,表明是乙機發(fā)送中斷l(xiāng)jmpendt;乙機發(fā)送完畢跳至中斷返回程序loop:clrrimova,sbuf;取甲機發(fā)送的數(shù)據(jù)movc,p;奇偶校驗jcloop1;如8位數(shù)為奇,則轉(zhuǎn)loop1再檢測rb8位,rb8=1,則9位數(shù)據(jù)位奇,補偶jcloop2;錯,轉(zhuǎn)loop2ljmploop3;補偶正確,轉(zhuǎn)loop3loop1:anlc,rb8;8位數(shù)為奇,再檢測rb8jcloop3;rb8=1,補偶正確,轉(zhuǎn)loop3loop2:mova,#0ffh;本機發(fā)出0ffh,表明傳送不正確。movsbuf,aljmpe
19、ndtloop3:movxdtpr,a;將接收的正確信息送數(shù)據(jù)緩沖區(qū)mova,#00h;本機發(fā)出應答信息給甲機,表明數(shù)據(jù)傳送正確movsbuf,aincr0;修改指針incdptrcjner0,#0c8h,endt;判斷200個字節(jié)是否接收完畢clresendt:retiend6、 試用8031和8155實現(xiàn)鍵盤和led動態(tài)顯示。畫出原理示意圖并編制鍵盤掃描程序和led動態(tài)顯示程序(16個鍵的鍵盤掃描和6位led顯示)。參考答案:變量k從0變到300,變化步長為20。對于每一個值,使用整形數(shù)算術運算計算40*k,k*k*k和(50*k/120+60)3。這三個值通過msc1211的d/a轉(zhuǎn)換后
20、同步輸出(均使用電壓輸出模式)。試編寫程序?qū)崿F(xiàn)。(5分) include<reg1211.h>data unsignedint k,j,i;void main(void)pdcon&=0x48;adcon0=0x30;dacsel=6;dacsel=4;dacl=0x24;dacsel=5;dach=0x24;while(1)dacsel=0;dac=0x8000;for(j=0;j<100;j+)dac=0;for(k=0;k<301;k+=20)dacsel=1;dac=40*k;dacsel=2;dac=k*k*k;dacsel=3;i=50*k/1200
21、+60;dac=i*i*i;dacsel=6;dacl=0xfc;單片機原理及應用模擬卷 一、 分析程序的執(zhí)行結(jié)果,將結(jié)果填寫到空格中。1)、 mov40h,#80hmovr0,#40hmova,r0;(a= 80h ) movb,#20h divab;(a= 04h b= 00h )movr0,a ;最終結(jié)果存于內(nèi)存單元 40h 中。 2)、 mova,#2ah rr a mov b,a mulab;(a= b9h b= 01h ) (ov= 1 cy= 0 ) 3)、 mov a,#0b2h movr1,#055hanl a,r1 ;(a= 10h )orl a,r1 ;(a= 55h )
22、 xrl a,r1 ;(a= 00h ) swap a ;(a= 00h ) 4)、 設內(nèi)存20h的內(nèi)容為30h,30h的內(nèi)容為46h,46h的內(nèi)容為57h mov r0,#30h mov a,r0;(psw中p的內(nèi)容= 1 ) xch a,r0 add a,#0dbh subb a,#74h;(a= 96h );(psw中p的內(nèi)容= 0 );( psw中c的內(nèi)容= 0 )5)、 mov 25h,#39h clr 2ah ;(25h)=( 00111001 b) cpl 2ch ;(25h)=( 00101001 b) setb 2eh ;(25h)=( 01101001 b) mov c,2
23、8h ;( psw中c的內(nèi)容= 1 )二、 程序設計1、 mcs51內(nèi)部ram 40h60h單元存放著有符號16進制數(shù),將其中能被2整除的數(shù),存放到0090h單元開始的外部ram中。使用匯編語言編寫 參考答案: org0000h jmpstart start:mov sp,#60h mov dptr,#0090hmov r0,#40h mov r1, #21loop0: mov a,r0 mov b, #2 div ab mov r2, b cjnz r2, #0, loop1 ;余數(shù)為0則繼續(xù),不為0則轉(zhuǎn)移 mov a,r0 mov dptr,a inc dptrloop1: inc r0d
24、jnz r1, loop0 end2、 用msc1211的t1定時/計數(shù)器,定時0.1s中斷,使p1口的8個發(fā)光二極管每隔1s 循環(huán)點亮。設系統(tǒng)主頻為6mhz。參考答案:org0000hljmpmain;轉(zhuǎn)主程序org001bh;t1中斷服務程序入口地址ljmpt1-isrorg0100hmain:movsp,#60h;設置堆棧指針mov p1,#01h;設置p1.1發(fā)光movtmod,#10h;t1初始化movtl1,#b0hmovth1,#3chsetbtr1;啟動t0計數(shù)setbet1;允許t0中斷setbea;cpu開中斷sjmp$;等待t1_isr:movtl1,#b0hmovth1,#3chmo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年事業(yè)單位考試四川省遂寧市A類《職業(yè)能力傾向測驗》模擬試題含解析
- 2025年遵義市稅務系統(tǒng)遴選面試真題附詳解含答案
- 慢病防治知識講座參考課件
- 林長制智慧林長綜合管理平臺建設方案
- 遼陽市弓長嶺區(qū)文職輔警招聘考試真題
- 老年健康管理內(nèi)容課件
- 老師的視頻課件大全
- 高效智能倉儲租賃服務協(xié)議
- 采礦權(quán)出讓與礦產(chǎn)資源保護責任書范本
- 礦山股權(quán)轉(zhuǎn)讓與礦區(qū)環(huán)境保護責任書
- 保山2025年云南保山市中心血站招聘編外工作人員筆試題庫附帶答案詳解
- 弘揚家風文化班會課件
- 吐魯番采油廠玉果油田滾動建產(chǎn)工程環(huán)境影響報告書
- 2025年6月英語四級真題及參考答案
- 浙江省2024-2025學年高二下學期數(shù)學學考模擬考(三)(含答案)
- 電大:理論聯(lián)系實際談一談如何維護政治安全?參考答案
- 2025年下半年佛山市圖書館招考工作人員易考易錯模擬試題(共500題)試卷后附參考答案
- 社區(qū)社會工作課件
- 醫(yī)藥代表關鍵客戶管理策略
- 2025年人教版小學小升初科學模擬試卷(含答案解析)
- 浙江省杭州市拱墅區(qū)2025年中考英語一模試卷(含筆試答案無聽力答案、原文及音頻)
評論
0/150
提交評論