tft每日頭條

 > 圖文

 > 單片機測試題及答案

單片機測試題及答案

圖文 更新时间:2024-09-11 03:09:10

單片機測試題及答案?C51單片機習題及答案第一章,今天小編就來說說關于單片機測試題及答案?下面更多詳細答案一起來看看吧!

單片機測試題及答案(單片機試題及答案)1

單片機測試題及答案

C51單片機習題及答案

第一章

1-1選擇

1.計算機中最常用的字符信息編碼是( A )

A ASCII B BCD碼 C 餘3碼 D 循環碼

2.要MCS-51系統中,若晶振頻率屢8MHz,一個機器周期等于(A ) μs

A 1.5 B 3 C 1 D 0.5

3.MCS-51的時鐘最高頻率是 ( A ).

A 12MHz B 6 MHz C 8 MHz D 10 MHz

4. 以下不是構成的控制器部件(D ):

A 程序計數器、 B指令寄存器、 C指令譯碼器、 D存儲器

5. 以下不是構成單片機的部件( D )

A 微處理器(CPU)、B存儲器 C接口适配器(I\O接口電路) D 打印機

6. 下列不是單片機總線是( D )

A 地址總線 B 控制總線 C 數據總線 D 輸出總線

7.-49D的二進制補碼為.( B )

A 11101111 B 11101101 C 0001000 D 11101100

8.十進制29的二進制表示為原碼( C )

A 11100010 B 10101111 C 00011101 D 00001111

9. 十進制0.625轉換成二進制數是( A )

A 0.101 B 0.111 C 0.110 D 0.100

10 選出不是計算機中常作的碼制是( D )

A 原碼 B 反碼 C補碼 D ASCII

1-2填空

1.計算機中常作的碼制有原碼、反碼和補碼

2.十進制29的二進制表示為00011101

3.十進制數-29的8位補碼表示為.11100011

4.單片微型機CPU存儲器I\O接口三部分組成.

5.若不使用MCS-51片内存器引腳EA必須接地.

6.輸入輸出設備是計算機與外部世界交換信息的載體.

7.十進制數-47用8位二進制補碼表示為.11010001

8.-49D的二進制補碼為.11101101

9.計算機中最常用的字符信息編碼是ASCII

10.計算機中的數稱為機器數,它的實際值叫真值

1-3判斷

1.我們所說的計算機實質上是計算機的硬件系統與軟件系統的總稱。 ( √ )

2.MCS-51上電複位時,SBUF=00H。 ( × )。 SBUF不定。

3.使用可編程接口必須處始化。 ( √ )。

4.8155的複位引腳可與89C51的複位引腳直接相連。( √ )

5.MCS-51是微處理器。( × )不是。

6.MCS-51系統可以沒有複位電路。( × )不可以。複位是單片機的初始化操作。

7.要MCS-51系統中,一個機器周期等于1.5μs。( × )若晶振頻率屢8MHz,才可能為1.5μs

8.計算機中常作的碼制有原碼、反碼和補碼( √ )

9.若不使用MCS-51片内存器引腳EA必須接地. ( √ )

10.十進制數-29的8位補碼表示為.11100010( × )

1-4簡答

1.何謂單片機?單片機與一般微型計算機相比,具有哪些特點?

答:單片機是在一塊集成電路上把CPU、存儲器、定時器/計數器及多種形式的I/O接口集成在一起而構成的微型計算機。它與通用微型計算機相比,具有如下特點:

(1) 單片機的程序存儲器和數據存儲器是分工的,前者為ROM,後者為RAM;

(2) 采用面向控制的指令系統,控制功能強;

(3) 多樣化的I/O接口,多功能的I/O引腳;

(4) 産品系列齊全,功能擴展性強;

(5) 功能是通用的,像一般微處理機那樣可廣泛地應用在各個方面。

2 單片機主要應用在哪些領域?

答:單片機的應用範圍很廣泛,諸如智能化家用電器、儀器儀表、工業控制、計算機外部設備、智能機器人、電信及導航等方面。

3 在各種系列的單片機中,片内ROM的配置有幾種形式?用戶應根據什麼原則來選用?

答:各種類型的單片機片内程序存儲器的配置形式主要有以下幾種形式:

(1) (Msak)ROM型單片機:内部具有工廠 編程的ROM,ROM中的程序隻能由單片機制造廠家用 工藝固化,用戶不能修改ROM中的程序。例如:MCS—51系列的8051。

ROM單片機适合于大批量生産的産品。用戶可委托芯片生産廠家采用 方法将程序制作在芯片的ROM。

(2) EPROM型單片機:内部具有紫外線可擦除電可編程的隻讀存儲器,用戶可以自行将程序寫入到芯片内部的EPROM中,也可以将EPROM中的信息全部擦除。擦去信息的芯片還可以再次寫入新的程序,允許反複改寫。例如:MCS—51系列的8751。

EPROM型單片機使用比較方便,但價格較高,适合于研制産品或結構要求簡單的小批量産品。

(3) 無ROM型單片機:内部沒有程序存儲器,它必須連接程序存儲器才能組成完整的應用系統。例如:MCS—51系列的8031。

無ROM型單片機價格低廉,用戶可根據程序的大小來選擇外接程序存儲器的容量。這種單片機擴展靈活,但系統結構較複雜。

(4) E2ROM型單片機:内部具有電可擦除叫可編程的程序存儲器,使用更為方便。例如:MCS—51的派生型89C51單片機。

(5) OTP(One Time Programmable)ROM單片機:内部具有一次可編程的程序存儲器,用戶可以在編程器上将程序寫入片内程序存儲器中,程序寫入後不能再改寫。例如:NEC公司的μPD75P308GF—3B9。這種芯片的價格也較低。

4.控制器的組成和作用

答:控制器:由程序計數器、指令寄存器、指令譯碼器、時序發生器和操作控制器等組成。用來協調指揮計算機系統的操作。

5. 微型計算機組成

答:微型計算機組成由微處理器(CPU)、存儲器、接口适配器(I\O接口電路)及輸入/輸出設備組成。通過系統總線将它們連接起來,以完成某些特定的運算與控制。

6.什麼叫尋址方式

答:尋址方式:尋址方式就是尋找指令中操作數或操作數所在地址的方式。也就是如何找到存放操作數的地址,把操作數提取出來的方法。

7. 什麼叫堆棧:

答:堆棧是在片内RAM中專門開辟出來的一個區域,數據的存取是以"後進先出"的結構方式處理的。實質上,堆棧就是一個按照"後進先出"原則組織的一段内存區域。

8.什麼是彙編語言?什麼叫指令周期?

答:彙編:彙編語言源程序在交付計算機執行之前,需要先翻譯成目标程序,這個翻譯過程叫彙編。

指令周期:指執行一條指令所占用的全部時間。通常一個指令周期含1~4個機器周期。

9.什麼是進位和溢出

答:兩數運算的結果若沒有超出字長的表示範圍,則由此産生的進位是自然進位;若兩數的運算結果超出了字長的表示範圍(即結果不合理),則稱為溢出。例如将正數3FH和負數D0H相加,其結果不會超出8位字長的表示範圍,所以其結果10FH中的進位是正常進位(也就是模)。但是,若正數3FH與正數70H相加,其結果為AFH,最高位為"1",成了負數的含義,這就不合理了,這種情況稱為溢出。

第二章

2-1填空

1..微處器由寄存器、控制器、運算器三部分組成..

2.當MCS-51引腳ALE信号有效時,表示從Po口穩定地送出了低8位地址.

3.MCS-51的堆棧是軟件填寫堆棧指針臨時在_片内數據存儲器内開辟的區域.

4.MCS-51中凡字節地址能被_8整除的特殊功能寄存器均能尋址.

5.MCS-51有4組工作寄存器,它們的地址範圍是00H~1FH.

6.MCS-51片内20H~2FH範圍内的數據存儲器,既可以字節尋址又可以位尋址.

7.計算機的系統總線有地址總線、控制總線和數據總線。

8.80C51含4KB ROM。

9.80C51在物理有4個獨立的存儲空間。

10.一個機器周期等于6個狀态周期,振蕩脈沖2分頻後産生的時钏信号的周期定義為狀态 周期。

2-2判斷

1.我們所說的計算機實質上是計算機的硬件系統與軟件系統的總稱。 ( √ )

2.MCS-51的相對轉移指令最大負跳距是127B。 ( × )

3.MCS-51的程序存儲器隻是用來存放程序的。 ( × ) 存放程序和表格常數。

4.MCS-51的時鐘最高頻率是18MHz. ( × ). 12MHz。

5.使用可編程接口必須處始化。 ( √ )。

6.當MCS-51上電複位時,堆棧指針SP=00H。 ( × )。 SP=07H

7.MCS-51外擴I/O口與外RAM是統一編址的。 ( √ )。

8.使用8751且 =1時,仍可外擴64KB的程序存儲器。( × )60KB。

9.8155的複位引腳可與89C51的複位引腳直接相連。( √ )

10.MCS-51是微處理器。( × )不是。

11.MCS-51的串行接口是全雙工的。( √ )

12.PC存放的是當前執行的指令。( × )是将要執行的下一條指令的地址。

13.MCS-51的特殊功能寄存器分布在60H~80H地址範圍内。(×)80H~FFH。

14.MCS-51系統可以沒有複位電路。( × )不可以。複位是單片機的初始化操作。

15.要MCS-51系統中,一個機器周期等于1.5μs。( ×)若晶振頻率屢8MHz,才可能為1.5μs

2-3選擇

1.要想測理INT0引腳上的一個正脈沖寬度,那麼特殊功能寄存器TMOD的内容應為( B ).

(A)09H (B)87 H (C)00H (D)80H

2.PSW=18H時,則當前工作寄存器是( D )

(A)0組  (B)1組  (C)2組    (D)3組

3.控制串行口工作方式的寄存器是( C  )

(A)TCON (B)PCON (C)SCON (D)TMOD

4.P1口的每一位能驅動(  B )

(A)2個TTL低電平負載有   (B)4個TTL低電平負載

(C)8個TTL低電平負載有  (D)10個TTL低電平負載

5.MCS-51的中斷允許觸發器内容為83H,CPU将響應的中斷請求是( B )

(A) T1, (B)T0,T1 (C)T1,串行接口 (D) ,T0

2-4問答題

1 8051單片機内部包含哪些主要邏輯功能部件?

答:8051單片機是個完整的單片微型計算機。芯片内部包括下列硬件資源:

(1) 8位CPU;

(2) 4KB的片内程序存儲器ROM。可尋址64KB程序存儲器和64KB外部數據存儲器;

(3) 128B内部 RAM;

(4) 21個 SFR;

(5) 4個8位并行I/O口(共32位I/O線);

(6) 一個全雙工的異步串行口;

(7) 兩個16位定時器/計數器;

(8) 5個中斷源,兩個中斷優先級;

(9) 内部時鐘發生器。

2 EA/VPP引腳有何功用?8031的引腳應如何處理?為什麼?

答:EA/VPP是雙功能引腳,功能如下:

(1)

EA接高電平時,在低4KB程序地址空間(0000H~0FFFH),CPU執行片内程序存儲器的指令,當程序地址超出低4KB空間(1000H~FFFFH)時,CPU将自動執行片外程序存儲器的指令。

(2)

EA接低電平時,CPU隻能執行外部程序存儲器的指令。

8031單片機内部無ROM,必須外接程序存儲器。因此,8031的EA引腳必須接低電平。

在對8751單片機内部的 EPROM編程時,此引腳VPP外接 12V電壓,用于固化EPROM程序。

3 8051單片機存儲器的組織結構是怎樣的?

答:8051存儲器包括程序存儲器和數據存儲器,從邏輯結構上看,可以分為三個不同的空間:

(1) 64KB的程序存儲器地址空間:0000H~FFFFH,其中0000H~0FFFH為片内4KB的ROM地址空間,1000H~FFFFH為外部ROM地址空間;

(2) 256B的内部數據存儲器地址空間,00H~FFH,分為兩大部分,其中00H~7FH(共128B單元)為内部靜态RAM的地址空間,80H~FFH為特殊功能寄存器的地址空間,21個特殊功能寄存器離散地分布在這個區域;

(3) 64KB的外部數據存儲器地址空間:0000H~FFFFH,包括擴展I/O地址空間。

4.片内數據存儲器分為哪幾個性質和用途不同的區域?

答:8051内部128B的數據RAM區,包括有工作寄存器組區、可直接位尋址區和數據緩沖區。各區域的特性如下:

(1) 00H~1FH為工作寄存器組區,共分4組,每組占用8個RAM字節單元,每個單元作為一個工作寄存器,每組的8個單元分别定義為8個工作寄存器R0~R7。當前工作寄存器組的選擇是由程序狀态字PSW的RS1、RS0兩位來确定。如果實際應用中并不需要使用工作寄存器或不需要使用4組工作寄存器,不使用的工作寄存器組的區域仍然可作為一般數據緩沖區使用,用直接尋址或用Ri的寄存器間接尋址來訪問。

(2) 20H~2FH為可位尋址區域,這16個字節的每一位都有一個地址,編址為00H~7FH。

當然,位尋址區也可以用作字節尋址的一般數據緩沖區使用。

(3)30H~7FH為堆棧、數據緩沖區。

5 單片機有哪幾個特殊功能寄存器?各在單片機的哪些功能部件中?

答:8051單片機内部有21個特殊功能寄存器,在物理上是分散在片内各功能部件中,在數學上把它們組織在内部數據存儲器地址空間80H~FFH中,以便能使用統一的直接尋址方式來訪問。這些特殊功能寄存器頒在以下各個功能部件中:

(1) CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH兩個8位寄存器組成);

(2) 中斷系統:IP、IE;

(3) 定時器/計數器:TMOD、TCOM、TL0、TH0、TL1、TH1;

(4) 并行I/O口:P0、P1、P2、P3;

(5) 串行口:SCON、SBUF、PCON。

6 PC是什麼寄存器?是否屬于特殊功能寄存器?它有什麼作用?

答:PC是16位程序計數器(Program Counter),它不屬于特殊功能寄存器範疇,程序員不以像訪問特殊功能寄存器那樣來訪問PC。PC是專門用于在CPU取指令期間尋址程序存儲器。PC總是保存着下一條要執行的指令的16位地址。通常程序是順序執行的,在一般情況下,當取出一個指令(更确切地說為一個指令字節)字節後,PC自動加1。如果在執行轉移指令、子程序調用/返回指令或中斷時,要把轉向的地址賦給PC。

7 DPTR是什麼寄存器?它由哪些特殊功能寄存器組成?它的主要作用是什麼?

答:DPTR是16位數據指針寄存器,它由兩個8位特殊功能寄存器DPL(數據指針低8位)和DPH(數據指針高8位)組成,DPTR用于保存16位地址,作間址寄存器用,可尋址外部數據存儲器,也可尋址程序存儲器。

第三章

3-1選擇題

1、MOVX A,@DPTR指令中源操作數的尋址方式是(B)

(A) 寄存器尋址 (B)寄存器間接尋址 (C)直接尋址 (D)立即尋址

1. ORG 0003H

LJMP 2000H

ORG 000BH

LJMP 3000H 當CPU響應外部中斷0後,PC的值是(B)

(A) 0003H (B)2000H (C)000BH (D)3000H

2. 執行PUSH ACC指令,MCS-51完成的操作是(A)

(A)

SP 1 SP (ACC) (SP) (B)(ACC) (SP)SP-1 SP

(B)

(C)SP-1 SP (ACC) (SP) (D)(ACC) (SP)SP 1 SP

4、 LCALL指令操作碼地址是2000H,執行完相子程序返回指令後,PC=(D)

(C) 2000H (B)2001H (C)2002H (D)2003H

5、51執行完MOV A,#08H後,PSW的一位被置位(D)

(A)(A)C (B)F0 (C)OV (D)P

6、下面條指令将MCS-51的工作寄存器置成3區(B)

(A)MOV PSW,#13H (B)MOV PSW,#18H

(B) SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.4

7、執行MOVX A,@DPTR指令時,MCS-51産生的控制信号是(C)

(D) /PSEN (B)ALE (C)/RD (D)/WR

8、MOV C,#00H的尋址方式是(A)

(A) 位尋址 (B)直接尋址 (C)立即尋址 (D)寄存器尋址

9、ORG 0000H

AJMP 0040H

ORG 0040H

MOV SP,#00H當執行完左邊的程序後,PC的值是(C)

(A) 0040H (B)0041H (C)0042H (D)0043H

10、對程序存儲器的讀操作,隻能使用(D)

(A) MOV指令 (B)PUSH指令 (C)MOVX指令(D)MOVC指令

3-2判斷題

3. MCS-51的相對轉移指令最大負跳距是127B。(錯)128B

4. 當MCS-51上電複位時,堆棧指針SP=00H。(SP=07H)( 錯 )

5. 調用子程序指令(如:CALL)及返回指令(如:RET)與堆棧有關但與PC無關。(錯)子序的轉返與PC也有關(PC入棧與出棧)

6. MOV @R1,#80H (對)

5、INC DPTR (對)

6、CLR R0 (錯)指令系統中沒有。

7、MOV @R1,#80H (對)

8、ANL R1,#0FH (錯)

9、ADDC A,C (錯)

10、XOR P1,#31H (對)

3-3簡答題

1 簡述MCS-51彙編語言指令格式。

答:MCS-51彙編語言格式如下:

[标号:]操作碼助記符[操作數1] [操作數2] [操作數3][注釋]标号是用戶定義的符号,其值代表這條指令的地址。操作碼助記符是指令系統規定的代表特定指令功能的英文縮寫符。每條指令都有操作碼記符。指令的操作數最多有3個,也有無操作數的指令。注釋字段是用戶對程序的說明,便于對程序的閱讀和理解。

簡答

2 MCS-51指令系統主要有哪幾種尋址方式?試舉例說明。

答:MCS-51指令操作數主要有以下7種尋址方式:

尋址方式 舉例

立即尋址 MOV A,#16

直接尋址 MOV 20H,P1

寄存器尋址 MOV A,R0

寄存器間接尋址 MOVX A, @DPTR

變址尋址 MOVC A, @A DPRT

相對尋址 SJMP LOOP

位尋址 ANL C,70H

3對訪問内部RAM和外部RAM,各應采用哪些尋址方式?

答:對内部RAM的尋址方式有直接尋址、寄存器間接尋址和可對位尋址的位尋址。對外部RAM的尋址方式隻能用寄存器R0/R1(8位地址)或DPTR(16位地址)間接尋址。

4設内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,問執行下列指令後,各有關存儲單元(即R0,R1,A,B,P1,30H,40H及5AH單元)的内容如何?

MOV R0,#30H ;R0=30H

MOV A,@R0 ;A=5AH

MOV R1,A ;R1=5AH

MOV B,R1 ;B=5AH

MOV @R1,P1 ;(5AH)=7FH

MOV A,P1 ;A=7FH

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

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

解:每一條指令執行後的結果如注釋字段所标。最後結果為:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。

5 SJMP(短轉移)指令和AJMP(絕對轉移)指令的主要區别。

前者提供了以SJMP的下一條指令的起始地址為中心的256字節範圍的轉移(-128~ 127),後者的轉移目标地址必須在與AJMP的下一條指令的第一字節相同的2KB區的程序儲存器中。短轉移方便了可重定位編碼。SJMP方便了PC可重定位編碼,但轉移範圍小。而ASJMP轉移範圍大,但存在跳區的限制,AJMP指令隻能位于2KB區的最後2個字節處時,才可跳到下一個區去。因此用AJMP指令來代替SJMP指令是有條件的,也就是目标地址必須與它下面的指令存放地址在同一個2KB區域内。

3-4編程題

1 編程将片内RAM30H單元開始的15B的數據傳送到片外RAM3000H開始的單元中去。

 解:STRAT:MOV R0,#30H

MOV R7,#0FH

MOV DPTR,#3000H

LOOP: MOV A,@R0

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R7,LOOP

RET

2 片内RAM30H開始的單元中有10B的二進制數,請編程求它們之和(和<256 ).

   解 ADDIO:MOV R0,30H

MOV R7,#9

MOV A,@R0

LOOP: INC R0

ADD A,@R0

DJNZ R7,LOOP

MOV 30H,A

RET

3 編一個程序,将累加器中的一個字符從串行接口發送出去.

   解 SOUT:MOV SCON,#40H ;設置串行接口為工作方式

       MOV TMOD,#20H ;定時器T1工作于模式2

MOV TL1,#0E8H; ;設置波特率為1200b/s

MOV TH1,#0E8H

SETB TR1

MOV SBUF,A

JNB T1,$

CLB T1

RET

4 用查表法編一子程序,将R3中的BCD碼轉換成ASCII碼.

解  MAIN: MOV A,R3 ;待轉換的數送A

MOV DPTR,#TAR ;表首地址送DPTR

MOVC A,@A DPTR ;查ASCII碼表

MOV R3,A ;查表結果送R3

RET

TAR DB 30H,31H,32H,33H,34H

DB 35H,36H,37H,38H,39H

5 片内RAM40H開始的單元内有10B二進制數,編程找出其中最大值并存于50H單元中.

解 START: MOV R0,#40H ;數據塊首地址送R0

MOV R7,#09H ;比較次數送R7

         MOV A,@R0 ;取數送A

   LOOP: INC R0

MOV 30H,@R0 ;取數送30H

CJNE A,30H,NEHT ;(A)與(30H)相比

NEXT: JNC BIE1 (A)≥(30H)轉BIR1

MOV A,30H ;(A)<(30H),大數送A

   BIE1: DJNZ R7,LOOP ;比較次數減1,不為0,繼續比較

         MOV 50H,A ;比較結束,大數送50H

         RET

6 編一子程序,從串行接口接受一個字符.

解: START: MOV TMOD,#20H ;定時器T1工作于模式2

MOV TH1,#0E8H ;設置波特率為1 200b/s

MOV TL1,#0E8H

SETB TR1 ;啟動T1

MOV SCON,#50H ;串行接口工作于方式1,充許接收

L1: JNB RI,L1 ;等待接收數據,末接收到數據,繼續等待

CLR RI ;接收到數據,清RI

MOV A,SBUF ;接收到數據送A

RET

7 利用調子程序的方法,進行兩個無符号數相加。請編主程序及子程序。

解 用R0和R1作數據指針,R0指向第一個加數,并兼作“和”的指針,R1指向另一個加數,字節存放到R2中作計數初值。

  主程序:

    JAFA: MOV R0,#20H ;指向加數最低字節

        MOV R1,#29H ;指向另一加數最低字節

        MOV R2,#04H ;字節數作計數值

        ACALL JASUB ;調用加法子程序

        AJMP $

RTE

多字節加法子程序:

JASUB: CLR C

JASUB1: MOV A,@R0 ;取出加數的一個字節(4B無符号數加數)

    ADDC A,@R1 ;加上另一數的一個字節 

    MOV @R0,A ;保存和數

    INC R0 ;指向加數的高位

    INC R1 ;指向另一加數的高位

    DJNZ R2,JASUB1 ;全部加完了嗎?

    RET

8 若圖數據塊是有符号數,求正數個數,編程并注釋。

解 ORG 0030H

START: MOV 20H,#00H ;計正數個數計數器

       MOV DPTR,#0000H ;

MOVX A,@DPTR ;數據塊長度→10H

MOV 10H,A

INC DPTR ;DPTR指向第一個數的地址

   TWO: MOVX A,@DPTR ;取數→A

JB ACC.7,ONE ;是負數轉ONE,準備取下一個數

INC 20H ;是正數,正數計數器加1

   ONE: INC DPTR ;地址指針加1

      DJNZ 10H,TW ;數據塊長度減1不等于0,繼續尋找

       RET

9 編制一個循環閃爍燈的程序。有8個發光二極管,每次其中某個燈閃爍點亮10次後,轉到下一個閃爍10次,循環不止。畫出電路圖。

P1.0

8013

P1.7

D0 Q0

74LS240

D7 Q7

本程序的硬件連接如圖所示。當P1.0輸出高電平時,LED燈亮,否則不亮。

其程序如下:

MOV A,#01H ;燈亮初值

SHIFT: LCAIL FLASH ;調閃亮10次子程序

RR A ;右移一位

SJMP SHIFT ;循環

FLASH: MOV R2,#0AH 閃爍10次計數

FLASH1; MOV P1,A ;點亮

LCALL DELAY ;延時

MOV P1,#00H ;熄滅

LCALL DELAY ;延時

DJNZ R2,FLASH1 ;循環

RET

第四章

4-1填空

1.MCS-51的Po口作為輸出端口時,每位能驅動 8 個SL型TTL負載.

2.MCS-51有 4個并行I\O口,其中P0~P3是準雙向口,所以由輸出轉輸入時必須先寫入"1"

3.設計8031系統時,_P0、P2 口不能用作一般I\O口.

4.MCS-51串行接口有4種工作方式,這可在初始化程序中用軟件填寫特殊功能寄存器__SCON _加以選擇.

5.當使用慢速外設時,最佳的傳輸方式是 中 斷 .

6.當定時器To工作在方式3 時,要占定時器T1的TR1和TF1_兩個控制位.

7.MCS-51有 5 個中斷源,有2 個中斷優先級,優先級由軟件填寫特殊功能寄存器 IP 加以選擇..

8.用串口擴并口時,串行接口工作方式應選為方式 0 .

9.在串行通信中,有數據傳送方向單工、半雙工、全雙工三種方式.

10.外部中斷 入口地址為_ 0013H

4-2判斷

1.MCS-51的5個中斷源優先級相同。 ( × )

2.要進行多機通信,MCS-51串行接口的工作方式應為方式1。 ( × )

3.MCS-51上電複位時,SBUF=00H。 ( × )。

4.MCS-51有3個中斷源,優先級由軟件填寫特殊功能寄存器IP加以選擇.. ( × )

5.用串口擴并口時,串行接口工作方式應選為方式1. ( × )

6.外部中斷INTO 入口地址為_0013H( × )

7.MCS-51外部中斷0的入口地址是0003H。 (√ ).

8.TMOD中的GATE=1時,表示由兩個信号控制定時器的啟停。 ( √ )。

9.使用8751且 =1時,仍可外擴64KB的程序存儲器。( × )

10.PC存放的是當前執行的指令。( × )

11.MCS-51的特殊功能寄存器分布在60H~80H地址範圍内。(× )

12.MCS-51有4個并行I\O口,其中P0~P3是準雙向口,所以由輸出轉輸入時必須先寫入"0"( × )

4-3選擇

1.在中斷服務程序中,至少應有一條( D )

(A)傳送指令(B)轉移指令(C)加法指法(D)中斷返回指令

2.要使MCS-51能夠響應定時器T1中斷、串行接口中斷,它的中斷允許寄存器IE的内容應是( A )

(A)98H (B)84H (C)42 (D)22H

3.D MCS-51在響應中斷時,下列哪種操作不會發生( D ).

(A)保護現場 (B)保護PC (C)找到中斷入口 (D)保護PC轉入中斷入口

4.用MCS-51串行接口擴展并行I\O口時,串行接口工作方式應選擇( C )

(A)方式0 (B)方式1 (C)方式2 (D)方式3

5.MCS-51有中斷源( A )

(A)5個   (B)2個   (C)3個   (D)6個

6.MCS-51響應中斷時,下面哪一個條件不是必須的( )

(A)當前指令執行完畢 (B)中斷是開放的确

(C)沒有同級或高級中斷服務須 (D)必須有RET1指令

7.使用定時器T1時,有幾種工作模式( C )

(A)1種   (B)2種   (C)3種     (D)4種

8.計算機在使用中斷方式與外界交換信息時,保護現場的工作方式應該是 ( B )

(A)由CPU自動完成 (B)在中斷響應中完成

(C)應由中斷服務程序完成 (D)在主程序中完成

9.下面哪一種傳送方式适用于處理外部事件( C )

(A)DMA (B)無條件傳遞進 (C)中斷 (D)條件傳遞

1、2、4章的編程

1. 8225A控制字地址為300FH,請按:A口方式0輸入,B口方式1輸出,C口高位輸出,C口低位輸入,确定8225A控制字并編初始化程序.

解:控制字為 10010101=95H

初始化程序:MOV DPTR ,#300FH

MOV A, #95H

MOVX @DPTR, A

2. 編定一個軟件延時1S和1min的子程序.設fosc=6Hz,則一個機器周期1μs。

解:(1)1S=2US*5*100000

5*100000=250*200*10

(2) ORG 1000H

TIME: MOV R7, #10

T3: MOV R6, #200

T2: MOV R6, #250

T1: DJNZ R5, T1

DJNZ R6, T2

DJNZ R7, T3

RET

(2)1min=60,調用上面1s子程序60次

ORG 0030H

MOV R0, #60

LOOP: LCALL TIME

DJNZ R0, LOOP

RET

3. 請編制串行通信的數據發送程序,發送片内RAM50H~5FH的16B數據,串行接口設定為方式2,采用偶校驗方式。設晶振頻率為6MHz。

解:查詢方式發送程序如下

MOV SCON, #8OH

M OV PCON, #80H

MOV R0, #50H

MOV R7, #16H

LOOP: MOV A,@R0

MOV C, P

MOV TB8, C

MOV SBUF, A

JNB T1, $

CLR T1

INC R0

DJNZ R7, LOOP

RET

4.應用單片機内部定時器T0工作在方式1下,從P1.0輸出周期為2ms的方波脈沖信号,已知單片機的晶振頻率為6MHZ。

請(1)計算時間常數X,應用公式X=216-t(f/12)

(2)寫出程序清單

解:X=216-t(F/12)

=216-1*10-3*6*106/12

=OFEOCH

ORG 3000H

START: MOV TMOD, #01H

MOV TL0, #OCH

MOV THO, #OFEH

SETB TR0

LOOP: JBC TFO, DONE

SJMP LOOP

DONE: MOV TL0, #OCH

MOV THO, #OFEH

CPL P1.0

SJMP LOOP

5.應用單片機内部定時器T0工作在方式1下,從P1.0輸出周期為1ms的方波脈沖信号,已知單片機的晶振頻率為6MHZ。

請(1)計算時間常數X,應用公式X=216-t(f/12)

(2)寫出程序清單

解:解:X=216-t(F/12)

=216-0.5*10-3*6*106/12

=FF06H

ORG 3000H

START: MOV TMOD, #01H

MOV TL0, #06H

MOV THO, #FFH

SETB TR0

LOOP: JBC TFO, DONE

SJMP LOOP

DONE: MOV TL0, #06H

MOV THO, #FFH

CPL P1.0

SJMP LOOP

6、 用89C51的P1口,監測某一按鍵開關,使每按鍵一次,輸出一個正脈沖(脈寬随意)。編出彙編語言程序。

解: ORG 0100H

ABC: SETB P1.0

SETB P1.7

JB PI.7, $

JNB P1.7, $

CLR P1.0

MOV R2, #0

DAY: NOP

NOP

DJNZ R2, DAY

SJMP ABC

7、設計一個4位數碼顯示電路,并用彙編語言編程使"8"從右到左顯示一遍。

解: ORG 0100H

MOV A, #08H

MOV R2, #01H

MOV DPTR, #TAB

MOVC A,@A DPTR

MOV P1, A

NEXT: MOV A, R2

MOV P3, A

ACALL DAY

JB ACC.4, LPD

RL A

MOV R2, A

AJMP NEXT

LPD: RET

TAB: DB

END

8. 編制一個循環閃爍的程序。有8個發光二極管,每次其中某個燈閃爍點亮10次後,轉到下一個閃爍10次,循環不止。畫出電路圖。

解: MOV A,#01H

SHIFT: LCALL FLASH

RR

SJMP SHIFT

FLAH: MOV R2, #0AH

FLAH1: MOV P1, A

LCALL DELAY

MOV P, #00H

LCALL DELAY

DJNZ R2, FLASH1

RET

9.在8051單片機的INTO引腳外接脈沖信号,要求每送來一個脈沖,把30H單元值加1,若30H單元記滿則進位31H單元。試利用中斷結構,編制一個脈沖計數程序。

解: ORG 0000H

AJMP MAIN

ORG 0003H

AJMP SUBG

MAIN: MOV A, #OOH

MOV 30H, A

MOV 31H, A

MOV SP, #70H

SETB INT0

SETB EA

SETB EX0

AJMP $

ORG 0200H

SUBG: PUSH ACC

INC 30H

MOV A, 30H

JNZ BACK

INC 31H

BACK: POP

RET1

10.利用89C51的P1口控制8個發光俄二極管LED。相鄰的4個LED為一組,使2組每隔0。5S 交替發亮一次,周爾複始。試編寫程序。

解: ORG 0100H

MOV A, #0FH

ABC: MOV P1, A

ACALL D05

SWAP A

SJMP ABC

D05: MOV R6, 250

DY: MOV R7, 250

DAY: NOP

NOP

DJNZ R6, DAY

DJNZ R7, DAY

RET

END

11.設計89C51和ADC0809的接口,采集2通道10個數據,存入内部RAM的50H~59H單元,畫出電路圖,編出:

(1)延時方式;

(2)查詢方式;

(3)中斷方式中的一種程序。

解:IN2的地址為7FFAH,P1.0查詢轉換結束信号,查詢程序如下:

ORG 0100H

MOV R7, #0AH

MOV R0, #50H

MOV DPTR, #7FFAH

NEXT: MOVX @DPTR, A

JB P1.0, $

MOVX A,@DPTR

MOV @R0, A

INC R0

DJNZ NEXT

SJMP $

第五章

5-1選擇題

1、6264芯片是(B)

(A) EEPROM (B)RAM(C)FLASH ROM (D)EPROM

2、用MCS-51用串行擴展并行I/O口時,串行接口工作方式選擇(A)

(A) 方式0 (B)方式1 (C)方式2 (D)方式3

3、使用8255可以擴展出的I/O口線是(B)

(A) 16根 (B)24根 (C)22根 (D)32根

4、當8031外出擴程序存儲器8KB時,需使用EPROM 2716(C)

(A) 2片 (B)3片 (C)4片 (D)5片

5、某種存儲器芯片是8KB*4/片,那麼它的地址線根線是(C)

(A) 11根 (B)12根 (C)13根 (D)14根

6、MCS-51外擴ROM,RAM和I/O口時,它的數據總線是(A)

(A) P0 (B)P1 (C)P2 (D)P3

7、當使用快速外部設備時,最好使用的輸入/輸出方式是(C)

(A)中斷 (B)條件傳送 (C)DMA (D)無條件傳送

8、MCS-51的中斷源全部編程為同級時,優先級最高的是(D)

(A) INT1 (B)TI (C)串行接口 (D)INT0

9、MCS-51的并行I/O口信息有兩種讀取方法:一種是讀引腳,還有一種是(A)

(A)讀鎖存器具 (B)讀數據庫 (C)讀A累加器具 (D)讀CPU

10、MCS-51的并行I/O口讀-改-寫操作,是針對該口的(D)

(A)引腳 (B)片選信号 (C)地址線 (D)内部鎖存器

5-2判斷題1、MCS-51外擴I/O口與外RAM是統一編址的。(對)

2、使用8751且EA=1時,仍可外擴64KB的程序存儲器。(錯)60KB

3、8155的複位引腳可與89C51的複位引腳直接相連。(對)

4、片内RAM與外部設備統一編址時,需要專門的輸入/輸出指令。(錯)統一編址的

特點正是無需專門的輸入輸出指令。

5、8031片内有程序存儲器和數據存儲器。(錯)無程序存儲器

6、EPROM的地址線為11條時,能訪問的存儲空間有4K。(錯)2K.

7、8255A内部有3個8位并行口,即A口,B口,C口。(對)

8、8155芯片内具有256B的靜态RAM,2個8位和1個6位的可編程并行I/O口,1個14位定時期等常用部件及地址鎖存器。(對)

9、在單片機應用系統中,外部設備與外部數據存儲器傳送數據時,使用MOV指令。(錯)用MOVX指令。

10、為了消除按鍵的抖動,常用的方法有硬件和軟件兩種方法。(對)

5-3簡答題

1 8031的擴展儲存器系統中,為什麼P0口要接一個8位鎖存器,而P2口卻不接?

答:這是因為P0口是擴展儲存器系統的多路低8位地址和數據總線,在訪問外部存儲器時,P0口分時用作輸出外部儲存器低8位地址和傳送數據,為了在整個訪問外部存儲器期間,對外部存儲器存在着有效的低8位地址信号,所以P0口需要外接一個地址鎖存器。ALE信号就是用來把P0口輸出的地址字節鎖存在這個外接的鎖存器中,再從鎖存器輸出外部存儲器的低8位地址。而P2口隻用作擴展存儲器系統的高8位地址線,并在整個訪問外部存儲器期間不變,所以不必外接地址鎖存器。

2 在8031擴展系統中,外部程序存儲器和數據存儲器共用16位地址線和8位數據線,為什麼兩個存儲空間不會發生沖突?

答:這是因為外部程序存儲器和外部數據存儲器所使用的控制信号不同。對外部程序存儲器的選讀通是用PSEN控制線,而對外部數據存儲器的讀/寫控制是用RD和WR讀、寫控制線,所以不會發生地址沖突。

3 8031單片機需要外接程序存儲器,實際上它還有多少條I/O線可以用?當使用外部存儲器時,還剩下多少條I/O線可用?

答:8031系統必須外接程序促成器,原則上說,P0和P2口要用作數據和地址總線,所以隻有P1和P3口可用作I/O口,共16條I/O線。在使用外部存儲器時,除了占用P0和P2口外,還需要用P3口RD(P3.7)和WR(P3.6)兩條控制線,所以這種情況下就隻剩下14條I/O線可用了。

4 試将8031單片機外接一片2716 EPROM和一片6116 RAM組成一個應用系統,請畫出硬件連線圖,并指出擴展存儲器的地址範圍。

答:2716是2K×8位的EPROM,6116是2K×8位的靜态RAM,兩者都僅需要11根地址線。由于沒有規定地址範圍,故可按最簡單的方式來連接,即省去地址譯碼器,程序存儲器的地址必須從0開始,基本地址為0000H—07FFH。數據存儲器的地址為0000H—07FFH。控制線的連接為/PSEN控制EPROM的讀出,/RD和/WR控制RAM的讀寫,兩個芯片的片選端都固定接地,連線圖如圖所示。

P2.2

P2.1

P2.0

P0

8031

ALE

/PSEN

/EA

/RD

/WE

5 簡述可編程并行接口8255 A的内部結構?

答:8255 A的内部結構由三部分組成:總線接口部分,内部邏輯部分,外部接口部分。

(1) 總線接口部分 其中有數據總線驅動器,讀/寫控制邏輯

(2) 内部邏輯部分 由A組和B組控制電路。

(3) 外部接口部分 該部分有3個8位并行I/O端口,即A口、B口和C口。

5-4編程題

1 試編程對8155進行初始化,設A口為選通輸出,B口為選通輸入,C口作為控制聯絡口,并啟動定時器/記數器按方式1工作,工作時間為10ms,定時器計數脈沖頻率為單片機的時鐘頻率24分頻,fosc=12MHz。

解:算得初值=5000 =1388H

MOV DPTR,#7F04 ;定時器低八位寄存器地址 DPTR

MOV A,#88H ;低8位初值 A

MOVX @DPTR,A ; 低8位初值 低8位寄存器

INC DPTR ;DPTR指向定時器高8位

MOV A,#13H ;高8位初值 A

MOVX @DPTR,A ;高8位初值 高8位寄存器

MOV DPTR,#7F00H ;8155命令寄存器地址 DPTR

MOV A,0C5H ;命令字 A

MOVX @DPTR,A ;命令字 命令寄存器

2 設單片機采用8051,未擴展片外ROM,片外RAM采用一片6116,編程将其片内ROM從0100H單元開始的10B得内容依次外接到片外RAM從100H單元開始得10B中去。

解: MOV R2,#00H ;源數據緩沖器地址偏移量00H A

MOV R3,#0AH ;字節長度 R3

MOV DPTR,#0100H ;源數據緩沖區首地址 DPTR

MOV A,R2 ;源地址偏移量 A

MOVC A,@A DPTR ;傳送一個數據

MOVX @DPTR,A

INC DPTR ;源地址(目的地址)加1

DJNZ R3,L1 ;數據全部傳送完?沒傳送完,轉L1繼續傳送

SJMP $ ;結束

3 8031擴展8255A,将PA口設置成輸入方式,PB口設置成輸出方式,PC口設置成輸出方式,給出初始化程序。

解: 根據題目要求,A口輸入,B口輸出,二者均采用工作方式0,則控制字為98H。編程如下:

MOV A,#98H ;方式控制字 A

MOV DPTR,#7FFFH ;選通控制寄存器

MOVX @TPTR,A ;方式控制字送入8255A

MOV DPTR,#7FFCH

MOVX A,@DPTR ;讀PA口數據

MOV DPTR,#7FFDH ;

MOVX @DPTR,A ;送PB口數據

4 設計一個2×2行列式鍵盤電路并編寫鍵盤掃描子程序。

解: (1)2×2行列式鍵盤電路如圖所示。

(2)鍵盤掃描子程序:

KEY1: ACALL KS1 ;調用判斷有無鍵按下子程序

JNZ LK1 ;有鍵按下,轉LK1

AJMP KEY1 ;無鍵按下,返回

LK1: ACALL T12MS ;調延時12ms子程序

ACALL KS1 ;查有無鍵按下

JNZ LK2 ;若有,則為鍵确實按下,轉逐列掃描

AJMP KEY1 ;無鍵按下,返回

LK2: MOV R4,#00H ;首列号 R4

MOV R2,#FEH ;首列掃描字 R2

LK4: MOV A,R2 ;列掃描字 P1口

MOV P1,A ;使第一列線為0

MOV A,P1 ;讀入行狀态

JB ACC.0,LONE;第0行無鍵按下,轉查第一行

MOV A,#00H ;第0行有鍵按下,該行首鍵号#00H A

AJMP LKP ;轉求鍵号

LONE: JB ACC.1,NEXT ;第一行無鍵按下,轉查下一列

MOV A,#02 ;第一行有鍵按下,該行首鍵号#02 A

LKP: ADD A,R4 ;鍵号=首行号+列号

PUSH ACC ;鍵号進棧保護

LK3: ACALL KS1 ;等待鍵釋放

JNZ LK3 ;未釋放,等待

POP AC ;鍵釋放,鍵号 A

RET ;鍵掃描結束

NEXT: INC R4 ;列号加1,指向下一列

MOV A,R2 ;列掃描字 A

JNB ACC.1,KND ;判斷2列全掃描完?掃描完,轉KND

RL A ;沒掃描完,掃描字左移一位,形成下一列掃描字

MOV R2,A ;掃描字 R2

AJMP LK4 ;掃描下一列

AJMP KEY1 ;全掃描完,返回

MOV A,#FCH ;全掃描字11111100B A

MOV P1,A ;全掃描字 所有行

MOV A,P1 ;讀取列值

CPL A ;取正邏輯,高電平表示有鍵按下

ANL A,#0C0H ;屏蔽低6位,取高2位

RET ;出口狀态(A)!=0,有鍵按下

5 要求将存放在8031單片機内部RAM中30H—33H單元的4字節數據,按十六進制(8位)從做到右顯示,試編制程序。

ORG 1000H ;指向顯示緩沖區

MOV R0,#30H ;顯示字節數

MOV R2,#04 ;初始顯示位置(最高位)

MOV P1,#08H ;取1B

SDLAY: MOV A,@R0 ;備份

MOV B,A ;截取字節高位

ANL A,#0F0H ;裝入P1.4—P1.7

ORL P1,A ;準備顯示右一位

INC P1 ;取備份

MOV A,B ;截取字節低位

SWAP A ;

ANL A,#0F0H

ORL P1,A ;裝入并顯示

INC P1 ;準備顯示下一字節

INC R0

DJNZ R2,SDLAY ;4B未顯示完循環

RET ;顯示完成

END

START:MOV DPTR,#7FFFH

MOV A,#00

LOOP :MOVX @DPTR,A

INC A

MOV R0,#data ;data為延時常數

DJNZ R0,$ ;延時,改變data可改變鋸齒波周期T值

SJMP LOOP

例2:産生矩形波

START: MOV DPTR, #7FFFH

STEP: MOV A , #dataH ;置矩形波上限

MOVX @DPTR , A ;D/A轉換

ACALL DELH ;調輸出“1”時延時

MOV A , #00H ;置矩形波下限

MOVX @DPTR, A

ACALL DELL ;調輸出“0”時延時

SJMP STEP ;重複執行

例3: 産生三角波

START: MOV DPTR, #7FFFH

STEP1: MOV A, #00H

STEP2: MOVX @DPTR, A

INC A

CJNE A , #data , STEP2

STEP3: DEC A

MOVX @DPTR , A

CJNE A , #01H , STEP3

AJMP STEP1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved