單片機(jī)原理及應(yīng)用(姜志海第3版)習(xí)題參考答案_第1頁
單片機(jī)原理及應(yīng)用(姜志海第3版)習(xí)題參考答案_第2頁
單片機(jī)原理及應(yīng)用(姜志海第3版)習(xí)題參考答案_第3頁
單片機(jī)原理及應(yīng)用(姜志海第3版)習(xí)題參考答案_第4頁
單片機(jī)原理及應(yīng)用(姜志海第3版)習(xí)題參考答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

……………最新資料推薦………………最新資料推薦………………最新資料推薦…………………《單片機(jī)原理及應(yīng)用(第3版)》習(xí)題參考答案姜志海黃玉清劉連鑫編著電子工業(yè)出版社目錄TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc460266542"第1章概述2HYPERLINK\l"_Toc460266543"第2章MCS51系列單片機(jī)硬件結(jié)構(gòu)4HYPERLINK\l"_Toc460266544"第3章MCS51系列單片機(jī)指令系統(tǒng)8HYPERLINK\l"_Toc460266545"第4章MCS51系列單片機(jī)匯編語言程序設(shè)計11HYPERLINK\l"_Toc460266546"第5章MCS51系列單片機(jī)硬件資源的應(yīng)用15HYPERLINK\l"_Toc460266547"第6章MCS51系列單片機(jī)并行擴(kuò)展接口技術(shù)19HYPERLINK\l"_Toc460266548"第7章MCS51系列單片機(jī)串行總線擴(kuò)展技術(shù)23HYPERLINK\l"_Toc460266549"第8章單片機(jī)應(yīng)用系統(tǒng)設(shè)計25第1章概述1.簡述微型計算機(jī)的結(jié)構(gòu)及各部分的作用微型計算機(jī)在硬件上由運算器、控制器、存儲器、輸入設(shè)備及輸出設(shè)備五大部分組成。運算器是計算機(jī)處理信息的主要部分;控制器控制計算機(jī)各部件自動地、協(xié)調(diào)一致地工作;存儲器是存放數(shù)據(jù)與程序的部件;輸入設(shè)備用來輸入數(shù)據(jù)與程序;輸出設(shè)備將計算機(jī)的處理結(jié)果用數(shù)字、圖形等形式表示出來。通常把運算器、控制器、存儲器這三部分稱為計算機(jī)的主機(jī),而輸入、輸出設(shè)備則稱為計算機(jī)的外部設(shè)備(簡稱外設(shè))。由于運算器、控制器是計算機(jī)處理信息的關(guān)鍵部件,所以常將它們合稱為中央處理單元CPU(CentralProcessUnit)。2.微處理器、微型計算機(jī)、微型計算機(jī)系統(tǒng)有什么聯(lián)系與區(qū)別?微處理器是利用微電子技術(shù)將計算機(jī)的核心部件(運算器和控制器)集中做在一塊集成電路上的一個獨立芯片。它具有解釋指令、執(zhí)行指令和與外界交換數(shù)據(jù)的能力。其內(nèi)部包括三部分:運算器、控制器、內(nèi)部寄存器陣列(工作寄存器組)。微型計算機(jī)由CPU、存儲器、輸入/輸出(I/O)接口電路構(gòu)成,各部分芯片之間通過總線(Bus)連接。以微型計算機(jī)為主體,配上外部輸入/輸出設(shè)備、電源、系統(tǒng)軟件一起構(gòu)成應(yīng)用系統(tǒng),稱為微型計算機(jī)系統(tǒng)。3.簡述在微型計算機(jī)中的地址總線、數(shù)據(jù)總線和控制總線的作用。所謂總線,就是在微型計算機(jī)各芯片之間或芯片內(nèi)部各部件之間傳輸信息的一組公共通信線。計算機(jī)元件級總線包括地址總線AB(AddressBus)、數(shù)據(jù)總線DB(DataBus)、控制總線CB(ControlBus)三種。(1)地址總線:地址總線是CPU用來向存儲器或I/O接口傳送地址信息的,是三態(tài)單向總線。地址總線的寬度決定了CPU可直接尋址的內(nèi)存容量。通過地址總線確定要操作的存儲單元或I/O接口的地址。(2)數(shù)據(jù)總線:數(shù)據(jù)總線是CPU與存儲器及外設(shè)交換數(shù)據(jù)的通路,是三態(tài)雙向總線。(3)控制總線:控制總線是用來傳輸控制信號的,傳送方向依據(jù)具體控制信號而定,如CPU向存儲器或I/O接口電路輸出讀信號、寫信號、地址有效信號,而I/O接口部件向CPU輸入復(fù)位信號、中斷請求信號等。4.微型計算機(jī)是以CPU為核心,配上(存儲器)、(輸入/輸出接口)和系統(tǒng)總線組成的計算機(jī)。5.在計算機(jī)內(nèi)部,一切信息的存取、處理和傳遞的形式是(C)。A.ASCII碼 B.BCD碼 C.二進(jìn)制 D.十六進(jìn)制6.0~9的ASCII碼是(C)。A.0~9 B.30~39 C.30H~39H D.40H~49H7.假設(shè)某CPU含有16根地址線,8根數(shù)據(jù)線,則該CPU的最大尋址能力是多少KB?64KB8.簡述單片機(jī)的定義、特點、應(yīng)用領(lǐng)域和發(fā)展方向。定義:它采用一定的工藝手段將CPU、存儲器和I/O口集成在一個芯片上。特點:①單片機(jī)CPU的抗干擾性強,工作溫度范圍寬,而通用微機(jī)CPU一般要求在室溫下工作,抗干擾能力較弱。②單片機(jī)CPU可靠性強,在工業(yè)控制中,任何差錯都有可能造成極其嚴(yán)重的后果。③單片機(jī)CPU控制功能往往很強,數(shù)值計算能力較差,而通用微機(jī)CPU具有很強的數(shù)值運算能力,但控制能力相對較弱,將通用微機(jī)用于工業(yè)控制時,一般需要增加一些專用的接口電路。④單片機(jī)CPU指令系統(tǒng)比通用微機(jī)系統(tǒng)簡單。⑤單片機(jī)CPU更新?lián)Q代速度比通用微機(jī)處理器慢得多。應(yīng)用領(lǐng)域:①單片機(jī)在智能儀表中的應(yīng)用②單片機(jī)在機(jī)電一體化中的應(yīng)用③單片機(jī)在實時控制中的應(yīng)用④在軍工領(lǐng)域的應(yīng)用⑤單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用⑥在民用電子產(chǎn)品中的應(yīng)用發(fā)展趨勢:CPU的改進(jìn)②存儲器的發(fā)展③片內(nèi)I/O口的改進(jìn)一般單片機(jī)都有較多的并行口,以滿足外圍設(shè)備、芯片擴(kuò)展的需要,并配以串行口,以滿足對多機(jī)通信功能的要求。①提高并行口的驅(qū)動能力。這樣可減少外圍驅(qū)動芯片。有的單片機(jī)直接輸出大電流和高電壓,以便能直接驅(qū)動LED和VFD(熒光顯示器)等。②增加I/O口的邏輯控制功能。中、高檔單片機(jī)的位處理系統(tǒng)能夠?qū)/O口線進(jìn)行位尋址及位操作,這加強了I/O口線控制的靈活性。特殊的串行接口功能。為單片機(jī)構(gòu)成網(wǎng)絡(luò)系統(tǒng)提供更便利的條件。④外圍電路內(nèi)裝化⑤低功耗與工作電壓范圍加寬⑥低噪聲與高可靠性技術(shù)⑦ISP及IAP第2章MCS51系列單片機(jī)硬件結(jié)構(gòu)1.MCS51系列單片機(jī)內(nèi)部有哪些主要的邏輯部件?MCS51單片機(jī)是在一塊芯片上集成了CPU、RAM、ROM、定時器/計數(shù)器和多種I/O功能部件,具有了一臺微型計算機(jī)的基本結(jié)構(gòu),主要包括下列部件:一個8位的CPU、一個布爾處理機(jī)、一個片內(nèi)振蕩器、128B的片內(nèi)數(shù)據(jù)存儲器、4KB的片內(nèi)程序存儲器(8031無)、外部數(shù)據(jù)存儲器和程序存儲器的尋址范圍為64KB、21個字節(jié)的專用寄存器、4個8位并行I/O接口、一個全雙工的串行口、2個16位的定時器/計數(shù)器、5個中斷源、2個中斷優(yōu)先級、111條指令、片內(nèi)采用單總線結(jié)構(gòu)。2.MCS51單片機(jī)設(shè)有4個8位并行端口,實際應(yīng)用中8位數(shù)據(jù)信息由哪個端口傳送?16位地址線怎樣形成?P3口有何功能?8位數(shù)據(jù)信息由P0口傳送。P2口形成地址大高8位,P0口結(jié)果鎖存器形成地址的低8位。P3口除具有一般的輸入/輸出功能,還具有第2功能:P3.0RXD串行口輸入端P3.1TXD串行口輸出端P3.2外部中斷0請求輸入端,低電平有效P3.3外部中斷1請求輸入端,低電平有效P3.4T0定時器/計數(shù)器0計數(shù)脈沖輸入端P3.5T1定時器/計數(shù)器1計數(shù)脈沖輸入端P3.6外部數(shù)據(jù)存儲器及I/O接口寫選通信號輸出端,低電平有效P3.7外部數(shù)據(jù)存儲器及I/O接口讀選通信號輸出端,低電平有效3.MCS51單片機(jī)內(nèi)部RAM區(qū)的功能結(jié)構(gòu)如何分配?4組工作寄存器使用時如何選擇?位尋址區(qū)域的字節(jié)范圍是多少?MCS51單片機(jī)片內(nèi)RAM共有128B,字節(jié)范圍為00H~7FH,可分為工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)共3個區(qū)域。(1)工作寄存器區(qū)00H~1FH單元為工作寄存器區(qū)。工作寄存器也稱通用寄存器,用于臨時寄存8位信息。工作寄存器分成4組,每組都是8個寄存器,用R0~R7來表示。程序中每次只用一組,其余各組不工作。使用哪一組寄存器工作,由程序狀態(tài)字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來選擇,其對應(yīng)關(guān)系如表所示。工作寄存器組的選擇表工作寄存器組的選擇表PSW.4(RS1)PSW.3(RS0)當(dāng)前使用的工作寄存器組

R0~R7000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)該區(qū)域當(dāng)不被用做工作寄存器時,可以作為一般的RAM區(qū)使用。(2)位尋址區(qū)20H~2FH單元是位尋址區(qū)。這16個單元(共計16×8=128位)的每一位都賦予了一個位地址,位地址范圍為00H~7FH。位地址區(qū)的每一位都可當(dāng)做軟件觸發(fā)器,由程序直接進(jìn)行位處理。通??梢园迅鞣N程序狀態(tài)標(biāo)志、位控制變量存入位尋址區(qū)內(nèi)。00H…07H08H…0FH10H…17H18H…1FH0組工作寄存器區(qū)1組2組3組20H21H22H23H24H25H26H27H28H29H2AH2BH2CH2DH2EH2FH0706050403020100位尋址區(qū)0F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241404F4E4D4C4B4A494857565554535251505F5E5D5C5B5A595867666564636261606F6E6D6C6B6A696877767574737271707F7E7D7C7B7A797830H…7FH數(shù)據(jù)緩沖區(qū)該區(qū)域當(dāng)不被用做位尋址區(qū)時,可以作為一般的RAM區(qū)使用。(3)數(shù)據(jù)緩沖區(qū)30H~7FH是數(shù)據(jù)緩沖區(qū),即用戶RAM,共80個單元。由于工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)統(tǒng)一編址,使用同樣的指令訪問,這三個區(qū)的單元既有自己獨特的功能,又可統(tǒng)一調(diào)度使用。因此,前兩個區(qū)未使用的單元也可作為用戶RAM單元使用,使容量較小的片內(nèi)RAM得以充分利用。4.簡述程序狀態(tài)字PSW中各位的含義。程序狀態(tài)字PSW是一個8位寄存器,它保存指令執(zhí)行結(jié)果的特征信息,為下一條指令或以后的指令的執(zhí)行提供狀態(tài)條件。PSW中的各位一般是在指令執(zhí)行過程中形成的,但也可以根據(jù)需要采用傳送指令加以改變。其各位定義如圖所示。①進(jìn)位標(biāo)志C(PSW.7)在執(zhí)行某些算術(shù)運算類、邏輯運算類指令時,可被硬件或軟件置位或清零。它表示運算結(jié)果是否有進(jìn)位或借位。如果在最高位有進(jìn)位(加法時)或借位(減法時),則C=1,否則C=0。②輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志位AC(PSW.6)它表示兩個8位數(shù)運算,低4位有無進(jìn)(借)位的狀況。當(dāng)?shù)?位相加(或相減)時,若D3位向D4位有進(jìn)位(或借位),則AC=1,否則AC=0。在BCD碼運算的十進(jìn)制調(diào)整中要用到該標(biāo)志。③用戶自定義標(biāo)志位F0(PSW.5)用戶可根據(jù)自己的需要為F0賦予一定的含義,通過軟件置位或清零,并根據(jù)F0=1或0來決定程序的執(zhí)行方式,或系統(tǒng)某一種工作狀態(tài)。④工作寄存器組選擇位RS1、RS0(PSW.4、PSW.3)可用軟件置位或清零,用于選定當(dāng)前使用的4個工作寄存器組中的某一組。⑤溢出標(biāo)志位OV(PSW.2)做加法或減法時由硬件置位或清零,以指示運算結(jié)果是否溢出。在帶符號數(shù)加減運算中,OV=1表示加減運算超出了累加器所能表示的數(shù)值范圍(–128~+127),即產(chǎn)生了溢出,因此運算結(jié)果是錯誤的。OV=0表示運算正確,即無溢出產(chǎn)生。執(zhí)行乘法指令MULAB也會影響OV標(biāo)志,當(dāng)積大于255時,OV=1,否則OV=0;執(zhí)行除法指令DIVAB也會影響OV標(biāo)志,如B中所存放的除數(shù)為0,則OV=1,否則0V=0。⑥奇偶標(biāo)志位P(PSW.0)在執(zhí)行指令后,單片機(jī)根據(jù)累加器A中1的個數(shù)的奇偶自動將該標(biāo)志置位或清零。若A中1的個數(shù)為奇數(shù),則P=1,否則P=0。該標(biāo)志對串行通信的數(shù)據(jù)傳輸非常有用,通過奇偶校驗可檢驗傳輸?shù)目煽啃浴?.簡述MCS51單片機(jī)程序存儲器的幾個特殊入口地址的含義。0000H:程序入口地址0003H:外部中斷0中斷服務(wù)程序入口地址000BH:定時器/計數(shù)器0溢出中斷服務(wù)程序入口地址0013H:外部中斷1中斷服務(wù)程序入口地址001BH:定時器/計數(shù)器1溢出中斷服務(wù)程序入口地址0023H:串行口發(fā)送/接收中斷服務(wù)程序入口地址6.位地址7FH與字節(jié)地址7FH有何區(qū)別?位地址7FH具體在內(nèi)存中的什么位置?二者存儲的數(shù)據(jù)位數(shù)不一樣。位地址7FH存放一位二進(jìn)制數(shù),字節(jié)地址7FH存放8為二進(jìn)制數(shù)。位地址7FH具體在內(nèi)存中字節(jié)地址為20H的最高位上。7.試分別說明程序計數(shù)器PC和堆棧指針SP的作用。復(fù)位后PC和SP各為何值?程序計數(shù)器PC是一個16位專用寄存器,其內(nèi)容表示下一條要執(zhí)行的指令的地址。復(fù)位后為0000H。MCS51單片機(jī)的堆棧是在片內(nèi)RAM中開辟的一個專用區(qū)。堆棧指針SP是一個8位專用寄存器,用來存放棧頂?shù)牡刂?。進(jìn)棧時,SP自動加1,將數(shù)據(jù)壓入SP所指定的地址單元;出棧時,將SP所指示的地址單元中的數(shù)據(jù)彈出,然后SP自動減1。因此SP總是指向棧頂。復(fù)位后為07H。8.MCS51單片機(jī)設(shè)置4組工作寄存器,開機(jī)復(fù)位后,CPU使用的是哪組寄存器?它們的地址如何?CPU如何改變當(dāng)前工作寄存器組?第0組。字節(jié)地址為00H~07H。通過PSW的RS1、RS0來改變。工作寄存器組的選擇表工作寄存器組的選擇表PSW.4(RS1)PSW.3(RS0)當(dāng)前使用的工作寄存器組

R0~R7000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)9.什么是時鐘周期、機(jī)器周期和指令周期?當(dāng)外部的振蕩頻率是8MHz時,8051單片機(jī)的機(jī)器周期為多少?MCS51單片機(jī)的時序由下面4種周期構(gòu)成。(1)振蕩周期振蕩周期是指為單片機(jī)提供定時信號的振蕩源的周期。(2)狀態(tài)周期(時鐘周期)兩個振蕩周期為一個狀態(tài)周期,用S表示。兩個振蕩周期作為兩個節(jié)拍分別稱為節(jié)拍P1和節(jié)拍P2。在狀態(tài)周期的前半周期P1有效時,通常完成算術(shù)邏輯運算;在后半周期P2有效時,一般進(jìn)行內(nèi)部寄存器之間的傳輸。(3)機(jī)器周期CPU執(zhí)行一條指令的過程可以劃分為若干階段,每一階段完成某一項基本操作,如取指令、存儲器讀/寫等。通常把完成一個基本操作所需要的時間稱為機(jī)器周期。(4)指令周期指令周期是指執(zhí)行一條指令所占用的全部時間,它以機(jī)器周期為單位。MCS51系列單片機(jī)除乘法、除法指令是4機(jī)器周期指令外,其余都是單周期指令和雙周期指令。若用12MHz晶體振蕩器(晶振),則單周期指令和雙周期指令的指令周期時間分別是1μs和2μs,乘法和除法指令為4μs。通過上面的分析,我們可以看出,外部晶振的二分頻是MCS51單片機(jī)的內(nèi)部時鐘周期,6個時鐘周期構(gòu)成了單片機(jī)的機(jī)器周期。如果單片機(jī)的外部晶振是8MHz,則其內(nèi)部的機(jī)器周期是1.5μs。12.已知PSW=10H,則工作寄存器R0的地址是10H,R4的地址是14H。第3章MCS51系列單片機(jī)指令系統(tǒng)1.訪問外部數(shù)據(jù)存儲器和程序存儲器可以用哪些指令來實現(xiàn)?舉例說明。訪問外部數(shù)據(jù)存儲器:MOVX A,@DPTRMOVX @DPTR,AMOVX A,@RiMOVX @Ri,A訪問程序存儲器:MOVC A,@A+DPTRMOVC A,@A+PC2.設(shè)堆棧指針SP中的內(nèi)容為60H,內(nèi)部RAM中30H和31H單元的內(nèi)容分別為24H和10H,執(zhí)行下列程序段后,61H、62H、30H、31H、DPTR及SP的內(nèi)容將有何變化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV 31H,#0FFH(61H)=24H(62H)=10H(30H)=00H(31H)=0FFH(DPTR)=2410H(SP)=60H3.設(shè)(A)=40H,(R1)=23H,(40H)=05H。執(zhí)行下列兩條指令后,累加器A和R1以及內(nèi)部RAM中40H單元的內(nèi)容各為何值?XCH A,R1XCHD A,@R1(A)=25H(R1)=40H(40H)=03H4.設(shè)(A)=01010101B,(R5)=10101010B,分別寫出執(zhí)行ANLA,R5;ORLA,R5;XRLA,R5指令后的結(jié)果。00000000B11111111B11111111B5.簡述轉(zhuǎn)移指令A(yù)JMPaddr11,SJMPrel,LJMPaddr16及JMP@A+DPTR的應(yīng)用。AJMPaddr11:2K范圍內(nèi)的轉(zhuǎn)移;SJMPrel:256字節(jié)復(fù)位內(nèi)的轉(zhuǎn)移;LJMPaddr16:64K范圍內(nèi)的轉(zhuǎn)移;JMP@A+DPTR:在某一地址開始的256字節(jié)范圍內(nèi)的轉(zhuǎn)移。6.試用三種方法實現(xiàn)累加器A和寄存器B的內(nèi)容交換。(1) MOV R0,AMOV A,BMOV B,R0(2) PUSH APUSH BPOP APOP B(3) MOV R0,BXCH A,R0MOV B,R07.寫出實現(xiàn)下列要求的指令或程序片段。(1)將內(nèi)部RAM20H單元內(nèi)容與累加器A內(nèi)容相加,結(jié)果存放在20H單元中。(2)將內(nèi)部RAM30H單元內(nèi)容與內(nèi)部RAM31H單元內(nèi)容相加,結(jié)果存放到內(nèi)部RAM31H單元中。(3)將內(nèi)部RAM20H單元內(nèi)容傳送到外部RAM2000H單元中。(4)使內(nèi)部RAM20H單元的D7和D3位清零,其他位保持不變。(5)使內(nèi)部RAM20H單元的D7和D3位置1,D5位清零,其他位保持不變。(6)使內(nèi)部RAM20H單元的D7和D3位置1,D5位取反,其他位保持不變。(1)ADD A,20HMOV 20H,A(2) MOV A,30HADD A,31HMOV 31H,A(3) MOV A,20HMOV DPTR,#2000HMOVX @DPTR,A(4) CLR 03H CLR 07H 或: ANL 20H,#01110111B(5) SETB 03HSETB 07HCLR 05H或:ORL 20H,#10001000BANL 20H,#11011111B(6) SETB 03HSETB 07HCPL 05H或:ORL 20H,#10001000BXRL 20H,#00100000B8.試分析下列程序段執(zhí)行后,(A)=?,(30H)=?MOV 30H,#0A4HMOV A,#0D6HMOV R0,#30HMOV R2,#5EHANL A,R2ORL A,@R0SWAP ACPL AXRL A,#0FEHORL 30H,A(A)=6EH(30H)=0EFH9.設(shè)片內(nèi)RAM(30H)=0EH,執(zhí)行下面的程序后,(A)=?,指出該程序完成的功能。MOV R0,#30HMOV A,@R0RL AMOV B,ARL ARL AADD A,B=8CH功能:將30H中的內(nèi)容*10操作,結(jié)果在累加器A中。第4章MCS51系列單片機(jī)匯編語言程序設(shè)計1.編程將片內(nèi)RAM30H~39H單元中的內(nèi)容送到以3000H為首的存儲區(qū)中。MOV R0,#30HMOV DPTR,#3000HMOV R7,#10L1: MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,L1RET2.片內(nèi)RAM60H開始存放20個數(shù)據(jù),試統(tǒng)計正數(shù)、負(fù)數(shù)及為零的數(shù)據(jù)個數(shù),并將結(jié)果分別存在50H、51H、52H單元中。MOV 50H,#0 MOV 51H,#0MOV 52H,#0 MOVR7,#20MOV R0,#60HL3: MOV A,@R0 JZ L1 JB ACC.7,L2 INC 50H SJMP LEND L2: INC 51H SJMP LEND L1: INC 52H LEND: INC R0 DJNZ R7,L3RET3.設(shè)10次采樣值依次放在片內(nèi)RAM50H~59H的連續(xù)單元中,試編程去掉一個最大值、去掉一個最小值,求其余8個數(shù)的平均值,結(jié)果存放在60H中。 MOV R0,#50H ;最大值 MOV A,@R0 MOV R7,#9 INC R0 L1: CLR C MOV B,A SUBB A,@R0 MOV A,B JNC L2 XCH A,@R0 L2: INC R0 DJNZ R7,L1 MOV R0,#51H ;最小值 MOV A,@R0 MOV R7,#8 INC R0 L1: CLR C MOV B,A SUBB A,@R0 MOV A,B JN L4 XCH A,@R0 L4: INC R0 DJNZ R7,L3MOV R3,#0 ; 求和 MOV R4,#0 MOV R7,#8 MOV R0,#52H L5: MOV A,R4 ADD A,@R0 MOV R4,A MOV A,R3 ADDC A,#0 MOV R3,A INC R0 DJNZ R7,L5 MOV A,R4 ;平均值 SWAP A RL A MOV B,A MOV A,R3 RR A RR A RR A ANL A,#00011111B ORL A,B MOV 60H,A RET4.編寫程序?qū)4、R5、R6中的3個字節(jié)數(shù)據(jù)對半分解成6個字節(jié),存入顯示緩沖區(qū)(DISMEM0~DISMEM5)。 MOV A,R6 LCALL CLMOV DISMEM0,R0 MOV DISMEM1,R1 MOV A,R5 LCALL CL MOV DISMEM2,R0 MOV DISMEM3,R1 MOV A,R4 LCALL CL MOV DISMEM4,R0 MOV DISMEM5,R1 RET CL: MOV B,A ANL A,#0FH MOV R0,A MOV A,B ANL A,#0F0H SWAP A MOV R1,A RET5.試編程把以2000H為首地址的連續(xù)10個單元的內(nèi)容按升序排列,存放到以3000H為首地址的存儲區(qū)中。 MOV DPTR,#2000H ;讀到片內(nèi)30H開始的單元 MOV R0,#30H MOV R7,#10 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 START: CLR 00H ;排序 CLR C MOV R7,#9 MOV R0,#30H MOV A,@R0 L3: INC R0 MOV R2,A SUBB A,@R0 MOV A,R2 JC NEXT SETB 00H XCH A,@R0 DEC R0 MOV @R0,A INC R0 NEXT: MOV A,@R0 DJNZ R7,L3 JB 00H,START MOV DPTR,#3000H ;送到片外3000H開始的單元 MOV R0,#20H MOV R7,#10 L2: MOV A,@R0 MOVX @DPTR,A INC DPTR INC R0 DJNZ R7,L2 RET6.設(shè)片內(nèi)30H單元開始,連續(xù)存放2個字節(jié)二進(jìn)制數(shù),試分別將其轉(zhuǎn)換為BCD碼,并以壓縮BCD碼格式連續(xù)存放在以60H為首地址的存儲區(qū)中,低位字節(jié)存放在低地址單元中。DBCD: MOV R0,30H MOV A,R0 MOV R6,A MOV R1,60H MOV A,R1 MOV R7,A MOV R2,#2 INC R2 CLR A BB0: MOV @R1,A INC R1 DJNZ R2,BB0 MOV R3,#16 BB3: MOV A,R6 MOV R0,A MOV R2,#2 CLR C BB1: MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R2,BB1 MOV R2,#2 INC R2 MOV A,R7 MOV R1,ABB2: MOV A,@R1 ADDC A,@R1 DA A MOV @R1,A INC R1 DJNZ R2,BB2 DJNZ R3,BB3 RET 7.設(shè)片內(nèi)RAM中從20H開始的單元,連續(xù)存放10個非壓縮BCD碼,試將其轉(zhuǎn)換為ASCII碼,存放到片內(nèi)50H開始的單元中。 MOV R0,#20H MOV R1,#50H MOV R7,#10 L1: MOV A,@R0 ADD A,#30H MOV @R1,A INC R0 INC R1 DJNZ R7,L1 RET8.從20H單元開始有一無符號數(shù)據(jù)塊,其長度在20H單元。求出數(shù)據(jù)塊中的最小值,并存入21H單元。參看第3題。9.片外RAM從2000H單元開始存有10個單字節(jié)無符號數(shù),找出最大值存入片外RAM3000H單元,試編寫程序。參看第3題。10.從片外RAM2000H單元開始存有20個有符號數(shù),要求把它們傳送到片外RAM3000H開始的單元,但負(fù)數(shù)不傳送,試編寫程序。 MOV DPTR,#2000H MOV R0,#20H MOV R7,#20 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 MOV DPTR,#3000H MOVR0,#20H MOV R7,#20 L2: MOV A,@R0 JB ACC.7,L3 MOVX @DPTR,A L3: INC DPTR INC R0 DJNZ R7,L2 RET第5章MCS51系列單片機(jī)硬件資源的應(yīng)用1.MCS51單片機(jī)的4個I/O接口的作用是什么?三總線是如何分配的?為什么說能作為I/O使用的一般只有P1口?P0口形成數(shù)據(jù)總線;P2口形成地址的高8位,P0口經(jīng)過鎖存器形成地址的低8位;P3口形成控制總線。在具有外部擴(kuò)展的時間,需要用到數(shù)據(jù)總線、地址總線和控制總線,而三總線占用了P0、P2、P3口,可以單獨使用的只有P1口。2.舉例說明MCS-51單片機(jī)P1口的輸入操作與輸出操作。輸入操作:MOVP1,#0FFHMOVA,P1輸出操作:MOVP1,A3.簡述MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)。MCS-51單片機(jī)的有5個中斷源,它們均有兩級優(yōu)先級,通過4個專用中斷控制寄存器(IE、IP、TCON、SCON)進(jìn)行中斷管理,其結(jié)構(gòu)原理如圖所示。4.MCS-51單片機(jī)有幾個中斷源?各中斷標(biāo)志是如何產(chǎn)生的?如何清除?MCS51單片機(jī)的5個中斷源分為兩種類型:一類是外部中斷源,包括和;另一類是內(nèi)部中斷源,包括兩個定時器/計數(shù)器(T0和T1)的溢出中斷和串行口的發(fā)送/接收中斷。(1)外部中斷MCS51單片機(jī)提供了兩個外部中斷請求和,它們的中斷請求信號有效方式分為電平觸發(fā)和脈沖觸發(fā)兩種。電平方式是低電平有效,脈沖方式為負(fù)跳變觸發(fā)有效。CPU在每個機(jī)器周期的S5P2檢測和上的信號。對于電平方式,只要檢測到低電平信號即為有效申請;對于脈沖方式,則需要比較兩次檢測到的信號,才能確定中斷請求信號是否有效。中斷請求信號高低電平的狀態(tài)都應(yīng)至少維持一個機(jī)器周期,以確保電平變化能被單片機(jī)檢測到。(2)內(nèi)部中斷MCS51單片機(jī)內(nèi)部有TF0、TF1、TI、RI,分別為定時器/計數(shù)器溢出中斷和串行口的發(fā)送/接收中斷的中斷源。在中斷請求被響應(yīng)前,中斷源發(fā)出的中斷請求是由CPU鎖存在特殊功能寄存器TCON和SCON的相應(yīng)中斷標(biāo)志位中的。一旦某個中斷請求得到響應(yīng),CPU必須把它的相應(yīng)標(biāo)志位復(fù)位成0狀態(tài),否則MCS51單片機(jī)就會因中斷未能得到及時撤除而重復(fù)響應(yīng)同一中斷請求,這是絕對不允許的。MCS51單片機(jī)的55個中斷源,實際上只分屬于三種中斷類型。這三種類型是:外部中斷、定時器/計數(shù)器溢出中斷和串行口中斷。對于這三種中斷類型的中斷請求,其撤除方法是不同的。(1)定時器/計數(shù)器溢出中斷請求的撤除TF0和TF1是定時器/計數(shù)器溢出中斷標(biāo)志位,它們因定時器/計數(shù)器溢出中斷請求的輸入而置位,因定時器/計數(shù)器溢出中斷得到響應(yīng)而自動復(fù)位成0狀態(tài)。因此定時器/計數(shù)器溢出中斷源的中斷請求是自動撤除的,用戶根本不必專門為它們撤除。(2)串行口中斷請求的撤除TI和RI是串行口中斷的標(biāo)志位,中斷系統(tǒng)不能自動將它們撤除,這是因為MCS51進(jìn)入串行口中斷服務(wù)程序后常需要對它們進(jìn)行檢測,以測定串行口發(fā)生了接收中斷還是發(fā)送中斷。為了防止CPU再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當(dāng)位置處通過指令將它們撤除:CLR TI ;撤除發(fā)送中斷CLR RI ;撤除接收中斷(3)外部中斷的撤除外部中斷請求有兩種觸發(fā)方式:電平觸發(fā)和脈沖觸發(fā)。對于這兩種不同的中斷觸發(fā)方式,MCS51單片機(jī)撤除它們的中斷請求的方法是不相同的。在脈沖觸發(fā)方式下,外部中斷標(biāo)志IE0和IE1是依靠CPU兩次檢測和上的觸發(fā)電平狀態(tài)而設(shè)置的。因此

溫馨提示

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

評論

0/150

提交評論