版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)原理及接口技術(shù)課后答
案_(第三版)
標(biāo)準(zhǔn)化文件發(fā)布號(hào):(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-
第一章
1.單片機(jī)具有哪些特點(diǎn)
(1)片內(nèi)存儲(chǔ)容量越來(lái)越大。
(2抗干擾性好,可靠性高。
(3)芯片引線(xiàn)齊全,容易擴(kuò)展。
(4)運(yùn)行速度高,控制功能強(qiáng)。
(5)單片機(jī)內(nèi)部的數(shù)據(jù)信息保存時(shí)間很長(zhǎng),有的芯片可以達(dá)到100年以上。
2.89C51單片機(jī)內(nèi)包含哪些主要邏輯功能部件
答:80C51系列單片機(jī)在片內(nèi)集成了以下主要邏輯功能部件:
(l)CPU(中央處理器):8位
(2)片內(nèi)RAM:128B
(3)特殊功能寄存器:21個(gè)
(4)程序存儲(chǔ)器:4KB
(5)并行I/O口:8位,4個(gè)
(6)串行接口:全雙工,1個(gè)
(7)定時(shí)器/計(jì)數(shù)器:16位,2個(gè)
(8)片內(nèi)時(shí)鐘電路:1個(gè)
3.什么是微處理器(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ī)。
4.微型計(jì)算機(jī)怎樣執(zhí)行一個(gè)程序
答:通過(guò)CPU指令,提到內(nèi)存當(dāng)中,再逐一執(zhí)行。
5.什么是嵌入式系統(tǒng)他有哪些類(lèi)型為什么說(shuō)單片機(jī)是典型的嵌入式系統(tǒng)
答;嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)和各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,這一點(diǎn)就
決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。
它有嵌入式微處理器、嵌入式微控制器、嵌入式DSP處理器、嵌入式片上系統(tǒng)等。
嵌入式系統(tǒng)的出現(xiàn)最初是基于單片機(jī)的。它從體系結(jié)構(gòu)到指令系統(tǒng)都是按照嵌入式應(yīng)用特點(diǎn)專(zhuān)門(mén)設(shè)
計(jì)的,能最好的滿(mǎn)足面對(duì)控制對(duì)象,應(yīng)運(yùn)系統(tǒng)的嵌入、現(xiàn)場(chǎng)的可靠運(yùn)行以及非凡的控制品質(zhì)要求。
因此,她是典型的嵌入式系統(tǒng)。
第二章
1.89C51單片機(jī)內(nèi)包含哪些主要邏輯功能部件
答:80C51系列單片機(jī)在片內(nèi)集成了以下主要邏輯功能部件:
(l)CPU(中央處理器):8位
(2)片內(nèi)RAM:128B
(3)特殊功能寄存器:21個(gè)
(4)程序存儲(chǔ)器:4KB
(5)并行I/O口:8位,4個(gè)
(6)串行接口:全雙工,1個(gè)
(7)定時(shí)器/計(jì)數(shù)器:16位,2個(gè)
(8)片內(nèi)時(shí)鐘電路:1個(gè)
2.89C51的EA端有何用途
答:/EA端接高電平時(shí),CPU只訪(fǎng)問(wèn)片內(nèi)并執(zhí)行內(nèi)部程序,存儲(chǔ)器。/EA端接低電平時(shí),CPU只訪(fǎng)問(wèn)外部ROM,并
執(zhí)行片外程序存儲(chǔ)器中的指令。/EA端保持高電平時(shí),CPU執(zhí)行內(nèi)部存儲(chǔ)器中的指令。
3.89C51的存儲(chǔ)器分哪幾個(gè)空間如何區(qū)別不同空間的尋址
答:ROM(片內(nèi)ROM和片外ROM統(tǒng)一編址)(使用MOVC)(數(shù)據(jù)傳送指令)(16bits地址)(64KB)
片外RAM(MOVX)(16bits地址)(64KB)
片內(nèi)RAM(MOV)(8bits地址)(256B)
4.簡(jiǎn)述89C51片內(nèi)RAM的空間分配。
答:片內(nèi)RAM有256B
低128B是真正的RAM區(qū)
高128B是SFR(特殊功能寄存器)區(qū)
5.簡(jiǎn)述布爾處理存儲(chǔ)器的空間分配,片內(nèi)RAM中包含哪些可位尋址單元。
答:片內(nèi)RAM區(qū)從00H~FFH(256B)
其中20H~2FH(字節(jié)地址)是位尋址區(qū)
對(duì)應(yīng)的位地址是00H~7FH
6.如何簡(jiǎn)捷地判斷89C51正在工作
答:用示波器觀(guān)察8051的XTAL2端是否有脈沖信號(hào)輸出(判斷震蕩電路工作是否正常)
ALE(地址鎖存允許)(AddressLatchEnable)輸出是fosc的6分頻
用示波器觀(guān)察ALE是否有脈沖輸出(判斷8051芯片的好壞)
觀(guān)察PSEN(判斷8051能夠到EPROM或ROM中讀取指令碼)
因?yàn)?PSEN接外部EPROM(ROM)的/OE端子
OE=OutputEnable(輸出允許)
7.89C51如何確定和改變當(dāng)前工作寄存器組
答:PSW(程序狀態(tài)字)(ProgramStatusWord)中的RS1和RS0
可以給出4中組合
用來(lái)從4組工作寄存器組中進(jìn)行選擇
PSW屬于SFR(SpecialFunctionRegister)(特殊功能寄存器)
8.89C51P0口用作通用I/O口輸入時(shí),若通過(guò)TTL“OC”門(mén)輸入數(shù)據(jù),應(yīng)注意什么為什么
答:
9.讀端口鎖存器和“讀引腳”有何不同各使用哪種指令
答:讀鎖存器(ANLP0,A)就是相當(dāng)于從存儲(chǔ)器中拿數(shù)據(jù),而讀引腳是從外部拿數(shù)據(jù)(如MOVA,P1這條指令就是
讀引腳的,意思就是把端口p1輸入數(shù)據(jù)送給A)
傳送類(lèi)MOV,判位轉(zhuǎn)移JB、JNB、這些都屬于讀引腳,平時(shí)實(shí)驗(yàn)時(shí)經(jīng)常用這些指令于外部通信,判斷外部鍵盤(pán)
等;字節(jié)交換XCH、XCHD算術(shù)及邏輯運(yùn)算ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制轉(zhuǎn)移CJNE、DJNZ
都屬于讀鎖存器。
10.89C51P0~P3口結(jié)構(gòu)有何不同用作通用I/O口輸入數(shù)據(jù)時(shí),應(yīng)注意什么
答:P0口內(nèi)部沒(méi)有上拉電阻,可以用做16位地址的低8位;
P3有第二功能;
P2口可以用做16位地址的高8位;
需要上拉電阻。OC門(mén)電路無(wú)法輸出高低電平,只有靠上拉電阻才能實(shí)現(xiàn)
11.89C51單片機(jī)的EA信號(hào)有何功能在使用8031時(shí),EA信號(hào)引腳應(yīng)如何處理
答:(1)80C51單片機(jī)的EA信號(hào)的功能
EA為片外程序存儲(chǔ)器訪(fǎng)問(wèn)允許信號(hào),低電平有效;在編程時(shí),其上施加21V的編程電壓
EA引腳接高電平時(shí),程序從片內(nèi)程序存儲(chǔ)器開(kāi)始執(zhí)行,即訪(fǎng)問(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功能的方式提供
答:第一功能第二功能
串行口:
RXD(串行輸入口)
TXD(串行輸出口)
中斷:
INT0外部中斷0
INT1外部中斷1
定時(shí)器/計(jì)數(shù)器(T0、T1):
T0(定時(shí)器/計(jì)數(shù)器0的外部輸入)
T1(定時(shí)器/計(jì)數(shù)器1的外部輸入)
數(shù)據(jù)存儲(chǔ)器選通:
WR(外部存儲(chǔ)器寫(xiě)選通,低電平有效,輸出)
RD(外部存儲(chǔ)器讀選通,低電平有效,輸出)
定時(shí)器/計(jì)數(shù)器(T2):
T2(定時(shí)器T2的計(jì)數(shù)端)
T2EX(定時(shí)器T2的外部輸入端)
13.內(nèi)部RAM低128字節(jié)單元?jiǎng)澐譃槟?個(gè)主要部分各部分主要功能是什么
答:片內(nèi)RAM低128單元的劃分及主要功能:
(l)工作寄存器組(00H~lFH)
這是一個(gè)用寄存器直接尋址的區(qū)域,內(nèi)部數(shù)據(jù)RAM區(qū)的0~31(00H~lFH),共32個(gè)單
元。它是4個(gè)通用工作寄存器組,每個(gè)組包含8個(gè)8位寄存器,編號(hào)為R0~R7。
(2)位尋址區(qū)(20H~2FH)
從內(nèi)部數(shù)據(jù)RAM區(qū)的32~47(20H~2FH)的16個(gè)字節(jié)單元,共包含128位,是可位尋
址的RAM區(qū)。這16個(gè)字節(jié)單元,既可進(jìn)行字節(jié)尋址,又可實(shí)現(xiàn)位尋址。
(3)字節(jié)尋址區(qū)(30H~7FH)
從內(nèi)部數(shù)據(jù)RAM區(qū)的48~127(30H~7FH),共80個(gè)字節(jié)單元,可以采用間接字節(jié)尋址
的方法訪(fǎng)問(wèn)。
14.使單片機(jī)復(fù)位有幾種方法復(fù)位后機(jī)器的初始狀態(tài)如何
答:(1)單片機(jī)復(fù)位方法
單片機(jī)復(fù)位方法有:上電自動(dòng)復(fù)位、按鍵電平復(fù)位和外部脈沖三種方式,如題圖2-1所示。
題圖2-1
(2)復(fù)位后的初始狀態(tài)
復(fù)位后機(jī)器的初始狀態(tài),即各寄存器的狀態(tài):PC之外,復(fù)位操作還對(duì)其他一些特殊功能寄存器有影響,它們的復(fù)位
狀態(tài)如題表2-1所例
15.開(kāi)機(jī)復(fù)位后,CPU使用的是哪組工作寄存器它們的地址是什么CPU如何確定和改變當(dāng)前工作寄存器組
答:一般開(kāi)機(jī)復(fù)位后都是選擇第一組通用工作寄存器作為工作寄存器的,一共有4組,分別為0.1.2.3連續(xù)位于
00h到1FH地址,
然后在機(jī)器中有個(gè)程序狀態(tài)字PSW,它的第四和第三位RS1,RS0是用來(lái)選擇工作寄存器組的,可能不同機(jī)器地址
稍有不同。他們倆的值和寄存器組的關(guān)系:
RS1/RS00/00/11/01/1
使用的工作寄存器0123
地址00-0708-0F10-1718-1F
寫(xiě)程序的時(shí)候就是通過(guò)定義程序狀態(tài)字來(lái)選擇使用不同的寄存器組。也可以直接對(duì)RS1和RS0賦值。
(最后一問(wèn)同題7)
16.程序狀態(tài)寄存器PSW的作用是什么常用標(biāo)志有哪些位作用是什么
答:PSW是一個(gè)SFR(特殊功能寄存器)
位于片內(nèi)RAM的高128B
具體地址D0H(00H~FFH)(片內(nèi)RAM的編址)(8bits編址方法)
PSW=ProgramStatusWord(程序狀態(tài)字)
PSW的常用標(biāo)志位有哪些
CY=Carry(進(jìn)位標(biāo)志位)
AC=AuxiliaryCarry(輔助進(jìn)位標(biāo)志位)(半進(jìn)位標(biāo)志位)
F0用戶(hù)標(biāo)志位
RS1,RS0,用來(lái)選擇當(dāng)前工作寄存器組(R0~R7)(4選1)
OV=Overflow(溢出標(biāo)志位)
P=Parity(奇偶校驗(yàn)位)
17.位地址7CH與字節(jié)地址7CH如何區(qū)別位地址7CH具體在片內(nèi)RAM中的什么位置
答:用不同的尋址方式來(lái)加以區(qū)分,即訪(fǎng)問(wèn)128個(gè)位地址用位尋址方式,訪(fǎng)問(wèn)低128字節(jié)單元用字節(jié)尋址和間接
尋址。
具體地址為2F的第五位,即為7C。
18.89C51單片機(jī)的時(shí)鐘周期與振蕩周期之間有什么關(guān)系什么叫機(jī)器周期和指令周期
答:時(shí)鐘信號(hào)的周期稱(chēng)為機(jī)器狀態(tài)周期,是振蕩周期的兩倍。一個(gè)機(jī)器周期是指CPU訪(fǎng)問(wèn)存儲(chǔ)器一次所需的時(shí)
間。指令周期是執(zhí)行一條指令所需的時(shí)間。
19.一個(gè)機(jī)器周期的時(shí)序如何劃分
答:一個(gè)機(jī)器周期=12個(gè)震蕩周期=6個(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),只能在一端(稱(chēng)為棧頂(top))對(duì)數(shù)據(jù)項(xiàng)進(jìn)行插入和刪除。要點(diǎn):堆:
順序隨意棧:后進(jìn)先出(Last-In/First-Out)
在調(diào)用子程序時(shí)需要保存調(diào)用函數(shù)的CPU寄存器PC指針,PC指針是被CALL指令自動(dòng)壓入SP所指向的片內(nèi)存儲(chǔ)
器,CPU寄存器要由用戶(hù)用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ǔ)器,0X20以上理論都可以做堆棧用96字節(jié),8052為256字節(jié)224字節(jié)可用,但這
樣便沒(méi)有其它空間可用于數(shù)據(jù)存儲(chǔ)現(xiàn)在的單片機(jī)的程序一般都能用C51來(lái),不用關(guān)心堆棧大小與SP寄存器
21.89C51有幾種低功耗方式如何實(shí)現(xiàn)
答:空閑方式和掉電方式
空閑方式和掉電方式是通過(guò)對(duì)SFR中的PCON(地址87H)相應(yīng)位置1而啟動(dòng)的。
當(dāng)CPU執(zhí)行完置IDL=1)的指令后,系統(tǒng)進(jìn)入空閑工作方式。這時(shí),內(nèi)部時(shí)鐘不向CPU提供,而只供給中斷、串行
口、定時(shí)器部分。CPU的內(nèi)部狀態(tài)維持,即包括堆棧指針SP、程序計(jì)數(shù)器PC、程序狀態(tài)字PSW、累加器ACC所有
的內(nèi)容保持不變,端口狀態(tài)也保持不變。ALE和PSEN保持邏輯高電平。
當(dāng)CPU執(zhí)行一條置位(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與DPTR各有哪些特點(diǎn)有何異同
答:(1)程序計(jì)數(shù)器PC作為不可尋址寄存器的特點(diǎn)
程序計(jì)數(shù)器PC是中央控制器申最基本的寄存器,是一個(gè)獨(dú)立的計(jì)數(shù)器,存放著下一條將程序存儲(chǔ)器中取出的
指令的地址。
程序計(jì)數(shù)器PC變化的軌跡決定程序的流程。程序計(jì)數(shù)器的寬度決定了程序存儲(chǔ)器可以
尋址的范圍。
程序計(jì)數(shù)器PC的基本工作方式有:
①程序計(jì)數(shù)器PC自動(dòng)加1。這是最基本的工作方式,也是這個(gè)專(zhuān)用寄存器被稱(chēng)為計(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+DPTR等。
③在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí):
●PC的現(xiàn)行值,即下一條將要執(zhí)行的指令的地址送入堆棧,加以保護(hù);
●將子程序的入口地址或者中斷矢量地址送入PC,程序流向發(fā)生變化,執(zhí)行子程序或中斷服務(wù)程序;
●子程序或中斷服務(wù)程序執(zhí)行完畢,遇到返回指令RET或RETI時(shí),將棧頂?shù)膬?nèi)容送到PC寄存器中,程序流程又
返回到原來(lái)的地方,繼續(xù)執(zhí)行。
(2)地址指針DPTR的特點(diǎn)
地址指針DPTR的特點(diǎn)是,它作為片外數(shù)據(jù)存儲(chǔ)器尋址用的地址寄存器(間接尋址)。
(3)地址指針DPTR與程序計(jì)數(shù)器PC的異同
①相同之處:
●兩者都是與地址有關(guān)的、16位的寄存器。其中,PC與程序存儲(chǔ)器的地址有關(guān),而
DPTR與數(shù)據(jù)存儲(chǔ)器的地址有關(guān)。
●作為地址寄存器使用時(shí),PC與DPTR都是通過(guò)P0和P2口(作為16位地址總線(xiàn))輸
出的。但是,PC的輸出與ALE及PSEN有關(guān);DPTR的輸出,則與ALE、RD及WR相聯(lián)系。
②不同之處:
●PC只能作為16位寄存器對(duì)待,由于有自動(dòng)加1的功能,故又稱(chēng)為計(jì)數(shù)器;
DPTR可以作為16位寄存器對(duì)待,也可以作為兩個(gè)8位寄存器對(duì)待。
●PC是不可以訪(fǎng)問(wèn)的,有自己獨(dú)特的變化方式,它的變化軌跡決定了程序執(zhí)行的流程;
DPTR是可以訪(fǎng)問(wèn)的,如MOVDPTR,#XXXXH,INCDPTP。
23.89C51端口鎖存器的“讀—修改—寫(xiě)”操作與“讀引腳”操作有何區(qū)別
答:指令系統(tǒng)中有些指令讀鎖存器的值,有些指令則讀引腳上的值。讀鎖存器指令是從鎖存器中讀取一個(gè)值并進(jìn)行
處理,把處理后的值(原值或已修改后的值)重新寫(xiě)入鎖存器中。這類(lèi)指令稱(chēng)為讀-修改-寫(xiě)指令。
對(duì)于讀-修改-寫(xiě)指令。直接讀鎖存器而不是讀端口引腳,是因?yàn)閺囊_上讀出的數(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、簡(jiǎn)述8951的匯編指令格式。答:操作碼[目的操作數(shù)][,源操作數(shù)]
4、簡(jiǎn)述8951的尋址方式和所能涉及的尋址空間。
尋址方式尋址空間
立即數(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
5、訪(fǎng)問(wèn)特殊功能寄存器和外數(shù)據(jù)存儲(chǔ)器,應(yīng)采用那些尋址方式
答:SFR:直接尋址,位尋址,寄存器尋址;片外RAM:寄存器間接尋址
6、8951中已知(30H)=38H,請(qǐng)分析以下各是什么指令,說(shuō)明源操作數(shù)的尋址方式以及執(zhí)行結(jié)果。
MOVA,40H;直接尋址(40H)→A
MOVR0,A;寄存器尋址(A)→R0
MOVP1,#0F0H;立即數(shù)尋址0F0→P1
MOV@R0,30H;直接尋址(30H)→(R0)
MOVDPTR,#3848H;立即數(shù)尋址3848H→DPTR
MOV40H,38H;直接尋址(38H)→40H
MOVR0,30H;直接尋址(30H)→R0
MOVP0,R0;寄存器尋址(R0)→P0
MOV18H,#30H;立即數(shù)尋址30H→18H
MOVA,@R0;寄存器間接尋址((R0))→A
MOVP2,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
注意:→左邊是內(nèi)容,右邊是單元
7、8951片內(nèi)高128字節(jié)的地址尋址要注意什么/
答:用直接尋址,位尋址,寄存器尋址
8、指出些列指令的本質(zhì)
MOVA,DATA;直接尋址2字節(jié)1周期
MOVA,#DATA;立即數(shù)尋址2字節(jié)1周期
MOVDATA1,DATA2;直接尋址3字節(jié)2周期
MOV74H,#78H;立即數(shù)尋址3字節(jié)2周期
如果想查某一指令的機(jī)器碼,字節(jié)數(shù)或周期數(shù)可查閱書(shū)本后面的附錄A
9、設(shè)R0的內(nèi)容分為32H,A的內(nèi)容為48H,。。。。請(qǐng)指出在執(zhí)行下列程序段后上述各單元內(nèi)容的
變化
MOVA,@R0;((R0))=80H→A
MOV@R0,40H;(40H)=08H→(R0)
MOV40H,A;(A)=80→40H
MOVR0,#35H;35H→R0
最后結(jié)果:(R0)=35H(A)=80H,(32H)=08H,(40H)=80H
10、如何訪(fǎng)問(wèn)SFR,可采用那些尋址方式
答:用直接尋址,位尋址,寄存器尋址
11、如何訪(fǎng)問(wèn)片外RAM,可使用那些尋址方式
答:只能采用寄存器間接尋址(用MOVX指令)
12、如何訪(fǎng)問(wèn)片內(nèi)RAM,可使用那些尋址方式
答:低128字節(jié):直接尋址,位尋址,寄存器間接尋址,寄存器尋址(R0~R7)
高128字節(jié):直接尋址,位尋址,寄存器尋址
13、如何訪(fǎng)問(wèn)片內(nèi)外程序存儲(chǔ)器,可使用那些尋址方式
答:采用變址尋址(用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é)果不正確。用DAA指令調(diào)整(加06H,60H,66H)
15、說(shuō)明8951布爾機(jī)處理機(jī)功能
答:用來(lái)進(jìn)行位操作
16、ANLA,#17H;83H∧17H=03H→A
ORL17H,A;34H∨03H=37H→17H
XRLA,@R0;03H⊕37H=34H
CPLA;34H求反等于CBH
所以(A)=CBH
17、(1)SETB或SETBE0H;E0H是累加器的地址
(2)CLR
CLR
CLR
CLR
(3)CLR
CLR
CLR
CLR
18、MOV27H,R7
MOV26H,R6
MOV25H,R5
MOV24H,R4
MOV23H,R3
MOV22H,R2
MOV21H,R1
MOV20H,R0
19、MOV2FH,20
MOV2EH,21
MOV2DH,22
20、編程,進(jìn)行兩個(gè)16位數(shù)的減法:6F5DH-13B4H,結(jié)果存入內(nèi)部RAM的30和31H單元,30H存低
八位。
CLRC
MOVA,#5DH;被減數(shù)的低8位→A
MOVR2,#B4H;減數(shù)低8位→R2
SUBBA,R2;被減數(shù)減去減數(shù),差→A
MOV30H,A;低8位結(jié)果→30H
MOVA,#6FH;被減數(shù)的高8位→A
MOVR2,#13H;減數(shù)高8位→R2
SUBBA,R2;被減數(shù)減去減數(shù),差→A
MOV31H,A;高8位結(jié)果→30H
注意:如果在你的程序中用到了進(jìn)位位,在程序開(kāi)始的時(shí)候要記得清0進(jìn)位位
21、編程,若累加器A滿(mǎn)足下列條件,則程序轉(zhuǎn)至LABEL存儲(chǔ)單元,設(shè)A中為無(wú)符號(hào)數(shù)。
(1)A≥10
CJNEA,#0AH,L1;(A)與10比較,不等轉(zhuǎn)L1
LJMPLABEL;相等轉(zhuǎn)LABEL
L1:JNCLABEL;(A)大于10,轉(zhuǎn)LABEL
或者:
CLRC
SUBBA,#0AH
JNCLABEL
(2)A>10
CJNEA,#0AH,L1;(A)與10比較,不等轉(zhuǎn)L1
RET;相等結(jié)束
L1:JNCLABEL;(A)大于10,轉(zhuǎn)LABEL
RET;(A)小于10,結(jié)束
或者:
CLRC
SUBBA,#0AH
JNCL1
RET
L1:JNZLABEL
RET
(3)A≤10
CJNEA,#0AH,L1;(A)與10比較,不等轉(zhuǎn)L1
L2:LJMPLABEL;相等轉(zhuǎn)LABEL
L1:JCL2;(A)小于10,轉(zhuǎn)L2
RET
或者:
CLRC
SUBBA,#0AH
JCLABEL
JZLABEL
RET
22、(SP)=23H,(PC)=3412H
參看書(shū)上80頁(yè)
23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H
參看書(shū)上79頁(yè)
24、不能。ACALL是短轉(zhuǎn)指令,可調(diào)用的地址范圍是2KB。
在看這個(gè)題的時(shí)候同時(shí)看一下AJMP指令。同時(shí)考慮調(diào)用指令A(yù)CALL和LCALL指令和RET指令的關(guān)
系。
25、編程,查找內(nèi)部RAM中20H-50H單元中是否有0AAH這一數(shù)據(jù),若有則將51h單元置為01H,
如無(wú),則將51H單元清零。
MOVR2,#31H;數(shù)據(jù)塊長(zhǎng)度→R2
MOVR0,#20H;數(shù)據(jù)塊首地址→R0
LOOP:MOVA,@R0;待查找的數(shù)據(jù)→A
CLRC;清進(jìn)位位
SUBBA,#0AAH;待查找的數(shù)據(jù)是0AAH嗎
JZL1;是,轉(zhuǎn)L1
INCR0;不是,地址增1,指向下一個(gè)待查數(shù)據(jù)
DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找
MOV51H,#00H;等于0,未找到,00H→51H
RET
L1:MOV51H,#01H;找到,01H→51H
RET
26、編程查找內(nèi)部RAM的20H-50H單元中出現(xiàn)00H的次數(shù)并將結(jié)果存入51H中。
MOVR2,#31H;數(shù)據(jù)塊長(zhǎng)度→R2
MOVR0,#20H;數(shù)據(jù)塊首地址→R0
LOOP:MOVA,@R0;待查找的數(shù)據(jù)→A
JNZL1;不為0,轉(zhuǎn)L1
INC51H;為0,00H個(gè)數(shù)增1
L1:INCR0;地址增1,指向下一個(gè)待查數(shù)據(jù)
DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找
RET
27、外部數(shù)據(jù)RAM中有一個(gè)數(shù)據(jù)塊,首地址為SOURCE,要求將該數(shù)據(jù)傳送到內(nèi)部RAM以DIST開(kāi)頭
的區(qū)域在,直到遇到數(shù)字字符¥時(shí)結(jié)束。
MOVDPTR,#SOURCE;源首地址→DPTR
MOVR0,#DIST;目的首地址→R0
LOOP:MOVXA,@DPTR;傳送一個(gè)字符
MOV@R0,A
INCDPTR;指向下一個(gè)字符
INCR0
CJNEA,#24H,LOOP;傳送的是“$”字符嗎不是,傳送下一個(gè)字符
RET
28、已知R3和R4中存有一個(gè)十六位的二進(jìn)制數(shù),高位在3中,低位在4中,編程求其補(bǔ),并存回
原處。
MOVA,R3;取該數(shù)高8位→A
ANLA,#80H;取出該數(shù)符號(hào)判斷
JZL1;是正數(shù),轉(zhuǎn)L1
MOVA,R4;是負(fù)數(shù),將該數(shù)低8位→A
CPLA;低8位取反
ADDA,#01H;加1
MOVR4,A;低8位取反加1后→R4
MOVA,R3;將該數(shù)高8位→A
CPLA;高8位取反
ADDCA,#00H;加上低8位加1時(shí)可能產(chǎn)生的進(jìn)位
MOVR3,A;高8位取反加1后→R3
L1:RET
29、已知30H和31H中存有一個(gè)十六位的二進(jìn)制數(shù),高位在前,低位在后,編程將它們乘2,并存
回原處。
CLRC;清進(jìn)位位C
MOVA,31H;取該數(shù)低8位→A
RLCA;帶進(jìn)位位左移1位
MOV31H,A;結(jié)果存回31H
MOVA,30H;取該數(shù)高8位→A
RLCA;帶進(jìn)位位左移1位
MOV30H,A;結(jié)果存回30H
30、內(nèi)存中有兩個(gè)4字節(jié)以壓縮的BCD碼形式存放的十進(jìn)制數(shù),一個(gè)放在30H-33H的單元中,一個(gè)
放在40H-43H的單元中,編程求他們的和,結(jié)果放在30H-33H的單元中。
MOVR2,#04H;字節(jié)長(zhǎng)度→R2
MOVR0,#30H;一個(gè)加數(shù)首地址→R0
MOVR1,#40H;另一個(gè)加數(shù)首地址→R1
CLRC;清進(jìn)位位
LOOP:MOVA,@R0;取一個(gè)加數(shù)
ADDCA,@R1;兩個(gè)加數(shù)帶進(jìn)位位相加
DAA;十進(jìn)制調(diào)整
MOV@R0,A;存放結(jié)果
INCR0;指向下一個(gè)字節(jié)
INCR1;
DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找
RET
31、編程,把片外RAM從2000H開(kāi)始存放的8個(gè)數(shù)傳送到片內(nèi)30H開(kāi)始的單元中。
MOVR2,#08H;數(shù)據(jù)塊長(zhǎng)度→R2
MOVR0,#30H;數(shù)據(jù)塊目的地址→R0
MOVDPTR,#2000H;數(shù)據(jù)塊源地址→DPTR
LOOP:MOVXA,@DPTR;傳送一個(gè)數(shù)據(jù)
MOV@R0,A
INCDPTR;指向下一個(gè)數(shù)據(jù)
INCR0;
DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,沒(méi)傳送完,繼續(xù)傳送
RET
35、解:(1000H)=53H(1001H)=54H(1002H)=41H
(1003H)=52H(1004H)=54H(1005H)=12H
(1006H)=34H(1007H)=30H(1008H)=00H
(1009H)=70H
36、閱讀下列程序說(shuō)明其功能
MOVR0,#40H;40H→R0
MOVA,@R0;98H→A
INCR0;41H→R0
ADDA,@R0;98H+(41H)=47H→A
INCR0
MOV@R0,A;結(jié)果存入42H單元
CLRA;清A
ADDCA,#0;進(jìn)位位存入A
INCR0
MOV@R0,A;進(jìn)位位存入43H
功能:將40H,41H單元中的內(nèi)容相加結(jié)果放在42H單元,進(jìn)位放在43H單元,(R0)=43H,
(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H
37、同上題
MOVA,61H;F2H→A
MOVB,#02H;02H→B
MULAB;F2H×O2H=E4H→A
ADDA,62H;積的低8位加上CCH→A
MOV63H,A;結(jié)果送62H
CLRA;清A
ADDCA,B;積的高8位加進(jìn)位位→A
MOV64H,A;結(jié)果送64H
功能:將61H單元的內(nèi)容乘2,低8位再加上62H單元的內(nèi)容放入63H,將結(jié)果的高8位放在64H
單元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H
39、MOVA,XXH
ORLA,#80H
MOVXXH,A
40、(2)MOVA,XXH
MOVR0,A
XRLA,R0
第五章
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ò)程稱(chēng)為中斷,實(shí)現(xiàn)這種功能的部件稱(chēng)為中斷系統(tǒng)。功能:
(1)使計(jì)算機(jī)具有實(shí)時(shí)處理能力,能對(duì)外界異步發(fā)生的事件作出及時(shí)的處理
(2)完全消除了CPU在查詢(xún)方式中的等待現(xiàn)象,大大提高了CPU的工作效率
(3)實(shí)現(xiàn)實(shí)時(shí)控制
2、試編寫(xiě)一段對(duì)中斷系統(tǒng)初始化的程序,使之允許INT0,INT1,TO,串行口中斷,且使T0中斷為
高優(yōu)先級(jí)中斷。
解:MOVIE,#097H
MOVIP,#02H
3、在單片機(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/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)先響應(yīng)優(yōu)先級(jí)高的中斷請(qǐng)求,再響應(yīng)優(yōu)先級(jí)低的
(2)如果一個(gè)中斷請(qǐng)求已經(jīng)被響應(yīng),同級(jí)的其它中斷請(qǐng)求將被禁止
(3)如果同級(jí)的多個(gè)請(qǐng)求同時(shí)出現(xiàn),則CPU通過(guò)內(nèi)部硬件查詢(xún)電路,按查詢(xún)順序確定應(yīng)該響應(yīng)哪
個(gè)中斷請(qǐng)求
查詢(xún)順序:外部中斷0→定時(shí)器0中斷→外部中斷1→定時(shí)器1中斷→串行接口中斷
6、說(shuō)明外部中斷請(qǐng)求的查詢(xún)和響應(yīng)過(guò)程。
答:當(dāng)CPU執(zhí)行主程序第K條指令,外設(shè)向CPU發(fā)出中斷請(qǐng)求,CPU接到中斷請(qǐng)求信號(hào)并在本條指
令執(zhí)行完后,中斷主程序的執(zhí)行并保存斷點(diǎn)地址,然后轉(zhuǎn)去響應(yīng)中斷。CPU在每個(gè)S5P2期間順序采
樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器周期S6期間按優(yōu)先級(jí)順序查詢(xún)中斷標(biāo)志,如果查詢(xún)到某個(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)中斷
答:
(1)有中斷源發(fā)出中斷請(qǐng)求
(2)中斷中允許位EA=1.即CPU開(kāi)中斷
(3)申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒(méi)有被屏蔽
(4)無(wú)同級(jí)或更高級(jí)中斷正在服務(wù)
(5)當(dāng)前指令周期已經(jīng)結(jié)束
(6)若現(xiàn)行指令為RETI或訪(fǎng)問(wèn)IE或IP指令時(shí),該指令以及緊接著的另一條指令已執(zhí)行完畢
8、簡(jiǎn)述89C51單片機(jī)的中斷響應(yīng)過(guò)程。
答:CPU在每個(gè)機(jī)器周期S5P2期間順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器周期S6期間按優(yōu)先級(jí)
順序查詢(xún)中斷標(biāo)志,如查詢(xún)到某個(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)的中斷服務(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)有中斷源發(fā)出中斷請(qǐng)求
b)中斷允許位EA=1,即CPU開(kāi)中斷
c)申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒(méi)有被屏蔽d)無(wú)同級(jí)或更高級(jí)中斷正在被服務(wù)
e)當(dāng)前的指令周期已結(jié)束
f)若現(xiàn)行指令為RETI或訪(fǎng)問(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)中斷;若為高電平,則IE1(IE0)清零。
邊沿觸發(fā)方式:CPU在每個(gè)機(jī)器周期S5P2期間采樣外部中斷請(qǐng)求引腳的輸入電平。如果在相繼的兩
個(gè)機(jī)器周期采樣過(guò)程中,一個(gè)機(jī)器周期采樣到外部中斷請(qǐng)求為高電平,接著下一個(gè)機(jī)器周期采樣到
外部中斷請(qǐng)求為低電平,則使IE1(IE0)置“1”申請(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,外中斷0,外中斷1,串行口中斷。
可以,MOVIP,#0AH
⑵串行口中斷,外中斷0,定時(shí)器0,外中斷1,定時(shí)器1??梢裕琈OVIP,#10H
⑶外中斷0,定時(shí)器1,外中斷1,定時(shí)器0,串行口中斷。
不可以,只能設(shè)置一級(jí)高級(jí)優(yōu)先級(jí),如果將INT0,T1設(shè)置為高級(jí),而T0級(jí)別高于INT1.
⑷外中斷0,外中斷1,串行口中斷,定時(shí)器0,定時(shí)器1。可以,MOVIP,#15H
⑸串行口中斷,定時(shí)器0,外中斷0,外中斷1,定時(shí)器1。不可以
⑹外中斷0,外中斷1,定時(shí)器0,串行口中斷,定時(shí)器1。不可以
⑺外中斷0,定時(shí)器1,定時(shí)器0,外中斷1,串行口中斷。可以,MOVIP,#09H
14、89C51各中斷源的中斷標(biāo)志是如何產(chǎn)生的又是如何清0的CPU響應(yīng)中斷時(shí),中斷入口地址各是
多少
答:各中斷標(biāo)志的產(chǎn)生和清“0”如下:
(1)外部中斷類(lèi)
外部中斷是由外部原因引起的,可以通過(guò)兩個(gè)固定引腳,即外部中斷0和外部中斷1輸入信號(hào)。
外部中斷0請(qǐng)求信號(hào),由腳輸入。通過(guò)IT0來(lái)決定中斷請(qǐng)求信號(hào)是低電平有效還是下跳變有效。一
旦輸入信號(hào)有效,則向CPU申請(qǐng)中斷,并且使IE0=1。硬件復(fù)位。
外部中斷1請(qǐng)求信號(hào),功能與用法類(lèi)似外部中斷0
(2)定時(shí)中斷類(lèi)
定時(shí)中斷是為滿(mǎn)足定時(shí)或計(jì)數(shù)溢出處理需要而設(shè)置的。當(dāng)定時(shí)器/計(jì)數(shù)器中的計(jì)數(shù)結(jié)構(gòu)發(fā)生計(jì)數(shù)溢出
的,即表明定時(shí)時(shí)間到或計(jì)數(shù)值已滿(mǎn),這時(shí)就以計(jì)數(shù)溢出信號(hào)作為中斷請(qǐng)求,去置位一個(gè)溢出標(biāo)志
位。這種中斷請(qǐng)求是在單片機(jī)芯片內(nèi)部發(fā)生的,無(wú)需在芯片上設(shè)置引入端,但在計(jì)數(shù)方式時(shí),中斷
源可以由外部引入。
TF0:定時(shí)器T0溢出中斷請(qǐng)求。當(dāng)定時(shí)器T0產(chǎn)生溢出時(shí),定時(shí)器T0請(qǐng)求標(biāo)志TF0=1,請(qǐng)求中斷處
理。使用中斷時(shí)由硬件復(fù)位,在查詢(xún)方式下可由軟件復(fù)位。
TF1:定時(shí)器T1溢出中斷請(qǐng)求。功能與用法類(lèi)似定時(shí)器T0
(3)串行口中斷類(lèi)
串行口中斷是為串行數(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í)器T0中斷000BH
外部中斷10013H
定時(shí)器T1中斷001BH
串行口中斷0023H
15、中斷響應(yīng)時(shí)間是否為確定不變的為什么
答:中斷響應(yīng)時(shí)間不是確定不變的。由于CPU不是在任何情況下對(duì)中斷請(qǐng)求都予以響應(yīng)的;此外,
不同的情況對(duì)中斷響應(yīng)的時(shí)間也是不同的。下面以外部中斷為例,說(shuō)明中斷響應(yīng)的時(shí)間。
在每個(gè)機(jī)器周期的S5P2期間,端的電平被所存到TCON的IE0位,CPU在下一個(gè)機(jī)器周期才會(huì)查詢(xún)
這些值。這時(shí)滿(mǎn)足中斷響應(yīng)條件,下一條要執(zhí)行的指令將是一條硬件長(zhǎng)調(diào)用指令“LCALL”,使程序
轉(zhuǎn)入中斷矢量入口。調(diào)用本身要用2個(gè)機(jī)器周期,這樣,從外部中斷請(qǐng)求有效到開(kāi)始執(zhí)行中斷服務(wù)
程序的第一條指令,至少需要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í)間為1~3個(gè)機(jī)器周期;如果正在執(zhí)行的是RETI指令或者訪(fǎng)
問(wèn)IE或IP的指令,則附加的等待時(shí)間在5個(gè)機(jī)器周期內(nèi)。
若系統(tǒng)中只有一個(gè)中斷源,則響應(yīng)時(shí)間為3~8個(gè)機(jī)器周期。
16、中斷響應(yīng)過(guò)程中,為什么通常要保護(hù)現(xiàn)場(chǎng)如何保護(hù)
答:因?yàn)橐话阒鞒绦蚝椭袛喾?wù)程序都可能會(huì)用到累加器,PSW寄存器及其他一些寄存器。CPU在
進(jìn)入中斷服務(wù)程序后,用到上述寄存器時(shí),就會(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)求。這就
要求在編寫(xiě)中斷服務(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)中斷。
17、清敘述中斷響應(yīng)的CPU操作過(guò)程,為什么說(shuō)中斷操作是一個(gè)CPU的微查詢(xún)過(guò)程
答:在中斷響應(yīng)中,CPU要完成以下自主操作過(guò)程:
a)置位相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器,以標(biāo)明所響應(yīng)中斷的優(yōu)先級(jí)別b)中斷源標(biāo)志清零(TI、RI除外)
c)中斷斷點(diǎn)地址裝入堆棧保護(hù)(不保護(hù)PSW)
d)中斷入口地址裝入PC,以便使程序轉(zhuǎn)到中斷入口地址處
在計(jì)算機(jī)內(nèi)部,中斷表現(xiàn)為CPU的微查詢(xún)操作。89C51單片機(jī)中,CPU在每個(gè)機(jī)器周期的S6狀態(tài),
查詢(xún)中斷源,并按優(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操作,如RETI指令及訪(fǎng)問(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的微查詢(xún)操作。89C51單片機(jī)中,CPU在每個(gè)機(jī)器周期的S6狀態(tài)下,查詢(xún)中斷源,并按
優(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操作,如RETI指令及訪(fǎng)問(wèn)IE、IP等操作時(shí),要延后一條指令
第6章習(xí)題答案
1、定時(shí)器模式2有什么特點(diǎn)適用于什么場(chǎng)合
答:(1)模式2把TL0(或TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL0計(jì)數(shù)溢出時(shí)不
僅使溢出中斷標(biāo)志位TF0置1,而且還自動(dòng)把TH0中的內(nèi)容重新裝載到TL0中。TL0用作8位計(jì)數(shù)
器,TH0用以保存初值。
(2)用于定時(shí)工作方式時(shí)間(TF0溢出周期)為,用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)長(zhǎng)度(TH0初值
=0)為28=256個(gè)外部脈沖。
這種工作方式可省去用戶(hù)軟件重裝初值的語(yǔ)句,并可產(chǎn)生相當(dāng)精確定時(shí)時(shí)間,特別適于作串行波特
率發(fā)生器。
2、單片機(jī)內(nèi)部定時(shí)方式產(chǎn)生頻率為100KHZ等寬矩形波,假定單片機(jī)的晶振頻率為12MHZ,請(qǐng)編程
實(shí)現(xiàn)。
答:
T0低5位:1BH
T0高8位:FFH
MOVTMOD,#00H;設(shè)置定時(shí)器T0工作于模式0
MOVTL0,#1BH;設(shè)置5ms定時(shí)初值
MOVTH0,#0FFH
SETBTR0;啟動(dòng)T0
LOOP:JBCTF0,L1;查詢(xún)到定時(shí)時(shí)間到時(shí)間到轉(zhuǎn)L1
SJMPLOOP;時(shí)間未到轉(zhuǎn)LOOP,繼續(xù)查詢(xún)
L1:MOVTL0,#1BH;重新置入定時(shí)初值
MOVTH0,#0FFH
CPL;輸出取反,形成等寬矩形波
SJMPLOOP;重復(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-初值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位213=8192個(gè)外部脈沖
(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時(shí)時(shí)間t=(216-初
值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位216=65536個(gè)外部脈沖
(3)模式2:把TL0和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL用作8位計(jì)數(shù)器,TH
用以保存初值。TL計(jì)數(shù)溢出時(shí)不僅使TF0置1,而且還自動(dòng)將TH中的內(nèi)容重新裝載到TL中。
定時(shí)時(shí)間t=(28-初值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位28=256個(gè)外部脈沖
(4)模式3:對(duì)T0和T1不大相同
若設(shè)T0位模式3,TL0和TH0被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。TL0為8位計(jì)數(shù)器,功能與模式0
和模式1相同,可定時(shí)可計(jì)數(shù)。
TH0僅用作簡(jiǎn)單的內(nèi)部定時(shí)功能,它占用了定時(shí)器T1的控制位TR1和中斷標(biāo)志位TF1,啟動(dòng)和關(guān)閉
僅受TR1控制。
定時(shí)器T1無(wú)工作模式3,但T0在工作模式3時(shí)T1仍可設(shè)置為0~2。
4、89C51內(nèi)部設(shè)有幾個(gè)定時(shí)器/計(jì)數(shù)器它們是由哪些特殊功能寄存器組成
答:89C51單片機(jī)內(nèi)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,即T0和T1。
T0由兩個(gè)8位特殊功能寄存器TH0和TL0組成;T1由TH1和TL1組成。
5、定時(shí)器用作定時(shí)器時(shí),其定時(shí)時(shí)間與哪些因素有關(guān)作計(jì)數(shù)器時(shí),對(duì)外界計(jì)數(shù)頻率有何限制
答:定時(shí)時(shí)間與定時(shí)器的工作模式,初值及振蕩周期有關(guān)。
作計(jì)數(shù)器時(shí)對(duì)外界計(jì)數(shù)頻率要求最高為機(jī)器振蕩頻率的1/24。
6、簡(jiǎn)述定時(shí)器4種工作模式的特點(diǎn),如何選擇設(shè)定
答:
(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-初值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位213=8192個(gè)外部脈沖
置TMOD中的M1M0為00
(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時(shí)時(shí)間t=(216-初
值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位216=65536個(gè)外部脈沖
置TMOD中的M1M0為01
(3)模式2:把TL0和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL用作8位計(jì)數(shù)器,TH
用以保存初值。TL計(jì)數(shù)溢出時(shí)不僅使TF0置1,而且還自動(dòng)將TH中的內(nèi)容重新裝載到TL中。
定時(shí)時(shí)間t=(28-初值)×振蕩周期×12;計(jì)數(shù)長(zhǎng)度位28=256個(gè)外部脈沖
置TMOD中的M1M0為10
(4)模式3:對(duì)T0和T1不大相同
若設(shè)T0位模式3,TL0和TH0被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。TL0為8位計(jì)數(shù)器,功能與模式0
和模式1相同,可定時(shí)可計(jì)數(shù)。
TH0僅用作簡(jiǎn)單的內(nèi)部定時(shí)功能,它占用了定時(shí)器T1的控制位TR1和中斷標(biāo)志位TF1,啟動(dòng)和關(guān)閉
僅受TR1控制。
定時(shí)器T1無(wú)工作模式3,但T0在工作模式3時(shí)T1仍可設(shè)置為0~2。
置TMOD中的M1M0為11
7、當(dāng)T0用作模式3時(shí),由于TR1已被T0占用,如何控制T1的開(kāi)啟和關(guān)閉
答:用T1控制位C/T切換定時(shí)器或計(jì)數(shù)器工作方式就可以使T1運(yùn)行。定時(shí)器T1無(wú)工作模式3,將
T1設(shè)置為工作模式3,就會(huì)使T1立即停止計(jì)數(shù),關(guān)閉。
8、以定時(shí)器/計(jì)數(shù)器1進(jìn)行外部時(shí)間計(jì)數(shù),每計(jì)數(shù)1000個(gè)脈沖后,定時(shí)器/計(jì)數(shù)器1轉(zhuǎn)為定時(shí)工作
方式,定時(shí)10ms后又轉(zhuǎn)為計(jì)數(shù)方式,如此循環(huán)不止。假定為6WHZ,用模式1編程。
解:T1為定時(shí)器時(shí)初值:
T1為計(jì)數(shù)器時(shí)初值:
所以:
L1:MOVTMOD,#50H;設(shè)置T1為計(jì)數(shù)方式且工作模式為1
MOVTH1,#0FCH;置入計(jì)數(shù)初值
MOVTL1,#18H
SETBTR1;啟動(dòng)T1計(jì)數(shù)器
LOOP1:JBCTF1,L2;查詢(xún)計(jì)數(shù)溢出有溢出(計(jì)數(shù)滿(mǎn)1000個(gè))轉(zhuǎn)L2
SJMPLOOP1;無(wú)溢出轉(zhuǎn)LOOP1,繼續(xù)查詢(xún)
L2:CLRTR1;關(guān)閉T1
MOVTMOD,#10H;設(shè)置T1為定時(shí)方式且工作與模式1
MOVTH1,#0ECH;置入定時(shí)10ms初值
MOVTL1,#78H
SETBTR1;啟動(dòng)T1定時(shí)
LOOP2:JBCTF1,L1;查詢(xún)10ms時(shí)間到時(shí)間到,轉(zhuǎn)L1
SJMPLOOP2;時(shí)間未到,轉(zhuǎn)LOOP2,繼續(xù)查詢(xún)
9、一個(gè)定時(shí)器定時(shí)時(shí)間有限,如何實(shí)現(xiàn)兩個(gè)定時(shí)器的串行定時(shí)以滿(mǎn)足較長(zhǎng)定時(shí)時(shí)間的要求
答:當(dāng)一個(gè)定時(shí)器溢出時(shí),設(shè)置另一個(gè)定時(shí)器的初值為0開(kāi)始定時(shí)。
10、使用一個(gè)定時(shí)器,如何通過(guò)軟硬件結(jié)合方法實(shí)現(xiàn)較長(zhǎng)時(shí)間的定時(shí)
答:設(shè)定好定時(shí)器的定時(shí)時(shí)間,采用中斷方式用軟件設(shè)置計(jì)數(shù)次數(shù),進(jìn)行溢出次數(shù)累計(jì),從而得到
較長(zhǎng)的時(shí)間。
11、89C51定時(shí)器作定時(shí)和計(jì)數(shù)時(shí)其計(jì)數(shù)脈沖分別由誰(shuí)提供
答:作定時(shí)器時(shí)計(jì)數(shù)脈沖由89C51片內(nèi)振蕩器輸出經(jīng)12分頻后的脈沖提供,作計(jì)數(shù)時(shí)計(jì)數(shù)脈沖由外
部信號(hào)通過(guò)引腳和提供。
12、89C51定時(shí)器的門(mén)控信號(hào)GATE設(shè)置為1時(shí)定時(shí)器如何啟動(dòng)
答:只有(或)引腳為高電平且由軟件使TR0(或TR1)置1時(shí),才能啟動(dòng)定時(shí)器工作。
13、已知89C51單片機(jī)的fosc=6MHz,請(qǐng)利用T0和輸出矩形波。矩形波高電平寬50μs,低電平寬
300μs。
解:T0采用模式2作為50μs定時(shí)時(shí)的初值:
所以作300μs定時(shí)時(shí)的初值:
MOVTMOD,#02H;設(shè)置定時(shí)器T0工作于模式2
L2:CLR;輸出低電平
MOVTH0,#6AH;置入定時(shí)300μs初值
MOVTL0,#6AH
SETBTR0;啟動(dòng)T0
LOOP1:JBCTF0,L1;查詢(xún)300μs時(shí)間到時(shí)間到,轉(zhuǎn)L1
SJMPLOOP1;時(shí)間未到,轉(zhuǎn)LOOP1,繼續(xù)查詢(xún)
L1:SETB;輸出高電平
CLRTR0;關(guān)閉T0
MOVTH0,#0E7H;置入定時(shí)300μs初值
MOVTL0,#0E7H
SETBTR0;啟動(dòng)T0
LOOP2:JBCTF0,L2;查詢(xún)50μs時(shí)間到時(shí)間到,轉(zhuǎn)L2
SJMPLOOP2;時(shí)間未到,轉(zhuǎn)LOOP2,繼續(xù)查詢(xún)
14、已知89C51單片機(jī)的fosc=12MHz,用T1定時(shí)。試編程由和引腳分別輸出周期為2ms和500μs
的方波。
解:采用模式0作定時(shí)初值:
所以MOVR2,#04H;R2為“250μs”計(jì)數(shù)器,置入初值4
CLR;輸出低電平
CLR;輸出低電平
MOVTMOD,#00H
L2:MOVTH1,#0F8H;置入定時(shí)250μs初值
MOVTL1,#06H
SETBTR1;啟動(dòng)T1
LOOP:JBCTF1,L1;查詢(xún)250μs時(shí)間到時(shí)間到,轉(zhuǎn)L1
SJMPLOOP;時(shí)間未到,轉(zhuǎn)LOOP,繼續(xù)查詢(xún)
L1:CPL;輸出取反,形
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信訪(fǎng)工作應(yīng)急預(yù)案
- 地鐵工程施工招標(biāo)合同(2篇)
- 深圳電力施工合同:酒店業(yè)篇
- 建筑鎂材施工合同
- 培訓(xùn)工人施工合同
- 清潔能源公司配電房改造工程合同
- 金融行業(yè)高級(jí)管理聘用合同
- 2024甲乙雙方就委托代理銷(xiāo)售所簽訂的代理合同
- 2024科技創(chuàng)新項(xiàng)目居間合作協(xié)議
- 學(xué)生住校網(wǎng)絡(luò)安全使用協(xié)議
- 常見(jiàn)酸和堿說(shuō)課課件
- 2023-2024學(xué)年湖北省利川市小學(xué)語(yǔ)文六年級(jí)期末通關(guān)測(cè)試題詳細(xì)參考答案解析
- 礦大畢業(yè)設(shè)計(jì)-固定式帶式輸送機(jī)設(shè)計(jì)
- 高考地理一輪復(fù)習(xí)課件+湖泊的水文特征
- 熱動(dòng)復(fù)習(xí)題材料熱力學(xué)與動(dòng)力學(xué)
- GB/T 19405.1-2003表面安裝技術(shù)第1部分:表面安裝元器件(SMDS)規(guī)范的標(biāo)準(zhǔn)方法
- GB/T 13275-1991一般用途離心通風(fēng)機(jī)技術(shù)條件
- 彈塑性力學(xué)(浙江大學(xué)課件)
- 千年菩提路解說(shuō)詞
- 濰柴天然氣發(fā)動(dòng)機(jī)維修手冊(cè)
- 配氣機(jī)構(gòu)的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論