資源描述:
《單片機程序復習題.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應用文檔-天天文庫。
1、1.設(shè)片內(nèi)RAM中的(40H)=50H,寫出執(zhí)行下列程序段后寄存器A和R0,以及片內(nèi)RAM中50H和51H單元的內(nèi)容為何值?MOVA,40HMOVR0,AMOVA,#00MOV@R0,AMOVA,#30HMOV51H,AMOV52H,#70H結(jié)果為:(A)=30H(R0)=50H(50H)=00H(51H)=30H2.設(shè)堆棧指針(SP)=60H,片內(nèi)RAM中的(30H)=24H,(31H)=10H。執(zhí)行下列程序段后,61H,62H,30H,31H,DPTR及SP中的內(nèi)容將有何變化?結(jié)果為:(61H)=24H(62H)=10H(30
2、H)=00H(31H)=0FFHDPTR=2410HSP=60H3.在8051的片內(nèi)RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。分析下面各條指令,說明源操作數(shù)的尋址方式,分析按順序執(zhí)行各條指令后的結(jié)果。MOVA,40HMOVR0,AMOVP1,#0F0HMOV@R0,20HMOV50H,R0MOVA,@R0MOVP2,P14.完成以下的數(shù)據(jù)傳送過程。(1)R1的內(nèi)容傳送到R0。(2)片外RAM20H單元的內(nèi)容送R0。(3)片外RAM20H單元的內(nèi)容送片內(nèi)RAM20H(4)片外RAM
3、1000H單元的內(nèi)容送片內(nèi)RAM20H(5)片外RAM20H單元的內(nèi)容送R0。(6)片外RAM2000H單元的內(nèi)容送片內(nèi)RAM20H(7)片外RAM20H單元的內(nèi)容送片外RAM20H(1)R1的內(nèi)容傳送到R0;MOVA,R1MOVR0,A(2)片外RAM20H單元內(nèi)容送R0;MOVDPTR,#0020HMOVXA,@DPTRMOVR0,A(3)片外RAM20H單元的內(nèi)容送片內(nèi)RAM20H單元;MOVDPTR,#0020HMOVXA,@DPTRMOV20H,A(4)片外RAM1000H單元的內(nèi)容送片內(nèi)RAM20H單元;MOVDPTR
4、,#1000HMOVXA,@DPTRMOV20H,A(5)ROM2000H單元的內(nèi)容送R0單元;MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVR0,A(6)ROM2000H單元的內(nèi)容送片內(nèi)RAM20H單元;MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOV20H,A(7)ROM2000H單元的內(nèi)容送片外RAM20H單元。MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVDPTR,#0020HMOVX@DPTR,A5.編程將片內(nèi)RAM的40H~6
5、0H單元中內(nèi)容送到片外RAM以3000H開始的單元中。ORG0000HLJMPMAINORG0030HMAIN:MOVR7,#20HMOVR1,#40HMOVDPTR,#3000HLOOP:MOVA,@R1MOVX@DPTR,AINCR1INCDPTRDJNZR7,LOOPSJMP$END6.設(shè)有100個有符號數(shù),連續(xù)存放在片外RAM以2200H為首地址的存儲區(qū)中,試片成統(tǒng)計其中正數(shù)
6、、負數(shù)、零的個數(shù)。ORG0000HLJMPMAINORG0030HMAIN:MOVR2,#100MOVR3,#00HMOVR4,#00HMOVR5,
7、#00HMOVDPTR,#2000HLOOP:MOVXA,@DPTRCJNEA,#00H,NET1INCR3INCDPTRDJNZR2,LOOPSJMPNET3NET1:JCNET2INCR4INCDPTRDJNZR2,LOOPSJMPNET3NET2:INCR5INCDPTRDJNZR2,LOOPNET3:SJMP$END①S0單獨按下,紅燈亮,其余燈滅;②S1單獨按下,綠燈亮,其余燈滅;③其余情況,黃燈亮。7.已知電路如圖4-5所示,要求實現(xiàn):解:程序如下SGNL:ANLP1,#11100011B;紅綠黃燈滅ORLP1,#00
8、000011B;置P1.0、P1.1輸入態(tài),P1.5~P1.7狀態(tài)不變SL0:JNBP1.0,SL1;P1.0=0,S0未按下,轉(zhuǎn)判S1JNBP1.1,RED;P1.0=1,S0按下;且P1.1=0,S1未按下,轉(zhuǎn)紅燈亮YELW:SETBP1.4;黃燈亮CLRP1.2;紅燈滅CLRP1.3;綠燈滅SJMPSL0;轉(zhuǎn)循環(huán)SL1:JNBP1.1,YELW;P1.0=0,S0未按下;P1.1=0,S1未按下,轉(zhuǎn)黃燈亮GREN:SETBP1.3;綠燈亮CLRP1.2;紅燈滅CLRP1.4;黃燈滅SJMPSL0;轉(zhuǎn)循環(huán)RED:SETBP1.
9、2;紅燈亮CLRP1.3;綠燈滅CLRP1.4;黃燈滅SJMPSL0;轉(zhuǎn)循環(huán)8.內(nèi)部RAM20H單元開始存有8個數(shù),試找出其中最大的數(shù),送入MAX單元。解:程序如下:9.設(shè)在內(nèi)RAM40H開始的存儲區(qū)有若干個字符和數(shù)字,已知最后一個為字符“$”(并