乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      單片機(jī)的一些面試題整理

       岐岐feng 2019-07-17

      1.MCS51的中斷系統(tǒng)有幾個(gè)中斷源?幾個(gè)中斷優(yōu)先級(jí)?中斷優(yōu)先級(jí)是如何控制的?在出現(xiàn)同級(jí)中斷申請(qǐng)時(shí),CPU按什么順序響應(yīng)(按由高級(jí)到低級(jí)的順序?qū)懗龈鱾€(gè)中斷源)?各個(gè)中斷源的入口地址是多少?

      答:MCS51單片機(jī)有5個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí),中斷優(yōu)先級(jí)由特殊功能寄存器IP控制,在出現(xiàn)同級(jí)中斷申請(qǐng)時(shí),CPU按如下順序響應(yīng)各個(gè)中斷源的請(qǐng)求:INT0、T0、INT1、T1、串口,各個(gè)中斷源的入口地址分別是0003H、000BH、0013H、001BH、0023H。

      單片機(jī)是將微處理器、一定容量的 RAM 和ROM以及 I/O 口、定時(shí)器等電路集成在一塊芯片上而構(gòu)成的微型計(jì)算機(jī)。當(dāng)CPU訪問(wèn)片外的存儲(chǔ)器時(shí),其低八位地址由 P0口提供,高八位地址由 P2口提供,8位數(shù)據(jù)由 P0口提供。在I/O口中,P0口在接LED時(shí),必須提供上拉電阻,P3口具有第二功能。

      19、是非題:工作寄存器區(qū)不允許做普通的RAM單元來(lái)使用。F

      20、是非題:工作寄存器組是通過(guò)置位PSW中的RS0和RS1來(lái)切換的。T

      21、是非題:特殊功能寄存器可以當(dāng)作普通的RAM單元來(lái)使用。F

      22、是非題:訪問(wèn)128個(gè)位地址用位尋址方式,訪問(wèn)低128字節(jié)單元用直接或間接尋址方式。T

      23、是非題:堆棧指針SP的內(nèi)容可指向片內(nèi)00H~7FH的任何RAM單元,系統(tǒng)復(fù)位后,SP初始化為00H。F

      24、數(shù)據(jù)指針DPTR是一個(gè)16位的 特殊功能寄存器 寄存器。

      25、是非題:DPTR只能當(dāng)作一個(gè)16位的特殊功能寄存器來(lái)使用。F

      26、是非題:程序計(jì)數(shù)器PC是一個(gè)可以尋址的特殊功能寄存器。F

      28、當(dāng)系統(tǒng)處于正常工作狀態(tài)且振蕩穩(wěn)定后,在RST引腳上加一個(gè) 高 電平并維持 2 個(gè)機(jī)器周期,可將系統(tǒng)復(fù)位。

      29、是非題:?jiǎn)纹瑱C(jī)89C51復(fù)位后,其PC指針初始化為0000H,使單片機(jī)從該地址單元開(kāi)始執(zhí)行程序。T

      31、是非題:?jiǎn)纹瑱C(jī)系統(tǒng)上電后,其內(nèi)部RAM的值是不確定的。T

      36、以下哪一條指令的寫法是錯(cuò)誤的(C)。

      A、MOV DPTR,#3F98H B、MOV R0,#0FEH C、MOV 50H,#0FC3DH D、INC R0

      37、以下哪一條指令的寫法是錯(cuò)誤的(D)。

      A、INC DPTR B、MOV R0,#0FEH C、DEC A D、PUSH A

      38、以下哪一條指令的寫法是錯(cuò)誤的(B)。

      A、MOVC A,@A+DPTR B、MOV R0,#FEH C、CPL A D、PUSH ACC

      39、是非題:在51系列單片機(jī)的指令系統(tǒng)中,其加法、減法、乘法和除法必須有累加器A的參與才能完成。T

      46、單片機(jī)89C51的5個(gè)中斷源分別為 INT0 、INT1 、T0 、T1以及TXD/RXD 。

      47、單片機(jī)89C51的中斷要用到4個(gè)特殊功能寄存器,它們是TCON、SCON、 IE 以及IP。

      48、在89C51中,外部中斷由IT0(1)位來(lái)控制其兩種觸發(fā)方式,分別是 電平 觸發(fā)方式和 邊沿 觸發(fā)方式。

      50、是非題:在89C51中,當(dāng)產(chǎn)生中斷響應(yīng)時(shí),所有中斷請(qǐng)求標(biāo)志位都由硬件自動(dòng)清零。F

      51、中斷處理過(guò)程分為3個(gè)階段,即中斷響應(yīng)、中斷處理以及中斷返回。

      52、簡(jiǎn)述51系列單片機(jī)中斷響應(yīng)的條件。

      ●有中斷源發(fā)出中斷請(qǐng)求;

      ●中斷總允許位EA=1,即CPU開(kāi)中斷;

      ●申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒(méi)有屏蔽;

      ●無(wú)同級(jí)或更高級(jí)中斷正在被服務(wù);

      ●當(dāng)前的指令周期已經(jīng)結(jié)束;

      ●若現(xiàn)在指令為RETI或者是訪問(wèn)IE或IP指令,則該指令以及緊接著的另一條指令已執(zhí)行完。

      53、是非題:在51系列單片機(jī)中,中斷服務(wù)程序從矢量地址開(kāi)始執(zhí)行,一直到返回指令RETI為止。T

      56、是非題:在執(zhí)行子程序調(diào)用或執(zhí)行中斷服務(wù)程序時(shí)都將產(chǎn)生壓棧的動(dòng)作。T

      65、是非題:在51系列單片機(jī)的指令中,既有帶借位的減法指令,又有不帶借位的減法指令。F

      69、單片機(jī)89C51具有并行 通信和串行 通信兩種通信方式。

      79、單片機(jī)89C51中的串行通信共有4種方式,其中方式 0 是用作同步移位寄存器來(lái)擴(kuò)展I/O口的。

      99、MCS-51 單片機(jī)的RS1,RS0=01 時(shí),當(dāng)前寄存器R0—R7 占用內(nèi)部RAM(B)單元。

      A、 00H—07H B、 08H—0FH C、 10H—17H D、 18H—1FH

      101、MCS-51 單片機(jī)有片內(nèi)RAM 容量( A )。

      A. 128B B、 4KB C、 8KB D、 256B

      104、在執(zhí)行下列指令后,A=___60H___,R0=__45H____,(60H)=___45H___。

      MOV A,# 45H

      MOV R0,# 60H

      MOV @R0,A

      XCH A, R0

      106、設(shè)RAM 中(2456H)=66H,(2457H)=34H,ROM 中(2456H)=55H,(2457H)=64H。請(qǐng)分析下面程序執(zhí)行后各寄存器的內(nèi)容。 (A)=___64H___,(DPTR)=__2356H____。

      MOV A,#1

      MOV DPTR,#2456H

      MOVC A,@A+DPTR

      107、MCS-51 單片機(jī)的定時(shí)器/計(jì)數(shù)器工作方式0 是( C )。

      A、8 位計(jì)數(shù)器結(jié)構(gòu) B、16 位計(jì)數(shù)器結(jié)構(gòu) C、13 位計(jì)數(shù)器結(jié)構(gòu) D、2 個(gè)8 位計(jì)數(shù)器結(jié)構(gòu)

      108、執(zhí)行下列程序后,(A)=__35H____,(B)=__16H____。

      MOV A,#9FH

      MOV B,#36H

      ANL B,A

      SETB C

      ADDC A,B

      109、MCS-51 單片機(jī)的外部中斷0 中斷入口地址為( C )。

      A、 000BH B、 001BH C、0003H D、 0013H

      尋址方式

      尋址空間

      立即數(shù)尋址

      程序存儲(chǔ)器ROM

      直接尋址

      片內(nèi)RAM低128B、特殊功能寄存器

      寄存器尋址

      工作寄存器R0-R7、A、B、C、DPTR

      寄存器間接尋址

      片內(nèi)RAM低128B、片外RAM

      變址尋址

      程序存儲(chǔ)器(@A+PC,@A+DPTR)

      相對(duì)尋址

      程序存儲(chǔ)器256B范圍(PC+偏移量)

      位尋址

      片內(nèi)RAM的20H-2FH字節(jié)地址、部分SFR

      1.MOV A,40H ;直接尋址 (40H)→A

      MOV R0,A ;寄存器尋址 (A)→R0

      MOV P1,#0F0H ;立即數(shù)尋址 0F0→P1

      MOV @R0,30H ;直接尋址 (30H) →(R0)

      MOV DPTR,#3848H ;立即數(shù)尋址 3848H→DPTR

      MOV 40H,38H ;直接尋址 (38H) →40H

      MOV R0,30H ;直接尋址 (30H) →R0

      MOV P0,R0 ;寄存器尋址 ( R0 )→P0

      MOV 18H,#30H ;立即數(shù)尋址 30H→18H

      MOV A,@R0 ;寄存器間接尋址 ((R0)) →A

      MOV P2,P1 ;直接尋址 (P1)→P2

      最后結(jié)果:(R0)=38H,(A)=40H,(P0)=38H,

      (P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,

      (30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H

      2. MOV A,DATA ;直接尋址 2字節(jié)1周期

      MOV A,#DATA ;立即數(shù)尋址 2字節(jié)1周期

      MOV DATA1,DATA2 ;直接尋址 3字節(jié)2周期

      MOV 74H,#78H ;立即數(shù)尋址 3字節(jié)2周期

      2-1 MCS-51單片機(jī)內(nèi)部包含哪些主要功能部件?它們的作用是什么?

      答:MCS-51單片機(jī)在一塊芯片中集成了CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器、多功能I/O口

      和中斷控制等基本功能部件。

      單片機(jī)的核心部分是CPU,CPU是單片機(jī)的大腦和心臟。

      程序存儲(chǔ)器用于存放編好的程序或表格常數(shù)。數(shù)據(jù)存儲(chǔ)器用于存放中間運(yùn)算結(jié)果、數(shù)據(jù)

      暫存和緩沖、標(biāo)志位等。

      定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是加法計(jì)數(shù)器,當(dāng)它對(duì)具有固定時(shí)間間隔的內(nèi)部機(jī)器周期進(jìn)行計(jì)數(shù)時(shí)

      ,它是定時(shí)器;當(dāng)它對(duì)外部事件進(jìn)行計(jì)數(shù)時(shí),它是計(jì)數(shù)器。

      I/O 接口的主要功能包括:緩沖與鎖存數(shù)據(jù)、地址譯碼、信息格式轉(zhuǎn)換、傳遞狀態(tài)(外

      設(shè)狀態(tài))和發(fā)布命令等。

      中斷控制可以解決 CPU 與外設(shè)之間速度匹配的問(wèn)題,使單片機(jī)可以及時(shí)處理系統(tǒng)中許

      多隨機(jī)的參數(shù)和信息,同時(shí),它也提高了其處理故障與應(yīng)變能力的能力。

      2-5 簡(jiǎn)述MCS-51單片機(jī)片內(nèi)RAM區(qū)地址空間的分配特點(diǎn)。

      答:片內(nèi)數(shù)據(jù)存儲(chǔ)器分為工作寄存器區(qū)、位尋址區(qū)和數(shù)據(jù)緩沖器區(qū)等3個(gè)區(qū)域。 工作寄存器使用內(nèi)部RAM中地址為00H~1FH的32個(gè)單元, 并分成4個(gè)工作寄存器組,每個(gè)組有8個(gè)工作寄存器,名稱為R0~R7。 對(duì)于內(nèi)部RAM 中地址為 20H~2FH 的 16 個(gè)單元,CPU 不僅具有字節(jié)尋址功能,而且還具有位尋址功能。這 16 個(gè)單元共 128 位,每一位都賦予 1 個(gè)位地址,位地址范圍是00H~7FH。 30H~7FH是數(shù)據(jù)緩沖區(qū),即用戶RAM區(qū),共80個(gè)單元。

      2-7 單片機(jī)復(fù)位后,各特殊功能寄存器中的初始化狀態(tài)是什么?

      答: 特殊功能寄存器 初始狀態(tài) 特殊功能寄存器 初始狀態(tài)

      ACC 00H TMOD 00H

      PC 0000H TCON 00H

      PSW 00H TL0 00H

      SP 07H TH0 00H

      DPTR 0000H TL1 00H

      P0~P3 0FFH TH1 00H

      IP xx000000B B 00H

      IE 0x000000B SCON 00H

      PCON 0xxx0000B SBUF 不定

      2-8 MCS-51單片機(jī)的21個(gè)特殊功能寄存器中,哪些具有位尋址能力?

      答:MCS-51 單片機(jī)中的程序狀態(tài)字寄存器(PSW),B 寄存器,累加器(ACC) ,端口 P0

      ~P3,控制寄存器中用于中斷控制的中斷優(yōu)先級(jí)控制寄存器(IP)和中斷允許控制寄存

      器(IE) ,用于設(shè)置定時(shí)/計(jì)數(shù)器和串行口工作方式的定時(shí)/計(jì)數(shù)器控制寄存器(TCON)

      、串行口控制寄存器(SCON)具有位尋址能力。

      2-15 什么時(shí)候需要復(fù)位操作?對(duì)復(fù)位信號(hào)有何要求?

      答:復(fù)位是單片機(jī)的初始化操作。單片機(jī)系統(tǒng)在上電啟動(dòng)運(yùn)行時(shí),都需要先復(fù)位。

      上電復(fù)位利用電容器的充電實(shí)現(xiàn)。在時(shí)鐘電路工作后,在 RST 端連續(xù)給出 2 個(gè)機(jī)器周

      期的高電平就可完成復(fù)位操作。MCS-51 單片機(jī)的上電加按鍵復(fù)位電路當(dāng)復(fù)位按鍵按下

      3-1 什么是尋址方式?MCS-51指令系統(tǒng)有哪些尋址方式?相應(yīng)的尋址空間在何處?

      答:在指令系統(tǒng)中,操作數(shù)是一個(gè)重要的組成部分,它指定了參與運(yùn)算的數(shù)據(jù)或數(shù)據(jù)所在的

      地址單元。如何找到參與運(yùn)算的這個(gè)數(shù)據(jù)或數(shù)據(jù)所在的地址就稱為尋址方式。

      MCS-51 指令系統(tǒng)的尋址方式主要有立即尋址、直接尋址、寄存器尋址、寄存器間接尋

      址、基址加變址尋址、相對(duì)尋址和位尋址等七種。

      對(duì)程序存儲(chǔ)器只能采用立即尋址和基址加變址尋址方式;對(duì)特殊功能寄存器只能采用直

      接尋址方式,不能采用寄存器間接尋址,對(duì) 8032/8052 等單片機(jī)內(nèi)部 RAM 的高 128 個(gè)

      字節(jié)(80H~FFH),只能采用寄存器間接尋址,不能使用直接尋址方式;對(duì)位操作指令

      只能對(duì)位尋址區(qū)操作;外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器只能用MOVX指令訪問(wèn), 而內(nèi)部RAM的

      低128個(gè)字節(jié)(00H~7FH)既能用直接尋址,也能用間接尋址。

      3-2 訪問(wèn)內(nèi)部RAM單元可以采用哪些尋址方式?訪問(wèn)外部RAM單元可以采用哪些尋址方

      式?訪問(wèn)特殊功能寄存器(SFR)可以采用哪些尋址方式?

      答:對(duì)特殊功能寄存器只能采用直接尋址方式,單片機(jī)內(nèi)部RAM的高128個(gè)字節(jié) (80H~FFH

      ) ,只能采用寄存器間接尋址,外部擴(kuò)展的數(shù)據(jù)存儲(chǔ)器只能用MOVX指令訪問(wèn),而內(nèi)部

      RAM的低128個(gè)字節(jié)(00H~7FH)既能用直接尋址,也能用間接尋址。

      3-3 訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器可以用哪些指令來(lái)實(shí)現(xiàn)?舉例說(shuō)明。

      答:訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器可以用以下指令實(shí)現(xiàn):

      MOVX A, @Ri ;((Ri))→A,寄存器Ri指向的片外RAM地址中的內(nèi)容送到累加器A中

      MOVX @Ri, A ;A→((Ri)),累加器中內(nèi)容送到寄存器Ri指向的片外RAM地址中

      MOVX A, @DPTR;((DPTR))→A,數(shù)據(jù)指針指向的片外RAM地址中的內(nèi)容送到累加器A中

      MOVX @DPTR, A ; A→((DPTR)),累加器中內(nèi)容送到數(shù)據(jù)指針指向的片外RAM地址中

      訪問(wèn)程序存儲(chǔ)器可以用以下指令實(shí)現(xiàn):

      MOVC A, @A+DPTR ;((A+DPTR))→A,表格地址單元中的內(nèi)容送到累加器A中

      MOVC A, @A+PC ;PC+1→PC,((A+PC))→A,表格地址單元中的內(nèi)容送到累加器A中

      3-4 試用下列3種尋址方式編程,將立即數(shù)0FH送入內(nèi)部RAM的30H單元中。

      (1) 立即尋址方式;(2) 寄存器尋址方式;(3) 寄存器間接尋址方式

      答: (1)立即尋址方式: MOV 30H, #0FH

      (2)寄存器尋址方式: MOV R5, #0FH MOV 30H, R5

      (3)寄存器間接尋址方式:MOV @R1, #0FH MOV 30H, @R1

      3-6 加法和減法指令影響哪些標(biāo)志位?怎么影響的?

      答:在帶進(jìn)位的加法運(yùn)算中,會(huì)影響進(jìn)位位Cy,最終要將A中的值和其后面的值以及進(jìn)位

      位Cy中的值相加,最終結(jié)果存在A。

      在帶進(jìn)位減法指令中,要將累加器A的內(nèi)容與第二操作數(shù)及進(jìn)位標(biāo)志相減,結(jié)果送回到

      累加器A中。在執(zhí)行減法過(guò)程中,如果位7(D7)有借位,則進(jìn)位標(biāo)志Cy置“1”,否則

      清“0”;如果位3(D3)有借位,則輔助進(jìn)位標(biāo)志AC置“1”,否則清“0”;如位6有借位

      而位 7 沒(méi)有借位,或位 7 有借位而位 6 沒(méi)有借位,則溢出標(biāo)志 OV 置“1”,否則清“0”。

      若要進(jìn)行不帶借位的減法操作,則必須先將Cy清“0”。

      3-8 試編寫一段程序,將內(nèi)部數(shù)據(jù)存儲(chǔ)器30H、 3lH單元內(nèi)容傳送到外部數(shù)據(jù)存儲(chǔ)器1000H、1001H單元中。

      答: MOV A, 30H

      MOV DPTR, #1000H

      MOV @DPTR, A

      MOV A, 31H

      MOV DPTR, #1000H

      MOV @DPTR, A

      3-9 試編寫一段程序,將外部數(shù)據(jù)存儲(chǔ)器40H單元中的內(nèi)容傳送到0l00H單元中。

      答: MOV DPTR, #0040H

      MOV A, @DPTR

      MOV 0100H, A

      6-2 MCS-51 單片機(jī)提供了幾個(gè)中斷源?有幾級(jí)中斷優(yōu)先級(jí)別?各中斷標(biāo)志是如何產(chǎn)生的

      又如何清除這些中斷標(biāo)志?各中斷源所對(duì)應(yīng)的中斷矢量地址是多少?

      答:MCS-51單片機(jī)提供了5個(gè)中斷源,有2級(jí)中斷優(yōu)先級(jí)別。中斷標(biāo)志由特殊功能寄存器

      TCON和SCON的相應(yīng)位鎖存。

      中斷標(biāo)志的撤消分為:

      1)定時(shí)/計(jì)數(shù)器中斷請(qǐng)求的撤消 中斷請(qǐng)求被響應(yīng)后,硬件會(huì)自動(dòng)清TF0或TF1。

      2)外部中斷請(qǐng)求的撤消

      (1)跳沿方式外部中斷請(qǐng)求的撤消是自動(dòng)撤消的。

      (2)電平方式外部中斷請(qǐng)求的撤消,除了標(biāo)志位清“0”之外,還需在中斷響應(yīng)后把中斷

      請(qǐng)求信號(hào)引腳從低電平強(qiáng)制改變?yōu)楦唠娖健?/p>

      3)串行口中斷請(qǐng)求的撤消

      響應(yīng)串行口的中斷后,CPU無(wú)法知道是接收中斷還是發(fā)送中斷,還需測(cè)試這兩個(gè)中斷標(biāo)

      志位的狀態(tài),以判定是接收操作還是發(fā)送操作,然后才能清除。所以串行口中斷請(qǐng)求的

      撤消只能使用軟件的方法。

      CLR TI ;清TI標(biāo)志位

      CLR RI ;清RI標(biāo)志位

      各中斷源對(duì)應(yīng)的中斷矢量地址分別為:

      中斷源 中斷矢量

      外部中斷0 0003H

      定時(shí)器T0中斷 000BH

      外部中斷1 0013H

      定時(shí)器T1中斷 001BH

      串行口中斷 0023H

      定時(shí)器中斷T2(僅52系列有) 002BH

      6-4 試分析以下幾種中斷優(yōu)先級(jí)的排列順序(級(jí)別由高到低)是否可能?若可能,則應(yīng)如何

      設(shè)置中斷源的中斷級(jí)別?否則,請(qǐng)簡(jiǎn)述不可能的理由。

      (1) 定時(shí)器T0中斷,定時(shí)T1中斷,外中斷1NT0,外中斷INT1,串行口中斷;

      (2) 串行口中斷,外中斷1NT0,定時(shí)器T0中斷,外中斷INT1,定時(shí)器T1中斷;

      (3) 外中斷INT0、定時(shí)器T1中斷,外中斷INT1,定時(shí)器T0中斷,串行口中斷。

      (1)可以,將定時(shí)器T0中斷,定時(shí)T1設(shè)置為高優(yōu)先級(jí)中斷,將外中斷1NT0,外中斷

      INT1,串行口中斷

      (2)可以,將串行口中斷設(shè)置為高優(yōu)先級(jí)中斷,將外中斷 1NT0,定時(shí)器 T0 中斷,外

      中斷INT1,定時(shí)器T1中斷設(shè)置為低優(yōu)先級(jí)中斷;

      (3)不行,因?yàn)?MCS-51 單片機(jī)有 2 級(jí)中斷優(yōu)先級(jí)別,同級(jí)中斷還存在按次序決定的

      第二優(yōu)先級(jí)結(jié)構(gòu),由高到低依次為外中斷 1NT0、定時(shí)器 T0 中斷、外中斷 INT1、定時(shí)

      器T1中斷、串行口中斷。

      7-2 如果采用晶振的頻率為 3MHz,定時(shí)/計(jì)數(shù)器工作方式 0、1、2 下,其最大的定時(shí)時(shí)間為多少?

      答:內(nèi)部定時(shí)脈沖周期=機(jī)器周期=12/3Mhz=4us

      工作方式0:Tmax=8192*4us=32.768ms

      工作方式1:Tmax=65536*4us=262.144ms

      工作方式2:Tmax=256*4us=1.024ms

      7-10 定時(shí)/計(jì)數(shù)器測(cè)量某正單脈沖的寬度,采用何種方式可得到最大量程?若時(shí)鐘頻率為

      6MHz,求允許測(cè)量的最大脈沖寬度是多少?

      答:采用定時(shí)器工作方式1可得到最大量程,最大脈沖寬度:65536*12/6M=131.072ms

      【2—9】什么是堆棧?堆棧有哪些功能? 設(shè)計(jì)時(shí),為什么還要對(duì)SP重新賦值?

      堆棧指針SP的作用是什么?

      【答】堆棧是在片內(nèi)數(shù)據(jù)RAM區(qū)中,數(shù)據(jù)按照“先進(jìn)后出”或“后進(jìn)先出”原則進(jìn)行管理的區(qū)域。堆棧功能有兩個(gè):保護(hù)斷點(diǎn)和保護(hù)數(shù)據(jù)。在子程序調(diào)用和中斷操作時(shí)這兩個(gè)功能特別有用。在80C51單片機(jī)中,堆棧在子程序調(diào)用和中斷時(shí)會(huì)把斷點(diǎn)地址自動(dòng)進(jìn)棧和出棧。進(jìn)棧和出棧的指令(PUSH、POP)操作可用于保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。由于子程序調(diào)用和中斷都允許嵌套,并可以多級(jí)嵌套,而現(xiàn)場(chǎng)的保護(hù)也往往使用堆棧,所以一定要注意給堆棧以一定的深度,以免造成堆棧內(nèi)容的破壞而引起程序執(zhí)行的“跑飛”。

      堆棧指針SP在80C51中存放當(dāng)前的堆棧棧頂所指存儲(chǔ)單元地址的一個(gè)8位寄存器。80C51單片機(jī)的堆棧是向上生成的,即進(jìn)棧時(shí)SP的內(nèi)容是增加的;出棧時(shí)SP的內(nèi)容是減少的。

      系統(tǒng)復(fù)位后。80C51的SP內(nèi)容為07H。若不重新定義,則以07H為棧底,壓棧的內(nèi)容從08H單元開(kāi)始存放。但工作寄存器R0~R7有4組,占有內(nèi)部RAM地址為00H~1FH,位尋址區(qū)占有內(nèi)部RAM地址為20H~2FH。若程序中使用了工作寄存器1~3組或位尋址區(qū),則必須通過(guò)軟件對(duì)SP的內(nèi)容重新定義,使堆棧區(qū)設(shè)定在片內(nèi)數(shù)據(jù)RAM區(qū)中的某一區(qū)域內(nèi)(如30H),堆棧深度不能超過(guò)片內(nèi)RAM空間。

      【2一13】程序存儲(chǔ)器指令地址、堆棧地址和外接數(shù)據(jù)存儲(chǔ)器地址各使用什么指針?為什么?

      【答】程序存儲(chǔ)器指令地址使用程序計(jì)數(shù)器PC指針,PC中存放的是下一條將要從程序存儲(chǔ)器中取出的指令的地址。程序計(jì)數(shù)器PC變化的軌跡決定程序的流程。PC最基本的工作方式是自動(dòng)加1。在執(zhí)行條件轉(zhuǎn)移或無(wú)條件轉(zhuǎn)移指令時(shí),將轉(zhuǎn)移的目的地址送入程序計(jì)數(shù)器,程序流向發(fā)生變化。在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí),將子程序的入口地址或者中斷矢量地址送人PC,程序流向發(fā)生變化。 堆棧地址使用堆棧指針.SP。SP在80C51中存放當(dāng)前的堆棧棧頂所指存儲(chǔ)單元地址,是一個(gè)8位寄存器,對(duì)數(shù)據(jù)按照“先進(jìn)后出”原則進(jìn)行管理。外接數(shù)據(jù)存儲(chǔ)器地址使用數(shù)據(jù)指針DPTR。DPTR是一個(gè)16位特殊功能寄存器,主要功能是作為片外數(shù)據(jù)存儲(chǔ)器或I/0尋址用的地址寄存器,這時(shí)會(huì)產(chǎn)生RD或wR控制信號(hào),用于單片機(jī)對(duì)外擴(kuò)的數(shù)據(jù)存儲(chǔ)器或I/0的控制。數(shù)據(jù)指針DPTR也可以作為訪問(wèn)程序存儲(chǔ)器時(shí)的基址寄存器,此時(shí)是尋址程序存儲(chǔ)器中的表格、常數(shù)等單元,而不是尋址指令。

      【2一19】80C51單片機(jī)的4個(gè)I/O口在使用上有哪些分工和特點(diǎn)?

      【答】4個(gè)I/O口的分工和特點(diǎn)如下:

      ① P0口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn)。

      l 用作I/0口。相當(dāng)于一個(gè)真正的雙向口:輸出鎖存,輸入緩沖,但輸入時(shí)須先將口置l;每根口線可以獨(dú)立定義為輸入或輸出。

      l 用作地址/數(shù)據(jù)復(fù)用總線。作數(shù)據(jù)總線使用時(shí),輸入/輸出8位數(shù)據(jù)D0~D7;作地址總 線用時(shí),輸出低8位地址AO~A7。

      ② P1口是一個(gè)8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn),因此,P1口不僅可以8位一組進(jìn)行 輸入、輸出操作,還可以逐位分別定義各口線為輸入線或輸出線。輸入時(shí)有條件,即需要先輸出1,將該口設(shè)為輸入狀態(tài)。一般作I/o口用。

      ③ P2口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn)。在單片機(jī)采用并行擴(kuò)展方式時(shí),P2口作為地址總線的高8位D8~D15。

      ④ P3口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn),也按可位訪問(wèn)??勺鳛镮/0口使用,為準(zhǔn)雙向口。既可以字節(jié)操作,也可以位操作;既可以8位口操作,也可以逐位定義口線為輸入線或輸出線。

      P3可替代輸入、輸出功能。

      替代輸入功能:

      P3.0一一RXD,串行輸入口。

      P3.2一一IN'I、0,外部中斷O的請(qǐng)求。

      P3.3一一INTl,外部中斷1的請(qǐng)求。

      P3.4一TO,定時(shí)器/計(jì)數(shù)器O外部計(jì)數(shù)脈沖輸入。

      P3.5一一T1,定時(shí)器/計(jì)數(shù)器1外部計(jì)數(shù)脈沖輸入。

      替代輸出功能:

      P3.1一一TXD,串行輸出口。

      P3.6一一wR,外部數(shù)據(jù)存儲(chǔ)器寫選通,輸出,低電平有效。

      P3.7~RD,外部數(shù)據(jù)存儲(chǔ)器讀選通,輸出,低電平有效。

      【3—4】簡(jiǎn)述80C51的指令尋址方式,并舉例說(shuō)明。

      【答】執(zhí)行任何一條指令都需要使用操作數(shù),尋址方式就是在指令中給出的尋找操作數(shù)或操作數(shù)所在地址的方法。

      80C5l系列單片機(jī)的指令系統(tǒng)中共有以下7種尋址方式。

      ①立即尋址。在指令中直接給出操作數(shù)。出現(xiàn)在指令中的操作數(shù)稱為“立即數(shù)”,為了與直接尋址指令中的直接地址相區(qū)別,在立即數(shù)前面必須加上前綴“#”。

      例如:MOV DPTR,#1234H ;1234H為立即數(shù),直接送DPTR

      ②直接尋址。在指令中直接給出操作數(shù)單元的地址。

      例如: MOV A,55H ;55H是操作數(shù)單元的地址,55H單元內(nèi)的數(shù)據(jù)才是操作數(shù),取出后送累加器A

      ③寄存器尋址。在指令中將指定寄存器的內(nèi)容作為操作數(shù)。因此,指定了寄存器就能得

      到操作數(shù)。寄存器尋址方式中,用符號(hào)名稱來(lái)表示寄存器。

      例如: INC R7 ;R7的內(nèi)容為操作數(shù),加1后再送回R7

      ④寄存器間接尋址。在指令中給出的寄存器內(nèi)容是操作數(shù)的地址,從該地址中取出的才

      是操作數(shù)??梢钥闯?,在寄存器尋址方式中,寄存器中存放的是操作數(shù);而在寄存器間接尋址

      方式中,寄存器中存放的則是操作數(shù)的地址。

      寄存器間接尋址須以寄存器符號(hào)名稱的形式表示。為了區(qū)別寄存器尋址和寄存器間接尋

      址,在寄存器間接尋址中,應(yīng)在寄存器的名稱前面加前綴“@”。

      例如: ORL A.@Ro; 當(dāng)R0寄存器的內(nèi)容是60H時(shí),該指令功能是以RO寄存器的內(nèi)容60H為地址,將60H地址單元的內(nèi)容與累加器A中的數(shù)相“或”,其結(jié)果仍存放在A中。

      ⑤相對(duì)尋址。在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。相對(duì)尋址方式是為實(shí)現(xiàn)程序的相對(duì)轉(zhuǎn)移而設(shè)立的,為相對(duì)轉(zhuǎn)移指令所采用。

      在相對(duì)轉(zhuǎn)移指令中,給出地址偏移量(在80C51系列單片機(jī)的指令系統(tǒng)中,以“rel”表示,為8位帶符號(hào)數(shù)),把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址。而PC的當(dāng)前值是指執(zhí)行完轉(zhuǎn)移指令后的PC值,即轉(zhuǎn)移指令的PC值加上轉(zhuǎn)移指令的字節(jié)數(shù)。轉(zhuǎn)移的目的地址可用如下公式表示:

      目的地址=(轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù))+rel

      例如:SJMP 80H ;80H為程序轉(zhuǎn)移的偏移量,即一128。當(dāng)前PC值減去128后即為轉(zhuǎn)移地址

      ⑥變址尋址。以DPTR或PC作基址寄存器,累加器A作變址寄存器,以兩者內(nèi)容相加形成的16位程序存儲(chǔ)器地址作為操作數(shù)地址。又稱“基址寄存器+變址寄存器間接尋址”。變址尋址方式只能對(duì)程序存儲(chǔ)器進(jìn)行尋址。

      例如: MOVC A,@A+DPTR ;功能是把DPTR和A的內(nèi)容相加,所得到的程序存儲(chǔ)器地址單元的內(nèi)容送A

      ⑦位尋址。80C51系列單片機(jī)有位處理功能,可以對(duì)數(shù)據(jù)位進(jìn)行操作,因此,就有相應(yīng)的位尋址方式。位尋址的尋址范圍:

      ●片內(nèi)RAM中的位尋址區(qū)。

      ·可位尋址的特殊功能寄存器位。

      例如:MOV c,80H ;功能是把位尋址區(qū)的80H位(即P0.0)狀態(tài)送累加位C

      【3—14】已知(30H)=40H,(40H)=10 H,(10H)=00H,(P1)=CAH,請(qǐng)寫出執(zhí)行以下程序段后有關(guān)單元的內(nèi)容。

      【答】有關(guān)單元的內(nèi)容如下:

      MOV R0,#30H ;(RO)=30H

      MOV A,@R0 ;(A)=40H

      MOV Rl,A ;(R1)=40H

      MOV B,@R1 ;(B)=1OH

      MOV @R1,P1 ;(40H)=CAH

      MOV A,@RO ;(A)=40H

      MOV 10H,#20H ;(10H)=20H

      MOV 30H,10H ;(30H)=20H

      執(zhí)行以上程序段后,有關(guān)單元的內(nèi)容分別為:(30H)=20H,(40H)=CAH,(10H)=20H,(P1)=CAH。

      【3-1】已知(A)=7AH,(RO)=30H,(30H)=A5 H,(PSW)=80H。請(qǐng)?zhí)顚懜鳁l指令單獨(dú)執(zhí)行后的結(jié)果。

      【答】結(jié)果如下:

      (1) XCH A,R0 ;(A)=30H,(R0):7AH

      (2) XCH A,30H ;(A)=A5H,(30H)=7AH,(PSW)=81H

      (3) XCH A,@R0 ;(A)=R5H,(30H)=7AH,(PSW)=81H

      (4) XCHD A,@R0 ;(A)=75H,(30H)=AAH,(PSW)=81H

      (5) SWAP A ;(A)=A7H

      (6) ADD A,R0 ;(A)=AAH,(PSW)=04H

      (7) ADD A,30H ;(A)=1FH,(PSW)=81H

      (8) ADD A,#30H ;(A)=AAH,(PSW)=04H

      (9) ADDC A,30H ;(A)=20H,(PSW)=01H

      (10) SUBB A,30H ;(A)=D4H,(PSW)=84H

      (11) SUBB A,#30H ;(A)=49H,(PSW)=01H

      【3-15】已知(R1)=20 H,(20 H)=AAH,請(qǐng)寫出執(zhí)行完下列程序段后A的內(nèi)容。

      【答】各指令的執(zhí)行結(jié)果如下:

      MOV A,#55H ;(A)=55H

      ANL A,#0FFH ;(A)=55H

      ORL 20H,A ;(20H)=FFH

      XRL A,@R1 ;(A)=AAH

      CPL A ;(A)=55H

      執(zhí)行完程序段后,A的內(nèi)容為5 5 H。

      【3—17】已知兩個(gè)十進(jìn)制數(shù)分別在內(nèi)部RAM中的40 H單元和50H單元開(kāi)始存放(低位在前),其字節(jié)長(zhǎng)度存放在內(nèi)部RAM的30 H單元中。編程實(shí)現(xiàn)兩個(gè)十進(jìn)制數(shù)求和,求和結(jié)果存放在40 H開(kāi)始的單元中。

      ORG 0000H

      SJMP MAIN

      ORG 0030H

      MAIN:

      MOV R0,#40H ;被加數(shù)首址.又作兩個(gè)十進(jìn)制數(shù)和的首址

      MOV R1,#50H ;加數(shù)首址

      MOV R2,30H ;字節(jié)長(zhǎng)度

      CLR C

      PP: MOV A,@R1 ;取加數(shù)

      ADDC A,@R0 ;帶進(jìn)位加

      DA A ;二一十進(jìn)制數(shù)調(diào)整

      MOV @R0,A ;存和

      INC R0 ;修正地址

      INC R1

      DJNZ R2,PP ;多字節(jié)循環(huán)加

      AJMP $

      END

      【4-17】根據(jù)8100 H單元中的值X,決定P1口引腳輸出為:

      加上必要的偽指令,并對(duì)源程序加以注釋。 .

      【答】程序如下:

      ORG 0000H

      SJMP BEGIN

      ORG 0030H

      BEGIN: MOV DPTR,#8100H

      MOVX A,@DPTR

      MOV R2,A

      JB ACC.7,SMALLER;有符號(hào)數(shù)<0

      SJMP UNSIGNED ;無(wú)符號(hào)數(shù)≥0

      SMALLER:DEC A ;X<0,輸出-X(先減1,再取反)

      CPL A

      MOV P1,A

      SJMP OK

      UNSIGNED:CJNE A,#00H,BIGGER ;不等于0即大于0

      MOV P1,#80H ;X等于0,輸出80H

      SJMP OK

      BIGGER: CLR C ;X大于0,輸出A×2

      RLC A ;A×2

      MOV P1,A

      OK: SJMP $

      END

      例如:輸入55 H,P1口引腳輸出AAH;輸入00 H,P1口引腳輸出80 H;輸入F1(一1 5的補(bǔ)碼),P1口引腳輸出0FH。

      【5-4】什么是單片機(jī)的中斷優(yōu)先級(jí)?中斷優(yōu)先級(jí)處理的原則是什么?

      【答】在一個(gè)單片機(jī)系統(tǒng)中往往允許有多個(gè)中斷源,通常給每個(gè)中斷源規(guī)定了優(yōu)先級(jí)別,稱為“優(yōu)先權(quán)'或“中斷優(yōu)先級(jí)’’。

      當(dāng)單片機(jī)同時(shí)接收到兩個(gè)或多個(gè)不同優(yōu)先級(jí)的中斷請(qǐng)求時(shí),先響應(yīng)高優(yōu)先級(jí)的中斷。如果同時(shí)接收到的是幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求,則由內(nèi)部的硬件查詢序列確定它們的優(yōu)先服務(wù)次序,當(dāng)服務(wù)結(jié)束后,再響應(yīng)級(jí)別較低的中斷源。

      在80C51單片機(jī)中有高、低兩個(gè)中斷優(yōu)先級(jí),通過(guò)中斷優(yōu)先級(jí)寄存器IP來(lái)設(shè)定。

      在80C51單片機(jī)中存在同一優(yōu)先級(jí)內(nèi)由內(nèi)部硬件查詢序列確定的第二個(gè)優(yōu)先級(jí)結(jié)構(gòu)。

      其排列如下:

      中斷源 中斷優(yōu)先級(jí)

      外部中斷0 最高

      定時(shí)器T0中斷

      外部中斷1

      定時(shí)器T1中斷

      串行口中斷

      定時(shí)器T2中斷 最低

      【5—7】80C51單片機(jī)在什么情況下可響應(yīng)中斷?

      【答】中斷響應(yīng)是有條件的,即:

      ·中斷源申請(qǐng)中斷;

      ·該中斷源已被允許中斷,且CPU也已允許中斷;

      ·沒(méi)有同級(jí)或高優(yōu)先級(jí)中斷在執(zhí)行中斷服務(wù)程序。

      在接受中斷申請(qǐng)時(shí),如遇下列情況之一,硬件生成的長(zhǎng)調(diào)用指令LCALL將被封鎖:

      ①CPU正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序。因?yàn)楫?dāng)一個(gè)中斷被響應(yīng)時(shí),其對(duì)應(yīng)的中斷優(yōu)先級(jí)觸發(fā)器被置1,封鎖了同級(jí)和低級(jí)中斷。

      ②查詢中斷請(qǐng)求的機(jī)器周期不是執(zhí)行當(dāng)前指令的最后一個(gè)周期。目的在于使當(dāng)前指令執(zhí)行完畢后,才能進(jìn)行中斷響應(yīng),以確保當(dāng)前指令的完整執(zhí)行。

      ③當(dāng)前正在執(zhí)行RETI指令或執(zhí)行對(duì)IE、IP的讀/寫操作指令。80C51.中斷系統(tǒng)的特性規(guī)定,在執(zhí)行完這些指令之后,必須再繼續(xù)執(zhí)行一條指令,然后才能響應(yīng)中斷。

      【6-1】80C51單片機(jī)內(nèi)部設(shè)有幾個(gè)定時(shí)器/計(jì)數(shù)器?簡(jiǎn)述各種工作方式的特點(diǎn)。

      【答】80C51單片機(jī)內(nèi)部設(shè)有2個(gè)16位定時(shí)器/計(jì)數(shù)器TO和T1。定時(shí)器/計(jì)數(shù)器有4種工作方式,其特點(diǎn)如下: .

      ①方式O是13位定時(shí)器/計(jì)數(shù)器。由THx高8位(作計(jì)數(shù)器)和TLx的低5位(32分頻的定標(biāo)器)構(gòu)成,TLx的低5位溢出時(shí),向THx進(jìn)位;THx溢出時(shí),硬件置位TFx(可用于軟件查詢),并可以申請(qǐng)定時(shí)器中斷。

      ②方式1是16位定時(shí)器/計(jì)數(shù)器。TLx的低8位溢出時(shí)向THx進(jìn)位,THx溢出時(shí),硬

      件置位TFx(可用于軟件查詢),并可以申請(qǐng)定時(shí)器中斷。

      ③方式2是定時(shí)常數(shù)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TLx作為8位計(jì)數(shù)寄存器,

      THx作為8位計(jì)數(shù)常數(shù)寄存器。當(dāng)TLx計(jì)數(shù)溢出時(shí),一方面將TFx置位,并申請(qǐng)中斷;另一方面將THx的內(nèi)容自動(dòng)重新裝入TLx中,繼續(xù)計(jì)數(shù)。由于重新裝入不影響THx的內(nèi)容,所以可以多次連續(xù)再裝入。方式2對(duì)定時(shí)控制特別有用。 .

      ④方式3只適用于TO,T0被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TLO和TH0。TLO做8位計(jì)

      數(shù)器,它占用了T0的GATE、INTO、啟動(dòng)/停止控制位TRO、TO引腳(P3.4)以及計(jì)數(shù)溢出標(biāo)志位TF0和TO的中斷矢量(地址為000BH)等TH0只能做8位定時(shí)器用,因?yàn)榇藭r(shí)的外部引腳T0已為定時(shí)器/計(jì)數(shù)器TLO所占用。這時(shí)它占用了定時(shí)器/計(jì)數(shù)器T1的啟動(dòng)/停止控制位TRl、計(jì)數(shù)溢出標(biāo)志位TFl.及T1中斷矢量(地址為001BH)。

      T0設(shè)為方式3后,定時(shí)器/計(jì)數(shù)器T1只可選方式O、1或2。由于此時(shí)計(jì)數(shù)溢出標(biāo)志位TFI.及T1中斷矢量(地址為001BH)已被TH0所占用,所以T1僅能作為波特率發(fā)生器或其他不用中斷的地方。

      3.訪問(wèn)片內(nèi)RAM低128字節(jié)使用哪些尋址方式?訪問(wèn)片內(nèi)RAM高128字節(jié)使用什么尋址方式?訪問(wèn)SFR使用什么尋址方式?

      答: 訪問(wèn)片內(nèi)RAM低128字節(jié)使用直接尋址,寄存器間接尋址,位尋址;訪問(wèn)片內(nèi)RAM高128字節(jié)使用寄存器間接尋址;訪問(wèn)SFR使用直接尋址,位尋址。

      4.訪問(wèn)片外RAM使用什么尋址方式?

      答: 訪問(wèn)片外RAM使用寄存器間接尋址

      5.訪問(wèn)程序存儲(chǔ)器使用什么尋址方式?指令跳轉(zhuǎn)使用什么尋址方式?

      答: 訪問(wèn)程序存儲(chǔ)器使用指令絕對(duì)尋址,指令相對(duì)尋址。指令跳轉(zhuǎn)使用指令絕對(duì)尋址,指令相對(duì)尋址。

      6.分析下面指令是否正確,并說(shuō)明理由。

      MOV R3,R7 錯(cuò),兩個(gè)操作數(shù)不能同時(shí)為工作寄存器

      MOV B,@R2 對(duì)

      DEC DPTR 錯(cuò),不存在

      MOV 20H.8,F(xiàn)0 錯(cuò),位傳送指令必須用C

      PUSH DPTR

      CPL 36H 錯(cuò),不存在

      MOV PC,#0800H 錯(cuò),PC不能訪問(wèn)

      7.分析下面各組指令,區(qū)分它們的不同之處。

      MOV A,30H 與 MOV A,#30H

      前者表示:(30H)→A 后者表示:30H→A

      MOV A,R0 與 MOV A,@R0

      前者表示:(R0)→A 后者表示:((R0))→A

      MOV A,@R1 與 MOVX A,@R1

      前者表示:在片內(nèi)數(shù)據(jù)存儲(chǔ)器((R1))→A

      后者表示:在片外數(shù)據(jù)存儲(chǔ)器((R1))→A

      MOVX A,@R0 與 MOVX A,@DPTR

      前者R0表示8位地址 后者DPTR表示16位地址

      MOVX A,@DPTR 與 MOVC A,@A+DPTR

      前者表示:((DPTR))→A 后者表示:((DPTR)+(A))→A

      8.在MCS-51單片機(jī)的片內(nèi)RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。請(qǐng)說(shuō)明下面各是什么指令和尋址方式,以及每條指令執(zhí)行后目的操作數(shù)的結(jié)果。

      MOV A,40H ;數(shù)據(jù)傳送,直接尋址,(A)=48H

      MOV R0,A ;數(shù)據(jù)傳送,寄存器尋址,(R0)=48H

      MOV P1,#0FH ;數(shù)據(jù)傳送,立即數(shù)尋址,(P1)=0FH

      MOV @R0,30H ;數(shù)據(jù)傳送,直接尋址,(48H)=38H

      MOV DPTR,#1234H ;數(shù)據(jù)傳送,立即數(shù)尋址,(DPTR)=1234H

      MOV 40H,30H ;數(shù)據(jù)傳送,直接尋址,(40H)=38H

      MOV R0,38H ;數(shù)據(jù)傳送,直接尋址,(R0)=40H

      MOV P0,R0 ;數(shù)據(jù)傳送,直接尋址,(P0)=40H

      MOV 28H,#30H ;數(shù)據(jù)傳送,立即數(shù)尋址,(28H)=30H

      MOV A,@R0 ;數(shù)據(jù)傳送,寄存器間接尋址,(A)=38H

      9.已知(A)=23H,(R1)=65H,(DPTR)=1FECH,片內(nèi)RAM(65H)=70H, ROM(205CH)=64H。試分析下列各條指令執(zhí)行后目標(biāo)操作數(shù)的內(nèi)容。

      MOV A,@R1 ;(A)=70H

      MOVX @DPTR,A ;(1FECH)=70H

      MOVC A,@A+DPTR ;(A)=64H

      XCHD A,@R1 ;(A)=65H

      10.已知(A)=76H,(R1)=76H,(B)=4,CY=1,片內(nèi)RAM(76H)=0D0H,(80H)=6CH。試分析下列各條指令執(zhí)行后目標(biāo)操作數(shù)的內(nèi)容和相應(yīng)標(biāo)志位的值。

      ADD A,@R1 ;(A)=46H,CY=1

      SUBB A,#75H ;(A)=0D0H,CY=1

      MUL AB ;(A)=40H,(B)=03H

      DIV AB ;(A)=15H,(B)=01H

      ANL 76H,#76H ;(76H)=50H

      ORL A,#0FH ;(A)=1FH

      XRL 80H,A ;(80H)=73H

      11.已知(A)=83H,(R0)=17H,(17H)=34H,試分析當(dāng)執(zhí)行完下面程序段后累加器A、R0、17H單元的內(nèi)容。

      ANL A,#17H ;(A)=03H

      ORL 17H,A ;(17H)=37H

      XRL A,@R0 ;(A)=34H

      CPL A ;(A)=0CBH

      12.閱讀下面程序段,說(shuō)明該段程序的功能。

      MOV R0,#40H

      MOV R7,#10

      CLR A

      LOOP:

      MOV @R0,A

      INC A

      INC R0

      DJNZ R7,LOOP

      SJMP $

      答:把0,1,2,3……數(shù)列送到40H開(kāi)始的10個(gè)單元中。

      13.閱讀下面程序段,說(shuō)明該段程序的功能。

      MOV R0,#40H

      MOV A,R0

      INC R0

      ADD A,@R0

      MOV 43H,A

      CLR A

      ADDC A,#0

      MOV 42H,A

      SJMP $

      答:40H加41H單元的數(shù),結(jié)果送42H:43H

      14.閱讀下面程序段,說(shuō)明該段程序的功能。

      MOV A,30H

      MOV B,#5

      MUL AB

      ADD A,31H

      MOV 33H,A

      CLR A

      ADDC A,B

      MOV 32H,A

      SJMP $

      答:(30H)×5+(31H)→(32H:33H)

      22.編寫程序,把片外RAM從2000H開(kāi)始存放的16字節(jié)數(shù)據(jù),傳送到片內(nèi)從30H開(kāi)始的單元中。

      MOV DPTR,#2000H

      MOV R0,#30H

      MOV R1,#0

      NEXT:

      MOVX A,@DPTR

      MOV @R0,A

      INC DPTR

      INC R0

      INC R1

      CINE R1,#16H,NEXT

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多