單片機(jī)原理及接口技術(shù) 習(xí)題答案第四版李朝青修訂后_第1頁(yè)
單片機(jī)原理及接口技術(shù) 習(xí)題答案第四版李朝青修訂后_第2頁(yè)
單片機(jī)原理及接口技術(shù) 習(xí)題答案第四版李朝青修訂后_第3頁(yè)
單片機(jī)原理及接口技術(shù) 習(xí)題答案第四版李朝青修訂后_第4頁(yè)
單片機(jī)原理及接口技術(shù) 習(xí)題答案第四版李朝青修訂后_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單片機(jī)原理及接口技術(shù)課后習(xí)題答案(第四版)李朝青第一章1. 什么是微處理器(CPU)、微機(jī)和單片機(jī)?答微處理器本身不是計(jì)算機(jī),但它是小型計(jì)算機(jī)或微機(jī)的控制和處理部分。微機(jī)則是具有完整運(yùn)算及控制功能的計(jì)算機(jī),除了微處理器外還包括存儲(chǔ)器、 接口適配器以及輸入輸出設(shè)備等。單片機(jī)是將微處理器、一定容量的 RAM ROM以及I/O 口、定時(shí)器等電路集成 在一塊芯片上,構(gòu)成的單片微型計(jì)算機(jī)。片內(nèi)存儲(chǔ)容量越來(lái)越大。 抗干擾性好,可靠性高。 芯片引線齊全,容易擴(kuò)展。 運(yùn)行速度高,控制功能強(qiáng)。單片機(jī)內(nèi)部的數(shù)據(jù)信息保存時(shí)間很長(zhǎng),有的芯片可以達(dá)到100年以上。2. 單片機(jī)具有哪些特點(diǎn)(1)(2(3)(4)(5)3.

2、 微型計(jì)算機(jī)怎樣執(zhí)行一個(gè)程序?答:通過(guò)CPU指令,提到內(nèi)存當(dāng)中,再逐一執(zhí)行。4. 微型計(jì)算機(jī)由那幾部分構(gòu)成?微處理器,存儲(chǔ)器,接口適配器(即I/O接口),I/O設(shè)備第二章1.89C51單片機(jī)內(nèi)包含哪些主要邏輯功能部件?答:80C51系列單片機(jī)在片內(nèi)集成了以下主要邏輯功能部件:片內(nèi) RAM:128B特殊功能寄存器:21個(gè)程序存儲(chǔ)器:4KB并行I/O 口 :8位,4個(gè) 串行接口 :全雙工,1個(gè)_ 定時(shí)器/計(jì)數(shù)器:16位,2個(gè)(l)CPU(中央處理器):8位(3)(4)(5)(6)(8)片內(nèi)時(shí)鐘電路:1個(gè)(7)2.89C51的EA端有何用途?答:/EA端接高電平時(shí),CPU只訪問(wèn)片內(nèi)并執(zhí)行內(nèi)部程序,存

3、儲(chǔ)器。 /EA端接低電平時(shí),CPU只訪問(wèn)外部ROM并執(zhí)行片外程序存儲(chǔ)器中的指令。/EA 端保持高電平時(shí),CPL執(zhí)行內(nèi)部存儲(chǔ)器中的指令。3. 89C51的存儲(chǔ)器分哪幾個(gè)空間?如何區(qū)別不同空答: ROM片內(nèi)ROM和片外ROkK編址)(使用MOVC(數(shù)據(jù)傳送指令)(16bits 地址)(64KB片外 RAM( MOVX( 16bits 地址)(64KB片內(nèi) RAM( MOV (8bits 地址)(256B)4. 簡(jiǎn)述89C51片內(nèi)RAM勺空間分配。答:片內(nèi) RAMt 256B |低128B是真正的RAM區(qū)高128B是SFR(特殊功能寄存器)區(qū)5. 簡(jiǎn)述布爾處理存儲(chǔ)器的空間分配,片內(nèi)RAM中包含哪些可

4、位尋址單元。答:片內(nèi) RAIV區(qū)從 00HFFH(256B)其中20H2FH(字節(jié)地址)是位尋址區(qū)對(duì)應(yīng)的位地址是00H7fH6. 如何簡(jiǎn)捷地判斷89C51正在工作?答:用示波器觀察8051的XTAL2端是否有脈沖信號(hào)輸出(判斷震蕩電路工作是 否正常?)ALE (地址鎖存允許)(Address Latch Enable )輸出是fosc的6分頻 用示波器觀察ALE是否有脈沖輸出(判斷8051芯片的好壞?) 觀察PSEN(判斷8051能夠到EPROME ROM中讀取指令碼?)因?yàn)?PSEN接外部EPROMROM 的/OE端子OE=Out put En able(輸出允許)7. 89C51如何確定和

5、改變當(dāng)前工作寄存器組?答:PSV(程序狀態(tài)字)(Program Status Word )中的 RS1 和 RS0可以給出4中組合用來(lái)從4組工作寄存器組中進(jìn)行選擇丨PSW 屬于 SFR( Special Function Register)(特殊功能寄存器) 8. 89C51 PO 口用作通用I / O 口輸入時(shí),若通過(guò)TTL“OC門輸入數(shù)據(jù),應(yīng)注意 什么?為什么?答:應(yīng)該要接一個(gè)上拉電阻9. 讀端口鎖存器和“讀引腳”有何不同?各使用哪種指令?答:讀鎖存器(ANLP0,A)就是相當(dāng)于從存儲(chǔ)器中拿數(shù)據(jù),而讀引腳是從外部拿 數(shù)據(jù)(如MOVAP1這條指令就是讀引腳的,意思就是把端口 p1輸入數(shù)據(jù)送給

6、A)傳送類MOV判位轉(zhuǎn)移JB、JNB這些都屬于讀引腳,平時(shí)實(shí)驗(yàn)時(shí)經(jīng)常用這 些指令于外部通信,判斷外部鍵盤等;字節(jié)交換XCHXCH尊術(shù)及邏輯運(yùn)算ORL、 CPL ANL ADD ADDC SUBB INC、DEC控制轉(zhuǎn)移 CJNE DJNZ都屬于讀鎖存器。10. 89C51 P0P3 口結(jié)構(gòu)有何不同?用作通用I / O 口輸入數(shù)據(jù)時(shí),應(yīng)注意什么? 答:P0 口內(nèi)部沒(méi)有上拉電阻,可以用做 16位地址的低8位;P3有第二功能;P2 口可以用做16位地址的高8位;需要上拉電阻。OC門電路無(wú)法輸出高低電平,只有靠上拉電阻才能實(shí)現(xiàn)11. 89C51單片機(jī)的EA信號(hào)有何功能?在使用8031時(shí),EA信號(hào)引腳應(yīng)

7、如何處 理?答:'(1)80C51單片機(jī)的EA信號(hào)的功能IEA為片外程序存儲(chǔ)器訪問(wèn)允許信號(hào),低電平有效;在編程時(shí),其上施加210 的編程電壓EA引腳接高電平時(shí),程序從片內(nèi)程序存儲(chǔ)器開(kāi)始執(zhí)行,即訪問(wèn)片內(nèi)存儲(chǔ)器;EA引腳接低電平時(shí),迫使系統(tǒng)全部執(zhí)行片外程序存儲(chǔ)器程序。(2) 在使用80C31時(shí),EA信號(hào)引腳的處理方法因?yàn)?0C31沒(méi)有片內(nèi)的程序存儲(chǔ)器,所以在使用它時(shí)必定要有外部的程序存 儲(chǔ)器,EA信號(hào)引腳應(yīng)接低電平。第二功能 串行口:12. 89C51單片機(jī)有哪些信號(hào)需要芯片引腳以第 2功能的方式提供? 答:第一功能P3.0RXD(串行輸入口)P 3.1TXD(串行輸出口)中斷:P 3.2

8、INT0外部中斷0P 3.3INT1外部中斷1定時(shí)器/計(jì)數(shù)器(T0、T1):P 3.4T0(定時(shí)器/計(jì)數(shù)器0的外部輸入)P3.5T1(定時(shí)器/計(jì)數(shù)器1的外部輸入)數(shù)據(jù)存儲(chǔ)器選通:P3.6WR(外部存儲(chǔ)器寫選通,低電平有效,輸出)P 3.7RD(外部存儲(chǔ)器讀選通,低電平有效,輸出)定時(shí)器/計(jì)數(shù)器(T2):P 1.0T2(定時(shí)器T2的計(jì)數(shù)端)P1.1T2EX(定時(shí)器T2的外部輸入端)13.內(nèi)部RAM氐128字節(jié)單元?jiǎng)澐譃槟?個(gè)主要部分?各部分主要功能是什么? 答:片內(nèi)RAM氐128單元的劃分及主要功能:(1) 工作寄存器組(00HIFH)這是一個(gè)用寄存器直接尋址的區(qū)域,內(nèi)部數(shù)據(jù) RAM%的031(

9、00HIFH),共 32個(gè)單元。它是4個(gè)通用工作寄存器組,每個(gè)組包含 8個(gè)8位寄存器,編號(hào)為 R0R7(2) 位尋址區(qū)(20H2FH)從內(nèi)部數(shù)據(jù)RAM區(qū)的3247(20H2FH的 16個(gè)字節(jié)單元,共包含128位,是 可位尋址的RAM區(qū)。這16個(gè)字節(jié)單元,既可進(jìn)行字節(jié)尋址,又可實(shí)現(xiàn)位尋址。(3) 字節(jié)尋址區(qū)(30H7FH)從內(nèi)部數(shù)據(jù)RAM區(qū)的48127(30H7FH),共80個(gè)字節(jié)單元,可以采用間接 字節(jié)尋址的方法訪問(wèn)。14. 使單片機(jī)復(fù)位有幾種方法?復(fù)位后機(jī)器的初始狀態(tài)如何 ? 答:(1)單片機(jī)復(fù)位方法單片機(jī)復(fù)位方法有:上電自動(dòng)復(fù)位、按鍵手動(dòng)復(fù)位和兩種方式(2)復(fù)位后的初始狀態(tài)I復(fù)位后機(jī)器的初

10、始狀態(tài),即各寄存器的狀態(tài):PC之外,復(fù)位操作還對(duì)其他一 些特殊功能寄存器有影響,它們的復(fù)位狀態(tài)如題表2-1所例15. 開(kāi)機(jī)復(fù)位后,CPU使用的是哪組工作寄存器?它們的地址是什么?CPL如何確定和改變當(dāng)前工作寄存器組?答:一般開(kāi)機(jī)復(fù)位后都是選擇第一組通用工作寄存器作為工作寄存器的,一共有4組,分別為0.123 連續(xù)位于OOh到 仆H地址,然后在機(jī)器中有個(gè)程序狀態(tài)字 PSW它的第四和第三位RS1, RS0是用來(lái)選擇工 作寄存器組的,可能不同機(jī)器地址稍有不同。他們倆的值和寄存器組的關(guān)系:RS1/RS00/0 0/1 1/0 1/1使用的工作寄存器01 2 3地址00-07 08-0F 10-17 1

11、8-1F寫程序的時(shí)候就是通過(guò)定義程序狀態(tài)字來(lái)選擇使用不同的寄存器組。也可以直接對(duì)RS1 和 RS0賦值。1(最后一問(wèn)同題7)16. 程序狀態(tài)寄存器PSW勺作用是什么?常用標(biāo)志有哪些位?作用是什么? 答:PSWI個(gè)SFR(特殊功能寄存器)位于片內(nèi)RAM的高128B具體地址D0H(00HFFH (片內(nèi)RAM勺編址)(8bits編址方法)PSW=P rogram Status Word (程序狀態(tài)字)PSW 的常用標(biāo)志位有哪些?CY=Carry(進(jìn)位標(biāo)志位)AC=Auxiliary Carry(輔助進(jìn)位標(biāo)志位)(半進(jìn)位標(biāo)志位)F0 用戶標(biāo)志位RS1 ,RSQ用來(lái)選擇當(dāng)前工作寄存器組(R0R7 (4選

12、1)OV=Oveflow(溢出標(biāo)志位)P=P arity(奇偶校驗(yàn)位)仃.位地址7CH與字節(jié)地址7CH如何區(qū)別?位地址7CH具體在片內(nèi)RAMfr的什么 位置?答:用不同的尋址方式來(lái)加以區(qū)分,即訪問(wèn)128個(gè)位地址用位尋址方式,訪問(wèn)低 128字節(jié)單元用字節(jié)尋址和間接尋址。具體地址為2F的第五位,即為7Co18. 89C51單片機(jī)的時(shí)鐘周期與振蕩周期之間有什么關(guān)系 ?什么叫機(jī)器周期和指 令周期?答:時(shí)鐘信號(hào)的周期稱為機(jī)器狀態(tài)周期,是振蕩周期的兩倍。一個(gè)機(jī)器周期是指CPU訪問(wèn)存儲(chǔ)器一次所需的時(shí)間。指令周期是執(zhí)行一條指令所需的時(shí)間。19. 一個(gè)機(jī)器周期的時(shí)序如何劃分?答:一個(gè)機(jī)器周期=12個(gè)震蕩周期=6

13、個(gè)時(shí)鐘周期(狀態(tài)周期) S1P1 ,S1P2 S2P1, S2P2 S3P1, S3P2 S4P1, S4P2 S5P1, S5P2 S6P1, S6P2 其中 s=state (狀態(tài)),p=phase (相位)20.什么叫堆棧?堆棧指針SP的作用是什么?89C51單片機(jī)堆棧的容量不能超過(guò) 多少字節(jié)?答:堆棧都是一種數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu),只能在一端(稱為棧頂(top)對(duì)數(shù)據(jù)項(xiàng)進(jìn)行插入和刪除。要點(diǎn):堆:順序隨意棧:后進(jìn)先出(Last-1 n/First-Out)在調(diào)用子程序時(shí)需要保存調(diào)用函數(shù)的 CPI寄存器PC指針,PC指針是被CALL 指令自動(dòng)壓入SP所指向的片內(nèi)存儲(chǔ)器,CPU寄存器要由用

14、戶用PUSH旨令自行保 存,因此SP的作用就是一個(gè)指針,當(dāng)進(jìn)行中斷調(diào)用,子函數(shù)調(diào)用時(shí)將現(xiàn)場(chǎng)數(shù)據(jù)壓 入SP所指向的存儲(chǔ)器,SP自動(dòng)增加1或2,當(dāng)中斷結(jié)束RETI,調(diào)用返回RET,POP 時(shí)將SP數(shù)據(jù)彈出,SP自動(dòng)減1或,2 8051最大為128字節(jié)的片內(nèi)存儲(chǔ)器, 21. 89C51有幾種低功耗方式?如何實(shí)現(xiàn)?答:空閑方式和掉電方式I空閑方式和掉電方式是通過(guò)對(duì)SFR中的PCON地址87H)相應(yīng)位置1而啟動(dòng)的。當(dāng)CPU執(zhí)行完置IDL=1(PCON.D的指令后,系統(tǒng)進(jìn)入空閑工作方式。這時(shí),內(nèi) 部時(shí)鐘不向CPU提供,而只供給中斷、串行口、定時(shí)器部分。CPU的內(nèi)部狀態(tài)維持,即包括堆棧指針SP、程序計(jì)數(shù)器P

15、C程序狀態(tài)字PSW累加器ACC所有的 內(nèi)容保持不變,端口狀態(tài)也保持不變。 ALE和 PSENS持邏輯高電平。當(dāng)CPU執(zhí)行一條置PCON.1B( PD為1的指令后,系統(tǒng)進(jìn)入掉電工作方式。在 這種工作方式下,內(nèi)部振蕩器停止工作。由于沒(méi)有振蕩時(shí)鐘,因此,所有的功能 部件都停止工作。但內(nèi)部RAM區(qū)和特殊功能寄存器的內(nèi)容被保留, 而端口的輸出 狀態(tài)值都保存在對(duì)應(yīng)的SFR中, ALE和 PSEN都為低電平。22. PC與DPTF各有哪些特點(diǎn)?有何異同? I答:(1)程序計(jì)數(shù)器PC作為不可尋址寄存器的特點(diǎn)程序計(jì)數(shù)器PC是中央控制器申最基本的寄存器,是一個(gè)獨(dú)立的計(jì)數(shù)器,存 放著下一條將程序存儲(chǔ)器中取出的指令的

16、地址。程序計(jì)數(shù)器PC變化的軌跡決定程序的流程。程序計(jì)數(shù)器的寬度決定了程序 存儲(chǔ)器可以 尋址的范圍。程序計(jì)數(shù)器PC的基本工作方式有: 程序計(jì)數(shù)器PC自動(dòng)加1。這是最基本的工作方式,也是這個(gè)專用寄存器 被稱為計(jì)數(shù)器的原因。 執(zhí)行條件或無(wú)條件轉(zhuǎn)移指令時(shí),程序計(jì)數(shù)器將被置入新的數(shù)值,程序的流 向發(fā)生變化。變化的方式有下列幾種:帶符號(hào)的相對(duì)跳轉(zhuǎn)SJMP短跳轉(zhuǎn)AJMP長(zhǎng)跳轉(zhuǎn)LJMP及 JMP A+D PT等。 在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí): PC的現(xiàn)行值,即下一條將要執(zhí)行的指令的地址送入堆棧,加以保護(hù);將子程序的入口地址或者中斷矢量地址送入PC程序流向發(fā)生變化,執(zhí)行子程序或中斷服務(wù)程序;子程序或中斷服務(wù)程序

17、執(zhí)行完畢,遇到返回指令RET或 RETI時(shí),將棧頂?shù)膬?nèi)容送到PC寄存器中,程序流程又返回到原來(lái)的地方,繼續(xù)執(zhí)行。(2)地址指針DPTR勺特點(diǎn)地址指針DPTF的特點(diǎn)是,它作為片外數(shù)據(jù)存儲(chǔ)器尋址用的地址寄存器(間接尋址)。(3)地址指針DPTF與程序計(jì)數(shù)器PC的異同 相同之處:兩者都是與地址有關(guān)的、16位的寄存器。其中,PC與程序存儲(chǔ)器的地址 有關(guān),而DPTR與數(shù)據(jù)存儲(chǔ)器的地址有關(guān)。作為地址寄存器使用時(shí),PC與DPTF都是通過(guò)P0和P2 口(作為16位地址 總線)輸出的。但是,PC的輸出與ALE及PSEN有關(guān);DPTR的輸出,則與 ALE RD 及WF相聯(lián)系。 不同之處: PC只能作為16位寄存器

18、對(duì)待,由于有自動(dòng)加1的功能,故又稱為計(jì)數(shù)器; DPTR 可以作為16位寄存器對(duì)待,也可以作為兩個(gè) 8位寄存器對(duì)待。 PC是不可以訪問(wèn)的,有自己獨(dú)特的變化方式,它的變化軌跡決定了程序執(zhí)行的流程;DPTR 是可以訪問(wèn)的,女口 MOV DPTR #XXXXH INC DPTR23. 89C51端口鎖存器的“讀一修改一寫”操作與“讀引腳”操作有何區(qū)別?答:指令系統(tǒng)中有些指令讀鎖存器的值,有些指令則讀引腳上的值。讀鎖存器指 令是從鎖存器中讀取一個(gè)值并進(jìn)行處理 ,把處理后的值(原值或已修改后的值) 重新寫入鎖存器中。這類指令稱為讀-修改-寫指令。對(duì)于讀-修改-寫指令。直接讀鎖存器而不是讀端口引腳,是因?yàn)閺?/p>

19、引腳上讀 出的數(shù)據(jù)不一定能真正反映鎖存器的狀態(tài)。第三章1、指令:CPU根據(jù)人的意圖來(lái)執(zhí)行某種操作的命令指令系統(tǒng):一臺(tái)計(jì)算機(jī)所能執(zhí)行的全部指令集合機(jī)器語(yǔ)言:用二進(jìn)制編碼表示,計(jì)算機(jī)能直接識(shí)別和執(zhí)行的語(yǔ)言匯編語(yǔ)言:用助記符、符號(hào)和數(shù)字來(lái)表示指令的程序語(yǔ)言高級(jí)語(yǔ)言:獨(dú)立于機(jī)器的,在編程時(shí)不需要對(duì)機(jī)器結(jié)構(gòu)及其指令系統(tǒng)有深入了解的通用性語(yǔ)言2、見(jiàn)第1題3、操作碼目的操作數(shù),源操作數(shù)4、尋址方式尋址空間立即數(shù)尋址程序存儲(chǔ)器ROM直接尋址片內(nèi)RAM氐128B特殊功能寄存器寄存器尋址工作寄存器 R0-R7、A、B、C、DPTR奇存器間接尋址片內(nèi)RAM氐128B片外RAM變址尋址程序存儲(chǔ)器(A+PC,A+DPT

20、R相對(duì)尋址程序存儲(chǔ)器256B范圍(PC+偏移量)位尋址片內(nèi)RAM勺20H-2FH字節(jié)地址、部分SFR5、要訪問(wèn)特殊功能寄存器和片外數(shù)據(jù)存儲(chǔ)器,應(yīng)采用哪些尋址方式?SFR:直接尋址,位尋址,寄存器尋址;片外 RAM :寄存器間接尋址6、MOV A,40H ;直接尋址(40H)t AMOV R0,A ;寄存器尋址(A) R0MOV P1, #0F0H ;立即數(shù)尋址 0F0tP1MOV R0,30H ;直接尋址(30H)t( R0)MOVDPTR,#3848H ;立即數(shù)尋址 3848H7 DPTRMOV40H,38H;直接尋址(38H)740HMOVR0,30H;直接尋址(30H)7R0MOVP0,

21、R0;寄存器尋址(R0)7 P0MOV18H, #30H ;立即數(shù)尋址 30H718HMOVA , R0;寄存器間接尋址(R0) 7AMOVP2, P1 ;直接尋址(P 1)7 P2最后結(jié)果:(RO) =38H, (A) =40H, ( PO) =38H , (P 1)=( P2) =OFOH , ( DPTR) =3848H, (18H) =30H, (30H) =38H, (38H) =40H, (40H) =40H, (48H) =38H注意:7左邊是內(nèi)容,右邊是單元7、對(duì)89C51/S51片內(nèi)RAM的高128字節(jié)的地址空間尋址要注意什么?答用直接尋址,位尋址,寄存器尋址8、指出下列指令

22、的本質(zhì)區(qū)別?MOV A,DATA;直接尋址 2字節(jié)1周期MOVA,#DATA;立即數(shù)尋址2字節(jié)1周期MOVDATA1,DATA2 ;直接尋址3字節(jié)2周期MOV74H,#78H;立即數(shù)尋址3字節(jié)2周期最后結(jié)果:((A) =80H,(32H) =08H,(40H) =80H10、如何訪問(wèn)SFF?用直接尋址,位尋址,寄存器尋址如果想查某一指令的機(jī)器碼,字節(jié)數(shù)或周期數(shù)可查閱書本后面的附錄A 9、MOVA,R0 ;(R0)=80H 7AMOVR0,40H;(40H)=08HMOV40H,A;(A)=80 7 40HMOVR0,#35H;35H 7 R0R0) =35H(R0)11、如何訪問(wèn)片外RAM只能

23、采用寄存器間接尋址(用 MOVX指令)R212、如何訪問(wèn)片內(nèi)RAM低128字節(jié):直接尋址,位尋址,寄存器間接尋址,寄存器尋址(R0R7)高128字節(jié):直接尋址,位尋址,寄存器尋址13、如何訪問(wèn)片內(nèi)外ROM采用變址尋址(用MOVC指令)14、說(shuō)明十進(jìn)制調(diào)整的原因和方法答:壓縮BCD碼在進(jìn)行加法運(yùn)算時(shí)應(yīng)逢十進(jìn)一,而計(jì)算機(jī)只將其當(dāng)作十六進(jìn)制數(shù)處理,此時(shí)得到的結(jié)果不正確。用DA A指令調(diào)整(加06H , 60H, 66H) 15、說(shuō)明89C51/S51的布爾處理機(jī)功能16、ANLA, #17H;83HA 17H=03HtAORL17H, A;34HV 03H=37H XRLA, R0;03H 

24、4; 37H=34HCPLA;34H求反等于CBH所以(A)=CBH答:用來(lái)進(jìn)行位操作17H17、(1) SETB ACC.0或 SETB E0H ;E0H 是累加器的地址(2)CLR ACC.7CLR ACC.6CLR ACC.5CLR ACC.4(3)CLR ACC.6CLR ACC.5CLR ACC.4CLR ACC.318、MOV 27H , R7MOV 26H ,MOV 25H ,MOV 24H ,MOV 23H ,R6R5R4R3MOV 22H ,MOV 21H ,MOV 20H ,R1RO19、MOV 2FH , 20MOV2EH,MOV2DH,20、CLR C2122MOV A

25、 , #5DHMOV R2 , #B4HSUBB A, R2MOV 30H , AMOV A , #6FHMOV R2 , #13HSUBB A, R2;被減數(shù)的低8位7A;減數(shù)低8位-R2;被減數(shù)減去減數(shù),差7 A;低8位結(jié)果7 30H;被減數(shù)的高8位7A;減數(shù)高8位7 R2;被減數(shù)減去減數(shù),差7 A;高8位結(jié)果7 30HMOV 31H , A注意:如果在你的程序中用到了進(jìn)位位,在程序開(kāi)始的時(shí)候要記得清21、(1) A> 10CJNE A, #0AH , L1LJMP LABEL0進(jìn)位位L1 : JNC LABEL或者:;(A)與10比較,不等轉(zhuǎn)L1;相等轉(zhuǎn)LABEL;(A)大于 10

26、,轉(zhuǎn) LABELCLR CSUBB A, #0AHJNC LABEL(2) A> 10CJNE A, #0AH , L1RETL1 : JNC LABELRET或者:;(A)與10比較,不等轉(zhuǎn)L1;相等結(jié)束;(A)大于 10,轉(zhuǎn) LABEL;(A)小于10,結(jié)束CLR CSUBB A, #0AHJNC L1RETL1 : JNZ LABELRET(3) A< 10CJNE A, #0AH,L1L2: LJMP LABELL1 : JC L2;(A)與10比較,不等轉(zhuǎn)L1;相等轉(zhuǎn)LABEL;(A)小于10,轉(zhuǎn)L2RET或者:CLR CSUBB A,#0AHJC LABELJZ LAB

27、ELRET22、(SP) =23H,參看書上80頁(yè)(PC)=3412H23、(SP) =27H,參看書上79頁(yè)(26H) =48H, (27H) =23H, (PC) =3456H24、不能。ACALL是短轉(zhuǎn)指令,可調(diào)用的地址范圍是2KB。MOV R2 , #31HMOV R0 , #20H在看這個(gè)題的時(shí)候同時(shí)看一下 AJMP指令。同時(shí)考慮調(diào)用指令A(yù)CALL和LCALL 指令和RET指令的關(guān)系。LOOP: MOV A,R0;待查找的數(shù)據(jù)T ACLR C;清進(jìn)位位SUBB A,#0AAH;待查找的數(shù)據(jù)是0AAH嗎JZ L1;是,轉(zhuǎn)L1INC R0;不是,地址增1,指向下一個(gè)待查數(shù)據(jù)DJNZ R2

28、,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找MOV 51H,#00H;等于0,未找到,00HT51HRETL1: MOV 51H,#01H;找到,01H T 51HRET26、MOV R2,#31H;數(shù)據(jù)塊長(zhǎng)度T R2MOV R0,#20H;數(shù)據(jù)塊首地址T R0LOOP: MOV A,R0;待查找的數(shù)據(jù)T A25、;數(shù)據(jù)塊長(zhǎng)度-R2;數(shù)據(jù)塊首地址T R0JNZ L1INC 51HL1 : INC RODJNZ R2,LOOPRET;不為0,轉(zhuǎn)L1;為0, 00H個(gè)數(shù)增1;地址增1,指向下一個(gè)待查數(shù)據(jù);數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找MOV DPTR,#SOURCEMOV R0,#DISTL

29、OOP: MOVX A,DPTRMOV R0,AINC DPTR27、;源首地址DPTR;目的首地址R0;傳送一個(gè)字符;指向下一個(gè)字符;傳送的是“ $”字符嗎?不是,傳送下一INC RO個(gè)字彳eRET2&MOV A,R3 ;取該數(shù)高8位-AANL A,#80H;取出該數(shù)符號(hào)判斷JZ L1;是正數(shù),轉(zhuǎn)L1MOV A,R4;是負(fù)數(shù),將該數(shù)低8位7 ACPL A;低8位取反ADD A,#01H;加1MOV R4,A;低8位取反加1后7 R4MOV A,R3;將該數(shù)高8位-ACPL A;高8位取反ADDC A,#00H;加上低8位加1時(shí)可能產(chǎn)生的進(jìn)位MOV R3,A;高8位取反加1后7 R3L

30、1:RET29、CLR C;清進(jìn)位位CMOV A,31H;取該數(shù)低8位7ARLC A;帶進(jìn)位位左移1位MOV 31H,A;結(jié)果存回31HMOV A,30H;取該數(shù)高8位7ARLC A;帶進(jìn)位位左移1位MOV 30H,A;結(jié)果存回30H30、MOV R2,#04H;字節(jié)長(zhǎng)度7 R2MOV R0,#30H;一個(gè)加數(shù)首地址7 R0CJNE A, #24H, LOOPMOV R1,#40HCLR CLOOP: MOV A,R0ADDC A,R1DA AMOV R0,AINC R0;另一個(gè)加數(shù)首地址R1;清進(jìn)位位;取一個(gè)加數(shù);兩個(gè)加數(shù)帶進(jìn)位位相加;十進(jìn)制調(diào)整;存放結(jié)果;指向下一個(gè)字節(jié)34、INC R1D

31、JNZ R2,LOOPRET;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找MOV R2,#08HMOV R0,#30HMOV DPTR,#2000H ;數(shù)據(jù)塊源地址DPTR LOOP: MOVX A, DPTR ;傳送一個(gè)數(shù)據(jù)MOV R0,AINC DPTR31、;數(shù)據(jù)塊長(zhǎng)度-R2;數(shù)據(jù)塊目的地址f R0;指向下一個(gè)數(shù)據(jù)INC R0DJNZ R2,LOOPRET;數(shù)據(jù)塊長(zhǎng)度減1,沒(méi)傳送完,繼續(xù)傳送32、(1) MOV R0,0FHMOV B,R0(2) MOV R0,#0FHMOV B,R0(3) MOV B,#0FH;2字節(jié),2周期 ;2字節(jié),2周期;2字節(jié),1周期 ;2字節(jié),2周期 ;3字節(jié),2周期

32、4字節(jié)4周期(差)4字節(jié)3周期(中)3字節(jié)2周期(好)33、(1)功能是將片內(nèi)RAM中50H51H單元清0。(2) 7A0A (大家可以看一下書上,對(duì)于立即數(shù)尋址的話,后面一個(gè)字節(jié)存放的是立即數(shù)) 7850 (第一個(gè)字節(jié)的后三位是寄存器,前一個(gè)條指令是 010也就是指的R2,在這里是R0,所以應(yīng)該是78,后一個(gè)字節(jié)存放的是立即數(shù))DAFC(這里涉及到偏移量的計(jì)算,可以參考書上 56頁(yè))INC R0INC R0;(7EH) =00H;(R0) =7FHINC R0INC DPTR;(7FH) =39H;(DPTR) =10FFHINC DPTR;(DPTR) =1100HINC DPTR;(DP

33、TR) =1101H(1003H) =52H(1004H) =54H(1006H)=34H(1007H)=30H(1009H)=70H36、MOV R0,#40H; 40HtR0MOV a , R0;98H aINCR0;41HR035、解:(1000H) =53H(1001H) =54H(1002H) =41H(1005H) =12H(1008H) =00Hadd a , R0INC R0;98H+ (41H) =47HtAMOV R0, aCLR aADDC a , #0INC R0;進(jìn)位位存入43H(A) =1, (40H) =98H, (41H) =AFH , (42H) =47H,

34、(43H) =01H40、(2) MOVMOVXRLa , R0, a ,XXHR0;結(jié)果存入42H單元;清a;進(jìn)位位存入aMOV a , 61H;F2H aMOV B, #02H;02H BMUL AB;F2HX O2H=E4H Aadd a , 62H;積的低8位加上CCH aMOV 63H , a;結(jié)果送62HCLR a;清aADDCa , B;積的高8位加進(jìn)位位aMOV 64H , a;結(jié)果送64HMOV R0, a功能:將40H, 41H單元中的內(nèi)容相加結(jié)果放在42H單元,進(jìn)位放在43H單元,(R0) =43H,37、功能:將61H單元的內(nèi)容乘2,低8位再加上62H單元的內(nèi)容放入63

35、H,將結(jié)果的 高8位放在 64H 單元。(a) =02H, ( B) =01H, (61H) =F2H, (62H) =CCH , (63H) =B0H, (64H ) =02H39、MOV a , XXHORL a , #80HMOVXXH , a第五章1、什么是中斷和中斷系統(tǒng)?其主要功能是什么?答:當(dāng)CPU正在處理某件事情的時(shí)候,外部發(fā)生的某一件事件請(qǐng)求 CPU迅速去 處理,于是,CPU暫時(shí)中止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的事件,中斷服務(wù)處 理完該事件以后,再回到原來(lái)被終止的地方,繼續(xù)原來(lái)的工作。這種過(guò)程稱為中 斷,實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng)。功能:(1) 使計(jì)算機(jī)具有實(shí)時(shí)處理能力,能對(duì)

36、外界異步發(fā)生的事件作出及時(shí)的處理(2)完全消除了 CPU在查詢方式中的等待現(xiàn)象,大大提咼了CPU的工作效率(3)實(shí)現(xiàn)實(shí)時(shí)控制2、試編寫一段對(duì)中斷系統(tǒng)初始化的程序,使之允許INT0,INT1,TO,串行口中斷,且使TO中斷為高優(yōu)先級(jí)中斷。解:MOV IE,#097HMOV IP, #02H3、在單片機(jī)中,中斷能實(shí)現(xiàn)哪些功能?答:有三種功能:分時(shí)操作,實(shí)時(shí)處理,故障處理4、89C51共有哪些中斷源?對(duì)其中端請(qǐng)求如何進(jìn)行控制? 答:(1) 89C51有如下中斷源 :外部中斷0請(qǐng)求,低電平有效 :外部中斷1請(qǐng)求,低電平有效 T0:定時(shí)器、計(jì)數(shù)器0溢出中斷請(qǐng)求 T1:定時(shí)器、計(jì)數(shù)器1溢出中斷請(qǐng)求 TX/

37、RX :串行接口中斷請(qǐng)求(2)通過(guò)對(duì)特殊功能寄存器 TCON、SCON、IE、IP的各位進(jìn)行置位或復(fù)位等 操作,可實(shí)現(xiàn)各種中斷控制功能5、什么是中斷優(yōu)先級(jí)?中斷優(yōu)先處理的原則是什么? 答:中斷優(yōu)先級(jí)是CPU相應(yīng)中斷的先后順序。原則:(1)(2)(3)先響應(yīng)優(yōu)先級(jí)咼的中斷請(qǐng)求,再響應(yīng)優(yōu)先級(jí)低的如果一個(gè)中斷請(qǐng)求已經(jīng)被響應(yīng),同級(jí)的其它中斷請(qǐng)求將被禁止如果同級(jí)的多個(gè)請(qǐng)求同時(shí)出現(xiàn),則 CPU通過(guò)內(nèi)部硬件查詢電路,按 查詢順序確定應(yīng)該響應(yīng)哪個(gè)中斷請(qǐng)求查詢順序:6說(shuō)明外部中斷請(qǐng)求的查詢和響應(yīng)過(guò)程。答:當(dāng)CPU執(zhí)行主程序第K條指令,外設(shè)向CPU發(fā)出中斷請(qǐng)求,CPU接到中外部中斷Of定時(shí)器0中斷f外部中斷1f定

38、時(shí)器1中斷f串行接口中斷斷請(qǐng)求信號(hào)并在本條指令執(zhí)行完后,中斷主程序的執(zhí)行并保存斷點(diǎn)地址, 然后轉(zhuǎn) 去響應(yīng)中斷。CPU在每個(gè)S5P2期間順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器周 期S6期間按優(yōu)先級(jí)順序查詢中斷標(biāo)志,如果查詢到某個(gè)中斷標(biāo)志為1,將在接下來(lái)的機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理,中斷系統(tǒng)通過(guò)硬件自動(dòng)將相應(yīng)的 中斷矢量地址裝入PC,以便進(jìn)入相應(yīng)的中斷服務(wù)程序。中斷服務(wù)完畢后,CPU返回到主程序第K+1條指令繼續(xù)執(zhí)行。7、89C51在什么條件下可響應(yīng)中斷?答:有中斷源發(fā)出中斷請(qǐng)求中斷中允許位EA=1.即CPU開(kāi)中斷申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒(méi)有被屏蔽無(wú)同級(jí)或更高級(jí)中斷正在服

39、務(wù)當(dāng)前指令周期已經(jīng)結(jié)束若現(xiàn)行指令為RETI或訪問(wèn)IE或IP指令時(shí),該指令以及緊接著的另 一條指令已執(zhí)行完畢(1)(2)(3)(4)(5)(6)8、簡(jiǎn)述89C51單片機(jī)的中斷響應(yīng)過(guò)程。答:CPU在每個(gè)機(jī)器周期S5P2期間順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器周 期S6期間按優(yōu)先級(jí)順序查詢中斷標(biāo)志,如查詢到某個(gè)中斷標(biāo)志為1,將在接下來(lái)的機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理,中斷系統(tǒng)通過(guò)硬件自動(dòng)將相應(yīng)的中 斷矢量地址裝入PC,以便進(jìn)入相應(yīng)的中斷服務(wù)程序。一旦響應(yīng)中斷,89C51首先置位相應(yīng)的中斷“優(yōu)先級(jí)生效”觸發(fā)器, 然后由硬件執(zhí)行一條長(zhǎng)調(diào)用指令,把 當(dāng)前的PC值壓入堆棧,以保護(hù)斷點(diǎn),再將相應(yīng)的中斷

40、服務(wù)的入口地址送入PC,于是CPU接著從中斷服務(wù)程序的入口處開(kāi)始執(zhí)行。對(duì)于有些中斷源,CPU在響應(yīng)中斷后會(huì)自動(dòng)清除中斷標(biāo)志。9、在89C51內(nèi)存中,應(yīng)如何安排程序區(qū)?答:主程序一般從0030H開(kāi)始,主程序后一般是子程序及中斷服務(wù)程序。在這個(gè) 大家還要清除各個(gè)中斷的中斷矢量地址。10、試述中斷的作用及中斷的全過(guò)程。答:作用:對(duì)外部異步發(fā)生的事件作出及時(shí)的處理過(guò)程:中斷請(qǐng)求,中斷響應(yīng),中斷處理,中斷返回11、當(dāng)正在執(zhí)行某一個(gè)中斷源的中斷服務(wù)程序時(shí),如果有新的中斷請(qǐng)求出現(xiàn),試 問(wèn)在什么情況下可響應(yīng)新的中斷請(qǐng)求?在什么情況下不能響應(yīng)新的中斷請(qǐng)求? 答:(1)符合以下6個(gè)條件可響應(yīng)新的中斷請(qǐng)求:a)有中

41、斷源發(fā)出中斷請(qǐng)求b)中斷允許位EA=1,即CPU開(kāi)中斷C)d)e)f)申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒(méi)有被屏蔽無(wú)同級(jí)或更高級(jí)中斷正在被服務(wù)當(dāng)前的指令周期已結(jié)束若現(xiàn)行指令為RETI或訪問(wèn)IE或IP指令時(shí),該指令以及緊接 著的另一條指令已被執(zhí)行完12、89C51單片機(jī)外部中斷源有幾種觸發(fā)中斷請(qǐng)求的方法?如何實(shí)現(xiàn)中斷請(qǐng)求? 答:有兩種方式:電平觸發(fā)和邊沿觸發(fā)電平觸發(fā)方式:CPU在每個(gè)機(jī)器周期的S5P2期間采樣外部中斷引腳的輸入 電平。若為低電平,使IE1(IE0)置“1”,申請(qǐng)中斷;若為高電平,貝U IE1(IE0) 清零。邊沿觸發(fā)方式:CPU在每個(gè)機(jī)器周期S5P2期間采樣外部中斷請(qǐng)求引腳

42、的輸 入電平。如果在相繼的兩個(gè)機(jī)器周期采樣過(guò)程中,一個(gè)機(jī)器周期采樣到外部中斷請(qǐng)求為高電平,接著下一個(gè)機(jī)器周期采樣到外部中斷請(qǐng)求為低電平,則使 IE1(IE0)置“T申請(qǐng)中斷;否則,IE1(IE0)置0。13、89C51單片機(jī)有五個(gè)中斷源,但只能設(shè)置兩個(gè)中斷優(yōu)先級(jí),因此,在中斷優(yōu)先級(jí)安排上受到一定的限制。試問(wèn)以下幾種中斷優(yōu)先順序的安排(級(jí)別由高到低) 是否可能:若可能,則應(yīng)如何設(shè)置中斷源的中斷級(jí)別:否則,請(qǐng)簡(jiǎn)述不可能的理 由。定時(shí)器0,定時(shí)器1, 可以,MOV IP,#0AH串行口中斷,外中斷可以,MOV IP,#10H外中斷0,定時(shí)器1,外中斷0,外中斷1,串行口中斷。0,定時(shí)器0,外中斷1,

43、定時(shí)器1。外中斷1,定時(shí)器0,串行口中斷。INT0,T1設(shè)置為高級(jí),而T0級(jí)別不可以,只能設(shè)置一級(jí)高級(jí)優(yōu)先級(jí),如果將高于INT1.外中斷0,外中斷1,可以,MOV IP,#15H串行口中斷,定時(shí)器 不可以(6) 外中斷0,外中斷1, 不可以(7) 外中斷0,定時(shí)器1 , 可以,MOV IP,#09H14、 89C51各中斷源的中斷標(biāo)志是如何產(chǎn)生的?又是如何清 0的? CPU響應(yīng)中斷串行口中斷,定時(shí)器0,定時(shí)器1。0,外中斷0,外中斷1,定時(shí)器1。定時(shí)器0,串行口中斷,定時(shí)器1。定時(shí)器0,外中斷1,串行口中斷。時(shí),中斷入口地址各是多少?答:各中斷標(biāo)志的產(chǎn)生和清“ 0”如下:(1) 外部中斷類夕卜

44、部中斷是由外部原因引起的,可以通過(guò)兩個(gè)固定引腳,即外部中斷0和外部中斷1輸入信號(hào)。外部中斷0請(qǐng)求信號(hào),由P3.2腳輸入。通過(guò)IT0來(lái)決定中斷請(qǐng)求信號(hào)是低電 平有效還是下跳變有效。一旦輸入信號(hào)有效,則向CPU申請(qǐng)中斷,并且使IE0=1。硬件復(fù)位。外部中斷1請(qǐng)求信號(hào),功能與用法類似外部中斷0(2) 定時(shí)中斷類定時(shí)中斷是為滿足定時(shí)或計(jì)數(shù)溢出處理需要而設(shè)置的。當(dāng)定時(shí)器 /計(jì)數(shù)器中 的計(jì)數(shù)結(jié)構(gòu)發(fā)生計(jì)數(shù)溢出的,即表明定時(shí)時(shí)間到或計(jì)數(shù)值已滿,這時(shí)就以計(jì) 數(shù)溢出信號(hào)作為中斷請(qǐng)求,去置位一個(gè)溢出標(biāo)志位。這種中斷請(qǐng)求是在單片 機(jī)芯片內(nèi)部發(fā)生的,無(wú)需在芯片上設(shè)置引入端,但在計(jì)數(shù)方式時(shí),中斷源可 以由外部引入。TF0

45、:定時(shí)器T0溢出中斷請(qǐng)求。當(dāng)定時(shí)器T0產(chǎn)生溢出時(shí),定時(shí)器T0請(qǐng)求標(biāo) 志TF0=1,請(qǐng)求中斷處理。使用中斷時(shí)由硬件復(fù)位,在查詢方式下可由軟件 復(fù)位。TF1:定時(shí)器T1溢出中斷請(qǐng)求。功能與用法類似定時(shí)器 T0(3) 串行口中斷類串行口中斷是為串行數(shù)據(jù)的傳送需要而設(shè)置的。 串行中斷請(qǐng)求也是在單片機(jī) 芯片內(nèi)部發(fā)生的,但當(dāng)串行口作為接收端時(shí),必須有一完整的串行幀數(shù)據(jù)從 RI端引入芯片,才可能引發(fā)中斷。RI或TI :串行口中斷請(qǐng)求。當(dāng)接收或發(fā)送一串幀數(shù)據(jù)時(shí),使內(nèi)部串行口中 斷請(qǐng)求標(biāo)志RI或TI=1,并請(qǐng)求中斷。響應(yīng)后必須軟件復(fù)位。CPU響應(yīng)中斷時(shí),中斷入口地址如下:中斷源入口地址外部中斷00003H定時(shí)器

46、T0中斷000BH外部中斷10013H定時(shí)器T1中斷001BH串行口中斷0023H15、中斷響應(yīng)時(shí)間是否為確定不變的?為什么?答:中斷響應(yīng)時(shí)間不是確定不變的。由于CPU不是在任何情況下對(duì)中斷請(qǐng)求都予以響應(yīng)的;此外,不同的情況對(duì)中斷響應(yīng)的時(shí)間也是不同的。下面以外部中斷為例,說(shuō)明中斷響應(yīng)的時(shí)間。在每個(gè)機(jī)器周期的S5P2期間,端的電平被所存到 TCON的IEO位,CPU在下一 個(gè)機(jī)器周期才會(huì)查詢這些值。這時(shí)滿足中斷響應(yīng)條件,下一條要執(zhí)行的指令將是 一條硬件長(zhǎng)調(diào)用指令“ LCALL”,使程序轉(zhuǎn)入中斷矢量入口。調(diào)用本身要用 2個(gè) 機(jī)器周期,這樣,從外部中斷請(qǐng)求有效到開(kāi)始執(zhí)行中斷服務(wù)程序的第一條指令, 至

47、少需要3個(gè)機(jī)器周期,這是最短的響應(yīng)時(shí)間。如果遇到中斷受阻的情況,這中斷響應(yīng)時(shí)間會(huì)更長(zhǎng)一些。例如,當(dāng)一個(gè)同級(jí)或更 高級(jí)的中斷服務(wù)程序正在進(jìn)行,則附加的等待時(shí)間取決于正在進(jìn)行的中斷服務(wù)程 序:如果正在執(zhí)行的一條指令還沒(méi)有進(jìn)行到最后一個(gè)機(jī)器周期,附加的等待時(shí)間為13個(gè)機(jī)器周期;如果正在執(zhí)行的是RETI指令或者訪問(wèn)IE或IP的指令,則附 加的等待時(shí)間在5個(gè)機(jī)器周期內(nèi)。若系統(tǒng)中只有一個(gè)中斷源,則響應(yīng)時(shí)間為 38個(gè)機(jī)器周期。16、中斷響應(yīng)過(guò)程中,為什么通常要保護(hù)現(xiàn)場(chǎng)?如何保護(hù)?答:因?yàn)橐话阒鞒绦蚝椭袛喾?wù)程序都可能會(huì)用到累加器,PSW寄存器及其他一些寄存器。CPU在進(jìn)入中斷服務(wù)程序后,用到上述寄存器時(shí),就

48、會(huì)破壞它原 來(lái)存在寄存器中的內(nèi)容;一旦中斷返回,將會(huì)造成主程序的混亂。因而在進(jìn)入中 斷服務(wù)程序后,一般要先保護(hù)現(xiàn)場(chǎng),然后再執(zhí)行中斷處理程序,在返回主程序以 前再恢復(fù)現(xiàn)場(chǎng)。保護(hù)方法一般是把累加器、PSW寄存器及其他一些與主程序有關(guān)的寄存器壓入 堆棧。在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)時(shí),為了不使現(xiàn)場(chǎng)受到破壞或者造成混亂, 一般規(guī) 定此時(shí)CPU不響應(yīng)新的中斷請(qǐng)求。這就要求在編寫中斷服務(wù)程序時(shí),注意在保 護(hù)現(xiàn)場(chǎng)之前要關(guān)中斷,在恢復(fù)現(xiàn)場(chǎng)之后開(kāi)中斷。如果在中斷處理時(shí)允許有更高級(jí) 的中斷打斷它,則在保護(hù)現(xiàn)場(chǎng)之后再開(kāi)中斷,恢復(fù)現(xiàn)場(chǎng)之前關(guān)中斷。在中斷響應(yīng)中,CPU要完成以下自主操作過(guò)程:置位相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器,以標(biāo)明所

49、響應(yīng)中斷的優(yōu)先級(jí)別 中斷源標(biāo)志清零(TI、RI除外)中斷斷點(diǎn)地址裝入堆棧保護(hù)(不保護(hù) PSW)中斷入口地址裝入PC,以便使程序轉(zhuǎn)到中斷入口地址處17、清敘述中斷響應(yīng)的CPU操作過(guò)程,為什么說(shuō)中斷操作是一個(gè) CPU的微查詢 過(guò)程?答:a)b)c)d)在計(jì)算機(jī)內(nèi)部,中斷表現(xiàn)為 CPU的微查詢操作。89C51單片機(jī)中,CPU在每個(gè) 機(jī)器周期的S6狀態(tài),查詢中斷源,并按優(yōu)先級(jí)管理規(guī)則處理同時(shí)請(qǐng)求的中斷源, 且在下一個(gè)機(jī)器周期的S1狀態(tài)中,響應(yīng)最高級(jí)中斷請(qǐng)求。但是以下情況除外:a)CPU正在處理相同或更高優(yōu)先級(jí)中斷b)多機(jī)器周期指令中,還未執(zhí)行到最后一個(gè)機(jī)器周期C)正在執(zhí)行中斷系統(tǒng)的SFR操作,如RET

50、I指令及訪問(wèn)IE、IP等操作時(shí),要延后一條指令18、在中斷請(qǐng)求有效并開(kāi)中斷狀況下,能否保證立即響應(yīng)中斷?有什么條件? 答:在中斷請(qǐng)求有效并開(kāi)中斷狀況下,并不能保證立即響應(yīng)中斷。這是因?yàn)?,?計(jì)算機(jī)內(nèi)部,中斷表現(xiàn)為 CPU的微查詢操作。89C51單片機(jī)中,CPU在每個(gè)機(jī) 器周期的S6狀態(tài)下,查詢中斷源,并按優(yōu)先級(jí)管理規(guī)則處理同時(shí)請(qǐng)求的中斷源, 且在下一個(gè)機(jī)器周期的S1狀態(tài)中,響應(yīng)最高級(jí)中斷請(qǐng)求。在以下情況下,還需要有另外的等待:CPU正在處理相同或更高優(yōu)先級(jí)中斷多機(jī)器周期指令中,還未執(zhí)行到最后一個(gè)機(jī)器周期正在執(zhí)行中斷系統(tǒng)的SFR操作,如RETI指令及訪問(wèn)IE、IP等操作時(shí), 要延后一條指令a)b

51、)c)第6章習(xí)題1、定時(shí)器模式2有什么特點(diǎn)?適用于什么場(chǎng)合?答:(1)模式2把TLO(或TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TLO計(jì)數(shù)溢出時(shí)不僅使溢出中斷標(biāo)志位 TFO置1,而且還自動(dòng)把THO中的內(nèi)容重新裝載到TLO中。TLO用作8位計(jì)數(shù)器,THO用以保存初值。用于定時(shí)工作方式時(shí)間(TFO溢出周期)為,用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)長(zhǎng)度(THO初值=O)為28=256個(gè)外部脈沖。這種工作方式可省去用戶軟件重裝初值的語(yǔ)句,并可產(chǎn)生相當(dāng)精確定時(shí)時(shí)間,特別適于作串行波特率發(fā)生器。2、單片機(jī)內(nèi)部定時(shí)方式產(chǎn)生頻率為1OOKHZ等寬矩形波,假定單片機(jī)的晶振頻率為12MHz,請(qǐng)編程實(shí)現(xiàn)。答:

52、TO 低 5 位:1BHTO 高 8位:FFHMOV TMOD,#OOH;設(shè)置定時(shí)器TO工作于模式OMOVTLO,#1BH;設(shè)置5ms定時(shí)初值MOVTHO,#OFFHSETBTRO;啟動(dòng)TOLOOPJBCTFO,L1;查詢到定時(shí)時(shí)間到?時(shí)間到轉(zhuǎn)L1SJMPLOOP;時(shí)間未到轉(zhuǎn)LOOP,繼續(xù)查詢L1 : MOVTL0,#1BH;重新置入定時(shí)初值MOV THO,#OFFHCPL P 1.0;輸出取反,形成等寬矩形波SJMP LOOP;重復(fù)循環(huán)3、89C51定時(shí)器有哪幾種工作模式?有何區(qū)別?答:有四種工作模式:模式0,模式1,模式2,模式3(1) 模式0:選擇定時(shí)器的高8位和低5位組成一個(gè)13位定時(shí)器/計(jì)數(shù)器。TL低5位溢出時(shí)向TH進(jìn)位,TH溢出時(shí)向中斷標(biāo)志位TF進(jìn)位,并申請(qǐng)中斷。定時(shí)時(shí)間t=(213-初值)X振蕩周期X 12;計(jì)數(shù)長(zhǎng)度位213=8192個(gè)外部脈沖(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時(shí)時(shí)間t=(216-初值)X振蕩周期X 12;計(jì)數(shù)長(zhǎng)度位216=65536個(gè)外部脈沖(3) 模式2:把TL0和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論