




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理-答案一、問(wèn)答題1、利用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;串行口中斷服務(wù)程序入口LJMPINTS
2、TMAINT: 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
3、,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,SBUF;取乙機(jī)的應(yīng)答數(shù)據(jù)
4、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ā)
5、送不正確,則轉(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,#
6、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,R2MO
7、VSBUF,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,R1JZRIGHTLJMPWRONGRIGHT:
8、MOVA,#00HMOVSBUF,ALJMPENDRWRONG:MOVA,#0FFH MOVSBUF,AMOVDPTR,#ADDR;設(shè)置數(shù)據(jù)塊接收首址為ADDRMOVR0,#120;設(shè)置接收字節(jié)數(shù)LJMPENDRENDR: RETIEND2、某一故障檢測(cè)系統(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)該故障檢測(cè)功能,畫出電路原理圖,并寫出相應(yīng)程序。答:3、用MSC1211的T0定時(shí)/計(jì)數(shù)器,設(shè)計(jì)程序,實(shí)現(xiàn)在P1.0輸出周期為200ms的占
9、空比為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
10、;返主程序ENDP:END4、 變量k從0變到300,變化步長(zhǎng)為20。對(duì)于每一個(gè)值,使用整形數(shù)算術(shù)運(yùn)算計(jì)算40*k,k*k*k和(50*k/120+60)3。這三個(gè)值通過(guò)MSC1211的D/A轉(zhuǎn)換后同步輸出(均使用電壓輸出模式)。試編寫程序?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;
11、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+60;DAC=i*i*i;DACSEL=6;DACL=0Xfc;2、 程序設(shè)計(jì)5、用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
12、.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:RETIEND6、 某一故障檢測(cè)系統(tǒng),當(dāng)出現(xiàn)故障時(shí),線路出現(xiàn)下降沿;沒有故障時(shí),線路為高電平。出現(xiàn)故障時(shí),相應(yīng)的指示燈變亮。故障消失后,指示燈熄滅。試用MSC1211為單片機(jī)實(shí)現(xiàn)該故障檢測(cè)功能,畫出電路原理圖,并寫出相應(yīng)程序。答:參考答案: P1.4 P1.3 P1.5 P1.6R+5V故障1電
13、路說(shuō)明:當(dāng)出現(xiàn)故障1時(shí),線路1上出現(xiàn)上升沿,并將P1.3口置0,二極管亮,當(dāng)故障清除后,P1.3口置1,二極管滅 ORG0000HLJMPMIANORG0043HLJMPINT_2MIAN:SETBEX2;使能外部中斷2SETBEA;CPU開中斷SETBP1.3;P1.3置位,使二極管滅SJMP$INT_2:CLRIE2; 清外部中斷2的中斷標(biāo)志CPLP1.3;P1.3取返,使二極管點(diǎn)亮MOVA,P1DELAY1:ANLA,10H;檢測(cè).P1.4口,為高電平時(shí)故障未排除,轉(zhuǎn)DELAY1等待JNZDELAY1CPLP1.3;故障排除,P1.3置位,使二極管滅RETI7、設(shè)有甲、乙兩臺(tái)單片機(jī),以工
14、作方式3進(jìn)行串行通訊,設(shè)晶振為11.0592MHz,波特率為9600,甲機(jī)將內(nèi)存單元中的120個(gè)數(shù)據(jù)作補(bǔ)偶校驗(yàn)后發(fā)送給乙機(jī),乙機(jī)對(duì)接收到的數(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,
15、#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再檢測(cè)RB8位ORL C,RB8; 如8位數(shù)為偶,再檢測(cè)RB8位,RB8=1,則9位數(shù)據(jù)為奇,補(bǔ)偶JC LOOP2;錯(cuò),轉(zhuǎn)LOOP2LJMP LOOP3 ;補(bǔ)偶正確,轉(zhuǎn)LOOP3LOOP1: ANL C, RB8;8位數(shù)為奇,再檢測(cè)RB8位JC LOOP3;RB8=1,補(bǔ)偶正確,轉(zhuǎn)LOOP3LOOP2: MOV A ,#0FFH ;檢測(cè)不正確發(fā)送FF給甲機(jī)MOV SBUF,AJMP ENDRLOOP3:MOVX DPTR ,A MOVA,#00HMOVSBUF,AINC DPTR DJNZ R1, ENDRCLR ES ;停止接收ENDR: RETI三、分析程序的執(zhí)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三亞中瑞酒店管理職業(yè)學(xué)院《食品科技》2023-2024學(xué)年第二學(xué)期期末試卷
- 荊楚理工學(xué)院《能源低碳技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河套學(xué)院《合唱與指揮Ⅳ》2023-2024學(xué)年第二學(xué)期期末試卷
- 中秋晚會(huì)流程策劃書
- 心理健康課件教學(xué)
- 大學(xué)生命安全教育主題班會(huì)
- 2025房產(chǎn)買賣(互換)合同
- 萬(wàn)圣節(jié)的活動(dòng)策劃方案
- 2025廣東省企業(yè)員工勞動(dòng)合同范本
- 2025年供水合同協(xié)議范本
- 裝飾、裝修施工方案
- 礦井瓦斯抽采
- 施工現(xiàn)場(chǎng)安全檢查記錄表(周)以及詳細(xì)記錄
- 立法學(xué)完整版教學(xué)課件全套ppt教程
- 五年級(jí)下冊(cè)科學(xué)說(shuō)課課件 -1.2 沉浮與什么因素有關(guān) |教科版 (共28張PPT)
- 流動(dòng)注射分析儀常見問(wèn)題解決方案.
- 《出口報(bào)關(guān)單模板》word版
- 邊坡護(hù)坡檢驗(yàn)批表格模板
- 工會(huì)會(huì)計(jì)制度——會(huì)計(jì)科目和會(huì)計(jì)報(bào)表(全)
- 馬清河灌區(qū)灌溉系統(tǒng)的規(guī)劃設(shè)計(jì)課程設(shè)計(jì)
- 《Monsters 怪獸》中英對(duì)照歌詞
評(píng)論
0/150
提交評(píng)論