機電一體化單片機原理及應用山東大學網(wǎng)絡教育考試模擬題及答案_第1頁
機電一體化單片機原理及應用山東大學網(wǎng)絡教育考試模擬題及答案_第2頁
機電一體化單片機原理及應用山東大學網(wǎng)絡教育考試模擬題及答案_第3頁
機電一體化單片機原理及應用山東大學網(wǎng)絡教育考試模擬題及答案_第4頁
機電一體化單片機原理及應用山東大學網(wǎng)絡教育考試模擬題及答案_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及應用除非特別聲明,編程題可以使用匯編語言編寫,也可以使用 1分析程序的執(zhí)行結(jié)果,將結(jié)果填寫到空格中。ORG 0000H MOV 30H,#50H MOV RO,#30H MOV A,R0 MOV A,#79H MOV B,#20H DIV AB PUSH BMOV B,#0AH MUL AB POP BADD A,B MOV 30H,A MOV 20H,30H CLR 01H MOV A,20H CPL A RR A SWAP A ADDC A,#0F0H;(A= 50H)RL A;(A=79 HB= 20H);(A=03H B=19H);(A= 1EH B= OOH);(A=37

2、H B=19H);(30H單元的內(nèi)容=37H);(20H單元的內(nèi)容=37H);(PSW中P的內(nèi)容=1 );(PSW中C的內(nèi)容=o );(A=46H);(A=36H);(PSW中P的內(nèi)容=0);(PSW中C的內(nèi)容=1);(A= 6CH );(PSW中P的內(nèi)容=0);(PSW中C的內(nèi)容=o )LOOP: AJMP LOOP2、將MCS51內(nèi)部RAM60Hs65H單元存放的12個16進制數(shù)變?yōu)锳SCII碼,放到0090H單元開始的外部RAM中。使用匯編語言編寫MAIN :MOV RO,#60HMOV R2,#6MOV DPTR, #0090HHASC:MOV A,R0 ANL A,#0FH ADD

3、A,#0DH MOVC A,A+PC MOVX DPTR,A INC DPTRMOV A,R0 ANL A,#0F0H SWAP A ADD A,#6 MOVC,A+PC MOVXDPTR,A INC RO;屏蔽高四位;查表低四位轉(zhuǎn)換為ASCII碼;送如外部RAM;高四位轉(zhuǎn)換為ASCII碼INC DPTRDJNZ R2,HASCENDASCTAB:DB 30H 31H 32H 33H 34 H 35H36H 37H 38H 39H DB41H 42H 43H 44H 45H 46H3、某一故障檢測系統(tǒng),當出現(xiàn)故障1時,線路1上出現(xiàn)上升沿;當出現(xiàn)故障2 時,線路2上出現(xiàn)下降沿。沒有故障時,線路1

4、為低電平,線路2為高電平。 出現(xiàn)故障時,相應的指示燈變亮。故障消失后,指示燈熄滅。試用 MSC1211為單片機實現(xiàn)該故障檢測功能,畫出電路原理圖,并寫出相應程序。4、用MSC1211的TO定時/計數(shù)器,設計程序,實現(xiàn)在P1.0輸出周期為200ms的占空比為1:1的方波,輸出500個方波后停止輸出。解:ORG 0000HLJMP MAINORG000BH ;TO 中斷服務程序人口地MAINLJMP INT_T0MOV TMOD , #00H; To工作于方0定時MOVTLO , #0CHMOVTHO , #1EH ;設定秒中斷周期為1msMOV A, 200 ;設定輸出周期為200 msMOV

5、R2, 1000;輸出500個方波SETB TROSETB ETOSETB EASETB P1.0SJMP $INT_TO : MOVMOVCPLTLO, #0CHTHO, #1EH ; TO重裝時間常數(shù)P1.0P1.0位取反DEC R2JZENDP ;若R2為0,則結(jié)束程序,否則返主程序繼續(xù)RETI;返主鬼席ENDP END5、利用MSC1211的A/D構(gòu)成數(shù)據(jù)采集系統(tǒng)。使用模擬通道。進行連續(xù)數(shù)據(jù)采 集,采集8次后取得平均值,存放到預先分配好的100個內(nèi)存單元中,這100 個單元存滿后,再從第一個單元進行覆蓋保存。寫出完整的程序清單(應在適 當?shù)牡胤郊映绦蜃⑨專?。?#include#inc

6、ludeextern void autobaud(void);/ 聲明外部函數(shù)extern void bipolar(void);float a100=0,w8=0;int out=0;long result,temp;intj;int AUXinterrupts(void)interrupt6 usingl/ 中斷服務程序 (if(PAI=6)/處理 AD 中斷(wout+=bipolar();temp=wout;SUMR0=temp&0xff;SUMR1 =(temp8)&0xff;SUMR2=(temp16)&0xff;SUMR3=(temp24)&0xff;if(out=8)SUM=S

7、UMR324+SUMR216+SUMR18+SUMR0; )SUM/=8;aj+=SUM;if(j=100)j=0; )min(void)float dummy;int decimation;decimationg=1440;/ 抽取因子PDCON&=Ox77 ; 打開 ADCACLK=9 ; /模擬采樣頻率ADMUX=0;使用通道0ADCON0=0x30;/ 內(nèi)部基準 2.5V ,緩沖器關,BOD 關,PGA=0ADCON1=0x01;雙極性,自動穩(wěn)定模式,偏移增益自校準ADCON2=decimation&Oxff;/寫入抽取因子低字節(jié)ADCON3= ( decimation8 ) &0x0

8、7; 寫入抽取因子高字節(jié)AIE=&0x20;autobaud();等待校準for(i=0;i4;i+)(while(!(AIE&0X20)(dummy=ADRESL;)SSCON=0;/清除求和寄存器EAI=1 ;While(1);)6、變量k從。變到150,變化步長為10。對于每一個值,使用整形數(shù)算術運算 計算 8*k, k*k*k和(40*k/150F3。這三個值通過MSC1211的D/A轉(zhuǎn)換后同 步輸出(均使用電壓輸出模式)。試編寫程序?qū)崿F(xiàn)。角星: include data unsigned int k,j,i; void main(void)PDCON&=OX48; ADCON0=0X

9、30;DACSEL=6;DACSEL=4;DACL=0X24;DACSEL=5;DACH=0x24;while(1)tDACSEL=0;DAC=0x8000; for(j=0;j100;j+) DAC=0;for(k=0;k151 ;k+=10)DACSEL=1 ;DAC=8*k; DACSEL=2;DAC=k*k*k;DACSEL=3;i=40*k/150;DAC=i*i*i; DACSEL=6;DACL=0Xfc;7、利用MSC1211或8051設計應答方式下的多機通訊程序。通訊參數(shù):晶振 為11.0592MHz, 9600, n, 8, 1。通訊過程如下:主機首先發(fā)送從機地址, 從機收到

10、地址后進行比較,如果地址相符,則將從機地址回發(fā)給主機作為應 答信號。主機收到從機的地址應答信號后,將內(nèi)存單元中的120個數(shù)據(jù)發(fā)送 給從機,并進行數(shù)據(jù)塊校驗(將各個數(shù)據(jù)進行異或),若校驗正確,則從機發(fā) 送00H給主機,否則發(fā)送0FFH給主機,主機重新發(fā)送數(shù)據(jù)。(應在適當?shù)?地方加程序注釋)解:主機程序如下:ORG 0000HLJMP MAINT ;跳至主程序入口地址ORG 0023H ;串行口中斷服務程序入口LJMP INTSTMAINT : MOVSCON , #90H;置工作方式 并允許接收MOVTMOD . #20H:置 T1 工作方式2MOVTH1 , #0FDHMOVTL1 , #0F

11、DHMOVDPTR, #ADDR;設置數(shù)據(jù)塊首址ADDR的地址指針MOV RO , #120 ;設置發(fā)送字節(jié)數(shù)MOVR1 , #00H ;設置校驗和的初值MOV R2 , #NAMESETB TB8 ;置位TB8位,作為發(fā)送地址楨信息特征SETB TR1SETB EA ; CPU 開中斷SETB ES ;允許串行口中斷MOV A , R2 ;發(fā)送地址楨信息MOV SBUF , ASJMP$ ;中斷服務程序INTST : MOVA , TB8 ;判斷是發(fā)送地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)LOOPO CJNE A ,01H, LOOPOCLR Tl ;地址楨信息發(fā)送完后清發(fā)送中斷LOOPO : JB R

12、I , LOOP1 ;檢查是否是接受中斷?若Rl=1則轉(zhuǎn)入接受乙機發(fā) 送應答信息CLR TI ;因 RI=0,表明是甲機發(fā)送中斷數(shù)據(jù)的中斷請CPU響應中斷,中斷服務程序中應清中斷標志MOV A , TB8 ;CJNE A, #01H, LOO3 ;若為發(fā)送數(shù)據(jù)中斷則轉(zhuǎn)L00P3繼續(xù)發(fā)送數(shù)據(jù)LOOP1LJMPCLRENDT ;甲機發(fā)送一數(shù)據(jù)完畢跳至中斷返回程序 RI ;清接受中斷標志MOV A, TB8 ;判斷是發(fā)送地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn) L00P2CJNE A, #01H, L00P4 ;若TB8為0則接受的為乙機數(shù)據(jù)校驗應答MOV A, SBUF;取乙機的應答數(shù)據(jù)CJNE A, R2,L

13、00P2;若乙機應答信息不是從機地址,則地址傳送不正 則轉(zhuǎn)L00P2程序重新發(fā)送地址信息,否則清 TB8,發(fā)送數(shù)據(jù)CLRLOOP3 movXTB8A , DPTR ;取下一個數(shù)MOVSBUF, A ;啟動串行口,發(fā)送新的數(shù)據(jù)XRL , R1MOV 印,AINC DPTR ;修改地址指針DEC RO ;修改發(fā)送字節(jié)數(shù)記數(shù)值CJNE RO , #00H, ENDT ;判別120個字節(jié)數(shù)據(jù)都發(fā)送完沒有。如 沒有發(fā)送完則跳至中斷返回程序。繼續(xù)發(fā)送MOVA , R1MOVSBUF, A;數(shù)據(jù)全部發(fā)送完畢則發(fā)送校驗和LJMP ENDTLOOP4 MOV A, SBUF ;取乙機的應答數(shù)據(jù)NE A, #00

14、H, LOOP5 ;若數(shù)據(jù)發(fā)送不正確,則轉(zhuǎn)LOOP5重 tt LLOOP5 :CLRMOV MOVES;全部發(fā)送完畢,禁止串行口中斷MOVDPTR, #ADDR ;設置數(shù)據(jù)塊首址ADDR的地址指針R0, #120;設置發(fā)送字節(jié)數(shù)R1, #00H;設置校驗和的初值LOOP2ENDTLJMPMOVMOVRETIRETIENDLOOP2A, R2;發(fā)送地址楨信息SBUF, A從機程序如下:MAINRORGLJMPORG LJMP :MOV0000HMAINR ;跳至主程序入口地址0023H ;串行口中斷服務程序入口INTSRSCON, #0B0H;置工作方式2,并允許接收MOV TMOD , #20

15、H;置 T1 工作方式 2MOV TH1, #0FDHMOVTL1 , #0FDHMOV DPTR , #ADDR ;設置數(shù)據(jù)塊接收首址為ADDRMOVRO , #120 ;設置接收字節(jié)數(shù)MOVR2, #NAMEMOVR1 , #00H ;設置校驗和的初值SETB RB8 ;置位RB8位,作為接受地址信息特征SETBTR1SETBEA ; CPU 開中斷SETBES ;允許串行口中斷SJMP $;中斷服務程序INTSR : MOVCJNE CLR MOVXRL JZ LJMPLOOP : CLRCLRMOVMOVLJMPLOOPO: JB送的數(shù)據(jù)A, RB8 ;判斷是接收地址還是數(shù)據(jù),若為數(shù)據(jù)

16、則轉(zhuǎn)LOOPOA , 01H, LOOPORI ;地址楨信息接受完后清接收中斷A , SBUFA , R2LOOP ;若地址相符則轉(zhuǎn)LOOP,否則中斷返回ENDRSM2RB8A , R2SBUF, A;想主機發(fā)送從機地址ENDRRI , LOOP1 ;檢查是否是接受中斷?若Rl=1則轉(zhuǎn)入接受甲機發(fā)CLR TI ;因RI=0 ,表明是乙機發(fā)送中斷數(shù)據(jù)的中斷請求。CPU響應 中斷,在中斷服務程序中應清中斷標志LJMP ENDR ;甲機發(fā)送一數(shù)據(jù)完畢跳至中斷返回程序LOOP1 : CLR RI ;清接DECJZMOVMOVXR0LOOP2 ; A, DPTR數(shù)據(jù)未接收完則中斷返;取甲機發(fā)送的數(shù)據(jù)XR

17、LMOVLOOP2 : MOVA,R1 R1, A A,:取甲機發(fā)送的校驗XRLJZA , R1 RIGHT受中斷標志若接收完則轉(zhuǎn)LOOP2 ,校驗RIGHT : MOVMOVA, #00HSBUF , ALJMP ENDRWRONG : MOV A , #0FFHMOV SBUF , AMOV DPTR , #ADDR ;設置數(shù)據(jù)塊接收首址為ADDRMOV RO , #120 ;設置接收字節(jié)數(shù)LJMP ENDRENDR : RETIEND單片機原理及應用1、分析程序的執(zhí)行結(jié)果,將結(jié)果填寫到空格中。ORG 0000HMOV 30H,#50HMOV R0,#30HMOV A,R0MOV A,#7

18、9HMOV B,#20HDIV ABPUSH BMOV B,#0AHMUL ABPOP BADD A,BMOV 30H,ALOOP: AJMP LOOP;(A50H);(A=79H B=;(A03H20H)B= 19H );(A 1E B= OOH );(A37H B= 19H);(30H單元的內(nèi)容=37H)2、MCS51內(nèi)部RAM50Hs55H單元存放的12個16進制數(shù)變?yōu)锳SCII碼,放 到2800H單元開始的外部RAM 中。MOV A,R0 ANL A,#0FH ADD A,#0DH MOVC A,A+PC MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0F0

19、H SWAP A ADD A,#6 MOVC,A+PC MOVX DPTR,A INC ROMAIN:MOV R0,#50HMOV R2,#6MOV DPTR, #2800HHASC:;屏蔽高四位;查表低四位轉(zhuǎn)換為ASCII碼;送如外部RAM扃四位轉(zhuǎn)換為ASCII碼INC DPTRDJNZ R2,HASCENDASCTAB:DB 30H 31H 32H 33H 34 H 35H36H 37H 38H39H DB41H42H 43H 44H 45H 46H3、編制四個十六進制單字節(jié)數(shù)相加后求平均的程序。假設4個16進制的單字節(jié)分別為a, b, c, d,計算結(jié)果方到e中#include #def

20、ine uchar unsigned charvoid main(void)(uchar a,b,c,d3e;e=(a+b+c+d)/4;while(1);)4、用8031的TO定時/計數(shù)器,設計程序,實現(xiàn)在P1.0輸出50ms的方波,輸出 100個方波后停止輸出。#include #define uchar unsigned charuchar a;void main(void)(TMOD=0X01;TL0=0XB0;TH0=0X3C;EA=1;ET0=1;TR0=1;while(1) (if(a=100) (EA=0;TR0=0; void timerO(void) interrupt 1

21、(TL0=0XB0;TH0=0X3C;epi p1.0;a+;)5、甲單片機利用方式1將內(nèi)部RAM30Hs37H單元的ASCII碼發(fā)送到乙機編制甲 機發(fā)送和乙機接收的程序(加奇校驗)。A機發(fā)送程序設計ST:MOV TMOD,#20HMOV TL1 ,#0E8HMOV TH1,#0E8HSETB TR1MOV SCON ,#50HMOV RO,#30HMOVR1,#08HLOOP:MOV A,R0CALL FSINC RODJNZR1,LOOPRETFS:MOV C,PCPLCMOV ACC.7,CMOV SBUF AWAIT:JNBTI,WAITCLR TlRETB機的接受程序設計 接受串口發(fā)

22、來的程序,假設存放在30H37H中ST:MOV TMOD,#20HMOV TL1 ,#0E8HMOV TH1,#0E8H SETB TR1MOV SCON ,#50HMOV R0,#30HMOVR1,#08H LOOP:CALL JSJNC ERRORMOV R0 , AINC RODJNZR1,LOOPRETERROR:;出錯處理,如返回出錯信息等RETJS:JNB RI JSCLR RIMOV A, SBUFMOV PCANLA,#7FHRET6、試用8031和8155實現(xiàn)鍵盤和LED動態(tài)顯示。畫出原理示意圖并編制鍵盤 掃 描程序和LED動態(tài)顯示程序(16個鍵的鍵盤掃描和6位LED顯示)。

23、鍵盤掃描子程序:#include #include #define uchar unsigned char#define uint unsigned int uchar num,i;uint temp;void main(void)(while(1)(keych();)void keych()for(i=0;iv4;i+)ftemp=0xfe; temp= _crol_(temp, i); P0=temp; temp=P0; temp=temp&OxfO;if(temp!=OxfO) delay();if(PO&OxfO)!=OxfO) switch(temp)(case 0x70: jpch

24、;break; case OxbO: jpch;break; case OxdO: jpch;break; case OxeO: jpch;break;Void jpch(void)(按鍵掃描處理程序)LED動態(tài)掃描子程序假設各端口都已初始化#include Unsigned char duanx=0x3f,0x06,0x5b,0x4f,0x66)0xbdUnsigned char weix=0x80,0x40,0x20,0x10,0x80,0x40Void main(void)lnit();初始化各端口P1=0While(1)(Unsigned char;For (i=0;i6,i+)(P0

25、=duanxi;P1+P0=weixi;Delay();P1=0;P0=0;)i=0;p1=0)5、利用8031和8位A/D (ADC0809)構(gòu)成數(shù)據(jù)采集系統(tǒng)。每隔20ms采集通道。的 一次數(shù)據(jù),將采集的數(shù)據(jù)存放在30H的內(nèi)部RAM中。畫出原理示意圖,寫出較完整 的程序清單。(提示:需要用定時器和外部中斷)。5、MOV 25H , #39HCLR2AH;(25H)=(B)CPL2CH;(25H)=(00101001 B)SETB2EH;(25H)=(01101001MOV C, 28H;( PSW 中 C 的內(nèi)容=1 )1、MCS51內(nèi)部RAM 40Hs60H單元存放著有符號16進制數(shù),將其

26、中能被2整除 的數(shù),存放到0090H單元開始的外部RAM中。使用匯編語言編寫角星:ORG0000HJMPSTART:MOVMOVMOVMOVLOOPOMOVMOVDIVSTARTSP, #60HDPTR, #0090HR0, #40HR1, #21A , R0B, #2ABMOVCJNZMOVR2, BR2, #0, LOOP1 ;余數(shù)為。則繼續(xù),不為0則轉(zhuǎn)移A, R0LOOP1:MOVINCINCDJNZENDDPTR,ADPTRR0R1, LOOPO2、用MSC1211的T1定時/計數(shù)器,定時0.1S中斷,使P1 口的8個發(fā)光二極 管每 隔1S循環(huán)點亮。設系統(tǒng)主頻為6MHZO角翠:ORG

27、0000HLJMP MAINORG 001BHLJMPT1-ISR;轉(zhuǎn)主程序;T1中斷服務程序入口地MAIN : MOVSP, #60HMOVP1,#01HMOVTMOD , #10HMOVTL1 , #B0HMOVTH1 , #3CHSETBTR1SETBET1SETBEASJMP$T1JSR:MOV TL1,#B0HMOV TH1,#3CHMOVA,P1RLAMOVP1,A;設置堆棧指 設置P1.1發(fā)光;T1初始化啟動TO計數(shù);允許T0中斷;CPU開中斷;等待;P1 循環(huán)左移ORG01 OOHEXIT: RETIEND3、設有甲、乙兩臺單片機,以工作方式3進行串行通訊,設晶振為11.059

28、2MHz, 波特率為9600,甲機將內(nèi)存單元中的120個數(shù)據(jù)作補偶校驗后發(fā)送給乙機,乙機 對接收到的數(shù)據(jù)進行奇偶校驗,若校驗正確,則從機發(fā)送00H給甲機,甲機 繼續(xù)發(fā) 送數(shù)據(jù),校驗不正確,則發(fā)送OFFH給甲機,甲機重新發(fā)送原數(shù)據(jù),編寫乙機的接 收程序。(應在適當?shù)牡胤郊映绦蜃⑨專┙猓篛RG 0000HAJMP MAIN ORG 0023H LJMP SE2JNT MAIN:MOV SP,#60HMOV TMOD #20HMOV TH1,#0FDH ;設置波特率為 9600bpsMOV TL1,#0FDHMOV SCON,#90H ;串行工作方式3 ,允許接收MOV DPTR,#2000H;接收數(shù)據(jù)區(qū)MOV R1,#120SETB TR1SETB EASETB ESSJMP$;等待接收中斷SE2JNT:JB RI , LOOPACLRT1LOOPALJMP ENDRCLR RIMOV A,SBUFMOV C,P;奇偶校驗JC LOOP1 ;如8位數(shù)是奇,則轉(zhuǎn)LOOP1再檢測RB8位ORLGRB8;如8位數(shù)為偶,再檢測RB8位,RB8-1,則9位數(shù)據(jù)為奇,補偶JC LOOP2 ;錯,轉(zhuǎn) LOOP2LJMP LOOP3 ;補偶正確,轉(zhuǎn) LOOP3LOO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論