版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
思考與練習(xí)題解析
第2章【單片機(jī)的基本結(jié)構(gòu)】
[2-1]8()051單片機(jī)在片內(nèi)集成了哪些主要邏輯功能部件?各個(gè)邏輯部件的最主要功能是什
么?
【答】80c51單片機(jī)在片內(nèi)主要包含中央處理器CPU(算術(shù)邏輯單元ALU及控制器等)、
只讀存儲(chǔ)器ROM、讀/寫(xiě)存儲(chǔ)器RAM、定時(shí)器/計(jì)數(shù)器、并行I/O口Po?P3、串行口、
中斷系統(tǒng)以及定時(shí)控制邏輯電路等,各部分通過(guò)內(nèi)部總線相連。
1.中央處理器(CPU)
單片機(jī)中的中央處理器和通用微處理器基本相同,是單片機(jī)的最核心部分,主要完成運(yùn)
算和控制功能,又增設(shè)了“面向控制”的處理功能,增強(qiáng)了實(shí)時(shí)性。80c51的CPU是一個(gè)字
長(zhǎng)為8位的中央處理單元。
2.內(nèi)部程序存儲(chǔ)器
根據(jù)內(nèi)部是否帶有程序存儲(chǔ)器而形成三種型號(hào):內(nèi)部沒(méi)有程序存儲(chǔ)器的稱為80c31;內(nèi)
部帶ROM的稱為80c51,80c51共有4KB掩膜ROM;內(nèi)部以EPROM代替RoM的稱為87c51。
程序存儲(chǔ)器用于存放程序和表格、原始數(shù)據(jù)等。
3.內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)
在單片機(jī)中,用讀/寫(xiě)存儲(chǔ)器(RAM)來(lái)存儲(chǔ)程序在運(yùn)行期間的工作變量和數(shù)據(jù)。80c51中
共有256個(gè)RAM單元。
4.I/0□
單片機(jī)提供了功能強(qiáng)、使用靈活的引腳,用于檢測(cè)與控制。有些I/O引腳還具有
多種功能,比如可以作為數(shù)據(jù)總線的數(shù)據(jù)線、地址總線的地址線或控制總線的控制線等。
有的單片機(jī)1/0引腳的驅(qū)動(dòng)能力增大。
5.串行I/O□
目前高檔8位單片機(jī)均設(shè)置了全雙工串行1/0口,用以實(shí)現(xiàn)與某些終端設(shè)備進(jìn)行串行
通信,或與一些特殊功能的器件相連的能力,甚至用多個(gè)單片機(jī)相連構(gòu)成多機(jī)系統(tǒng)。有些型
號(hào)的單片機(jī)內(nèi)部還包含兩個(gè)串行I/O口。
6?定時(shí)器/計(jì)數(shù)器
80C51單片機(jī)內(nèi)部共有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,80C52則有3個(gè)16位定時(shí)器/
計(jì)數(shù)器。
定時(shí)器/計(jì)數(shù)器可以編程實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。
7.中斷系統(tǒng)
80c51單片機(jī)的中斷功能較強(qiáng),具有內(nèi)、外共5個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級(jí)。
8.定時(shí)電路及元件
單片機(jī)內(nèi)部設(shè)有定時(shí)電路,只需外接振蕩元件。近年來(lái)有些單片機(jī)將振蕩元件也集
成到
芯片內(nèi)部。單片機(jī)整個(gè)工作是在時(shí)鐘信號(hào)的驅(qū)動(dòng)下,按照嚴(yán)格的時(shí)序有規(guī)律地一個(gè)節(jié)拍
一個(gè)
節(jié)拍地執(zhí)行各種操作。
[2-2]80c51單片機(jī)引腳有哪些第二功能?
【答】80C51單片機(jī)的P0、P2和P3引腳都具有第二功能。
第一功能第二變異功能
P0.0-P0.7地址總線Ao~A7/數(shù)據(jù)總線D0~D7
P2.0-P2.7地址總線A8-A15
P3.0RXD(串行輸入口)
P3.1TXD(串行輸出口)
P3.2INTO外部中斷0)
P3.3IINT1(外部中斷1)
P3.4TO(定時(shí)器/計(jì)數(shù)器0的外部輸入)
P3.5T1(定時(shí)器/計(jì)數(shù)器0的外部輸出)
P3.6WR(外部數(shù)據(jù)存儲(chǔ)器或1/0的寫(xiě)選通)
P3.7RD外部數(shù)據(jù)存儲(chǔ)器或1/0的讀選通)
[2-3]程序計(jì)數(shù)器PC和數(shù)據(jù)指針DPTR有哪些異同?
【答】程序計(jì)數(shù)器PC中存放的是下一條將要從程序存儲(chǔ)器中取出的指令的地址。DPTR是數(shù)
據(jù)指針,在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或I/O時(shí),作為地址使用;在訪問(wèn)程序存儲(chǔ)器時(shí),作為基
址寄存器。
①PC和DPTR都是與地址有關(guān)的16位寄存器。其中PC與程序存儲(chǔ)器的地址有關(guān),而DPTR
與數(shù)據(jù)存儲(chǔ)器或I/。的端口地址有關(guān)。作為地址寄存器使用時(shí),PC與DPTR都是通過(guò)P0和
P2口輸出的。PC的輸出與ALE及PSEN信號(hào)有關(guān),DPTR的輸出則與ALE、WR和RD信號(hào)有
關(guān)。
②PC只能作為16位寄存器。PC是不可訪問(wèn)的,它不屬于特殊功能寄存器,有自己獨(dú)特的
變化方式。DPTR可以作為16位寄存器,也可以作為兩個(gè)8位寄存器DPL和DPH。DPTR是
可以訪問(wèn)的,DPL和DPH都位于特殊功能寄存器區(qū)中。
[2-4]80C51單片機(jī)的存儲(chǔ)器在結(jié)構(gòu)上有何特點(diǎn)?在物理上和邏輯上各有哪兒種地址空
間?訪問(wèn)片內(nèi)RAM和片外RAM的指令格式有何區(qū)別?
【答】80c51單片機(jī)采用哈佛(Har—yard)結(jié)構(gòu),即將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi),分
別進(jìn)行尋址。不僅在片內(nèi)駐留一定容量的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及眾多的特殊功能寄存
器,而且還具有較強(qiáng)的外部存儲(chǔ)器擴(kuò)展能力,擴(kuò)展的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器尋址范圍都可
達(dá)64KB?
1.在物理上設(shè)有4個(gè)存儲(chǔ)器空間
?片內(nèi)程序存儲(chǔ)器:
?片外程序存儲(chǔ)器;
?片內(nèi)數(shù)據(jù)存儲(chǔ)器:
?片外數(shù)據(jù)存儲(chǔ)器。
2.在邏輯上設(shè)有3個(gè)存儲(chǔ)器地址空間
?片內(nèi)、片外統(tǒng)一的64KB程序存儲(chǔ)器地址空間。
?片內(nèi)256字節(jié)(80C52為384字節(jié))數(shù)據(jù)存儲(chǔ)器地址空間。
片內(nèi)數(shù)據(jù)存儲(chǔ)器空間在物理上又包含兩部分:
?對(duì)于80c51型單片機(jī),0?127字節(jié)為片內(nèi)數(shù)據(jù)存儲(chǔ)器空間;128?255字節(jié)為特殊
功能寄存器(SFR)空間(實(shí)際僅占用了20多個(gè)字節(jié))。
?對(duì)于80c52型單片機(jī),。?127字節(jié)為片內(nèi)數(shù)據(jù)存儲(chǔ)器空間:128?255字節(jié)共128
個(gè)字節(jié)是數(shù)據(jù)存儲(chǔ)器和特殊功能寄存器地址重疊空間。
片外64KB的數(shù)據(jù)存儲(chǔ)器地址空間。
在訪問(wèn)3個(gè)不同的邏輯空間時(shí),應(yīng)采用不同形式的指令,以產(chǎn)生不同存儲(chǔ)空間的選
通信號(hào)。訪問(wèn)片內(nèi)RAM采用MOV指令,訪問(wèn)片外RAM則一定要采用MOVX指令,因?yàn)?/p>
MOVX指令會(huì)產(chǎn)生控制信號(hào)RD或WR,用來(lái)訪問(wèn)片外RAM。訪問(wèn)程序存儲(chǔ)器地址空間,則
應(yīng)采用MOVC指令。
[2—5]80C51單片機(jī)的EA信號(hào)有什么功能?在使用80C51時(shí),EA信號(hào)引腳應(yīng)如何處理?在
使用80c31時(shí),EA信號(hào)引腳應(yīng)如何處理?
【答】80C51單片機(jī)的EA信號(hào)被稱為“片外程序存儲(chǔ)器訪問(wèn)允許信號(hào)”。CPU訪問(wèn)片內(nèi)還是
片外程序存儲(chǔ)器,可由EA引腳所接的電平來(lái)確定:
?EA引腳接高電平時(shí),程序從片內(nèi)程序存儲(chǔ)器地址為0000H開(kāi)始執(zhí)行,即訪問(wèn)片內(nèi)
存儲(chǔ)器;當(dāng)PC值超出片內(nèi)ROM容量時(shí),程序會(huì)自動(dòng)轉(zhuǎn)向片外程序存儲(chǔ)器空間執(zhí)
行。片內(nèi)和片外的程序存儲(chǔ)器地址空間是連續(xù)的。
?EA引腳接低電平時(shí),迫使系統(tǒng)全部執(zhí)行片外程序存儲(chǔ)器0000H開(kāi)始存放的程序。
對(duì)于有片內(nèi)ROM的80C51/87C51單片機(jī),應(yīng)將EA引腳接高電平。在使用80C31
單片機(jī)時(shí),EA信號(hào)引腳應(yīng)接低電平,即此時(shí)程序存儲(chǔ)器全部為外部擴(kuò)展。
[2-6]80C51單片機(jī)片內(nèi)RAM低128個(gè)存儲(chǔ)單元?jiǎng)澐譃槟?個(gè)主要部分?各部分主要功
能是什么?
【答】80c51片內(nèi)RAM的低128個(gè)存儲(chǔ)單元?jiǎng)澐譃?個(gè)主要部分:
?寄存器區(qū)。共4組寄存器,每組8個(gè)存儲(chǔ)單元,各組以R0?R7作為單元編號(hào)。常用
于保存操作數(shù)及中間結(jié)果等。:R0?R7也稱為“通用工作寄存器”,占用00H?:LFH共32個(gè)
單元地址。
?位尋址區(qū)。單元地址為20H~2FH,既可作為一般RAM單元使用,按字節(jié)進(jìn)行操作,
也可對(duì)單元中的每一位進(jìn)行位操作。因此,稱為“位尋址區(qū)”。尋址區(qū)共有16個(gè)RAM單元,
共計(jì)128位,位地址為OOH?7FH。
?用戶RAM區(qū)。在內(nèi)部RAM低128單元中,除去前面兩個(gè)區(qū),剩下80個(gè)單元,單元
地址為30H?7FH。在用戶RAM區(qū)內(nèi)可以設(shè)置堆棧區(qū)。
[2-7]程序存儲(chǔ)器的哪些單元被保留用于特定場(chǎng)合?
【答】80c51單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC的地址為0000H,所以系統(tǒng)從0000H單元開(kāi)
始取指,并執(zhí)行程序。0000H是系統(tǒng)的啟動(dòng)地址,一般在該單元設(shè)置一條絕對(duì)轉(zhuǎn)移指令,使
之轉(zhuǎn)向用戶主程序處執(zhí)行。
0003H?002DH單元被保留用于6個(gè)中斷源的中斷服務(wù)程序的入口地址,故有以下7個(gè)
特定地址被保留:
復(fù)位0000H
外部中斷00003H
計(jì)時(shí)器TO溢出OOOBH
外部中斷10013H
計(jì)時(shí)器T1溢出001BH
串行口中斷0023H
計(jì)時(shí)器T2/T2EX002BH(僅對(duì)80C52單片機(jī))
由于每個(gè)中斷入口之間的間隔僅為8個(gè)地址單元,所以在程序設(shè)計(jì)時(shí),通常在這些中斷
入口處設(shè)置一條無(wú)條件轉(zhuǎn)移指令,使之轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)子程序處執(zhí)行。
【2一8】80C51單片機(jī)設(shè)有4個(gè)通用工作寄存器組,有什么特點(diǎn)?如何選用?如何實(shí)現(xiàn)工作寄
存器的現(xiàn)場(chǎng)保護(hù)?
【答】片內(nèi)數(shù)據(jù)RAM區(qū)的。?31(OOH?1FH),共32個(gè)單元,是4個(gè)通用工作寄存器組,每
個(gè)組包含8個(gè)8位寄存器,編號(hào)為R0?R7,工作寄存器組如表2-1所列。在某一時(shí)刻,只能
選用一個(gè)寄存器組。可以通過(guò)軟件對(duì)程序狀態(tài)字PSW中:RSO、RSI兩
位的設(shè)置來(lái)實(shí)現(xiàn)。設(shè)置RSO,RSI時(shí),可以對(duì)PSW采用字節(jié)尋址方式,也可以采用位尋址方
式,間接或直接修改RSO、RSI的內(nèi)容。例如,若.RSO、RSI均為L(zhǎng)則選用工作寄存器3組
為當(dāng)前工作寄存器。若需要選用工作寄存器2組,則只需將RSO改成。.可用位尋址方式
(即“CLRPSW.3";其中:PSW.3為RSO位的符號(hào)地址)來(lái)實(shí)現(xiàn)。特別是在中斷嵌套時(shí),只要通
過(guò)軟件對(duì)程序狀態(tài)字PSW中的RSO、RSI兩位進(jìn)行設(shè)置,切換工作寄存器組,就可以極其方
便地實(shí)現(xiàn)對(duì)工作寄存器的現(xiàn)場(chǎng)保護(hù)。
[2-9]什么是堆棧?堆棧有哪些功能?設(shè)計(jì)時(shí),為什么還要對(duì)SP重新賦值?
表2—1工作寄存器組
11111
IRSI|RS0|組號(hào)1寄存器R0?R7地址|
1111
1111
|0101。組|00H?07H
11II
1111
|01111組I08H?OFH
11II
1111
111012組|:10H?17H
1III
111
11113組|18H?1FH
111??
堆棧指針SP的作用是什么?在程序
【答】堆棧是在片內(nèi)數(shù)據(jù)RAM區(qū)中,數(shù)據(jù)按照“先進(jìn)后出”或“后進(jìn)先出”原則進(jìn)行管理
的區(qū)域。堆棧功能有兩個(gè):保護(hù)斷點(diǎn)和保護(hù)數(shù)據(jù)。在子程序調(diào)用和中斷操作時(shí)這兩個(gè)功能特
別有用。在80c51單片機(jī)中,堆棧在子程序調(diào)用和中斷時(shí)會(huì)把斷點(diǎn)地址自動(dòng)進(jìn)棧和出棧。進(jìn)
棧和出棧的指令(PUSH、POP)操作可用于保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。由于子程序調(diào)用和中斷都允
許嵌套,并可以多級(jí)嵌套,而現(xiàn)場(chǎng)的保護(hù)也往往使用堆棧,所以一定要注意給堆棧以一定的
深度,以免造成堆棧內(nèi)容的破壞而引起程序執(zhí)行的“跑飛”。
堆棧指針SP在80C51中存放當(dāng)前的堆棧棧頂所指存儲(chǔ)單元地址的一個(gè)8位寄存器。
80c51單片機(jī)的堆棧是向上生成的,即進(jìn)棧時(shí)SP的內(nèi)容是增加的;出棧時(shí)SP的內(nèi)容是減少
的。
系統(tǒng)復(fù)位后。80c51的SP內(nèi)容為07H。若不重新定義,則以07H為棧底,壓棧的內(nèi)容
從08H單元開(kāi)始存放。但工作寄存器R0-R7有4組,占有內(nèi)部RAM地址為00H?1FH,位
尋址區(qū)占有內(nèi)部RAM地址為20H?2FH。若程序中使用了工作寄存器1?3組或位尋址區(qū),
則必須通過(guò)軟件對(duì)SP的內(nèi)容重新定義,使堆棧區(qū)設(shè)定在片內(nèi)數(shù)據(jù)RAM區(qū)中的某一區(qū)域內(nèi)
(如30H),堆棧深度不能超過(guò)片內(nèi)RAM空間。
[2-10]80C51單片機(jī)的特殊功能寄存器SFR區(qū)有哪些特點(diǎn)?
【答】特殊功能寄存器SFR區(qū)是80c51單片機(jī)中各功能部件所對(duì)應(yīng)的寄存器區(qū),用來(lái)存放相
應(yīng)功能部件的控制命令寄存器、狀態(tài)寄存器或數(shù)據(jù)寄存器的區(qū)域。這是80C51系列單片機(jī)中
最有特色的部分。
80C51系列單片機(jī)設(shè)有128字節(jié)片內(nèi)數(shù)據(jù)RAM結(jié)構(gòu)的特殊功能寄存器區(qū)。除程序計(jì)數(shù)
器PC和4個(gè)通用工作寄存器組外,其余所有的寄存器都在這個(gè)地址空間之內(nèi)。特殊功能寄
存器在128字節(jié)空間中只分布了很小部分,這為80C51單片機(jī)系列功能的增加提供了極大
的可能性。所有80C51單片機(jī)系列功能部件的增加和擴(kuò)展幾乎都是通過(guò)增加特殊功能寄存
器來(lái)達(dá)到的。
在80C51的21個(gè)特殊功能寄存器中,字節(jié)地址中低位地址為0H或8H的特殊功能寄存
器,除有字節(jié)尋址能力外,還有位尋址能力。其中對(duì)于P0?P1口4個(gè)特殊功能寄存器的位
尋址使1/0的控制功能得到了增強(qiáng)。
[2-11]80C51單片機(jī)的布爾處理機(jī)包括哪些部分?它們具有哪些功能?共有多少個(gè)單元可以
位尋址?
【答】在80c51單片機(jī)系統(tǒng)中,專門設(shè)置了一個(gè)結(jié)構(gòu)完整、功能極強(qiáng)的布爾(位)處理機(jī)。這
是一個(gè)完整的一位微計(jì)算機(jī),它具有自己的CPU、寄存器、1/0、存儲(chǔ)器和指令集。80C51單
片機(jī)把8位機(jī)和布爾(位)處理機(jī)的硬件資源復(fù)合在一起,這是80C51系列單片機(jī)的突出優(yōu)點(diǎn)
之一,給實(shí)際應(yīng)用帶來(lái)了極大的方便。
布爾處理機(jī)系統(tǒng)包括以下幾個(gè)功能部件。
?位累加器:借用進(jìn)位標(biāo)志位CY。在布爾運(yùn)算中,CY既是數(shù)據(jù)源之一,又是運(yùn)算結(jié)果的存
放處和位數(shù)據(jù)傳送的中心。根據(jù)CY的狀態(tài)實(shí)現(xiàn)程序條件轉(zhuǎn)移:JCrel、JNCrel
?位尋址的RAM:內(nèi)部RAM位尋址區(qū)中的。?127位(20H?2FH)。
?位尋址的寄存器:特殊功能寄存器SF、R中的可位尋址的位?
?位尋址的I/。口:并行I/??谥锌晌粚ぶ返奈唬ㄈ鏟l.0)o
?位操作指令系統(tǒng):位操作指令可實(shí)現(xiàn)對(duì)位的置位、清零、取反、位狀態(tài)判跳、傳送、位邏
輯運(yùn)算、位輸入/輸出等操作。
布爾處理機(jī)的程序存儲(chǔ)器和ALU與字節(jié)處理器合用。利用內(nèi)部并行1/0口的位操作,提
高了測(cè)控速度,增強(qiáng)了實(shí)時(shí)性。利用位邏輯操作功能把邏輯表達(dá)式直接變換成軟件進(jìn)行設(shè)計(jì)
和運(yùn)算,免去了過(guò)多的數(shù)據(jù)往返傳送、字節(jié)屏蔽和測(cè)試分支,大大簡(jiǎn)化了編程,增強(qiáng)了實(shí)時(shí)
性能。還可實(shí)現(xiàn)復(fù)雜的組合邏輯處理功能。因此,一位機(jī)在開(kāi)關(guān)決策、邏輯電路仿真和實(shí)時(shí)
控制方面非常有效。
可以位尋址的單元包括兩部分:一是內(nèi)部RAM位尋址區(qū)中的。?127位(20H?2FH):
二是SFR中字節(jié)地址的低位地址為0H或8H的特殊功能寄存器。
[2-12]80C5I單片機(jī)的節(jié)拍、狀態(tài)、機(jī)器周期、指令周期是如何設(shè)置的?當(dāng)主頻為12MHz
時(shí),各種周期等于多少微秒?
【答】把單片機(jī)振蕩脈沖的周期定義為節(jié)拍。節(jié)拍經(jīng)過(guò)二分頻后,就是單片機(jī)的時(shí)鐘信號(hào)。
時(shí)鐘信號(hào)周期定義為狀態(tài)S,其前半周期對(duì)應(yīng)的節(jié)拍叫P1,后半周期對(duì)應(yīng)的節(jié)拍叫P2。
一個(gè)機(jī)器周期寬度為6個(gè)狀態(tài),并依次表示為S1?S6。由于一個(gè)機(jī)器周期共有12個(gè)振
蕩脈沖周期,因此,機(jī)器周期就是振蕩頻率的1/12。機(jī)器周期是80c51單片機(jī)的最小時(shí)間
單位。執(zhí)行一條指令的時(shí)間被稱為“指令周期”,80c51單片機(jī)執(zhí)行一條指令的時(shí)間包含有1
個(gè)、2個(gè)或4個(gè)機(jī)器周期。當(dāng)主頻為12MHz時(shí),振蕩脈沖的周期為1/128,狀態(tài)周期為1
/6ns,機(jī)器周期為1F,指令周期為1?4四
[2一13]程序存儲(chǔ)器指令地址、堆棧地址和外接數(shù)據(jù)存儲(chǔ)器地址各使用什么指針?為什么?
【答】程序存儲(chǔ)器指令地址使用程序計(jì)數(shù)器PC指針,PC中存放的是下一條將要從程序存儲(chǔ)
器中取出的指令的地址。程序計(jì)數(shù)器PC變化的軌跡決定程序的流程。PC最基本的工作方式
是自動(dòng)加1。在執(zhí)行條件轉(zhuǎn)移或無(wú)條件轉(zhuǎn)移指令時(shí),將轉(zhuǎn)移的目的地址送入程序計(jì)數(shù)器,程
序流向發(fā)生變化。在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí),將子程序的入口地址或者中斷矢量地址送
人PC,程序流向發(fā)生變化。堆棧地址使用堆棧指針.SPoSP在80c51中存放當(dāng)前的堆
棧棧頂所指存儲(chǔ)單元地址,是一個(gè)8位寄存器,對(duì)數(shù)據(jù)按照“先進(jìn)后出”原則進(jìn)行管理。外
接數(shù)據(jù)存儲(chǔ)器地址使用數(shù)據(jù)指針DPTR。DPTR是一個(gè)16位特殊功能寄存器,主要功能是作
為片外數(shù)據(jù)存儲(chǔ)器或I/O尋址用的地址寄存器,這時(shí)會(huì)產(chǎn)生RD或wR控制信號(hào),用于單片
機(jī)對(duì)外擴(kuò)的數(shù)據(jù)存儲(chǔ)器或1/0的控制。數(shù)據(jù)指針DPTR也可以作為訪問(wèn)程序存儲(chǔ)器時(shí)的基址
寄存器,此時(shí)是尋址程序存儲(chǔ)器中的表格、常數(shù)等單元,而不是尋址指令。
[2-14]請(qǐng)說(shuō)明80c51單片機(jī)ALE引腳的時(shí)序功能,并舉例說(shuō)明其在系統(tǒng)中有哪些應(yīng)用?
【答】80c51單片機(jī)ALE引腳是地址鎖存允許信號(hào).在系統(tǒng)中主要有兩種應(yīng)用:
①在訪問(wèn)片外存儲(chǔ)器或I/O時(shí),用于鎖存低8位地址,以實(shí)現(xiàn)低8位地址A0?A7與數(shù)
據(jù)D0-D7的隔離。在ALE的下降沿將P0口輸出的地址A0-A7通過(guò)鎖存器鎖存,然后在
P0口上出現(xiàn)DO-D7?
②由于ALE以1/6振蕩頻率的固定速率輸出,因此,可以作為對(duì)外輸出的時(shí)鐘或外部定
時(shí)脈沖,比如ALE信號(hào)可以做ADC0809的時(shí)鐘。
[2-15]說(shuō)明80C51單片機(jī)的程序狀態(tài)字PSW的主要功能。
【答】程序狀態(tài)字PSW(ProgramStatusWord)是一個(gè)程序可訪問(wèn)的8位寄存器,其內(nèi)容的主
要部分是算術(shù)邏輯運(yùn)算單元ALU的輸出,例如,奇偶校驗(yàn)位P、溢出標(biāo)志位。V、輔助進(jìn)位
標(biāo)志位AC及進(jìn)位標(biāo)志位CY,都是ALU運(yùn)算結(jié)果的直接輸出。一些條件轉(zhuǎn)移指令就是根據(jù)
PSW中的相關(guān)標(biāo)志位的狀態(tài)來(lái)實(shí)現(xiàn)程序的條件轉(zhuǎn)移。
程序狀態(tài)字PSW如圖2-1所示。
CYACFORslIRSOOV-PI
圖2—1程序狀態(tài)字PSW
1.P-----奇偶標(biāo)志位
該位表示累加器A中值為1的個(gè)數(shù)的奇偶性。若累加器A中值為1的個(gè)數(shù)是奇數(shù),則
P置位(奇校驗(yàn));否則,P清除(偶校驗(yàn))。
在串行通信中,常以傳送奇偶校驗(yàn)位來(lái)檢驗(yàn)傳輸數(shù)據(jù)的可靠性。通常將P置入串行幀中
的奇偶校驗(yàn)位。
2.0V------溢出標(biāo)志位
當(dāng)執(zhí)行運(yùn)算指令時(shí),由硬件置位或清除,以指示運(yùn)算是否產(chǎn)生溢出。OV置位表示運(yùn)算
結(jié)果超出了目的寄存器A所能表示的帶符號(hào)數(shù)的范圍(一128?+127)。
若以Ci表示位i向位i+1有進(jìn)位,則0V=C6①C7。當(dāng)位6向位7有進(jìn)位(或借位),而位
7不向cY進(jìn)位(或借位);或當(dāng)位7向c進(jìn)位(或借位),而位6不向位7進(jìn)位(或借位)時(shí),0V
標(biāo)志置位,表示帶符號(hào)數(shù)運(yùn)算時(shí)運(yùn)算結(jié)果是錯(cuò)誤的;否則,清除0V標(biāo)志,運(yùn)算結(jié)果正確。
對(duì)于MUL乘法,當(dāng)A、B兩個(gè)乘數(shù)的積超過(guò)255時(shí),0V置位;否則,OV=0。
對(duì)于DIV除法,若除數(shù)為0,OV=I;否則,OV=O。
3.RSI、RSO——4組工作寄存器組選擇位
用于設(shè)定當(dāng)前工作寄存器的組號(hào),參見(jiàn)表2—1。
4.AC----輔助進(jìn)位標(biāo)志位
當(dāng)進(jìn)行加法或減法運(yùn)算時(shí),若低4位向高4位數(shù)發(fā)生進(jìn)位(或借位),.AC將被硬件置位;
否則,被清除。在十進(jìn)制調(diào)整指令DA中要用到AC標(biāo)志位狀態(tài)。
5.CY——進(jìn)位標(biāo)志位
在進(jìn)行算術(shù)運(yùn)算時(shí),可以被硬件置位或清除,以表示運(yùn)算結(jié)果中高位是否有進(jìn)位(或借
位)。在布爾處理器中,CY被認(rèn)為是位累加器。
6.F0------用戶標(biāo)志位
開(kāi)機(jī)時(shí)該位為0。用戶可根據(jù)需要,通過(guò)位操作指令將FO置1或者清0。當(dāng)CPU執(zhí)行
對(duì)F0位測(cè)試條件轉(zhuǎn)移指令時(shí),根據(jù)FO的狀態(tài)實(shí)現(xiàn)分支轉(zhuǎn)移,相當(dāng)于“軟開(kāi)關(guān)”。
【2—16】80c51單片機(jī)的片內(nèi)外最大存儲(chǔ)容量可達(dá)多大?’
【答】80c51單片機(jī)存儲(chǔ)容量應(yīng)包括程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩部分。80C51具有16條地
址線,PC指針為16位,因此,程序存儲(chǔ)器最大容量為64KB。數(shù)據(jù)指針DPTR為16位,因
此,外擴(kuò)數(shù)據(jù)存儲(chǔ)器最大容量為64KB,再加上片內(nèi)具有的256個(gè)存儲(chǔ)單元,80C51單片機(jī)
的
片內(nèi)外最大存儲(chǔ)容量可達(dá)128.256KB.采用其他地址譯碼方法,80c51單片機(jī)存儲(chǔ)容量會(huì)
得到更大的擴(kuò)展。
[2-17180C51單片機(jī)片外數(shù)據(jù)存儲(chǔ)器與片內(nèi)數(shù)據(jù)存儲(chǔ)器地址允許重復(fù),并與程序存儲(chǔ)器地
址也允許重復(fù),如何區(qū)分?
【答】80c51單片機(jī)對(duì)片外數(shù)據(jù)存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器及程序存儲(chǔ)器采用不同的指令,會(huì)
產(chǎn)生不同的控制信號(hào)。片外數(shù)據(jù)存儲(chǔ)器有讀RD和寫(xiě)WR控制信號(hào),程序存儲(chǔ)器有讀PSEN
控制信號(hào),因此,擴(kuò)展時(shí)雖然數(shù)據(jù)線和地址線重復(fù),但由不同的控制信號(hào)加以區(qū)別。片內(nèi)數(shù)
據(jù)存儲(chǔ)器地址采用MOVC指令,不會(huì)產(chǎn)生讀RD和寫(xiě)WR控制信號(hào)。
[2-18]使80c51單片機(jī)復(fù)位有哪幾種方法?復(fù)位后單片機(jī)的初始狀態(tài),即各寄存器及RAM
中的狀態(tài)如何?
【答】復(fù)位操作有上電自動(dòng)復(fù)位、按鍵電平復(fù)位和外部脈沖復(fù)位3種方式。上電自動(dòng)復(fù)位是
通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的;按鍵電平復(fù)位是通過(guò)按壓鍵使復(fù)位端經(jīng)電阻與VCC
接通而實(shí)現(xiàn)的;外部脈沖復(fù)位是由外部提供一個(gè)寬度大于兩個(gè)機(jī)器周期復(fù)位脈沖而實(shí)現(xiàn)的。
復(fù)位操作把Pc初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。當(dāng)由于程序運(yùn)行出
錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),可以按復(fù)位鍵以重新啟動(dòng),也可以通過(guò)監(jiān)視定時(shí)器來(lái)
強(qiáng)迫復(fù)位。
除PC之外,復(fù)位操作還對(duì)其他一些特殊功能寄存器有影響,SFR的復(fù)位狀態(tài)如表2-2所
列。復(fù)位操作還對(duì)單片機(jī)的個(gè)別引腳信號(hào)有影響。例如在復(fù)位期間,ALE和PSEN信號(hào)變?yōu)?/p>
無(wú)效狀態(tài),即ALE=LPSEN=1。復(fù)位操作對(duì)RAM內(nèi)容沒(méi)有影響。
表2-2SFR的復(fù)位狀態(tài)
1iiii
1寄存器1復(fù)位時(shí)的內(nèi)容1寄存器1復(fù)位時(shí)的內(nèi)容I
11II1I1
IPCIOOHITCON|OXB|
I1I1I1I1
IACC|OOH|TLO|OOH|
1I1II1I1
1BOOH|THOIOOH|
1I|I1I1
IPSW|OOH1THIOOH|
1I1I1I1
ISPI07H|THIIOOH|
1I1II1I1
|DPTRIOOHISCON|OOH|
1I1II1I1
IP0~P3|FFH|SBUF1不定1
I11i1i1i
ITMODIXXB|PCONIOXXXOOOOB|
iiiii
[2-19]80C51單片機(jī)的4個(gè)I/??谠谑褂蒙嫌心男┓止ず吞攸c(diǎn)?
【答】4個(gè)I/O口的分工和特點(diǎn)如下:
①P0口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn)。
?用作I/O口。相當(dāng)于一個(gè)真正的雙向口:輸出鎖存,輸入緩沖,但輸入時(shí)須先將口
置I;每根口線可以獨(dú)立定義為輸入或輸出。
?用作地址/數(shù)據(jù)復(fù)用總線。作數(shù)據(jù)總線使用時(shí),輸入/輸出8位數(shù)據(jù)D0?D7;作地
址總線用時(shí),輸出低8位地址AO?A7。
②P1口是一個(gè)8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn),因此,P1口不僅可以8位一組進(jìn)
行輸入、輸出操作,還可以逐位分別定義各口線為輸入線或輸出線。輸入時(shí)有條件,即需
要先輸出1,將該口設(shè)為輸入狀態(tài)。一般作I/。口用。
③P2口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn)。在單片機(jī)采用并行擴(kuò)展
方式時(shí),P2口作為地址總線的高8位D8?D15。
④P3口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn),也按可位訪問(wèn)??勺鳛镮/O口使用,
為準(zhǔn)雙向口。既可以字節(jié)操作,也可以位操作;既可以8位口操作,也可以逐位定義口
線為輸入線或輸出線。
P3可替代輸入、輸出功能。
替代輸入功能:
P3.0-----RXD,串行輸入口。
P3.2-----IN'K0,外部中斷O的請(qǐng)求。
P3.3-----INTI,外部中斷1的請(qǐng)求。
P3.4-TO,定時(shí)器/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入。
P3.5一一T1,定時(shí)器/計(jì)數(shù)器1外部計(jì)數(shù)脈沖輸入。
替代輸出功能:
P3.1------TXD,串行輸出口。
P3.6一一WR,外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通,輸出,低電平有效。
P3.7?RD,外部數(shù)據(jù)存儲(chǔ)器讀選通,輸出,低電平有效。
[2—20]80c51單片機(jī)的I/O口.P0?P3用作通用I/0口時(shí),要注意什么?
【答】P0-P3用作通用I/0口時(shí),輸入時(shí)都須先將相應(yīng)端口鎖存器置1,類似于置為輸入
方式。
I/O□:P。?P3都具有位地址,所以每根I/??诰€可以獨(dú)立定義為輸入或輸出。
P0口輸出時(shí)為漏極開(kāi)路輸出,與NM0S的電路接口時(shí),必須要用電阻上拉,才能有高
電平輸出;輸入時(shí)為懸浮狀態(tài),為一個(gè)高阻抗的輸入口。P1?P3口輸出級(jí)接有內(nèi)部上拉負(fù)
載電阻,能向外提供上拉負(fù)載電流,所以不必外接上拉電阻。
[2-21]80C51單片機(jī)有哪幾種工作方式?簡(jiǎn)單說(shuō)明其應(yīng)用場(chǎng)合和特點(diǎn)。
【答】80c51單片機(jī)共有復(fù)位、程序執(zhí)行、低功耗以及編程和校驗(yàn)4種工作方式。
?復(fù)位方式:是單片機(jī)的初始化操作,其主要功能是把程序計(jì)數(shù)器Pc初始化為0000H,
使單片機(jī)從000H單元開(kāi)始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)
行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,可以按復(fù)位鍵重新啟動(dòng),也可
以通過(guò)監(jiān)視定時(shí)器WDT來(lái)強(qiáng)迫復(fù)位。
?程序執(zhí)行方式:是單片機(jī)的基本工作方式。
?低功耗方式:80c51單片機(jī)有兩種低功耗方式,即待機(jī)方式和掉電保護(hù)方式。用于降低
功耗,提高可靠性。
?編程和校驗(yàn)方式:對(duì)于片內(nèi)具有EPROM型程序存儲(chǔ)器的87c51(87C52)和片內(nèi)具有
閃速存儲(chǔ)器的89c51(89C52)、78E51(78E52)等單片機(jī),可以通過(guò)編程來(lái)修改程序儲(chǔ)器中
的程序。
[2-22]舉例說(shuō)明80C51單片機(jī)在工業(yè)控制系統(tǒng)中低功耗工作方式的意義及實(shí)現(xiàn)方法。
【答】有些產(chǎn)品和系統(tǒng)要求工作時(shí)功耗盡量低,有的要求在停電時(shí)采用備用電池能工作較長(zhǎng)
時(shí)間,以上這些設(shè)計(jì)和要求往往與工業(yè)控制系統(tǒng)的低功耗設(shè)計(jì)密切相連。工業(yè)控制系統(tǒng)低功
耗設(shè)計(jì)除了降低功耗,節(jié)省能源,滿足綠色電子的基本要求之外,還能提高系統(tǒng)的可靠性,
滿足便攜式、電池供電等特殊應(yīng)用場(chǎng)合產(chǎn)品的要求。
80c51單片機(jī)有兩種低功耗方式,即待機(jī)(空閑)方式和掉電(停機(jī))保護(hù)方式。待機(jī)(空閑)
方式和掉電(停機(jī))保護(hù)方式都是由電源控制寄存器PCON的有關(guān)位來(lái)控制的。電源控制寄存
器是一個(gè)逐位定義的8位寄存器,其格式如圖2-2所示。
ISMODIGFIGFOPDIDI?
圖2-2電源控制寄存器PCON
SMOD波特率倍增位,在串行口工作方式時(shí),設(shè)SMOD=1,則波特率加倍。
GFI、GFO通信標(biāo)志位1、O,由軟件置位或復(fù)位。
PD掉電方位式,PD=1,則進(jìn)入掉電工作方式。
IDL待機(jī)方式位,IDL=1,則進(jìn)入待機(jī)工作方式。
若PD位和IDL位同時(shí)為1,則先激活掉電方式。復(fù)位時(shí)PCON中所有位均為0。
1.待機(jī)方式
①使用指令使PCON寄存器IDL位置1,則80C51進(jìn)入待機(jī)方式。
?此時(shí)振蕩器仍然運(yùn)行,并向中斷邏輯、串行口和定時(shí)器/計(jì)數(shù)器電路提供時(shí)鐘,中
斷功能繼續(xù)存在。
?向CPU提供時(shí)鐘的電路被阻斷,因此,CPU不能工作,與CPU有關(guān)的SP、PC、PSW、
ACC以及全部通用寄存器都被凍結(jié)在原狀態(tài)。
②可以采用中斷方式或硬件復(fù)位來(lái)退出待機(jī)方式。
在待機(jī)方式下,若產(chǎn)生一個(gè)外部中斷請(qǐng)求信號(hào),在單片機(jī)響應(yīng)中斷的同時(shí),IDL位
被硬件自動(dòng)清0,單片機(jī)就退出待機(jī)方式,而進(jìn)入正常工作方式。在中斷服務(wù)程序中安
排一條RETI指令,就可以使單片機(jī)恢復(fù)正常工作,從設(shè)置待機(jī)方式指令的下一條指令開(kāi)
始繼續(xù)執(zhí)行程序。
在待機(jī)方式下,振蕩器仍然在工作,因此,硬件復(fù)位只需保持兩個(gè)機(jī)器周期的高電
平就可以完成。RST端復(fù)位信號(hào)直接將IDL位清O,從而退出待機(jī)方式。CPU則從進(jìn)入待
機(jī)方式的下一條指令開(kāi)始重新執(zhí)行程序.
2.掉電保護(hù)方式.
①PCON寄存器的PD位控制單片機(jī)進(jìn)入掉電保護(hù)方式。
80c51單片機(jī)在檢測(cè)到電源故障時(shí),除進(jìn)行信息保護(hù)外,還應(yīng)把PD位置1,使之進(jìn)入
掉電保護(hù)方式。此時(shí)單片機(jī)一切工作都停止,只有內(nèi)部RAM單元的內(nèi)容被保護(hù)。
②只能依靠復(fù)位退出掉電保護(hù)方式。
80C51單片機(jī)備用電源由VCC端引人。當(dāng)VCC恢復(fù)正常后,只要硬件復(fù)位信號(hào)維持10
ms,就能使單片機(jī)退出掉電保護(hù)方式,CPU則從進(jìn)入待機(jī)方式的下一條指令開(kāi)始重新執(zhí)行
[2-2]單片機(jī)“面向控制”應(yīng)用的特點(diǎn),在硬件結(jié)構(gòu)方面有哪些體現(xiàn)?
【答】單片機(jī)“面向控制”應(yīng)用的特點(diǎn),在硬件結(jié)構(gòu)方面有以下幾個(gè)方面的體現(xiàn):
提供了數(shù)量多、功能強(qiáng)、使用靈活的I/O口和串行口。在80c51單片機(jī)系統(tǒng)中,還特
別設(shè)置了布爾(位)處理機(jī),對(duì)并行1/0口的口線直接進(jìn)行位的控制,對(duì)“面向控制”的應(yīng)用
帶來(lái)了極大方便。
設(shè)置多個(gè)中斷源,并具有可編程的中斷優(yōu)先級(jí),對(duì)于實(shí)時(shí)控制非常有利。
提供了多個(gè)定時(shí)器/計(jì)數(shù)器,有的單片機(jī)內(nèi)部還具有監(jiān)視定時(shí)器,有利于提高單片機(jī)的
實(shí)時(shí)控制能力和控制的可靠性。
第3章【單片機(jī)的指令系統(tǒng)】
思考與練習(xí)題解析
[3-1]什么是指令及指令系統(tǒng)?
【答】控制單片機(jī)進(jìn)行某種操作的命令稱為“指令”。單片機(jī)就是根據(jù)指令來(lái)指揮和控制
單片機(jī)各部分協(xié)調(diào)工作。指令由二進(jìn)制代碼表示,指令通常包括操作碼和操作數(shù)兩部分:操
作碼規(guī)定操作的類型,操作數(shù)給出參加操作的數(shù)或存放數(shù)的地址。
所有指令的集合稱為"指令系統(tǒng)"。80c51單片機(jī)的指令系統(tǒng)專用于80C51系列單片機(jī),
是一個(gè)具有255種操作碼(OOH?FFH,除A5H外)的集合。
【3一2】80c51單片機(jī)的指令系統(tǒng)具有哪些特點(diǎn)?
【答】80c51單片機(jī)的指令系統(tǒng)容易理解和閱讀。只要熟記代表33種功能的42種助記即
可。有的功能如數(shù)據(jù)傳送,可以有幾種助記符,如MOV、MOVc、MOVX。而指令功能助
記符與操作數(shù)各種尋址方式的結(jié)合,共構(gòu)造出111種指令,而同一種指令所對(duì)應(yīng)的操作碼可
以多至8種(如指令中Rn對(duì)應(yīng)寄存器R0?R7)。
80C51單片機(jī)的指令系統(tǒng)具有較強(qiáng)的控制操作類指令,容易實(shí)現(xiàn)“面向控制”的功能;
具有位操作類指令,有較強(qiáng)的布爾變量處理能力。
[3-3]簡(jiǎn)述80c51指令的分類和格式。
[答180C51的指令系統(tǒng)共有111條指令,按其功能可分為5大類:數(shù)據(jù)傳送類指令(28條)、
算術(shù)運(yùn)算類指令(24條)、邏輯運(yùn)算類指令(25條)、控制轉(zhuǎn)移類指令(17條)和布爾操作(位)類
指令(17條)。
指令的表示方法稱之為“指令格式”,其內(nèi)容包括指令的長(zhǎng)度和指令內(nèi)部信息的安排等。
在80c51系列的指令系統(tǒng)中,有單字節(jié)、雙字節(jié)和三字節(jié)等不同長(zhǎng)度的指令。
?單字節(jié)指令:指令只有一個(gè)字節(jié),操作碼和操作數(shù)同在一個(gè)字節(jié)中。
?雙字節(jié)指令:包括兩個(gè)字節(jié)。其中一個(gè)字節(jié)為操作碼,另一個(gè)字節(jié)是操作數(shù)。
?三字節(jié)指令:操作碼占一個(gè)字節(jié),操作數(shù)占兩個(gè)字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也
可能是地址。
【3—4】簡(jiǎn)述80c51的指令尋址方式,并舉例說(shuō)明。
【答】執(zhí)行任何一條指令都需要使用操作數(shù),尋址方式就是在指令中給出的尋找操作數(shù)或操
作數(shù)所在地址的方法。
80C5I系列單片機(jī)的指令系統(tǒng)中共有以下7種尋址方式。
①立即尋址。在指令中直接給出操作數(shù)。出現(xiàn)在指令中的操作數(shù)稱為“立即數(shù)”,為了
與直接尋址指令中的直接地址相區(qū)別,在立即數(shù)前面必須加上前綴
例如:MOVDPTR,#1234H;1234H為立即數(shù),直接送DPTR
②直接尋址。在指令中直接給出操作數(shù)單元的地址。
例如:MOVA,55H;55H是操作數(shù)單元的地址,55H單元內(nèi)的數(shù)據(jù)才是操作數(shù),
取出后送累加器A
③寄存器尋址。在指令中將指定寄存器的內(nèi)容作為操作數(shù)。因此,指定了寄存器就能得
到操作數(shù)。寄存器尋址方式中,用符號(hào)名稱來(lái)表示寄存器。
例如:INCR7;R7的內(nèi)容為操作數(shù),加1后再送回R7
④寄存器間接尋址。在指令中給出的寄存器內(nèi)容是操作數(shù)的地址,從該地址中取出的才
是操作數(shù)??梢钥闯?,在寄存器尋址方式中,寄存器中存放的是操作數(shù);而在寄存器間接尋
址
方式中,寄存器中存放的則是操作數(shù)的地址。
寄存器間接尋址須以寄存器符號(hào)名稱的形式表示。為了區(qū)別寄存器尋址和寄存器間接尋
址,在寄存器間接尋址中,應(yīng)在寄存器的名稱前面加前綴
例如:ORLA.@Ro;當(dāng)R0寄存器的內(nèi)容是60H時(shí),該指令功能是以RO寄存器的
內(nèi)容60H為地址,將60H地址單元的內(nèi)容與累加器A中的數(shù)相''或",其結(jié)果仍存放在A中。
⑤相對(duì)尋址。在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。相對(duì)尋址方式是為實(shí)現(xiàn)程序
的相對(duì)轉(zhuǎn)移而設(shè)立的,為相對(duì)轉(zhuǎn)移指令所采用。
在相對(duì)轉(zhuǎn)移指令中,給出地址偏移量(在80c51系列單片機(jī)的指令系統(tǒng)中,以“rel”表
示,為8位帶符號(hào)數(shù)),把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址。而PC的
當(dāng)前值是指執(zhí)行完轉(zhuǎn)移指令后的PC值,即轉(zhuǎn)移指令的PC值加上轉(zhuǎn)移指令的字節(jié)數(shù)。轉(zhuǎn)移
的目的地址可用如下公式表示:
目的地址=(轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù))+rel
例如:SJMP80H;80H為程序轉(zhuǎn)移的偏移量,即一128。當(dāng)前PC值減去128后即
為轉(zhuǎn)移地址
⑥變址尋址。以DPTR或PC作基址寄存器,累加器A作變址寄存器,以兩者內(nèi)容相加
形成的16位程序存儲(chǔ)器地址作為操作數(shù)地址。又稱“基址寄存器+變址寄存器間接尋址”。
變址尋址方式只能對(duì)程序存儲(chǔ)器進(jìn)行尋址。
例如:MOVCA,@A+DPTR;功能是把DPTR和A的內(nèi)容相加,所得到的程序存儲(chǔ)
器地址單元的內(nèi)容送A
⑦位尋址。80c51系列單片機(jī)有位處理功能,可以對(duì)數(shù)據(jù)位進(jìn)行操作,因此,就有相應(yīng)
的位尋址方式。位尋址的尋址范圍:
?片內(nèi)RAM中的位尋址區(qū)。
?可位尋址的特殊功能寄存器位。
例如:MOVc,80H;功能是把位尋址區(qū)的80H位(即P0.0)狀態(tài)送累加位C
[3-5]訪問(wèn)特殊功能寄存器SFR,可使用哪些尋址方式?
【答】訪問(wèn)特殊功能寄存器SFR的惟一尋址方式是直接尋址方式。這時(shí)除了可以單元地址形
式(如90H)給出外,還可以寄存器符號(hào)形式(如P1)給出。雖然特殊功能寄存器可以使用寄存
器符號(hào)標(biāo)志,但在指令代碼中還是按地址進(jìn)行編碼的。
[3-6]若訪問(wèn)外部RAM單元,可使用哪些尋址方式?
【答】訪問(wèn)外部RAM單元的惟一尋址方式是寄存器間接尋址方式。片外RAM的64KB單
元,使用DPTR作為間址寄存器,其形式的@DPTR,例如“MOVXA,@DPTR”的功能是把
DPTR指定的片外RAM單元的內(nèi)容送累加器A?
片外RAM低256個(gè)單元,除了可使用DPTR作為間址寄存器外,也可使用:R0或R1作
間址寄存器。例如“MOVXA,@R0"即把R0指定的片外RAM單元的內(nèi)容送累加器A。
[3-7]若訪問(wèn)內(nèi)部RAM單元,可使用哪些尋址方式?
【答】片內(nèi)RAM的低128單元可以使用寄存器間接尋址方式,但只能采用R0或R1為間址
寄存器,其形式為@川。=0,l)o
片內(nèi)RAM的低128單元可以使用直接尋址方式,在指令中直接以單元地址形式給出。
片內(nèi)RAM的低128單元中的20H?2FH有128個(gè)可尋址位,還可以使用位尋址方式,
對(duì)這128個(gè)位的尋址使用直接位地址表示。
[3-8]若訪問(wèn)程序存儲(chǔ)器,可使用哪些尋址方式?
【答】訪問(wèn)程序存儲(chǔ)器可使用的尋址方式有立即尋址方式、變址尋址方式和相對(duì)尋址方式三
種。立即尋址是指在指令中直接給出操作數(shù)。變址尋址方式只能對(duì)程序存儲(chǔ)器進(jìn)行尋址,或
者說(shuō)這是專門針對(duì)程序存儲(chǔ)器的尋址方式。相對(duì)尋址方式是為實(shí)現(xiàn)程序的相對(duì)轉(zhuǎn)移而設(shè)立
的。這三種尋址方式所得到的操作數(shù)或操作數(shù)地址都在程序存儲(chǔ)器中。
[3—9]MOV、MOVC、MOVI(指令有什么區(qū)別?分別用于哪些場(chǎng)合?為什么?
【答】MOV指令用于對(duì)內(nèi)部RAM的訪問(wèn).MOVC指令用于對(duì)程序存儲(chǔ)器的訪問(wèn),從程序存
儲(chǔ)器中讀取數(shù)據(jù)(如表格、常數(shù)等)。MOVX指令采用間接尋址方式訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器.有
Ri和DPTR兩種間接尋址方式。執(zhí)行MOVX指令時(shí),在P3.7引腳上輸出RD有效信號(hào).或
在P3.6引腳上輸出WR有效信號(hào),可以用做外部數(shù)據(jù)存儲(chǔ)器或1/0的讀/寫(xiě)選通信號(hào),
與單片機(jī)擴(kuò)展電路有關(guān)。
[3-10]說(shuō)明“DAA”指令功能,并說(shuō)明二一十進(jìn)制調(diào)整的原理和方法。
【答】“DAA”指令的功能是對(duì)兩個(gè)BCD碼的加法結(jié)果進(jìn)行調(diào)整。兩個(gè)壓縮型BCD碼按二進(jìn)
制數(shù)相加之后,必須經(jīng)過(guò)該指令的調(diào)整才能得到壓縮型BCD碼的和數(shù)。“DAA”指令對(duì)兩個(gè)
BCD碼的減法結(jié)果不能進(jìn)行調(diào)整。
BCD碼采用4位二進(jìn)制數(shù)編碼,并且只采用了其中的10個(gè)編碼,即0000?1001,分別
代表BCD碼0?9,而1010?1111為無(wú)效碼。當(dāng)兩個(gè)BCD碼相加結(jié)果大于9時(shí),說(shuō)明已進(jìn)
入無(wú)效編碼區(qū);當(dāng)兩個(gè)BCD碼相加結(jié)果有進(jìn)位時(shí),說(shuō)明已跳過(guò)無(wú)效編碼區(qū)。若結(jié)果進(jìn)入或
跳過(guò)無(wú)效編碼區(qū),則結(jié)果是錯(cuò)誤的,相加結(jié)果均比正確結(jié)果小6(差6個(gè)無(wú)效編碼)。
十進(jìn)制調(diào)整的修正方法為:當(dāng)累加器低4位大于9或半進(jìn)位標(biāo)志AC=1時(shí),進(jìn)行低4位
加6修正;當(dāng)累加器高4位大于9或進(jìn)位標(biāo)志CY=I時(shí),進(jìn)行高4位加6修正。
[3—11]說(shuō)明80C51單片機(jī)的布爾處理機(jī)的構(gòu)造及功能。
【答】80c51單片機(jī)內(nèi)部有一個(gè)布爾(位)處理機(jī),具有較強(qiáng)的布爾變量處理能力。布爾處理
機(jī)實(shí)際上是一位微處理機(jī),它包括硬件和軟件。布爾處理機(jī)以進(jìn)位標(biāo)志CY作為位累加器,
以80C51單片機(jī)內(nèi)部RAM的20H?2FH單元及部分特殊功能寄存器為位存儲(chǔ)器,以80C51
單片機(jī)的PO、Pl>P2和P3為位I/O。
對(duì)位地址空間具有豐富的位操作指令,包括布爾傳送指令、布爾狀態(tài)控制指令、位邏輯
操作指令及位條件轉(zhuǎn)移指令,為單片機(jī)的控制帶來(lái)很大方便。
[3-12]試分析以下程序段的執(zhí)行結(jié)果。
MOVSP,#60H
MOVA,#88H
MOVB,#OFFH
PUSHACC
PUSHB
POPACC
POPB
【答】結(jié)果如下:
MOVSP,#60tt;(SP)=60H
NOVA,#88tt;(A)=88H
MOVB.#OFFH;(B)=FFH
PUSHACC;(SP)=61H,(61H)=88H
PUSHB;(SP)=62H,(62H)=FFH
POPACC;(A)=FFH,(SP)=61H
POPB;(B)=88H,(SP)=60H
程序段的執(zhí)行結(jié)果:累加器A和寄存器B的內(nèi)容通過(guò)堆棧進(jìn)行了交換。
注意:80C51單片機(jī)的堆棧是按照先進(jìn)后出的原則進(jìn)行管理的。
[3-1]已知(A)=7AH,(RO)=30H,(30H)=A5H,(PSW)=80H。請(qǐng)?zhí)顚?xiě)各條指令單獨(dú)執(zhí)行后的結(jié)
果。
(1)XCHA,R0
(2)XCHA,30tt
(3)XCHA,@R0
(4)XCHDA,@R0
(5)SWAPA
(6)ADDA,R0
(7)ADDA,30H
(8)ADDA,#30H
(9)ADDCA,30H
(10)SUBBA,30H
(11)SUBBA,#30H
【答】結(jié)果如下:
(1)XCHA,RO;(A)=30H,(RO):7AH
⑵XCHA,30H;(A)=A5H,(30H)=7AH,(PSW)=81H
(3)XCHA,@R0;(A)=R5H,(30H)=7AH,(PSW)=81H
(4)XCHDA,@R0;(A)=75H,(30H)=AAH,(PSW)=81H
(5)SWAPA;(A)=A7H
(6)ADDA,RO;(A)=AAH,(PSW)=04H
(7)ADDA,30H;(A)=1FH,(PSW)=81H
(8)ADDA,#30H:(A)=AAH,(PSW)=04H
(9)ADDCA,30H;(A)=20H,(PSW)=01H
(10)SUBBA,30H;(A)=D4H,(PSW)=84H
(11)SUBBA,#30H;(A)=49H,(PSW)=01H
[3—14]已知(30H)=40H,(40H)=10H,(10H)=00H,(P1)=CAH,請(qǐng)寫(xiě)出執(zhí)行以下程序段后有
關(guān)單元的內(nèi)容-O
MOVRO,#30H
MOVA,@R0
MOVRI,A
MOVB,@R1
MOV@R1,Pl
MOVA,@R0
MOVIOH,#20H
MOV30H,10H
【答】有關(guān)單元的內(nèi)容如下:
MOVRO,#30H;(RO)=30H
MOVA,@R0;(A)=40H
MOVRI,A;(Rl)=40H
MOVB,@R1;(B)=10H
MOV@R1,Pl;(40H)=CAH
MOVA,@RO;(A)=40H
MOV10H,#20H;(10H)=20H
MOV30H,10H;(30H)=20H
執(zhí)行以上程序段后,有關(guān)單元的內(nèi)容分別為:(30H)=20H,(40H)=CAH,(10H)=20H,
(P1)=CAH。
[3-15]已知(Rl)=20H,(20H)=AAH,請(qǐng)寫(xiě)出執(zhí)行完下列程序段后A的內(nèi)容。
MOV
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024物流園區(qū)建設(shè)與運(yùn)營(yíng)管理合同
- 二零二五年度出口退稅證明開(kāi)具與國(guó)際物流配送服務(wù)合同3篇
- 2024物業(yè)租賃合同協(xié)議范本
- 2024網(wǎng)絡(luò)游戲代理運(yùn)營(yíng)合同
- 2025年度新型材料研發(fā)中心廠房租賃協(xié)議范本4篇
- 2025廠區(qū)食堂承包合同樣本:營(yíng)養(yǎng)健康食譜定制版3篇
- 2025年度智慧園區(qū)場(chǎng)地服務(wù)合同范本7篇
- 2024年03月中國(guó)銀行股份有限公司2024年春季招考筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度文化產(chǎn)業(yè)園場(chǎng)地承包經(jīng)營(yíng)合作協(xié)議范本4篇
- 2025年度產(chǎn)業(yè)園區(qū)企業(yè)服務(wù)中心租賃合同4篇
- 2023光明小升初(語(yǔ)文)試卷
- 三年級(jí)上冊(cè)科學(xué)說(shuō)課課件-1.5 水能溶解多少物質(zhì)|教科版
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設(shè)計(jì)原則、計(jì)算和檢驗(yàn)
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學(xué)道德與法治學(xué)科高級(jí)(一級(jí))教師職稱考試試題(有答案)
- 申請(qǐng)使用物業(yè)專項(xiàng)維修資金征求業(yè)主意見(jiàn)表
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 實(shí)用性閱讀與交流任務(wù)群設(shè)計(jì)思路與教學(xué)建議
- 應(yīng)急柜檢查表
- 通風(fēng)設(shè)施標(biāo)準(zhǔn)
- 酒店市場(chǎng)營(yíng)銷教案
評(píng)論
0/150
提交評(píng)論