[工學(xué)]單片機應(yīng)用與實踐
單片機應(yīng)用與實踐 一 一 選擇題 (正確答案在序號前打,每小題2分,共30分)1、 下列有關(guān)MCS-51中斷優(yōu)先級控制的敘述中,錯誤的是(A)低優(yōu)先級不能中斷高優(yōu)先級,但高優(yōu)先級能中斷低優(yōu)先級(B)同級中斷不能嵌套(C)同級中斷請求按時間的先后順序響應(yīng)(D)同時同級的多中斷請求,將形成阻塞,系統(tǒng)無法響應(yīng)2、 外中斷初始化的內(nèi)容不包括(A)設(shè)置中斷響應(yīng)方式 (B)設(shè)置外中斷允許(C)設(shè)置中斷總允許 (D)設(shè)置中斷方式3、 執(zhí)行中斷返回命令,要從堆棧彈出斷點地址,以便去執(zhí)行被中斷了的主程序。從堆棧彈出的斷點地址送給(A)A (B)CY (C)PC (D)DPTR4、 在MCS-51中,需要外加電路實現(xiàn)中斷撤除的是(A)定時中斷 (B)脈沖方式的外部中斷(C)串行中斷 (D)電平方式的外部中斷5、 中斷查詢,查詢的是(A)中斷請求信號 (B)中斷標志位(C)外中斷方式控制位 (D)中斷允許控制位6、 在下列寄存器中,與定時/計數(shù)控制無關(guān)的是(A)TCON(定時控制寄存器) (B)TMOD(工作方式控制寄存器)(C)SCON(串行控制寄存器) (D)IE(中斷允許控制寄存器)7、 下列定時/計數(shù)硬件資源中,不是供用戶使用的是(A)高8位計數(shù)器TH (B)低8位計數(shù)器TL(C)定時器/計數(shù)器控制邏輯 (D)用于定時/計數(shù)控制的相關(guān)寄存器8、 在工作方式0下計數(shù)器是由TH的全部8位和TL的5位組成,因此其計數(shù)范圍是(A)18192 (B)08191 (C)08192 (D)140969、 與定時工作方式1和0比較,定時工作方式2不具備的特點是(A)計數(shù)溢出后能自動重新加載計數(shù)初值(B)增加計數(shù)器位數(shù)(C)提高定時精度(D)適于循環(huán)定時和循環(huán)計數(shù)應(yīng)用10. 假定設(shè)置堆棧指針SP的值為37H,在進行子程序調(diào)用時把斷點地址進棧保護后,SP的值為(A) 6H (B)37H (C)38H (D)39H11假定(A)=83H,(R0)=17H,(17H)=34H,執(zhí)行以下程序段ANL A,#17HORL 17H,AXRL A,R0CPL A后,A的內(nèi)容為(A)CBH (B)03H (C)EBH (D)C8H12串行通信的傳送速率單位是波特,而且波特的單位是(A)字符/秒 (B)位/秒 (C)幀/秒 (D)幀/分13.三態(tài)緩沖器的輸出應(yīng)具有三種狀態(tài),其中不包括(A)高阻抗狀態(tài) (B)低阻抗狀態(tài) (C)高電平狀態(tài) (D)低電平狀態(tài)14. 為給掃描法工作的鍵盤提供接口電路,在接口電路中只需要(A)一個輸入口 (B)一個輸入口和一個輸出口(C)一個輸出口 (D)兩個輸入口和一個輸出口15內(nèi)部RAM中的位尋址區(qū)定義的位是給(A)位操作準備的 (B)移位操作準備的(C)控制轉(zhuǎn)移操作準備的 (D)以上都對二 填空題 (每空1分,共24分)1假定外部數(shù)據(jù)存儲器2000H單元的內(nèi)容為80H,0000H單元的內(nèi)容為90H,執(zhí)行下列指令后,累加器A中的內(nèi)容為( )。MOV P2,#20HMOV R0,#00HMOVX A, R02假定(SP)=60H,(ACC)=30H,(B)=70H,執(zhí)行下列指令:PUSH ACCPUSH B后,SP的內(nèi)容為( ),61H單元的內(nèi)容為( ),62H單元的內(nèi)容為( )。3設(shè)A=01××××××B,×表示隨機狀態(tài),為1或0,執(zhí)行指令ORL A,#03H后A( 01××××11B )4假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。執(zhí)行指令:INC AINC R3INC 30HINC R0后,累加器A的內(nèi)容為( ), 40H的內(nèi)容為( )。5在MCS51中PC和DPTR都用于提供地址,但PC是為訪問( )存儲器提供地址,而DPTR是為訪問( )存儲器提供地址。6MCS-51可提供( )和( )兩種存儲器、最大存儲空間可達( )的兩個并行存儲器擴展系統(tǒng)。7擴展存儲器而構(gòu)造系統(tǒng)總線,應(yīng)以P0口的8位口線作為( )線,以P2口的口線作為( )線。8、設(shè)A=58H,執(zhí)行指令A(yù)DD A,#99H 后,A=( ),C=( ),再執(zhí)行指令DA A后A=( ),C=( ) 。9、計算延時程序的執(zhí)行時間。(設(shè)時鐘f=12MHz)源程序 指令周期(M) 指令執(zhí)行次數(shù)DELAY:MOV R6,#64H 1 ( )I1: MOV R7,#0FFH 1 ( )I2: DJNZ R7,I2 2 ( )DJNZ R6,I1 2 ( )RET 2 ( )延時時間t= 三 編程題 (每小題8分,共16分)1. 設(shè)在內(nèi)RAM 40H開始的存儲區(qū)有若干個字符和數(shù)字,已知最后一個為字符“$“(并且只有一個,試統(tǒng)計這些字符數(shù)字的個數(shù),結(jié)果存入30H單元中。2. 試編一程序,分別統(tǒng)計在內(nèi)部RAM的30H50H單元的數(shù)據(jù)區(qū)中奇數(shù)和偶數(shù)的個數(shù),并將奇數(shù)和偶數(shù)的個數(shù)分別存放在51H和52H單元中。3用8XX51的P1口接8個LED發(fā)光二極管,由INT0接一消抖按鍵開關(guān),開始P1.0的LED亮,以后由INT0按鍵每中斷一次,下一個LED亮,順序下移,且每次只一個LED亮,周而復(fù)始。請編制程序。一 選擇題 1D 2。A 3。C 4。D 5。B 6。C7C 8。A 9。B 10。D 11。A 12。B13B 14。B 15。D二 填空題 (每空1分,共24分)1 ( 80H )2 ( 62H ) ( 30H ) ( 70H )。3 ( 01××××11B )4 ( 00H ) ( 01H )。5 ( 程序 ) ( 數(shù)據(jù) ) 6 ( 程序 )和( 數(shù)據(jù) ) 、 ( 64K ) 7 ( 低位地址/數(shù)據(jù) ) , ( 高位地址 ) 8 ( 0F1H ), ( 0 ), ( 57H ),C=( 1 ) 。9、計算延時程序的執(zhí)行時間。(設(shè)時鐘f=12MHz)源程序 指令周期(M) 指令執(zhí)行次數(shù)DELAY:MOV R6,#64H 1 ( 1 )I1: MOV R7,#0FFH 1 ( 100 )I2: DJNZ R7,I2 2 ( 100*255 )DJNZ R6,I1 2 ( 100 )RET 2 ( 1 )延時時間t= (1×1+1×100+2×100×255+2×100+2×1)×T=51.3 ms 三 編程題(每小題8分,共16分)3. 參考程序: ORG 0000HSTART:MOV R1,#40H;R1作為地址指針CLR A;A作為計數(shù)器LOOP:CJNE R1,#24H,NEXT;與“$”號比較,不等轉(zhuǎn)移SJMP NEXT1;找到“$“結(jié)束循環(huán)NEXT:INC A;計數(shù)器加1INC R1;指針加1SJMP LOOP;循環(huán)NEXT1:INC A;再加入”$”這個字符MOV 30H,A;存結(jié)果END2. 參考程序: ORG 0000HMOV 51H ,#0HMOV 52# ,#0HMOV R1 ,#30HMOV R0 ,#20HMOV A,R1INC R1ANL A , #01HJZ LOOP1INC 51HSJMP LOOP2LOOP1:INC 52HLOOP2:DJNZ R0 , LOOP3RET3 參考程序:ORG 0000H AJMP MAINORG 0003HRL A ;中斷服務(wù)MOV P1,ARETIMAIN:MOV A,#0FFHMOV P1,A ;第一燈亮SETB EASETB EX0 ;允許INT0外部中斷SETB IT0 ;中斷觸發(fā)方式為下降沿觸發(fā)SJMP $ ;等待中斷單片機應(yīng)用與實踐 二 一 選擇題 (正確答案在序號前打,每小題2分,共20分)1單片機程序存儲器的尋址范圍是由程序計數(shù)器PC的位數(shù)決定的,MCS51的PC為16位,因此其尋址范圍是(A) 4KB (B)64KB (C)8KB (D)128KB2PC的值是(A)當前指令前一條指令的地址 (B)當前正在執(zhí)行指令的地址(C)下一條指令的地址 (D)控制器中指令寄存器的地址3.以下運算中對溢出標志OV沒有影響或不受OV影響的運算是(A)邏輯運算 (B)符號數(shù)加減法運算(C)乘法運算 (D)除法運算4假定設(shè)置堆棧指針SP的值為37H,在進行子程序調(diào)用時把斷點地址進棧保護后,SP的值為(B) 6H (B)37H (C)38H (D)39H5在MCS51中(A)具有獨立的專用的地址線 (B)由P0口和P1口的口線作地址線(C)由P0口和P2口的口線作地址線(D) 由P1口和P2口的口線作地址線6在寄存器間接尋址方式中,指定寄存器中存放的是(A)操作數(shù) (B)操作數(shù)地址 (C)轉(zhuǎn)移地址 (D)地址偏移量7執(zhí)行返回指令時,返回的斷點是(A)調(diào)用指令的首地址 (B)調(diào)用指令的末地址(C)調(diào)用指令下一條指令的首地址 (D)返回指令的末地址8假定(A)=83H,(R0)=17H,(17H)=34H,執(zhí)行以下程序段ANL A,#17HORL 17H,AXRL A,R0CPL A后,A的內(nèi)容為(A)CBH (B)03H (C)EBH (D)C8H9執(zhí)行以下程序段MOV R0,# dataMOV A,R0RL AMOV R1,ARL ARL AADD A,R1MOV R0,A后,實現(xiàn)的功能是(A)把立即數(shù)data循環(huán)左移3次 (B)把立即數(shù)data乘以10(C)把data單元的內(nèi)容循環(huán)左移3次 (D)把data單元的內(nèi)容乘以1010如在系統(tǒng)中只擴展一片Intel 2732(4K8),除應(yīng)使用P0口的8條口線外,至少還應(yīng)使用P2口的口線(A)4條 (B)5條 (C)6條 (D)7條二、判斷題(正確打,錯誤打,每小題1分,共5分) 1用戶構(gòu)建單片機應(yīng)用系統(tǒng),只能使用芯片提供的信號引腳。( )2程序計數(shù)器(PC)不能為用戶使用,因此它就沒有地址。( )3內(nèi)部RAM的位尋址區(qū),只能供位尋址使用而不能供字節(jié)尋址使用。( )4在程序執(zhí)行過程中,由PC提供數(shù)據(jù)存儲器的讀/寫地址。( )580C51共有21個專用寄存器,它們的位都是可用軟件設(shè)置的,因此是可以進行位尋址的。( )三、指出下列程序的功能 (每小題5分,共10分)1ORG 0200HMOV DPTR,#1000H MOV R0,#20H LOOP:MOVX A,DPTRMOV R0,AINC DPTRINC R0CJNE R0,#71H,LOOP SJMP $程序功能: 2 ORG 0200HMOV A,R0ANL A,#0FHMOV DPTR,#TABMOVC A,A+DPTRMOV R0,ASJMP $TAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H; 09的ASC碼DB 41H,42H,43H,44H,45H,46H ;AF的ASC碼程序功能: 四、 編程題(每小題10分,共20分)1.設(shè)有100個有符號數(shù),連續(xù)存放在以2000H為首地址的存儲區(qū)中,試編程統(tǒng)計其中正數(shù)、負數(shù)、零的個數(shù)并分別存放在30H、31H、32H單元中。2.編程將內(nèi)部數(shù)據(jù)存儲器20H24H單元壓縮的BCD碼轉(zhuǎn)換成ASC存放在于25H開始的單元。五、編程設(shè)計題( 每小題15分, 共45分)1、設(shè)計一串行通信接收程序,將接收的16個數(shù)據(jù)存入片內(nèi)50H5FH中,串行口為方式1,波特率為1200bps,SMOD=0,fosc6MHz。 一 選擇題 (正確答案在序號前打,每小題2分,共20分)1B 2. C 3. A 4. D 5. C6. B 7. C 8. A 9. D 10.A二、判斷題(正確打,錯誤打,每小題1分,共5分) 1 ( )2 ( )3 ( )4 ( )5 ( )三、指出下列程序的功能 (每小題5分,共10分)1 程序功能:把片外數(shù)據(jù)存儲器1000H1050H中的內(nèi)容傳送到片內(nèi)數(shù)據(jù)存儲器 20H70H中。 2程序功能:利用查表的方法實現(xiàn)RO中的十六進制數(shù)轉(zhuǎn)換為ASC碼 四、 編程題(每小題10分,共20分)1.參考程序:MOV 30H,#0MOV 31H,#0MOV 32H,#0MOV DPTR ,#2000HMOV R1,#100L4: MOVX A,DPTR INC DPTRCJNE A,#0,L1INC 32HSJMP L2L2:JC L3INC 30HSJMP L2L3:INC 31HL2:DJNZ R1,L4SJMP $2.參考程序:注意壓縮的BCD碼為一個字節(jié)占兩位BCD碼。ORG 0000HMOV R7,#05H ;R7為轉(zhuǎn)換字節(jié)數(shù)MOV R0,#20H ;R0為源操作數(shù)地址MOV R1,#25H ;R1為目的操作數(shù)地址NE:MOV A,R0ANL A,#0FH ;先取低位BCD碼ADD A,#30H ;將BCD碼轉(zhuǎn)換成ASC碼MOV R1,AINC R1MOV A,R0ANL A,#0F0H ;取高位BCD碼SWAP A ;半字節(jié)交換ADD A,#30H ;將高位BCD碼轉(zhuǎn)換成ASC碼MOV R1,AINC R0 INC R1DJNZ R7,NESJMP $END五、編程設(shè)計題( 每小題15分, 共45分)1、 T1工作方式2:,x243f3hMOVTMOD,#00100000BMOVSCON,#01010000BMOVPCON,#00HMOVTH1,#0F3HMOVTL1,#0F3HCLRESMOVR7,#16MOVR0,#50HSETBTR1WAIT:JNBRI,WAITCLRRIMOVR0,SBUFINCR0DJNZR7,WAIT單片機應(yīng)用與實踐 三 一、填空題(20,每空1分)1、MCS-51單片機的存儲空間包括 和 ,它們的可尋址范圍分別為 和 。2、若PSW的內(nèi)容是10H,那么R3的地址是 。3、指令MOV A,R0中,R0中的內(nèi)容是指 。4、已知SP25H,PC=2345H,標號Label的地址為3456H,問執(zhí)行LCALL Label指令后,堆棧指針SP= ,(26H) ,(27H) ,PC= 。5、當晶振頻率為12MHZ時,下面這個子程序延時時間為 。DL:MOVR6,#100DL1:MOVR7,#4DL2:MULABMULABDJNZR7,DL2DJNZR6,DL1RET6、決定程序執(zhí)行的順序是 寄存器,該寄存器復(fù)位時的值為 。7、當定時/計數(shù)器選定為定時器方式時,是對 進行計數(shù),選定為計數(shù)器方式時,是對 進行計數(shù)。8、51單片機的中斷系統(tǒng)最多可以有 個嵌套。9、MCS-51的外部中斷的觸發(fā)方式有兩種,分別為 和 。10、串行通信根據(jù)通信的數(shù)據(jù)格式分有兩種方式,分別是 和 。二、下列列出幾個程序段,請分別求出執(zhí)行后的結(jié)果。(15,每小題5分)1、執(zhí)行下列程序:MOV 21H,#0A7HMOV 22H,#10HMOV R0,#22HMOV 31H,21HANL 31H,#2FHMOV A,R0SWAP A結(jié)果:(31H) ,A= 。2、執(zhí)行下列程序:MOVR0,#60HMOVA,#0AHRRAMOVR0,AADDA,#0FHDECR0MOVR0,A結(jié)果:(60H) ,(5FH) 。3、執(zhí)行下列程序:MOVA,#83HMOVR0,#47HMOV47H,#34HANLA,#47HORL47H,AXRLA,R0結(jié)果:R0 ,A 。三、編寫指令段完成下列數(shù)據(jù)傳送。(15,第1小題3分,其余每小題4分)(1)R1內(nèi)容送給R0;(2)外部RAM0020H單元內(nèi)容送給R0;(3)外部RAM1000H單元內(nèi)容送給外部RAM0020H單元;(4)ROM2000H單元內(nèi)容送給外部RAM0020H單元。四、試編程要求用T1定時器控制P1.7引腳輸出周期為40ms、占空比為50的矩形脈沖。要求主程序入口地址0050H及中斷服務(wù)子程序入口地址2000H。fosc=6MHz(15)六、下圖為8031擴展3片8K的程序存儲器2764,圖中硬件電路已經(jīng)連接了一部分,請用片選法將剩下的相關(guān)硬件電路連接完成,并寫出每一片2764的地址范圍。(20)一、填空題(20,每空1分)1、程序存儲器,數(shù)據(jù)存儲器,64KB,64KB2、13H3、操作數(shù)的地址4、27H,48H,23H,3456H5、4.3ms6、PC,0000H7、片內(nèi)機器周期脈沖數(shù),片外脈沖8、29、電平觸發(fā),邊沿觸發(fā)10、同步方式,異步方式二、下列列出幾個程序段,請分別求出執(zhí)行后的結(jié)果。(15,每小題5分)1、27h,01h2、05h,14h3、47h,34h三、編寫指令段完成下列數(shù)據(jù)傳送。(15,第1小題3分,其余每小題4分)(1)MOVA,R1 MOVR0,A(2)MOVDPTR,#0020H MOVXA,DPTR MOVR0,A(3)MOVDPTR,#1000H MOVXA,DPTR MOVDPTR,#0020H MOVXDPTR,A(4)MOVDPTR,#2000H MOVA,#0 MOVC A,A+DPTR MOVDPTR,#0020H MOVXDPTR,A四、(15)方式1:(216x)×220000,xdbf0hORG000HLJMPMAINORG001BHLJMPT1_INTORG050HMAIN:MOVTMOD,#00010000BMOVTH1,#0D8HMOVTL1,#0F0HSETBEASETBET1SETBTR1SJMP$ORG2000HT1_INT:CPLP1.7MOVTH1,#0D8HMOVTL1,#0F0HRETI六、(20)地址范圍:(1):c000hdfffh(2):a000hbfffh(3):6000h7fffh單片機應(yīng)用與實踐 四 一、 填空題(35)1、MCS-51的復(fù)位條件是 。復(fù)位后,CPU從 單元開始執(zhí)行程序,PC= ,SP= ,PSW= 。2、在下列情況引腳應(yīng)接何種電平?(1)只有片內(nèi)ROM,= ;(2)只有片外ROM,= ;(3)有片內(nèi)、片外ROM,= ;(4)有片內(nèi)ROM但不用,而用片外ROM,= 。3、若PSW的內(nèi)容為18H,則工作寄存器R0的地址是 H。4、10根地址線可選 個存儲單元,32KB存儲單元需要 根地址線。5、若8031單片機的晶振頻率fosc12MHz,則時鐘周期為 ,狀態(tài)周期為 ,機器周期為 ,執(zhí)行MUL AB指令需要時間為 。6、8031單片機指令MOV是訪問 ,最大范圍為 ,MOVX是訪問 ,最大范圍為 ,MOVC是訪問 ,最大范圍為 。7、指令POP B的源操作數(shù)是 ,是 尋址方式,目的操作數(shù)是 ,是 尋址方式。8、已知SP=25H,PC=4345H,(24H)=12H,(25H)=34H,(26H)56H,當執(zhí)行RET指令后,SP= ,PC= 。9、當定時/計數(shù)器選定為定時器方式時,是對 進行計數(shù),選定為計數(shù)器方式時,是對 進行計數(shù)。10、MCS-51單片機的串行口有 種工作方式,其中方式0是 方式,它的波特率為 ,用 引腳傳送數(shù)據(jù),用 引腳輸出同步時鐘信號。五、試編制程序,使T0每計滿500個外部輸入脈沖后,由T1定時,在P1.0輸出一個脈寬10ms的正脈沖(假設(shè)在10ms內(nèi)外部輸入脈沖少于500個),fosc12MHz。(15)六、如下圖示,甲乙兩機進行通信,要求甲機能讀取8個按鍵的狀態(tài)(0或1)并將讀到的狀態(tài)發(fā)送給乙機,乙機接收到后將數(shù)據(jù)通過8個發(fā)光二極管顯示,要求編寫甲乙兩機的通信程序。(20)一、填空題(35)1、在RST端保持至少2個機器周期的高電平,0000H,0000H,07H,00H2、1,0,1,03、18H4、1024,155、1/12us,1/6us,1us,4us6、內(nèi)RAM及FSR,256B,外RAM,64KB,ROM,64KB7、SP,寄存器間接尋址,B,寄存器8、23H,3412H9、片內(nèi)機器周期脈沖,片外脈沖10、4,同步移位輸入輸出,fosc/12,RXD,TXD五、(216-x1)*1us=10000us x1=b8f0h216-x0=500us x0=fe0chorg000hljmpmainorg00bhljmpt0_intorg01bhljmpt1_intorg100hmain:movsp,#60hmovtmod,#00010101bmovie,#10001010bmovth0,0fehmovtl0,0chclrp1.0setbtr0sjmp$t0_int:movth0,0fehmovtl0,0chmovth1,#0b8hmovtl1,#0f0hsetbp1.0setbtr1retit1_int:clrp1.0clrtr1reti六、T1工作在方式2: 波特率1200T1初值: 甲機:MAIN:MOVTMOD,#00100000BMOVSCON,#01000000BMOVPCON,#00HMOVTH1,#0F3HMOVTL1,#0F3HCLRESSETBTR1MOVP1,#0FFHLOOP:MOVA,P1MOVSBUF,AJNBTI,$CLRTISJMPLOOP乙機:ORG000HLJMPMAINORG0023HLJMPI_ESORG050HMAIN:MOVTMOD,#00100000BMOVSCON,#01010000BMOVPCON,#00HMOVTH1,#0F3HMOVTL1,#0F3HCLRESSETBTR1SJMP$I_ES:MOVA,SBUFCLRRIMOVP1,ARETI單片機應(yīng)用與實踐 五 一、填空題(每空2分,共20分)80C51的中斷分為_和_共兩個優(yōu)先級。位處理器也稱為_,它以狀態(tài)寄存器中的_為累加位。80C51內(nèi)部共有256個數(shù)據(jù)存儲單元,按其功能分為兩部分:_單元和_單元。MCS-51時序的定時單位共有四個,從小到大依次是_、_、_和_。二、說明引腳或寄存器功能(每題5分,共25分)PSEN VSSPSWPCIP三、說明指令功能及操作數(shù)尋址方式(雙操作數(shù)時只要求說明源操作數(shù))(每題5分,共25分)PUSHDPHJMPA+DPTRMOV3BH,CADDA,#0EDHMOVX A, DPTR四、閱讀程序,指出程序功能,并給循環(huán)體內(nèi)指令加上注釋。(10分)MOVR0,#44HMOVR3,#04HMOVR1,#00HMOVR2,#00HLOOP:MOVXA,R0;ADDCA,R2;MOVR2,A;JNCLOOP1;INCR1;LOOP1:DECR0;DJNZ R3,LOOP;五、擴展作圖(10分)用一片6264和一片2764構(gòu)成單片機的數(shù)據(jù)存儲區(qū)和程序存儲區(qū),如圖,地址譯碼采用線選法。畫出有關(guān)連接線,給出6264和2764的地址范圍。六、編程(10分)使用定時/計數(shù)器0以工作方式2實現(xiàn)定時,在P1.0輸出周期為200s的連續(xù)方波。已知晶振頻率fosc=6MH。求計數(shù)初值,方式控制字,編制相應(yīng)程序.(中斷方式)TMOD格式: 一、 填空題(每空2分,共20分)1. 高級、低級。2. 布爾處理器、進位標志位C。3. 低128、高128。4. 拍節(jié)、狀態(tài)、機器周期、指令周期。二、 說明引腳或寄存器功能(每題5分,共25分)1. PSEN 外部程序存儲器讀選通信號2. VSS地線3. PSW程序狀態(tài)字4. PC程序計數(shù)器5. IP中斷優(yōu)先控制寄存器三、 說明指令功能及操作數(shù)尋址方式(雙操作數(shù)時只要求說明源操作數(shù))(每題5分,共25分)1. SP加1,DPH內(nèi)容送棧頂單元。直接尋址。2. 指令跳轉(zhuǎn)到A+DPTR處。變址尋址。3. CY內(nèi)容送位地址3BH。位尋址。4. 將A中內(nèi)容與EDH相加,結(jié)果送入A寄存器。立即尋址。5. 將外部RAM中以DPTR內(nèi)容為地址的單元內(nèi)容送入A寄存器。寄存器間接尋址。四、 閱讀程序,指出程序功能,并給循環(huán)體內(nèi)指令加上注釋。(10分)注釋5分,功能5分LOOP:MOVXA,R0;取一個加數(shù)ADDCA,R2;單字節(jié)數(shù)相加MOVR2,A;和低位送R2JNCLOOP1;無進位轉(zhuǎn)移INCR1;有進位高位加1LOOP1:DECR0;地址減量DJNZR3,LOOP;次數(shù)減1,不為0轉(zhuǎn)移功能: 4個字節(jié)數(shù)相加,結(jié)果低字節(jié)送R2,高字節(jié)送R1。擴展作圖(10分)地址范圍(4分)6264:C000HDFFFH 2764:C000HDFFFH編程(10分)解:(2分)計數(shù)初值X=256-50=206=CEH(2分)TMOD=02H(6分)主程序:MOVTMOD#02HMOVTH0,#0CEHMOVTL0,#0CEHSETBEASETBET0LOOP:SETBTR0HERE:S JMP$中斷服務(wù)程序:CPLP1.0RETI單片機應(yīng)用與實踐 六 一、填空題(15分,每空1分) 1MCS51單片機的P0P4口均是 IO口,其中的P0口和P2口除了可以進行數(shù)據(jù)的輸入、輸出外,通常還用來構(gòu)建系統(tǒng)的 和 ,在P0P4口中, 為真正的雙向口, 為準雙向口。 2MCS5l單片機的堆棧區(qū)只可設(shè)置在 ,堆棧寄存器5P是 位寄存器。 3MCS51單片機外部中斷請求信號有電平方式和 ,在電平方式下,當采集到INT0、INT1的有效信號為 時,激活外部中斷。 4定時器計數(shù)器的工作方式3是指的將 拆成兩個獨立的8位計數(shù)器。而另一個定時器計數(shù)器此時通常只可作為 使用。 5MCS96單片機的最大尋址空間是 ,該空間的地址范圍為 ,系統(tǒng)上電及復(fù)位的程序入口地址為 ,芯片配置字節(jié)CCB的地址為 。三、參數(shù)計算題(15分) 已知一單片機系統(tǒng)的外接晶體振蕩器的振蕩頻率為11059MHz,請計算該單片機系統(tǒng)的拍節(jié)P、狀態(tài)S、機器周期所對應(yīng)的時間是多少?指令周期中的單字節(jié)雙周期指令的執(zhí)行時間是多少? 六、使用簡單指令序列完成以下操作(12分) 1請將片外RAM20H25H單元清零 2請將ROM3000H單元內(nèi)容送R7 七、編程題(18分) 已知一MCS51單片機系統(tǒng)的片內(nèi)RAM 20H單元存放了一個8位無符號數(shù)7AH,片外擴展RAM的8000H存放了一個8位無符號數(shù)86H,試編程完成以上兩個單元中的無符號數(shù)相加,并將和值送往片外RAM的01H、00H單元中,同時將所編寫程序運行完成后的數(shù)據(jù)和狀態(tài)添入下表中給出的PSW的有關(guān)位以及寄存器A、DPTR和RAM單元中。 CY A DPTR 片外01H 片外00H 片外8000H 一、填空題(15分,每空1分) 1并行 數(shù)據(jù)總線 地址總線 P0 P1P3 2片內(nèi)數(shù)據(jù)存儲區(qū)(器) 3脈沖方式 低電平 4定時器計數(shù)器0 串行口的波特率發(fā)生器 564K 0000HFFFFH 2080H 2018H 三、參數(shù)計算題(15分) P1f(111059×106)009×10-6s 90ns (4分)S2P2×90ns180ns (4分)機器周期12P12×90ns108s (4分) 雙指令周期2×機器周期216s (3分)六、使用簡單指令序列完成以下操作(12分,每小題6分) 1請將片外RAM 20H25H單元清零 MoV R0,#20H MOV R7,#06H CLR A LOOP:MOVX R0,A INC R0 DJNZ R7,LOOP 2請將ROM 3000H單元內(nèi)容送R7 MOV DPTR, #3000H CLR A MOVC A,A+DPTR MOV R7,A 七、編程題(18分,其中編程12分,表中每一空1分) CY A DPTR 片外01H 片外00H 片外8000H 0 01H 8000H 0lH 00H 86H MOV DPTR,#8000H ;加數(shù)單元地址送DPTR MOVX A,DPTR ;取加數(shù)之一 ADD A,20H ;兩數(shù)相加 MOV R0,#00H ;和值的低位送片外00H單元 MOVx R0,A INC R0 CLR A ;計算和值的高位 ADDC A,#00H MOVx R0,A ;高位送片外01H單元 RET 編程要考慮將進位位的值作為結(jié)果的一部分取出來。采用其他編程方式也可以,但結(jié)果是不會改變的,和值100H 單片機應(yīng)用與實踐 七 一填空題(每空1分,共20分)1、單片機與普通計算機的不同之處在于其將 、 和 三部分集成于一塊芯片上。2、使用雙緩沖方式的D/A轉(zhuǎn)換器,可實現(xiàn)多路模擬信號的 輸出。3、通過堆棧操作實現(xiàn)子程序調(diào)用,首先就要把 的內(nèi)容入棧,以進行斷點保護。調(diào)用返回時,再進行出棧保護,把保護的斷點送回到 。4、在基址加變址尋址方式中,以 作變址寄存器,以 或 作基址寄存器。5、假定累加器A中的內(nèi)容為40H,執(zhí)行指令1000H:MOVC A,A+PC后,把程序存儲器 單元的內(nèi)容送入累加器A中。6、在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)的 。7、假定A=83H,(R0)=17H,(17H)=0B5H,執(zhí)行以下指令:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A的內(nèi)容為 。8、已知程序執(zhí)行前有A=01H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序執(zhí)行后:POP DPHPOP DPLMOV DPTR,#3000HRL AMOV B,AMOVC A,A+DPTRPUSH AMOV A,BINC AMOVC A,A+DPTRPUSH ARETORG 3000HDB 10H,80H,30H,80H,50H,80H請問:A= ,SP= ,(41H)= ,(42H)= 。9、在存儲器擴展中,無論是線選法還是譯碼法,最終都是為了擴展芯片的 端提供信號。10、在MCS-51中,PC和DPTR都用于提供地址,但PC是為了訪問 存儲器提供地址,而DPTR是為訪問 存儲器提供地址。11、16KB RAM存儲器的首地址若為3000H,則末地址為 H。二選擇題(每題2分,共16分)1、8051與8751的區(qū)別是:A、內(nèi)部數(shù)據(jù)存儲但也數(shù)目的不同 B、內(nèi)部程序存儲器的類型不同C、內(nèi)部數(shù)據(jù)存儲器的類型不同 D、內(nèi)部的寄存器的數(shù)目不同2、判斷以下有關(guān)PC和DPTR的結(jié)論是否正確?A、DPTR是可以訪問的,而PC不能訪問。 B、它們都是8位的存儲器C、它們都有加1的功能。 D、DPTR可以分為兩個8位的寄存器使用,但PC不能。3、PC的值是A、當前正在執(zhí)行指令的前一條指令的地址 B、當前正在執(zhí)行指令的下一條指令的地址C、當前正在執(zhí)行指令的地址 D、控制器中指令寄存器的地址4、判斷下列說法是否正確A、 8031共有21個特殊功能寄存器,它們的位都是可以用軟件設(shè)置的,因此,是可以進行位尋址的。B、 內(nèi)部RAM的位尋址區(qū),只能供位尋址使用,而不能供字節(jié)尋址使用。C、 程序計數(shù)器PC不能為用戶編程時直接使用,因為它沒有地址。5、下列說法錯誤的是:A、 各中斷發(fā)出的中斷請求信號,都會標記在MCS51系統(tǒng)的IE寄存器中。B、 各中斷發(fā)出的中斷請求信號,都會標記在MCS51系統(tǒng)的TCON與SCON寄存器中。C、 各中斷發(fā)出的中斷請求信號,都會標記在MCS51系統(tǒng)的IP寄存器中。D、 各中斷發(fā)出的中斷請求信號,都會標記在MCS51系統(tǒng)的TMOD寄存器中。6、在MCS51中,需要外加電路實現(xiàn)中斷撤除的是:A、電平方式的外部中斷 B、定時中斷C、外部串行中斷 D、脈沖方式的外部中斷7、 判斷下列的說法是否正確?A、 特殊功能寄存器SCON,與定時器/計數(shù)器的控制無關(guān)。B、 特殊功能寄存器TMOD,與定時器/計數(shù)器的控制無關(guān)。C、 特殊功能寄存器IE,與定時器/計數(shù)器的控制無關(guān)。D、 特殊功能寄存器TCON,與定時器/計數(shù)器的控制無關(guān)。8、 判斷下列說法是否正確? A、在8155H芯片中,決定端口和RAM單元編址的信號線是AD7-AD0和WR。B、 由于8155H不具有地址鎖存功能,因此在與8031的接口電路中必須加地址鎖存器。C、8255A的B口可以設(shè)置成方式2。D、8255A具有三態(tài)緩沖器,因此可以直接掛在系統(tǒng)的數(shù)據(jù)總線上。9、區(qū)分MCS-51單片機片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的方法是:A、看其芯片的型號是ROM還是RAM B、 看其離MCS-51芯片的遠近C、看其位于地址范圍的低端還是高段看其是與RD信號連接還是與PSEN信號連接10、下列說法正確的是:A、 同一級別的中斷請求按時間的先后順序響應(yīng)。B、 同級中斷不能嵌套。C、 低優(yōu)先級中斷請求不能中斷高優(yōu)先級中斷請求,但是高優(yōu)先級中斷請求能中斷低優(yōu)先級中斷請求。D、 同一時間同一級別的多中斷請求,將形成阻塞,系統(tǒng)無法響應(yīng)。四計算與編寫程序(共40分)1、試編寫程序,查找在內(nèi)部RAM的40H60H單元中是否有0FFH這一數(shù)據(jù)。若有,則將51H單元置為“00H”;若未找到,則將51H單元置為“01H”。(5分)2、編寫出外部中斷1為跳沿觸發(fā)的中斷初始化程序。(5分)3、編寫一段程序,功能要求為:當P1.0引腳的電平正跳變時,對P1.1的輸入脈沖進行計數(shù);當P1.2引腳的電平負跳變時,停止計數(shù),并將計數(shù)值寫入R0、R1(高位存R1,低位存R0)。(15分)4、根據(jù)硬件圖計算ADC0809的8個模擬量輸入通道的地址,并編寫程序?qū)崿F(xiàn)8個通道的模擬量循環(huán)采集,采集結(jié)構(gòu)存放至片內(nèi)RAM 40H47H中。(15分)一填空題(每空1分,共20分)1、答:CPU、存儲器、I/O口2、答: 同步 3、答:PC、PC4、答:累加器A,DPTR、PC5、答:1041H6、答:地址7、答:A的內(nèi)容為 4BH 。8、答:A= 80H ,SP= 42H ,(41H)= 30H ,(42H)= 80H ,PC= 8030H 。9、答: 片選 。10、答: 程序 、 數(shù)據(jù) 11、答: 6FFF H。二選擇題(每題2分,共16分)1、答:B2、答:對、對、對、對3、答:B4、答:錯、錯、對。5、答:A、C、D6、答:A7、答:A對,B、C、D錯 8、答:錯、錯、錯、錯9、答:A、D對10、答:A、B、C對四計算與編寫程序(共40分)1、答:START: MOV R0,#40HMOV R2,#20HLOOP: MOV A,R0CJNE A,#0FFH,NEXTMOV 51H,#00HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#01HEXIT: RET2、答:SETB IT1SETB EX1SETB EA3、答:將P1.1的輸入脈沖接入T0,即使用T0計數(shù)器完成對P1.1口的脈沖計數(shù)。編寫程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: JNB P1.0,MAINMOV TMOD,#05H ;定時器/計數(shù)器T0為計數(shù)方式1SETB TR0 ;啟動T0,開始計數(shù)SETB ET0 ;允許T0中斷SETB EA ;CPU開中斷WAIT: JB P1.2,WAITCLR EACLR TR0MOV R1,TH0MOV R0,TL0AJMP $IT0P: INC R2 ;在電平負跳變前,如果計數(shù)器溢出,則進位存入R2RETI4、根據(jù)硬件圖計算ADC0809的8個模擬量輸入通道的地址,并編寫程序?qū)崿F(xiàn)8個通道的模擬量循環(huán)采集,采集結(jié)構(gòu)存放至片內(nèi)RAM 40H47H中。(15分)解:根據(jù)電路連接圖可計算出ADC0809的8個模擬量輸入通道的地址為:7F00H7F07H (5分)循環(huán)采集的程序設(shè)計如下:ORG 0000HAJMP MAINORG 0030HMAIN: MOV DPTR,#7F00HMOV R0,#40HMOV R7,#8LOOP:MOVX DPTR, AJNB P3.2,$MOVX A,DPTRMOV R0,AINC DPTRINC R0DJNZ R7,LOOPMOV DPTR,#7F00HMOV R0,#40HMOV R7,#8AJMP LOOPEND (10分)或: ORG 0000HAJMP MAINORG 0003HLJMP INT0_INTORG 0030HMAIN: MOV DPTR,#7F00HMOV R0,#40HMOV R7,#8SETB EX0SETB EAMOVX A,DPTRSJMP $INTO_INT:MOVX A,DPTRMOV R0,AINC DPTRINC R0MOVX DPTR,ADJNZ R7,LOOPMOV DPTR,#7F00HMOV R0,#40HMOV R7,8LOOP: RETI單片機應(yīng)用與實踐 八 一、填空題、選擇題(30分)1. 8031單片機復(fù)位后,R4所對應(yīng)的存儲單元的地址為( )H。因上電時PSW=( )H,這時當前的工作寄存器區(qū)是第( )組工作寄存器區(qū)。2. 在MCS-51中,PC和DPTR都用于提供地址指針,但PC是為了訪問( )存儲器提供地址指針,而DPTR是為訪問( )存儲器提供地址指針。3. 計算機三總線分別為:( ) 總線;( )總線;( )總線。4. 在串行通訊中,幀格式為1個起始位,8個數(shù)據(jù)位和1個停止位的異步串行通信方式是方式( )。5. 51單片機有兩個物理上獨立的接收、發(fā)送緩沖器SBUF;通過串行口發(fā)送數(shù)據(jù)時,在程序中應(yīng)使用:( ) 指令;在接收數(shù)據(jù)時,在程序中應(yīng)使用:( ) 指令。6. 單片機與普通計算機的不同之處在于其將( )、( )和( )三部分集成于一塊芯片上。7. 下列指令中有錯誤的是( )。(2分)A、MOV A,R4 B、MOV 20H,R4 C 、MOV R4,R3 D、MOV R4,R3 8. 8031復(fù)位后,PC與SP的值為( )、( )。9. 8051內(nèi)部有( )個并行端口,P0口直接作為I/O端口使用時,必須外接( );并行端口作輸入端口時,必須先執(zhí)行( )指令,然后執(zhí)行輸入指令,才能正確的讀入端口的狀態(tài)。10. 當單片機接到外設(shè)的中斷申請時,單片機響應(yīng)中斷,單片機將暫停( )的執(zhí)行,轉(zhuǎn)去執(zhí)行( )程序,執(zhí)行完 ( ),再執(zhí)行( )程序。11定時器/計數(shù)器的工作方式3是指將 ( ) 拆成兩個獨立的8位計數(shù)器。而另一個定時器/計數(shù)器此時通常只可作為( )使用。12. 串行口每一次傳送( )字符。A. 1位 B. 1串 C. 1幀 D. 1波特13. 執(zhí)行下列程序段后,(P1)=( )。(2分)MOV P1,#5DHCPL P1.1CLR P1.6SETB P1.73 已知程序執(zhí)行前有A=02H,SP=52H,(51H)=80H,(52H)=00H。下述程序執(zhí)行后:POP DPLPOP DPHRL AMOV B,AMOVC A,A+DPTRPUSH AMOV A,BINC AMOVC A,A+DPTRPUSH ARETORG 8000HDB 10H,80H,30H,50H,30H,50H請問:A=( ),SP=(),(51H)=( ),(52H)=( ),PC=( )。(10分)三、編程題(28分)1. 編程將片內(nèi)RAM20H2FH 單元開始的16個數(shù)傳送到片外RAM 3000H300FH 開始的單元中。(12分)2. 將存放在單片機片內(nèi)數(shù)據(jù)存儲器30H,31H,32H三個單元中不同的數(shù)據(jù)按從小到大的順序排序,并將結(jié)果存放在片內(nèi)RAM的30H32H中。(10分)3. 編制中斷初始化程序,外部中斷0(邊沿觸發(fā))、外部中斷1(電平觸發(fā))、定時器0開中斷(中斷允許);定時器1關(guān)中斷(不允許中斷)。(6分)一、填空題、選擇題(30分)(每空1分,特殊標注出為2分)1. 04H 00 02. 程序 數(shù)據(jù)3. 數(shù)據(jù)總線 地址總線 控制總線。4. 方式( 1 )。5. MOV SBUF , A MOV A,SBUF6. CPU MEMORY I/O7. C D 8. 00H, 07H9. 4 上拉電阻 輸出高電平10. 當前主程序 中斷服務(wù)子程序 中斷服務(wù)子程序 中斷前執(zhí)行的主程序11T0 波特率發(fā)生器12. A13. (P1)=( 9F