日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> 單片機的一些面試題整理

單片機的一些面試題整理

關(guān)鍵字:單片機 面試題 作者:admin 來源:不詳 發(fā)布時間:2018-05-18  瀏覽:12

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

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

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

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

20、是非題:工作寄存器組是通過置位PSW中的RS0和RS1來切換的。T

21、是非題:特殊功能寄存器可以當作普通的RAM單元來使用。F

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

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

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

25、是非題:DPTR只能當作一個16位的特殊功能寄存器來使用。F

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

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

29、是非題:單片機89C51復(fù)位后,其PC指針初始化為0000H,使單片機從該地址單元開始執(zhí)行程序。T

31、是非題:單片機系統(tǒng)上電后,其內(nèi)部RAM的值是不確定的。T

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

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

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

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

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

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

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

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

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

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

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

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

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

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

●中斷總允許位EA=1,即CPU開中斷;

●申請中斷的中斷源的中斷允許位為1,即中斷沒有屏蔽;

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

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

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

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

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

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

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

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

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

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

101、MCS-51 單片機有片內(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。請分析下面程序執(zhí)行后各寄存器的內(nèi)容。 (A)=___64H___,(DPTR)=__2356H____。

MOV A,#1

MOV DPTR,#2456H

MOVC A,@A+DPTR

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

A、8 位計數(shù)器結(jié)構(gòu) B、16 位計數(shù)器結(jié)構(gòu) C、13 位計數(shù)器結(jié)構(gòu) D、2 個8 位計數(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 單片機的外部中斷0 中斷入口地址為( C )。

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

尋址方式

尋址空間

立即數(shù)尋址

程序存儲器ROM

直接尋址

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

寄存器尋址

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

寄存器間接尋址

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

變址尋址

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

相對尋址

程序存儲器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單片機內(nèi)部包含哪些主要功能部件?它們的作用是什么?

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

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

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

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

暫存和緩沖、標志位等。

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

,它是定時器;當它對外部事件進行計數(shù)時,它是計數(shù)器。

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

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

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

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

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

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

2-7 單片機復(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單片機的21個特殊功能寄存器中,哪些具有位尋址能力?

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

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

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

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

2-15 什么時候需要復(fù)位操作?對復(fù)位信號有何要求?

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

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

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

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

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

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

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

址、基址加變址尋址、相對尋址和位尋址等七種。

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

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

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

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

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

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

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

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

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

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

3-3 訪問外部數(shù)據(jù)存儲器和程序存儲器可以用哪些指令來實現(xiàn)?舉例說明。

答:訪問外部數(shù)據(jù)存儲器可以用以下指令實現(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地址中

訪問程序存儲器可以用以下指令實現(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 加法和減法指令影響哪些標志位?怎么影響的?

答:在帶進位的加法運算中,會影響進位位Cy,最終要將A中的值和其后面的值以及進位

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

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

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

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

而位 7 沒有借位,或位 7 有借位而位 6 沒有借位,則溢出標志 OV 置“1”,否則清“0”。

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

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

答: MOV A, 30H

MOV DPTR, #1000H

MOV @DPTR, A

MOV A, 31H

MOV DPTR, #1000H

MOV @DPTR, A

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

答: MOV DPTR, #0040H

MOV A, @DPTR

MOV 0100H, A

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

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

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

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

中斷標志的撤消分為:

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

2)外部中斷請求的撤消

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

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

請求信號引腳從低電平強制改變?yōu)楦唠娖健?/p>

3)串行口中斷請求的撤消

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

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

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

CLR TI ;清TI標志位

CLR RI ;清RI標志位

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

中斷源 中斷矢量

外部中斷0 0003H

定時器T0中斷 000BH

外部中斷1 0013H

定時器T1中斷 001BH

串行口中斷 0023H

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

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

設(shè)置中斷源的中斷級別?否則,請簡述不可能的理由。

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

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

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

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

INT1,串行口中斷

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

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

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

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

器T1中斷、串行口中斷。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

【2一19】80C51單片機的4個I/O口在使用上有哪些分工和特點?

【答】4個I/O口的分工和特點如下:

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

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

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

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

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

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

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

替代輸入功能:

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

P3.2一一IN'I、0,外部中斷O的請求。

P3.3一一INTl,外部中斷1的請求。

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

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

替代輸出功能:

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

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

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

【3—4】簡述80C51的指令尋址方式,并舉例說明。

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

80C5l系列單片機的指令系統(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ù)。寄存器尋址方式中,用符號名稱來表示寄存器。

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

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

是操作數(shù)。可以看出,在寄存器尋址方式中,寄存器中存放的是操作數(shù);而在寄存器間接尋址

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

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

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

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

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

在相對轉(zhuǎn)移指令中,給出地址偏移量(在80C51系列單片機的指令系統(tǒng)中,以“rel”表示,為8位帶符號數(shù)),把PC的當前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址。而PC的當前值是指執(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。當前PC值減去128后即為轉(zhuǎn)移地址

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

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

⑦位尋址。80C51系列單片機有位處理功能,可以對數(shù)據(jù)位進行操作,因此,就有相應(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,請寫出執(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。請?zhí)顚懜鳁l指令單獨執(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,請寫出執(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】已知兩個十進制數(shù)分別在內(nèi)部RAM中的40 H單元和50H單元開始存放(低位在前),其字節(jié)長度存放在內(nèi)部RAM的30 H單元中。編程實現(xiàn)兩個十進制數(shù)求和,求和結(jié)果存放在40 H開始的單元中。

ORG 0000H

SJMP MAIN

ORG 0030H

MAIN:

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

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

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

CLR C

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

ADDC A,@R0 ;帶進位加

DA A ;二一十進制數(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口引腳輸出為:

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

【答】程序如下:

ORG 0000H

SJMP BEGIN

ORG 0030H

BEGIN: MOV DPTR,#8100H

MOVX A,@DPTR

MOV R2,A

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

SJMP UNSIGNED ;無符號數(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的補碼),P1口引腳輸出0FH。

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

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

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

在80C51單片機中有高、低兩個中斷優(yōu)先級,通過中斷優(yōu)先級寄存器IP來設(shè)定。

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

其排列如下:

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

外部中斷0 最高

定時器T0中斷

外部中斷1

定時器T1中斷

串行口中斷

定時器T2中斷 最低

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

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

·中斷源申請中斷;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4.訪問片外RAM使用什么尋址方式?

答: 訪問片外RAM使用寄存器間接尋址

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

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

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

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

MOV B,@R2 對

DEC DPTR 錯,不存在

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

PUSH DPTR

CPL 36H 錯,不存在

MOV PC,#0800H 錯,PC不能訪問

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ù)存儲器((R1))→A

后者表示:在片外數(shù)據(jù)存儲器((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單片機的片內(nèi)RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。請說明下面各是什么指令和尋址方式,以及每條指令執(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í)行后目標操作數(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í)行后目標操作數(shù)的內(nèi)容和相應(yīng)標志位的值。

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,試分析當執(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.閱讀下面程序段,說明該段程序的功能。

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開始的10個單元中。

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

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.閱讀下面程序段,說明該段程序的功能。

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開始存放的16字節(jié)數(shù)據(jù),傳送到片內(nèi)從30H開始的單元中。

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

編輯:admin  最后修改時間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

抚松县| 太谷县| 营口市| 连州市| 噶尔县| 德阳市| 聂荣县| 老河口市| 凤冈县| 凤冈县| 招远市| 邳州市| 永吉县| 邵东县| 天气| 霍山县| 崇礼县| 龙山县| 策勒县| 西乌珠穆沁旗| 安泽县| 光泽县| 琼海市| 措勤县| 灵石县| 太保市| 科技| 巴林左旗| 遂川县| 庆元县| 临朐县| 建昌县| 津南区| 禄丰县| 云安县| 江山市| 稷山县| 水富县| 鲁山县| 台中市| 仁化县|