歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

機(jī)電一體化《單片機(jī)原理及應(yīng)用》山東大學(xué)網(wǎng)絡(luò)教育考試模擬題及答案.doc

  • 資源ID:12814293       資源大?。?span id="0js5a0v" class="font-tahoma">101.50KB        全文頁數(shù):20頁
  • 資源格式: DOC        下載積分:5積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要5積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

機(jī)電一體化《單片機(jī)原理及應(yīng)用》山東大學(xué)網(wǎng)絡(luò)教育考試模擬題及答案.doc

單片機(jī)原理及應(yīng)用除非特別聲明,編程題可以使用匯編語言編寫,也可以使用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)容= 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個(gè)16進(jìn)制數(shù)變?yōu)锳SCII碼,放到0090H單元開始的外部RAM中。使用匯編語言編寫 MAIN:MOV R0,#60HMOV R2,#6MOV DPTR, #0090HHASC:MOV A,R0ANL 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),當(dāng)出現(xiàn)故障1時(shí),線路1上出現(xiàn)上升沿;當(dāng)出現(xiàn)故障2時(shí),線路2上出現(xiàn)下降沿。沒有故障時(shí),線路1為低電平,線路2為高電平。出現(xiàn)故障時(shí),相應(yīng)的指示燈變亮。故障消失后,指示燈熄滅。試用MSC1211為單片機(jī)實(shí)現(xiàn)該故障檢測功能,畫出電路原理圖,并寫出相應(yīng)程序。4、 用MSC1211的T0定時(shí)/計(jì)數(shù)器,設(shè)計(jì)程序,實(shí)現(xiàn)在P1.0輸出周期為200ms的占空比為1:1的方波,輸出500個(gè)方波后停止輸出。解:ORG0000HLJMPMAINORG000BH;T0口中斷服務(wù)程序入口地址LJMPINT_T0MAIN:MOVTMOD,#00H;T0工作于方式0定時(shí)MOVTL0,#0CHMOVTH0,#1EH;設(shè)定秒中斷周期為1msMOVA,200;設(shè)定輸出周期為200 msMOVR2,1000;輸出500個(gè)方波SETBTR0SETBET0SETBEASETBP1.0SJMP$INT_T0:MOVTL0,#0CHMOVTH0,#1EH;T0重裝時(shí)間常數(shù)CPLP1.0P1.0位取反DECR2JZENDP;若R2為0,則結(jié)束程序,否則返主程序繼續(xù)輸出RETI;返主程序ENDP:END5、 利用MSC1211的A/D構(gòu)成數(shù)據(jù)采集系統(tǒng)。使用模擬通道0進(jìn)行連續(xù)數(shù)據(jù)采集,采集8次后取得平均值,存放到預(yù)先分配好的100個(gè)內(nèi)存單元中,這100個(gè)單元存滿后,再從第一個(gè)單元進(jìn)行覆蓋保存。寫出完整的程序清單(應(yīng)在適當(dāng)?shù)牡胤郊映绦蜃⑨專?。解?include<REG1211.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=0x01;/雙極性,自動(dòng)穩(wěn)定模式,偏移增益自校準(zhǔn)ADCON2=decimation&0xff;/寫入抽取因子低字節(jié)ADCON3=(decimation>>8)&0x07;/寫入抽取因子高字節(jié)AIE=&0x20;autobaud();/等待校準(zhǔn)for(i=0;i<4;i+)while(!(AIE&0X20)dummy=ADRESL;SSCON=0;/清除求和寄存器EAI=1;While(1);6、 變量k從0變到150,變化步長為10。對于每一個(gè)值,使用整形數(shù)算術(shù)運(yùn)算計(jì)算8*k,k*k*k和(40*k/150)3。這三個(gè)值通過MSC1211的D/A轉(zhuǎn)換后同步輸出(均使用電壓輸出模式)。試編寫程序?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*i;DACSEL=6;DACL=0Xfc;7、 利用MSC1211或8051設(shè)計(jì)應(yīng)答方式下的多機(jī)通訊程序。通訊參數(shù):晶振為11.0592MHz,9600,n,8,1。通訊過程如下:主機(jī)首先發(fā)送從機(jī)地址,從機(jī)收到地址后進(jìn)行比較,如果地址相符,則將從機(jī)地址回發(fā)給主機(jī)作為應(yīng)答信號(hào)。主機(jī)收到從機(jī)的地址應(yīng)答信號(hào)后,將內(nèi)存單元中的120個(gè)數(shù)據(jù)發(fā)送給從機(jī),并進(jìn)行數(shù)據(jù)塊校驗(yàn)(將各個(gè)數(shù)據(jù)進(jìn)行異或),若校驗(yàn)正確,則從機(jī)發(fā)送00H給主機(jī),否則發(fā)送0FFH給主機(jī),主機(jī)重新發(fā)送數(shù)據(jù)。(應(yīng)在適當(dāng)?shù)牡胤郊映绦蜃⑨專┙猓褐鳈C(jī)程序如下:ORG0000HLJMPMAINT;跳至主程序入口地址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è)置校驗(yàn)和的初值MOVR2,#NAMESETBTB8;置位TB8位,作為發(fā)送地址楨信息特征SETBTR1SETBEA;CPU開中斷SETBES;允許串行口中斷MOVA,R2;發(fā)送地址楨信息MOVSBUF,ASJMP$;中斷服務(wù)程序INTST:MOV A,TB8;判斷是發(fā)送地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)LOOP0CJNEA,01H,LOOP0CLRTI;地址楨信息發(fā)送完后清發(fā)送中斷LOOP0:JBRI,LOOP1;檢查是否是接受中斷?若RI=1則轉(zhuǎn)入接受乙機(jī)發(fā)送應(yīng)答信息CLRTI;因RI=0,表明是甲機(jī)發(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;甲機(jī)發(fā)送一數(shù)據(jù)完畢跳至中斷返回程序LOOP1:CLRRI;清接受中斷標(biāo)志MOV A,TB8;判斷是發(fā)送地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)LOOP2CJNEA,#01H,LOOP4;若TB8為0則接受的為乙機(jī)數(shù)據(jù)校驗(yàn)應(yīng)答MOVA,SBUF;取乙機(jī)的應(yīng)答數(shù)據(jù)CJNEA,R2,LOOP2;若乙機(jī)應(yīng)答信息不是從機(jī)地址,則地址傳送不正確,則轉(zhuǎn)LOOP2程序重新發(fā)送地址信息,否則清TB8,發(fā)送數(shù)據(jù)CLRTB8LOOP3:MOVXA,DPTR;取下一個(gè)數(shù)MOVSBUF,A;啟動(dòng)串行口,發(fā)送新的數(shù)據(jù)XRLA,R1MOVR1,AINCDPTR;修改地址指針DECR0;修改發(fā)送字節(jié)數(shù)記數(shù)值CJNER0,#00H,ENDT;判別120個(gè)字節(jié)數(shù)據(jù)都發(fā)送完沒有。如果沒有發(fā)送完則跳至中斷返回程序。繼續(xù)發(fā)送MOVA,R1MOVSBUF,A;數(shù)據(jù)全部發(fā)送完畢則發(fā)送校驗(yàn)和LJMPENDTLOOP4:MOVA,SBUF;取乙機(jī)的應(yīng)答數(shù)據(jù)CJNEA,#00H,LOOP5;若數(shù)據(jù)發(fā)送不正確,則轉(zhuǎn)LOOP5重新發(fā)送CLRES;全部發(fā)送完畢,禁止串行口中斷LOOP5:MOVDPTR,#ADDR;設(shè)置數(shù)據(jù)塊首址ADDR的地址指針MOVR0,#120;設(shè)置發(fā)送字節(jié)數(shù)MOVR1,#00H;設(shè)置校驗(yàn)和的初值LJMPLOOP2LOOP2:MOVA,R2;發(fā)送地址楨信息MOVSBUF,ARETIENDT:RETIEND從機(jī)程序如下:ORG0000HLJMPMAINR;跳至主程序入口地址ORG0023H;串行口中斷服務(wù)程序入口LJMPINTSRMAINR:MOVSCON,#0B0H;置工作方式2,并允許接收MOVTMOD,#20H;置T1工作方式2MOVTH1,#0FDHMOVTL1,#0FDHMOVDPTR,#ADDR;設(shè)置數(shù)據(jù)塊接收首址為ADDRMOVR0,#120;設(shè)置接收字節(jié)數(shù)MOVR2,#NAMEMOVR1,#00H;設(shè)置校驗(yàn)和的初值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,否則中斷返回LJMPENDRLOOP:CLRSM2CLRRB8MOVA,R2MOVSBUF,A;想主機(jī)發(fā)送從機(jī)地址LJMPENDRLOOP0:JBRI,LOOP1;檢查是否是接受中斷?若RI=1則轉(zhuǎn)入接受甲機(jī)發(fā)送的數(shù)據(jù)CLRTI;因RI=0,表明是乙機(jī)發(fā)送中斷數(shù)據(jù)的中斷請求。CPU響應(yīng)中斷,在中斷服務(wù)程序中應(yīng)清中斷標(biāo)志LJMPENDR;甲機(jī)發(fā)送一數(shù)據(jù)完畢跳至中斷返回程序LOOP1:CLRRI;清接受中斷標(biāo)志DECR0JZLOOP2;數(shù)據(jù)未接收完則中斷返回,若接收完則轉(zhuǎn)LOOP2,校驗(yàn)MOVA,SBUF;取甲機(jī)發(fā)送的數(shù)據(jù)MOVXDPTR,AXRLA,R1MOVR1,ALOOP2:MOVA,SBUF:取甲機(jī)發(fā)送的校驗(yàn)和XRLA,R1JZRIGHTLJMPWRONGRIGHT:MOVA,#00HMOVSBUF,ALJMPENDRWRONG:MOVA,#0FFH MOVSBUF,AMOVDPTR,#ADDR;設(shè)置數(shù)據(jù)塊接收首址為ADDRMOVR0,#120;設(shè)置接收字節(jié)數(shù)LJMPENDRENDR: RETIEND單片機(jī)原理及應(yīng)用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個(gè)16進(jìn)制數(shù)變?yōu)锳SCII碼,放到2800H單元開始的外部RAM中。MAIN:MOV R0,#50HMOV R2,#6MOV DPTR, #2800HHASC:MOV A,R0ANL 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、 編制四個(gè)十六進(jìn)制單字節(jié)數(shù)相加后求平均的程序。假設(shè)4個(gè)16進(jìn)制的單字節(jié)分別為a,b,c,d,計(jì)算結(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í)/計(jì)數(shù)器,設(shè)計(jì)程序,實(shí)現(xiàn)在P1.0輸出50ms的方波,輸出100個(gè)方波后停止輸出。#include <reg51.h>#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 timer0(void) interrupt 1TL0=0XB0;TH0=0X3C;cpl p1.0;a+;5、 甲單片機(jī)利用方式1將內(nèi)部RAM30H37H單元的ASCII碼發(fā)送到乙機(jī)。編制甲機(jī)發(fā)送和乙機(jī)接收的程序(加奇校驗(yàn))。A機(jī)發(fā)送程序設(shè)計(jì)ST:MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV SCON ,#50HMOV R0,#30HMOV R1,#08HLOOP:MOV A,R0CALL FSINC R0DJNZ R1,LOOPRETFS:MOV C,PCPL CMOV ACC.7,CMOV SBUF AWAIT:JNB TI,WAITCLR TIRETB機(jī)的接受程序設(shè)計(jì)接受串口發(fā)來的程序,假設(shè)存放在30H37H中ST:MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV SCON ,#50HMOV R0,#30HMOV R1,#08HLOOP:CALL JSJNC ERRORMOV R0,AINC R0DJNZ R1,LOOPRETERROR:;出錯(cuò)處理,如返回出錯(cuò)信息等RETJS:JNB RI JSCLR RIMOV A, SBUF MOV P CANL A,#7FHRET6、 試用8031和8155實(shí)現(xiàn)鍵盤和LED動(dòng)態(tài)顯示。畫出原理示意圖并編制鍵盤掃描程序和LED動(dòng)態(tài)顯示程序(16個(gè)鍵的鍵盤掃描和6位LED顯示)。鍵盤掃描子程序:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar num,i;uint temp;void main(void)while(1)keych();void keych()for(i=0;i<4;i+)temp=0xfe;temp= _crol_(temp, i);P0=temp;temp=P0;temp=temp&0xf0;if(temp!=0xf0)delay();if(P0&0xf0)!=0xf0)switch(temp)case 0x70:jpch;break;case 0xb0:jpch;break;case 0xd0:jpch;break;case 0xe0:jpch;break; Void jpch(void)./按鍵掃描處理程序LED動(dòng)態(tài)掃描子程序假設(shè)各端口都已初始化#include <reg51.h>Unsigned char duanx=0x3f,0x06,0x5b,0x4f,0x66,0xbdUnsigned char weix=0x80,0x40,0x20,0x10,0x80,0x40Void main(void)Init();/初始化各端口P1=0While(1)Unsigned char ;For (i=0;i<6,i+)P0=duanxi;P1+P0=weixi;Delay();P1=0;P0=0;i=0;p1=05、利用8031和8位A/D(ADC0809)構(gòu)成數(shù)據(jù)采集系統(tǒng)。每隔20ms采集通道0的一次數(shù)據(jù),將采集的數(shù)據(jù)存放在30H的內(nèi)部RAM中。畫出原理示意圖,寫出較完整的程序清單。(提示:需要用定時(shí)器和外部中斷)。單片機(jī)原理及應(yīng)用一、 分析程序的執(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 ) XRL A,R1 ;(A= 00H ) SWAP A ;(A= 00H ) 4、 設(shè)內(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,28H ;( PSW中C的內(nèi)容= 1 )二、 程序設(shè)計(jì)1、MCS51內(nèi)部RAM 40H60H單元存放著有符號(hào)16進(jìn)制數(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 R0DJNZ R1, LOOP0 END2、用MSC1211的T1定時(shí)/計(jì)數(shù)器,定時(shí)0.1S中斷,使P1口的8個(gè)發(fā)光二極管每隔1S 循環(huán)點(diǎn)亮。設(shè)系統(tǒng)主頻為6MHZ。解:ORG0000HLJMPMAIN;轉(zhuǎn)主程序ORG001BH;T1中斷服務(wù)程序入口地址LJMPT1-ISRORG0100HMAIN:MOVSP,#60H;設(shè)置堆棧指針MOV P1,#01H;設(shè)置P1.1發(fā)光MOVTMOD,#10H;T1初始化MOVTL1,#B0HMOVTH1,#3CHSETBTR1;啟動(dòng)T0計(jì)數(shù)SETBET1;允許T0中斷SETBEA;CPU開中斷SJMP$;等待T1_ISR:MOVTL1,#B0HMOVTH1,#3CHMOVA,P1;P1口循環(huán)左移RLAMOVP1,AEXIT:RETIEND3、設(shè)有甲、乙兩臺(tái)單片機(jī),以工作方式3進(jìn)行串行通訊,設(shè)晶振為11.0592MHz,波特率為9600,甲機(jī)將內(nèi)存單元中的120個(gè)數(shù)據(jù)作補(bǔ)偶校驗(yàn)后發(fā)送給乙機(jī),乙機(jī)對接收到的數(shù)據(jù)進(jìn)行奇偶校驗(yàn),若校驗(yàn)正確,則從機(jī)發(fā)送00H給甲機(jī),甲機(jī)繼續(xù)發(fā)送數(shù)據(jù),校驗(yàn)不正確,則發(fā)送0FFH給甲機(jī),甲機(jī)重新發(fā)送原數(shù)據(jù),編寫乙機(jī)的接收程序。(應(yīng)在適當(dāng)?shù)牡胤郊映绦蜃⑨專┙猓篛RG0000HAJMPMAINORG0023HLJMPSE2_INTMAIN:MOV SP,#60HMOV TMOD #20HMOV TH1,#0FDH ;設(shè)置波特率為9600bpsMOV TL1,#0FDHMOV SCON,#90H ;串行口工作方式3,允許接收MOV DPTR,#2000H;接收數(shù)據(jù)區(qū)MOV R1,#120SETB TR1SETB EASETB ESSJMP $ ;等待接收中斷SE2_INT:JBRI,LOOPACLRT1LJMPENDRLOOPA:CLR RIMOV A,SBUFMOV C,P;奇偶校驗(yàn)JC LOOP1;如8位數(shù)是奇,則轉(zhuǎn)LOOP1再檢測RB8位ORL C,RB8; 如8位數(shù)為偶,再檢測RB8位,RB8=1,則9位數(shù)據(jù)為奇,補(bǔ)偶JC LOOP2;錯(cuò),轉(zhuǎn)LOOP2LJMP LOOP3 ;補(bǔ)偶正確,轉(zhuǎn)LOOP3LOOP1: ANL C, RB8;8位數(shù)為奇,再檢測RB8位JC LOOP3;RB8=1,補(bǔ)偶正確,轉(zhuǎn)LOOP3LOOP2: MOV A ,#0FFH ;檢測不正確發(fā)送FF給甲機(jī)MOV SBUF,AJMP ENDRLOOP3:MOVX DPTR ,A MOVA,#00HMOVSBUF,AINC DPTR DJNZ R1, ENDRCLR ES ;停止接收ENDR: RETI2、某一故障檢測系統(tǒng),當(dāng)出現(xiàn)故障時(shí),線路出現(xiàn)下降沿;沒有故障時(shí),線路為高電平。出現(xiàn)故障時(shí),相應(yīng)的指示燈變亮。故障消失后,指示燈熄滅。試用MSC1211為單片機(jī)實(shí)現(xiàn)該故障檢測功能,畫出電路原理圖,并寫出相應(yīng)程序。4、 變量k從20變到200,變化步長為20。對于每一個(gè)值,使用整形數(shù)算術(shù)運(yùn)算計(jì)算8*k,k*k*k和(40*k/150)3。這三個(gè)值通過MSC1211的D/A轉(zhuǎn)換后同步輸出(均使用電壓輸出模式)。試編寫程序?qū)崿F(xiàn)。 解: #include Reg1211.h data unsigned int i , j ; void main (void) PDCON &=0x37 ;/同時(shí)開啟ADC和DAC模塊 ADCON0 =0x30 ;/內(nèi)部參考電壓2.5V DACSEL =6;/選擇將要訪問DAC加載寄存器LOADCON DACL = 0XFC ;/設(shè)置DAC1、2、3通道同步更新模式 DACSEL = 4;/選擇DAC0、1控制寄存器 DACL =0x24;/DACIDAC 關(guān)閉,內(nèi)部參考電壓 DACH =0x24;/DAC1 IDAC 關(guān)閉,內(nèi)部參考電壓 DACSEL=5;/選擇 DAC2、3控制寄存器 DACL =0x24 ;/DAC2IDAC 關(guān)閉,內(nèi)部參考電壓 DACH=0x24;/DAC3IDAC 關(guān)閉,內(nèi)部參考電壓 while (1) DACSEL = 0;/選擇DAC1數(shù)據(jù)寄存器 DAC = 0x8000 ;/送DAC1要轉(zhuǎn)換的數(shù)據(jù) for (j=0 ; j <100 ; j+ ) ;/ 延時(shí) DAC =0 ; for (i=20 ; i<200 ; i+=20 ) ; DACSEL = 1; DAC = 8*k ; DACSEL =2 ; DAC = k*k*k ; DECSEL = 3; j = 40*k/150 ; j = j3 ; DACSEL = 6 ; DACL = 0XFC ;

注意事項(xiàng)

本文(機(jī)電一體化《單片機(jī)原理及應(yīng)用》山東大學(xué)網(wǎng)絡(luò)教育考試模擬題及答案.doc)為本站會(huì)員(s****u)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!