單片機(jī)原理及應(yīng)用A答案 (2)_第1頁(yè)
單片機(jī)原理及應(yīng)用A答案 (2)_第2頁(yè)
單片機(jī)原理及應(yīng)用A答案 (2)_第3頁(yè)
單片機(jī)原理及應(yīng)用A答案 (2)_第4頁(yè)
單片機(jī)原理及應(yīng)用A答案 (2)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.單片機(jī)原理及應(yīng)用模擬卷 1除非特別聲明,編程題可以使用匯編語(yǔ)言編寫(xiě),也可以使用C語(yǔ)言編寫(xiě)1、 分析程序的執(zhí)行結(jié)果,將結(jié)果填寫(xiě)到空格中。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;(20H單元的內(nèi)容= 37H )MOVA,20H;(P

2、SW中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單元開(kāi)始的外部RAM中。使用匯編語(yǔ)言編寫(xiě) ORG 0000HAJMP MAIN ORG 0030H MIAN: MOV R0,#50H MOV R1,#06H MOV R2,#02HM

3、OV 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、 某一故障檢測(cè)系統(tǒng),當(dāng)出現(xiàn)故障1時(shí),線路1上出現(xiàn)上升沿;當(dāng)出現(xiàn)故障2時(shí),線路2上出現(xiàn)下降沿。沒(méi)有故障時(shí),線路1為低電平,線路2為高電平。出現(xiàn)故障時(shí),相應(yīng)

4、的指示燈變亮。故障消失后,指示燈熄滅。試用MSC1211為單片機(jī)實(shí)現(xiàn)該故障檢測(cè)功能,畫(huà)出電路原理圖,并寫(xiě)出相應(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 JB P3.2,GU1 RETI GU2: CLR P

5、1.1 JB P3.3,GU2 RETI END 4、 利用MSC1211或8051設(shè)計(jì)應(yīng)答方式下的多機(jī)通訊程序。通訊參數(shù):晶振為11.0592MHz,9600,n,8,1。通訊過(guò)程如下:主機(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;串行口中斷服

6、務(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開(kāi)中斷SETBES;允許串行口中斷MOVA,R2;發(fā)送地址楨信息MOVSBUF,ASJMP$;中斷服務(wù)程序INTST:MOV A,TB8;判斷是發(fā)送地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)L

7、OOP0CJNEA,01H,LOOP0CLRTI;地址楨信息發(fā)送完后清發(fā)送中斷LOOP0:JBRI,LOOP1;檢查是否是接受中斷?若RI=1則轉(zhuǎn)入接受乙機(jī)發(fā)送應(yīng)答信息CLRTI;因RI=0,表明是甲機(jī)發(fā)送中斷數(shù)據(jù)的中斷請(qǐng)求。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,

8、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ā)送完沒(méi)有。如果沒(méi)有發(fā)送完則跳至中斷返回程序。繼續(xù)發(fā)送MOVA,R1MOVSBUF,A;數(shù)據(jù)全部發(fā)送完畢則發(fā)送校驗(yàn)和LJMPENDTLOOP4:MOVA,SBUF;取乙機(jī)的應(yīng)答數(shù)據(jù)CJNEA,#0

9、0H,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,

10、#0FDHMOVTL1,#0FDHMOVDPTR,#ADDR;設(shè)置數(shù)據(jù)塊接收首址為ADDRMOVR0,#120;設(shè)置接收字節(jié)數(shù)MOVR2,#NAMEMOVR1,#00H;設(shè)置校驗(yàn)和的初值SETBRB8;置位RB8位,作為接受地址信息特征SETBTR1SETBEA;CPU開(kāi)中斷SETBES;允許串行口中斷SJMP$;中斷服務(wù)程序INTSR:MOV A,RB8;判斷是接收地址還是數(shù)據(jù),若為數(shù)據(jù)則轉(zhuǎn)LOOP0CJNEA,01H,LOOP0CLRRI;地址楨信息接受完后清接收中斷MOVA,SBUFXRLA,R2JZLOOP;若地址相符則轉(zhuǎn)LOOP,否則中斷返回LJMPENDRLOOP:CLRSM2CL

11、RRB8MOVA,R2MOVSBUF,A;想主機(jī)發(fā)送從機(jī)地址LJMPENDRLOOP0:JBRI,LOOP1;檢查是否是接受中斷?若RI=1則轉(zhuǎn)入接受甲機(jī)發(fā)送的數(shù)據(jù)CLRTI;因RI=0,表明是乙機(jī)發(fā)送中斷數(shù)據(jù)的中斷請(qǐng)求。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,R1JZRIGHTLJ

12、MPWRONGRIGHT: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進(jìn)行連續(xù)數(shù)據(jù)采集,采集8次后取得平均值,存放到預(yù)先分配好的100個(gè)內(nèi)存單元中,這100個(gè)單元存滿后,再?gòu)牡谝粋€(gè)單元進(jìn)行覆蓋保存。寫(xiě)出完整的程序清單(應(yīng)在適當(dāng)?shù)牡胤郊映绦蜃⑨專?。解?include#includeextern void autobaud(void);/聲明

13、外部函數(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=(temp8)&0xff;SUMR2=(temp16)&0xff;SUMR3=(temp24)&0xff;if(out=8)SUM=SUMR324+SUMR216+SUMR1=100)j=0;min(void)float dummy;int decimation;decimationg=1440;/抽取因子PDCON&=0x77;/打開(kāi)ADCACLK=9;/模擬采樣頻率ADMUX=0;/使用通道0ADCON0=0x30;/內(nèi)部基準(zhǔn)2.5V,緩沖器關(guān),B

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論