單片機(jī)原理及應(yīng)用(第3版)參考答案_第1頁(yè)
單片機(jī)原理及應(yīng)用(第3版)參考答案_第2頁(yè)
單片機(jī)原理及應(yīng)用(第3版)參考答案_第3頁(yè)
單片機(jī)原理及應(yīng)用(第3版)參考答案_第4頁(yè)
單片機(jī)原理及應(yīng)用(第3版)參考答案_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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)介

單片機(jī)原理及應(yīng)用(第3版)參考答案《單片機(jī)原理及應(yīng)用(第3版)》習(xí)題參考答案姜志海黃玉清劉連鑫編著電子工業(yè)出版社第1章概述.............................................................2第2章MCS,51系列單片機(jī)硬件結(jié)構(gòu)........................................5第3章MCS,51系列單片機(jī)指令系統(tǒng).......................................10第4章MCS,51系列單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)...............................13第5章MCS,51系列單片機(jī)硬件資源的應(yīng)用.................................18第6章MCS,51系列單片機(jī)并行擴(kuò)展接口技術(shù)...............................23第7章MCS,51系列單片機(jī)串行總線擴(kuò)展技術(shù)...............................28第8章單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)..............................................30第1章概述1(簡(jiǎn)述微型計(jì)算機(jī)的結(jié)構(gòu)及各部分的作用微型計(jì)算機(jī)在硬件上由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備及輸出設(shè)備五大部分組成。運(yùn)算器是計(jì)算機(jī)處理信息的主要部分;控制器控制計(jì)算機(jī)各部件自動(dòng)地、協(xié)調(diào)一致地工作;存儲(chǔ)器是存放數(shù)據(jù)與程序的部件;輸入設(shè)備用來(lái)輸入數(shù)據(jù)與程序;輸出設(shè)備將計(jì)算機(jī)的處理結(jié)果用數(shù)字、圖形等形式表示出來(lái)。通常把運(yùn)算器、控制器、存儲(chǔ)器這三部分稱為計(jì)算機(jī)的主機(jī),而輸入、輸出設(shè)備則稱為計(jì)算機(jī)的外部設(shè)備(簡(jiǎn)稱外設(shè))。由于運(yùn)算器、控制器是計(jì)算機(jī)處理信息的關(guān)鍵部件,所以常將它們合稱為中央處理單元CPU(CentralProcessUnit)。2(微處理器、微型計(jì)算機(jī)、微型計(jì)算機(jī)系統(tǒng)有什么聯(lián)系與區(qū)別,微處理器是利用微電子技術(shù)將計(jì)算機(jī)的核心部件(運(yùn)算器和控制器)集中做在一塊集成電路上的一個(gè)獨(dú)立芯片。它具有解釋指令、執(zhí)行指令和與外界交換數(shù)據(jù)的能力。其內(nèi)部包括三部分:運(yùn)算器、控制器、內(nèi)部寄存器陣列(工作寄存器組)。微型計(jì)算機(jī)由CPU、存儲(chǔ)器、輸入/輸出(I/O)接口電路構(gòu)成,各部分芯片之間通過(guò)總線(Bus)連接。以微型計(jì)算機(jī)為主體,配上外部輸入/輸出設(shè)備、電源、系統(tǒng)軟件一起構(gòu)成應(yīng)用系統(tǒng),稱為微型計(jì)算機(jī)系統(tǒng)。3(簡(jiǎn)述在微型計(jì)算機(jī)中的地址總線、數(shù)據(jù)總線和控制總線的作用。所謂總線,就是在微型計(jì)算機(jī)各芯片之間或芯片內(nèi)部各部件之間傳輸信息的一組公共通信線。計(jì)算機(jī)元件級(jí)總線包括地址總線AB(AddressBus)、數(shù)據(jù)總線DB(DataBus)、控制總線CB(ControlBus)三種。(1)地址總線:地址總線是CPU用來(lái)向存儲(chǔ)器或I/O接口傳送地址信息的,是三態(tài)單向總線。地址總線的寬度決定了CPU可直接尋址的內(nèi)存容量。通過(guò)地址總線確定要操作的存儲(chǔ)單元或I/O接口的地址。(2)數(shù)據(jù)總線:數(shù)據(jù)總線是CPU與存儲(chǔ)器及外設(shè)交換數(shù)據(jù)的通路,是三態(tài)雙向總線。(3)控制總線:控制總線是用來(lái)傳輸控制信號(hào)的,傳送方向依據(jù)具體控制信號(hào)而定,如CPU向存儲(chǔ)器或I/O接口電路輸出讀信號(hào)、寫信號(hào)、地址有效信號(hào),而I/O接口部件向CPU輸入復(fù)位信號(hào)、中斷請(qǐng)求信號(hào)等。4(微型計(jì)算機(jī)是以CPU為核心,配上(存儲(chǔ)器)、(輸入/輸出接口)和系統(tǒng)總線組成的計(jì)算機(jī)。5(在計(jì)算機(jī)內(nèi)部,一切信息的存取、處理和傳遞的形式是(C)。A(ASCII碼B(BCD碼C(二進(jìn)制D(十六進(jìn)制6(0,9的ASCII碼是(C)。A(0,9B(30,39C(30H,39HD(40H,49H7(假設(shè)某CPU含有16根地址線,8根數(shù)據(jù)線,則該CPU的最大尋址能力是多少KB,64KB8(簡(jiǎn)述單片機(jī)的定義、特點(diǎn)、應(yīng)用領(lǐng)域和發(fā)展方向。定義:它采用一定的工藝手段將CPU、存儲(chǔ)器和I/O口集成在一個(gè)芯片上。特點(diǎn):?單片機(jī)CPU的抗干擾性強(qiáng),工作溫度范圍寬,而通用微機(jī)CPU一般要求在室溫下工作,抗干擾能力較弱。?單片機(jī)CPU可靠性強(qiáng),在工業(yè)控制中,任何差錯(cuò)都有可能造成極其嚴(yán)重的后果。?單片機(jī)CPU控制功能往往很強(qiáng),數(shù)值計(jì)算能力較差,而通用微機(jī)CPU具有很強(qiáng)的數(shù)值運(yùn)算能力,但控制能力相對(duì)較弱,將通用微機(jī)用于工業(yè)控制時(shí),一般需要增加一些專用的接口電路。?單片機(jī)CPU指令系統(tǒng)比通用微機(jī)系統(tǒng)簡(jiǎn)單。?單片機(jī)CPU更新?lián)Q代速度比通用微機(jī)處理器慢得多。應(yīng)用領(lǐng)域:?單片機(jī)在智能儀表中的應(yīng)用?單片機(jī)在機(jī)電一體化中的應(yīng)用?單片機(jī)在實(shí)時(shí)控制中的應(yīng)用?在軍工領(lǐng)域的應(yīng)用?單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用?在民用電子產(chǎn)品中的應(yīng)用發(fā)展趨勢(shì):CPU的改進(jìn)??存儲(chǔ)器的發(fā)展?片內(nèi)I/O口的改進(jìn)一般單片機(jī)都有較多的并行口,以滿足外圍設(shè)備、芯片擴(kuò)展的需要,并配以串行口,以滿足對(duì)多機(jī)通信功能的要求。?提高并行口的驅(qū)動(dòng)能力。這樣可減少外圍驅(qū)動(dòng)芯片。有的單片機(jī)直接輸出大電流和高電壓,以便能直接驅(qū)動(dòng)LED和VFD(熒光顯示器)等。?增加I/O口的邏輯控制功能。中、高檔單片機(jī)的位處理系統(tǒng)能夠?qū)/O口線進(jìn)行位尋址及位操作,這加強(qiáng)了I/O口線控制的靈活性。?特殊的串行接口功能。為單片機(jī)構(gòu)成網(wǎng)絡(luò)系統(tǒng)提供更便利的條件。?外圍電路內(nèi)裝化?低功耗與工作電壓范圍加寬?低噪聲與高可靠性技術(shù)?ISP及IAP第2章MCS,51系列單片機(jī)硬件結(jié)構(gòu)1(MCS,51系列單片機(jī)內(nèi)部有哪些主要的邏輯部件,MCS,51單片機(jī)是在一塊芯片上集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多種I/O功能部件,具有了一臺(tái)微型計(jì)算機(jī)的基本結(jié)構(gòu),主要包括下列部件:一個(gè)8位的CPU、一個(gè)布爾處理機(jī)、一個(gè)片內(nèi)振蕩器、128B的片內(nèi)數(shù)據(jù)存儲(chǔ)器、4KB的片內(nèi)程序存儲(chǔ)器(8031無(wú))、外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的尋址范圍為64KB、21個(gè)字節(jié)的專用寄存器、4個(gè)8位并行I/O接口、一個(gè)全雙工的串行口、2個(gè)16位的定時(shí)器/計(jì)數(shù)器、5個(gè)中斷源、2個(gè)中斷優(yōu)先級(jí)、111?條指令、片內(nèi)采用單總線結(jié)構(gòu)。2(MCS,51單片機(jī)設(shè)有4個(gè)8位并行端口,實(shí)際應(yīng)用中8位數(shù)據(jù)信息由哪個(gè)端口傳送,16位地址線怎樣形成,P3口有何功能,8位數(shù)據(jù)信息由P0口傳送。P2口形成地址大高8位,P0口結(jié)果鎖存器形成地址的低8位。P3口除具有一般的輸入/輸出功能,還具有第2功能:P3.0RXD串行口輸入端P3.1TXD串行口輸出端INT0P3.2外部中斷0請(qǐng)求輸入端,低電平有效INT1P3.3外部中斷1請(qǐng)求輸入端,低電平有效P3.4T0定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖輸入端P3.5T1定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)脈沖輸入端WRP3.6外部數(shù)據(jù)存儲(chǔ)器及I/O接口寫選通信號(hào)輸出端,低電平有效P3.7RD外部數(shù)據(jù)存儲(chǔ)器及I/O接口讀選通信號(hào)輸出端,低電平有效3(MCS,51單片機(jī)內(nèi)部RAM區(qū)的功能結(jié)構(gòu)如何分配,4組工作寄存器使用時(shí)如何選擇,位尋址區(qū)域的字節(jié)范圍是多少,MCS,51單片機(jī)片內(nèi)RAM共有128B,字節(jié)范圍為00H,7FH,可分為工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)共3個(gè)區(qū)域。(1)工作寄存器區(qū)00H,1FH單元為工作寄存器區(qū)。工作寄存器也稱通用寄存器,用于臨時(shí)寄存8位信息。工作寄存器分成4組,每組都是8個(gè)寄存器,用R0,R7來(lái)表示。程序中每次只用一組,其余各組不工作。使用哪一組寄存器工作,由程序狀態(tài)字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來(lái)選擇,其對(duì)應(yīng)關(guān)系如表所示。工作寄存器組的選擇表當(dāng)前使用的工作寄存器組PSW.4(RS1)PSW.3(RS0)R0,R7000組(00H,07H)011組(08H,0FH)102組(10H,17H)113組(18H,1FH)該區(qū)域當(dāng)不被用做工作寄存器時(shí),可以作為一般的RAM區(qū)使用。(2)位尋址區(qū)20H,2FH單元是位尋址區(qū)。這16個(gè)單元(共計(jì)16×8=128位)的每一位都賦予了一個(gè)位地址,位地址范圍為00H,7FH。位地址區(qū)的每一位都可當(dāng)做軟件觸發(fā)器,由程序直接進(jìn)行位處理。通??梢园迅鞣N程序狀態(tài)標(biāo)志、位控制變量存入位尋址區(qū)內(nèi)。0組00H…07H1組工作寄08H…0FH2組存器區(qū)10H…17H3組18H…1FH070605040302010020H0F0E0D0C0B0A090821H位171615141312111022H1F1E1D1C1B1A191823H272625242322212024H2F2E2D2C2B2A292825H尋373635343332313026H3F3E3D3C3B3A393827H28H474645444342414029H4F4E4D4C4B4A4948址2AH57565554535251502BH5F5E5D5C5B5A59582CH67666564636261602DH6F6E6D6C6B6A6968區(qū)2EH77767574737271702FH7F7E7D7C7B7A7978數(shù)據(jù)緩30H…7FH沖區(qū)該區(qū)域當(dāng)不被用做位尋址區(qū)時(shí),可以作為一般的RAM區(qū)使用。(3)數(shù)據(jù)緩沖區(qū)30H,7FH是數(shù)據(jù)緩沖區(qū),即用戶RAM,共80個(gè)單元。由于工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)統(tǒng)一編址,使用同樣的指令訪問,這三個(gè)區(qū)的單元既有自己獨(dú)特的功能,又可統(tǒng)一調(diào)度使用。因此,前兩個(gè)區(qū)未使用的單元也可作為用戶RAM單元使用,使容量較小的片內(nèi)RAM得以充分利用。4(簡(jiǎn)述程序狀態(tài)字PSW中各位的含義。程序狀態(tài)字PSW是一個(gè)8位寄存器,它保存指令執(zhí)行結(jié)果的特征信息,為下一條指令或以后的指令的執(zhí)行提供狀態(tài)條件。PSW中的各位一般是在指令執(zhí)行過(guò)程中形成的,但也可以根據(jù)需要采用傳送指令加以改變。其各位定義如圖所示。PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7OVPCACF0RS1RS0——?進(jìn)位標(biāo)志C(PSW.7)在執(zhí)行某些算術(shù)運(yùn)算類、邏輯運(yùn)算類指令時(shí),可被硬件或軟件置位或清零。它表示運(yùn)算結(jié)果是否有進(jìn)位或借位。如果在最高位有進(jìn)位(加法時(shí))或借位(減法時(shí)),則C=1,否則C=0。?輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志位AC(PSW.6)它表示兩個(gè)8位數(shù)運(yùn)算,低4位有無(wú)進(jìn)(借)位的狀況。當(dāng)?shù)?位相加(或相減)時(shí),若D3位向D4位有進(jìn)位(或借位),則AC=1,否則AC=0。在BCD碼運(yùn)算的十進(jìn)制調(diào)整中要用到該標(biāo)志。?用戶自定義標(biāo)志位F0(PSW.5)用戶可根據(jù)自己的需要為F0賦予一定的含義,通過(guò)軟件置位或清零,并根據(jù)F0=1或0來(lái)決定程序的執(zhí)行方式,或系統(tǒng)某一種工作狀態(tài)。?工作寄存器組選擇位RS1、RS0(PSW.4、PSW.3)可用軟件置位或清零,用于選定當(dāng)前使用的4個(gè)工作寄存器組中的某一組。?溢出標(biāo)志位OV(PSW.2)做加法或減法時(shí)由硬件置位或清零,以指示運(yùn)算結(jié)果是否溢出。在帶符號(hào)數(shù)加減運(yùn)算中,OV=1表示加減運(yùn)算超出了累加器所能表示的數(shù)值范圍(–128,+127),即產(chǎn)生了溢出,因此運(yùn)算結(jié)果是錯(cuò)誤的。OV=0表示運(yùn)算正確,即無(wú)溢出產(chǎn)生。執(zhí)行乘法指令MULAB也會(huì)影響OV標(biāo)志,當(dāng)積大于255時(shí),OV=1,否則OV=0;執(zhí)行除法指令DIVAB也會(huì)影響OV標(biāo)志,如B中所存放的除數(shù)為0,則OV=1,否則0V=0。?奇偶標(biāo)志位P(PSW.0)在執(zhí)行指令后,單片機(jī)根據(jù)累加器A中1的個(gè)數(shù)的奇偶自動(dòng)將該標(biāo)志置位或清零。若A中1的個(gè)數(shù)為奇數(shù),則P=1,否則P=0。該標(biāo)志對(duì)串行通信的數(shù)據(jù)傳輸非常有用,通過(guò)奇偶校驗(yàn)可檢驗(yàn)傳輸?shù)目煽啃浴?(簡(jiǎn)述MCS,51單片機(jī)程序存儲(chǔ)器的幾個(gè)特殊入口地址的含義。0000H:程序入口地址0003H:外部中斷0中斷服務(wù)程序入口地址000BH:定時(shí)器/計(jì)數(shù)器0溢出中斷服務(wù)程序入口地址0013H:外部中斷1中斷服務(wù)程序入口地址001BH:定時(shí)器/計(jì)數(shù)器1溢出中斷服務(wù)程序入口地址0023H:串行口發(fā)送/接收中斷服務(wù)程序入口地址6(位地址7FH與字節(jié)地址7FH有何區(qū)別,位地址7FH具體在內(nèi)存中的什么位置,二者存儲(chǔ)的數(shù)據(jù)位數(shù)不一樣。位地址7FH存放一位二進(jìn)制數(shù),字節(jié)地址7FH存放8為二進(jìn)制數(shù)。位地址7FH具體在內(nèi)存中字節(jié)地址為20H的最高位上。7(試分別說(shuō)明程序計(jì)數(shù)器PC和堆棧指針SP的作用。復(fù)位后PC和SP各為何值,程序計(jì)數(shù)器PC是一個(gè)16位專用寄存器,其內(nèi)容表示下一條要執(zhí)行的指令的地址。復(fù)位后為0000H。MCS,51單片機(jī)的堆棧是在片內(nèi)RAM中開辟的一個(gè)專用區(qū)。堆棧指針SP是一個(gè)8位專用寄存器,用來(lái)存放棧頂?shù)牡刂贰_M(jìn)棧時(shí),SP自動(dòng)加1,將數(shù)據(jù)壓入SP所指定的地址單元;出棧時(shí),將SP所指示的地址單元中的數(shù)據(jù)彈出,然后SP自動(dòng)減1。因此SP總是指向棧頂。復(fù)位后為07H。8(MCS,51單片機(jī)設(shè)置4組工作寄存器,開機(jī)復(fù)位后,CPU使用的是哪組寄存器,它們的地址如何,CPU如何改變當(dāng)前工作寄存器組,第0組。字節(jié)地址為00H,07H。通過(guò)PSW的RS1、RS0來(lái)改變。工作寄存器組的選擇表當(dāng)前使用的工作寄存器組PSW.4(RS1)PSW.3(RS0)R0,R7000組(00H,07H)011組(08H,0FH)102組(10H,17H)113組(18H,1FH)9(什么是時(shí)鐘周期、機(jī)器周期和指令周期,當(dāng)外部的振蕩頻率是8MHz時(shí),8051單片機(jī)的機(jī)器周期為多少,MCS,51單片機(jī)的時(shí)序由下面4種周期構(gòu)成。(1)振蕩周期振蕩周期是指為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期。(2)狀態(tài)周期(時(shí)鐘周期)兩個(gè)振蕩周期為一個(gè)狀態(tài)周期,用S表示。兩個(gè)振蕩周期作為兩個(gè)節(jié)拍分別稱為節(jié)拍P1和節(jié)拍P2。在狀態(tài)周期的前半周期P1有效時(shí),通常完成算術(shù)邏輯運(yùn)算;在后半周期P2有效時(shí),一般進(jìn)行內(nèi)部寄存器之間的傳輸。(3)機(jī)器周期CPU執(zhí)行一條指令的過(guò)程可以劃分為若干階段,每一階段完成某一項(xiàng)基本操作,如取指令、存儲(chǔ)器讀/寫等。通常把完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。(4)指令周期指令周期是指執(zhí)行一條指令所占用的全部時(shí)間,它以機(jī)器周期為單位。MCS,51系列單片機(jī)除乘法、除法指令是4機(jī)器周期指令外,其余都是單周期指令和雙周期指令。若用12MHz晶體振蕩器(晶振),則單周期指令和雙周期指令的指令周期時(shí)間分別是1μs和2μs,乘法和除法指令為4μs。通過(guò)上面的分析,我們可以看出,外部晶振的二分頻是MCS,51單片機(jī)的內(nèi)部時(shí)鐘周期,6個(gè)時(shí)鐘周期構(gòu)成了單片機(jī)的機(jī)器周期。如果單片機(jī)的外部晶振是8MHz,則其內(nèi)部的機(jī)器周期是1.5μs。12(已知PSW=10H,則工作寄存器R0的地址是10H,R4的地址是14H。第3章MCS,51系列單片機(jī)指令系統(tǒng)1(訪問外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器可以用哪些指令來(lái)實(shí)現(xiàn),舉例說(shuō)明。訪問外部數(shù)據(jù)存儲(chǔ)器:MOVXA,@DPTRMOVX@DPTR,AMOVXA,@RiMOVX@Ri,A訪問程序存儲(chǔ)器:MOVCA,@A+DPTRMOVCA,@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)容將有何變化,PUSH30HPUSH31HPOPDPLPOPDPHMOV30H,#00HMOV31H,#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)容各為何值,XCHA,R1XCHDA,@R1(A)=25H(R1)=40H(40H)=03H4(設(shè)(A)=01010101B,(R5)=10101010B,分別寫出執(zhí)行ANLA,R5;ORLA,R5;XRLA,R5指令后的結(jié)果。00000000B11111111B11111111B5(簡(jiǎn)述轉(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)移;64K范圍內(nèi)的轉(zhuǎn)移;JMP@A+DPTR:在某一地址開始的256字節(jié)LJMPaddr16:范圍內(nèi)的轉(zhuǎn)移。6(試用三種方法實(shí)現(xiàn)累加器A和寄存器B的內(nèi)容交換。(1)MOVR0,AMOVA,BMOVB,R0(2)PUSHAPUSHBPOPAPOPB(3)MOVR0,BXCHA,R0MOVB,R07(寫出實(shí)現(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)ADDA,20HMOV20H,A(2)MOVA,30HADDA,31HMOV31H,A(3)MOVA,20HMOVDPTR,#2000HMOVX@DPTR,A(4)CLR03HCLR07H或:ANL20H,#01110111B(5)SETB03HSETB07HCLR05H或:ORL20H,#10001000BANL20H,#11011111B(6)SETB03HSETB07HCPL05H或:ORL20H,#10001000BXRL20H,#00100000B8(試分析下列程序段執(zhí)行后,(A)=,,(30H)=,MOV30H,#0A4HMOVA,#0D6HMOVR0,#30HMOVR2,#5EHANLA,R2ORLA,@R0SWAPACPLAXRLA,#0FEHORL30H,A(A)=6EH(30H)=0EFH9(設(shè)片內(nèi)RAM(30H)=0EH,執(zhí)行下面的程序后,(A)=,,指出該程序完成的功能。MOVR0,#30HMOVA,@R0RLAMOVB,ARLARLAADDA,B=8CH功能:將30H中的內(nèi)容*10操作,結(jié)果在累加器A中。第4章MCS,51系列單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)1(編程將片內(nèi)RAM30H,39H單元中的內(nèi)容送到以3000H為首的存儲(chǔ)區(qū)中。MOVR0,#30HMOVDPTR,#3000HMOVR7,#10L1:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,L1RET2(片內(nèi)RAM60H開始存放20個(gè)數(shù)據(jù),試統(tǒng)計(jì)正數(shù)、負(fù)數(shù)及為零的數(shù)據(jù)個(gè)數(shù),并將結(jié)果分別存在50H、51H、52H單元中。MOV50H,#0MOV51H,#0MOV52H,#0MOVR7,#20MOVR0,#60HL3:MOVA,@R0JZL1JBACC.7,L2INC50HSJMPLENDL2:INC51HSJMPLENDL1:INC52HLEND:INCR0DJNZR7,L3RET3(設(shè)10次采樣值依次放在片內(nèi)RAM50H,59H的連續(xù)單元中,試編程去掉一個(gè)最大值、去掉一個(gè)最小值,求其余8個(gè)數(shù)的平均值,結(jié)果存放在60H中。MOVR0,#50H;最大值MOVA,@R0MOVR7,#9INCR0L1:CLRCMOVB,ASUBBA,@R0MOVA,BJNCL2XCHA,@R0L2:INCR0DJNZR7,L1MOVR0,#51H;最小值MOVA,@R0MOVR7,#8INCR0L1:CLRCMOVB,ASUBBA,@R0MOVA,BJNL4XCHA,@R0L4:INCR0DJNZR7,L3MOVR3,#0;求和MOVR4,#0MOVR7,#8MOVR0,#52HL5:MOVA,R4ADDA,@R0MOVR4,AMOVA,R3ADDCA,#0MOVR3,AINCR0DJNZR7,L5MOVA,R4;平均值SWAPARLAMOVB,AMOVA,R3RRARRARRAANLA,#00011111BORLA,BMOV60H,ARET4(編寫程序?qū)4、R5、R6中的3個(gè)字節(jié)數(shù)據(jù)對(duì)半分解成6個(gè)字節(jié),存入顯示緩沖區(qū)(DISMEM0,DISMEM5)。MOVA,R6LCALLCLMOVDISMEM0,R0MOVDISMEM1,R1MOVA,R5LCALLCLMOVDISMEM2,R0MOVDISMEM3,R1MOVA,R4LCALLCLMOVDISMEM4,R0MOVDISMEM5,R1RETCL:MOVB,AANLA,#0FHMOVR0,AMOVA,BANLA,#0F0HSWAPAMOVR1,ARET5(試編程把以2000H為首地址的連續(xù)10個(gè)單元的內(nèi)容按升序排列,存放到以3000H為首地址的存儲(chǔ)區(qū)中。MOVDPTR,#2000H;讀到片內(nèi)30H開始的單元MOVR0,#30HMOVR7,#10L1:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR7,L1START:CLR00H;排序CLRCMOVR7,#9MOVR0,#30HMOVA,@R0L3:INCR0MOVR2,ASUBBA,@R0MOVA,R2JCNEXTSETB00HXCHA,@R0DECR0MOV@R0,AINCR0NEXT:MOVA,@R0DJNZR7,L3JB00H,STARTMOVDPTR,#3000H;送到片外3000H開始的單元MOVR0,#20HMOVR7,#10L2:MOVA,@R0MOVX@DPTR,AINCDPTRINCR0DJNZR7,L2RET6(設(shè)片內(nèi)30H單元開始,連續(xù)存放2個(gè)字節(jié)二進(jìn)制數(shù),試分別將其轉(zhuǎn)換為BCD碼,并以壓縮BCD碼格式連續(xù)存放在以60H為首地址的存儲(chǔ)區(qū)中,低位字節(jié)存放在低地址單元中。DBCD:MOVR0,30HMOVA,R0MOVR6,AMOVR1,60HMOVA,R1MOVR7,AMOVR2,#2INCR2CLRABB0:MOV@R1,AINCR1DJNZR2,BB0MOVR3,#16BB3:MOVA,R6MOVR0,AMOVR2,#2CLRCBB1:MOVA,@R0RLCAMOV@R0,AINCR0DJNZR2,BB1MOVR2,#2INCR2MOVA,R7MOVR1,ABB2:MOVA,@R1ADDCA,@R1DAAMOV@R1,AINCR1DJNZR2,BB2DJNZR3,BB3RET7(設(shè)片內(nèi)RAM中從20H開始的單元,連續(xù)存放10個(gè)非壓縮BCD碼,試將其轉(zhuǎn)換為ASCII碼,存放到片內(nèi)50H開始的單元中。MOVR0,#20HMOVR1,#50HMOVR7,#10L1:MOVA,@R0ADDA,#30HMOV@R1,AINCR0INCR1DJNZR7,L1RET8(從20H單元開始有一無(wú)符號(hào)數(shù)據(jù)塊,其長(zhǎng)度在20H單元。求出數(shù)據(jù)塊中的最小值,并存入21H單元。參看第3題。9(片外RAM從2000H單元開始存有10個(gè)單字節(jié)無(wú)符號(hào)數(shù),找出最大值存入片外RAM3000H單元,試編寫程序。參看第3題。10(從片外RAM2000H單元開始存有20個(gè)有符號(hào)數(shù),要求把它們傳送到片外RAM3000H開始的單元,但負(fù)數(shù)不傳送,試編寫程序。MOVDPTR,#2000HMOVR0,#20HMOVR7,#20L1:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR7,L1MOVDPTR,#3000HMOVR0,#20HMOVR7,#20L2:MOVA,@R0JBACC.7,L3MOVX@DPTR,AL3:INCDPTRINCR0DJNZR7,L2RET第5章MCS,51系列單片機(jī)硬件資源的應(yīng)用1(MCS,51單片機(jī)的4個(gè)I/O接口的作用是什么,三總線是如何分配的,為什么說(shuō)能作為I/O使用的一般只有P1口,P0口形成數(shù)據(jù)總線;P2口形成地址的高8位,P0口經(jīng)過(guò)鎖存器形成地址的低8位;P3口形成控制總線。在具有外部擴(kuò)展的時(shí)間,需要用到數(shù)據(jù)總線、地址總線和控制總線,而三總線占用了P0、P2、P3口,可以單獨(dú)使用的只有P1口。2(舉例說(shuō)明MCS-51單片機(jī)P1口的輸入操作與輸出操作。輸入操作:MOVP1,#0FFHMOVA,P1輸出操作:MOVP1,A3(簡(jiǎn)述MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)。MCS-51單片機(jī)的有5個(gè)中斷源,它們均有兩級(jí)優(yōu)先級(jí),通過(guò)4個(gè)專用中斷控制寄存器(IE、IP、TCON、SCON)進(jìn)行中斷管理,其結(jié)構(gòu)原理如圖所示。4(MCS-51單片機(jī)有幾個(gè)中斷源,各中斷標(biāo)志是如何產(chǎn)生的,如何清除,INT0INT1MCS,51單片機(jī)的5個(gè)中斷源分為兩種類型:一類是外部中斷源,包括和;另一類是內(nèi)部中斷源,包括兩個(gè)定時(shí)器/計(jì)數(shù)器(T0和T1)的溢出中斷和串行口的發(fā)送/接收中斷。(1)外部中斷INT0INT1MCS,51單片機(jī)提供了兩個(gè)外部中斷請(qǐng)求和,它們的中斷請(qǐng)求信號(hào)有效方式分為電平觸發(fā)和脈沖觸發(fā)兩種。電平方式是低電平有效,脈沖方式為負(fù)跳變觸發(fā)有效。INT0INT1CPU在每個(gè)機(jī)器周期的S5P2檢測(cè)和上的信號(hào)。對(duì)于電平方式,只要檢測(cè)到低電平信號(hào)即為有效申請(qǐng);對(duì)于脈沖方式,則需要比較兩次檢測(cè)到的信號(hào),才能確定中斷請(qǐng)求信號(hào)是否有效。中斷請(qǐng)求信號(hào)高低電平的狀態(tài)都應(yīng)至少維持一個(gè)機(jī)器周期,以確保電平變化能被單片機(jī)檢測(cè)到。(2)內(nèi)部中斷MCS,51單片機(jī)內(nèi)部有TF0、TF1、TI、RI,分別為定時(shí)器/計(jì)數(shù)器溢出中斷和串行口的發(fā)送/接收中斷的中斷源。在中斷請(qǐng)求被響應(yīng)前,中斷源發(fā)出的中斷請(qǐng)求是由CPU鎖存在特殊功能寄存器TCON和SCON的相應(yīng)中斷標(biāo)志位中的。一旦某個(gè)中斷請(qǐng)求得到響應(yīng),CPU必須把它的相應(yīng)標(biāo)志位復(fù)位成0狀態(tài),否則MCS,51單片機(jī)就會(huì)因中斷未能得到及時(shí)撤除而重復(fù)響應(yīng)同一中斷請(qǐng)求,這是絕對(duì)不允許的。MCS,51單片機(jī)的55個(gè)中斷源,實(shí)際上只分屬于三種中斷類型。這三種類型是:外部中斷、定時(shí)器/計(jì)數(shù)器溢出中斷和串行口中斷。對(duì)于這三種中斷類型的中斷請(qǐng)求,其撤除方法是不同的。(1)定時(shí)器/計(jì)數(shù)器溢出中斷請(qǐng)求的撤除TF0和TF1是定時(shí)器/計(jì)數(shù)器溢出中斷標(biāo)志位,它們因定時(shí)器/計(jì)數(shù)器溢出中斷請(qǐng)求的輸入而置位,因定時(shí)器/計(jì)數(shù)器溢出中斷得到響應(yīng)而自動(dòng)復(fù)位成0狀態(tài)。因此定時(shí)器/計(jì)數(shù)器溢出中斷源的中斷請(qǐng)求是自動(dòng)撤除的,用戶根本不必專門為它們撤除。(2)串行口中斷請(qǐng)求的撤除TI和RI是串行口中斷的標(biāo)志位,中斷系統(tǒng)不能自動(dòng)將它們撤除,這是因?yàn)镸CS,51進(jìn)入串行口中斷服務(wù)程序后常需要對(duì)它們進(jìn)行檢測(cè),以測(cè)定串行口發(fā)生了接收中斷還是發(fā)送中斷。為了防止CPU再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當(dāng)位置處通過(guò)指令將它們撤除:CLRTI;撤除發(fā)送中斷CLRRI;撤除接收中斷(3)外部中斷的撤除外部中斷請(qǐng)求有兩種觸發(fā)方式:電平觸發(fā)和脈沖觸發(fā)。對(duì)于這兩種不同的中斷觸發(fā)方式,MCS,51單片機(jī)撤除它們的中斷請(qǐng)求的方法是不相同的。INT0INT1在脈沖觸發(fā)方式下,外部中斷標(biāo)志IE0和IE1是依靠CPU兩次檢測(cè)和上的觸發(fā)電平狀態(tài)而設(shè)置的。因此,芯片設(shè)計(jì)者使CPU在響應(yīng)中斷時(shí)自動(dòng)復(fù)位IE0或IE1,就可撤INT0INT1INT0除或上的中斷請(qǐng)求,因?yàn)橥獠恐袛嘣丛谥袛喾?wù)程序時(shí)是不可能再在或INT1上產(chǎn)生負(fù)邊沿而使相應(yīng)的中斷標(biāo)志IE0或IE1置位的。INT0INT1在電平觸發(fā)方式下,外部中斷標(biāo)志IE0和IE1是依靠CPU檢測(cè)和上的低電平而置位的。盡管CPU響應(yīng)中斷時(shí)相應(yīng)中斷標(biāo)志IE0或IE1,能自動(dòng)復(fù)位成“0”狀態(tài),但若INT0INT1外部中斷源不能及時(shí)撤除它在或上的低電平,就會(huì)再次使已經(jīng)變“0”的中斷標(biāo)INT0志IE0或IE1置位,這是絕對(duì)不允許的。因此電平觸發(fā)型外部中斷請(qǐng)求的撤除必須使或INT1上的低電平隨著其中斷被CPU響應(yīng)而變?yōu)楦唠娖?。一種可供采用的電平型外部中斷的撤除電路如圖所示。由圖可見,當(dāng)外部中斷源產(chǎn)生中斷請(qǐng)求時(shí),D觸發(fā)器復(fù)位成“0”狀態(tài),Q端的低電平被INT0送到,該低電平被8051檢測(cè)后就使中斷標(biāo)志INT0INT0DQIE0置1。8051響應(yīng)上的中斷請(qǐng)求可轉(zhuǎn)入INT0CP8051外部中斷信號(hào)1中斷服務(wù)程序執(zhí)行,故可以在中斷服務(wù)程序開頭安SDP1.0INT0排如下程序來(lái)使上的電平變高:=INSVR:SETBP1.0CLRP1.0CLRIE0???END8051執(zhí)行上述程序就可在P1.0上產(chǎn)生一個(gè)寬度為兩個(gè)機(jī)器周期的負(fù)脈沖。在該負(fù)脈沖INT0作用下,D觸發(fā)器被置位成1狀態(tài),上的電平也因此而變高,從而撤除了其上的中斷請(qǐng)求。5(設(shè)MCS,51單片機(jī)時(shí)鐘為12MHz,利用定時(shí)器T0編程令P1.0引腳輸出2ms的矩形波程序,要求占空系數(shù)為1:2(高電平時(shí)間短)。ORG0000HLJMPMAINORG000BHLJMPT0INTORG0030HMAIN:MOVSP,#60HMOVR7,#0MOVTMOD,#01H;初始化MOVTH0,#0FDH;定時(shí)666微妙MOVTL0,#66HSETBEASETBET0SETBTR0L1:SJMPL1;中斷服務(wù)程序T0INT:MOVTH0,#0FDH;重載初始值MOVTL0,#66HINCR7CJNER7,#1,LL1CLRP1.0SJMPLLENDLL1:CJNER7,#3,LLENDSETBP1.0MOVR7,#00HLLEND:RETI6(MCS-51單片機(jī)內(nèi)設(shè)有幾個(gè)可編程的定時(shí)器/計(jì)數(shù)器,它們可以有4種工作方式,如何選擇和設(shè)定,作為定時(shí)器或計(jì)數(shù)器應(yīng)用時(shí),它們的速率分別為晶振頻率的多少倍,2個(gè)16位的定時(shí)器/計(jì)數(shù)器。通過(guò)TMOD的M1M0選擇。M1M0=00:方式0——13位定時(shí)器/計(jì)數(shù)器工作方式;M1M0=01:方式1——16位定時(shí)器/計(jì)數(shù)器工作方式;M1M0=10:方式2——常數(shù)自動(dòng)裝入的8位定時(shí)器/計(jì)數(shù)器工作方式;M1M0=11:方式3——僅適用于T0,為兩個(gè)8位定時(shí)器/計(jì)數(shù)器工作方式;在方式3時(shí)T1停止計(jì)數(shù)。是外部晶振頻率的12倍。7(如果MCS,51單片機(jī)系統(tǒng)的晶振頻率為12MHz,分別指出定時(shí)器/計(jì)數(shù)器方式1和方式2的最長(zhǎng)定時(shí)時(shí)間。方式1:65536微妙;方式2:256微妙8(若異步通信,每個(gè)字符由11位組成,串行口每秒傳送250個(gè)字符,問波特率是多少,2750位/秒=2750波特9(設(shè)串行異步通信的傳送速率為2400波特,傳送的是帶奇偶校驗(yàn)的ASCII碼字符,每個(gè)字符包含10位(1個(gè)起始位,7個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位,1個(gè)停止位),試編程初始化程序。設(shè)定串行口位方式1.MOVSCON,#40HMOVPCON,#80HMOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0F4HSETBTR110(MCS,51單片機(jī)P1端口上,經(jīng)驅(qū)動(dòng)接有8支發(fā)光二極管,若外部晶振頻率為6MHz,試編寫程序,使這8支發(fā)光管每隔2s循環(huán)發(fā)光(要求用T1定時(shí))。ORG0000HLJMPMAINORG001BHLJMPT1INTORG0030HMAIN:MOVSP,#70HMOVTMOD,#10H;T1方式1MOVTH1,#3CH;定時(shí)100msMOVTL1,#0B0HMOVA,#11111110BMOVR7,#20;100ms*20=2SSETBEASETBET1SETBTR1SJMP$T1INT:MOVTH1,#3CH#0B0HMOVTL1,DJNZR7,L1MOVR7,#20MOVP1,ARLAL1:RETI第6章MCS,51系列單片機(jī)并行擴(kuò)展接口技術(shù)1(試用Intel2864,SRAM6264為MCS,51單片機(jī)設(shè)計(jì)一個(gè)存儲(chǔ)器系統(tǒng),它具有8KBEEPROM(地址由0000H,1FFFH)和16KB的數(shù)據(jù)存儲(chǔ)器(地址為2000H,5FFFH)。要求繪出該存儲(chǔ)器系統(tǒng)的硬件連接圖,并指出每片芯片的地址空間。使用一片Intel2864,兩片RAM6264.參看圖6-14,采用譯碼器譯碼。2864可以不用譯碼,其片選信號(hào)直接接地,其地址為0000H,1FFFH,讀控制接/PSEN;RAM6264的片選分別接74LS138的/Y1、/Y2,其地址分別為:2000H,3FFFH、4000H,5FFFH,其讀。寫控制分別接/RD、/WR。2(試設(shè)計(jì)用兩片74LS377和兩片74LS244擴(kuò)展兩個(gè)并行輸出口和兩個(gè)并行輸入口的擴(kuò)展連接電路圖。參看圖6-20、6-21.3(簡(jiǎn)述單片機(jī)如何進(jìn)行鍵盤的鍵輸入以及怎樣實(shí)現(xiàn)鍵功能處理。當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時(shí),計(jì)算機(jī)應(yīng)用系統(tǒng)應(yīng)完成該按鍵所規(guī)定的功能。鍵信息輸入是與軟件編程密切相關(guān)的過(guò)程。對(duì)于一組鍵或一個(gè)鍵盤,需要通過(guò)接口電路與CPU相連。CPU可以采用查詢或中斷方式了解有無(wú)鍵輸入并檢查是哪個(gè)鍵被按下,將該鍵的信息送入CPU,然后通過(guò)散轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完畢又返回到原始狀態(tài)。鍵輸入接口與軟件應(yīng)可靠而快速地實(shí)現(xiàn)鍵信息輸入與執(zhí)行鍵功能任務(wù)。為此,應(yīng)解決下列問題。(1)鍵開關(guān)狀態(tài)的可靠輸入目前,無(wú)論是按鍵還是鍵盤,大部分利用的都是機(jī)械觸點(diǎn)的合、斷作用。機(jī)械觸點(diǎn)在閉合及斷開瞬間由于彈性作用的影響均有抖動(dòng)過(guò)程,從而使電壓信號(hào)也出現(xiàn)抖動(dòng),如圖9-20所示。抖動(dòng)時(shí)間長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為5,10ms。按鍵的穩(wěn)定閉合時(shí)間,由操作人員的按鍵動(dòng)作確定,一般為十分之幾秒至幾秒。為了保證CPU對(duì)鍵的一次閉合僅做一次鍵輸入處理,必須去抖動(dòng)影響。通常,去抖動(dòng)影響的方法有硬、軟兩種。在硬件上是采取在鍵輸出端加R,S觸發(fā)器或單穩(wěn)態(tài)電路構(gòu)成去抖動(dòng)電路。在軟件上采取的措施是,在檢測(cè)到有鍵按下時(shí),執(zhí)行一個(gè)10ms左右的延時(shí)程序后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài),從而去除了抖動(dòng)影響。(2)對(duì)按鍵進(jìn)行編碼以給出鍵值或直接給出鍵號(hào)任何一組按鍵或鍵盤都要通過(guò)I/O接口線查詢按鍵的狀態(tài)。根據(jù)不同的鍵盤結(jié)構(gòu)采用不同的編碼方法。但無(wú)論有無(wú)編碼及采用什么編碼,最后都要轉(zhuǎn)換成與累加器中數(shù)值相對(duì)應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的散轉(zhuǎn)轉(zhuǎn)移(相應(yīng)的散轉(zhuǎn)指令為JMP@A+DPTR),因此一個(gè)完善的鍵盤控制程序應(yīng)完成下述任務(wù):?檢測(cè)有無(wú)鍵按下。?有鍵按下后,在無(wú)硬件去抖動(dòng)電路時(shí),應(yīng)用軟件延時(shí)方法除去抖動(dòng)影響。?有可靠的邏輯處理方法,如n鍵按下,即只處理一個(gè)鍵,其間任何按下又松開的鍵不產(chǎn)生影響,不管一次按鍵持續(xù)有多長(zhǎng)時(shí)間,僅執(zhí)行一次按鍵功能程序。?輸出確定的鍵號(hào)以滿足散轉(zhuǎn)指令的要求。4(何謂鍵抖動(dòng),鍵抖動(dòng)對(duì)單片機(jī)系統(tǒng)有何影響,如何消除鍵抖動(dòng),目前,無(wú)論是按鍵還是鍵盤,大部分利用的都是機(jī)械觸點(diǎn)的合、斷作用。機(jī)械觸點(diǎn)在閉合及斷開瞬間由于彈性作用的影響均有抖動(dòng)過(guò)程,從而使電壓信號(hào)也出現(xiàn)抖動(dòng),如圖9-20所示。抖動(dòng)時(shí)間長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為5,10ms。按鍵的穩(wěn)定閉合時(shí)間,由操作人員的按鍵動(dòng)作確定,一般為十分之幾秒至幾秒。為了保證CPU對(duì)鍵的一次閉合僅做一次鍵輸入處理,必須去抖動(dòng)影響。通常,去抖動(dòng)影響的方法有硬、軟兩種。在硬件上是采取在鍵輸出端加R,S觸發(fā)器或單穩(wěn)態(tài)電路構(gòu)成去抖動(dòng)電路。在軟件上采取的措施是,在檢測(cè)到有鍵按下時(shí),執(zhí)行一個(gè)10ms左右的延時(shí)程序后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài),從而去除了抖動(dòng)影響。5(何謂靜態(tài)顯示,何謂動(dòng)態(tài)顯示,兩種顯示方式有何優(yōu)缺點(diǎn),所謂靜態(tài)顯示,是指當(dāng)顯示器顯示某一個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截止,公共端接固定的電平。LED動(dòng)態(tài)顯示是將所有位的段選線并接在一個(gè)I/O接口上,稱為段口,共陰極端或共陽(yáng)極端分別由相應(yīng)的I/O接口線控制,稱為位口。靜態(tài)顯示顯示穩(wěn)定,但軟件簡(jiǎn)單;動(dòng)態(tài)顯示硬件簡(jiǎn)單,但軟件需要不斷地刷新。6(如果一個(gè)8位D/A轉(zhuǎn)換器的滿量程(對(duì)應(yīng)于數(shù)字量255)為10V,試分別確定模擬量為2.0V和8.0V所對(duì)應(yīng)的數(shù)字量。512047(某12位D/A轉(zhuǎn)換器,輸出電壓為0,2.5V,當(dāng)輸入的數(shù)字量為400H時(shí),對(duì)應(yīng)的輸出電壓是多少,[2.5/212]*400H=0.625V8(使用DAC0832與MCS,51單片機(jī)連接時(shí)有哪些控制信號(hào),雙緩沖方式如何工作,在何種情況下要使用雙緩沖工作方式,ILE:輸入鎖存使能信號(hào)輸入端,高電平有效。CS:片選信號(hào)端。WR1WR2、:兩個(gè)寫信號(hào)端,均為低電平有效。XFER:傳輸控制信號(hào)輸入端,低電平有效。DAC0832可工作于雙緩沖器方式,輸入寄存器的鎖存信號(hào)和DAC寄存器的鎖存信號(hào)分開控制,這種方式適用于幾個(gè)模擬量需同時(shí)輸出的系統(tǒng),每一模擬量輸出需一個(gè)DAC0832,構(gòu)成多個(gè)DAC0832同時(shí)輸出的系統(tǒng)。9(試設(shè)計(jì)一個(gè)12位A/D轉(zhuǎn)換器與8031的接口電路,編寫連續(xù)轉(zhuǎn)換10次并將轉(zhuǎn)換結(jié)果存入片內(nèi)50H開始的單元中的程序。接口電路參看圖6-48。MOVR1,#50HMOVR7,#10LL:LCALLAD574AMOV@R1,31HINCR1MOV@R1,30HDJNZR7,LLSJMP$AD574A:MOVR0,#7CH;AD574A端口地址MOVX@R0,A;啟動(dòng)AD574A進(jìn)行12位轉(zhuǎn)換SETBP1.0;置P1.0為輸入方式LOOP:JBP1.0,LOOP;檢測(cè)STS的狀態(tài)CINCR0;使R/為1,按雙字節(jié)讀取轉(zhuǎn)換結(jié)果MOVXA,@R0;讀取高8位轉(zhuǎn)換結(jié)果MOV31H,A;存高8位結(jié)果INCR0CINCR0;使R/、A0均為1MOVXA,@R0;讀取低4位結(jié)果ANLA,#0FH;屏蔽高4位MOV30H,A;存低4位結(jié)果RET10(設(shè)MCS,51單片機(jī)系統(tǒng)擴(kuò)展一個(gè)8255,其口地址分別為7CFFH,7FFFH,其中PC擴(kuò)展一個(gè)4×2的矩陣鍵盤,PC0,PC3為行,PC6,PC7為列,試畫出8255與單片機(jī)及鍵盤的連接簡(jiǎn)圖,并編寫鍵盤管理程序。連接簡(jiǎn)圖參看圖6-35的鍵盤部分,將8*2的矩陣鍵盤改為4*4的矩陣鍵盤,片8288A的片選改為接MCS-51單片機(jī)的P2.7。鍵盤管理程序:KEY:MOVA,#00H;所有行輸出0MOVDPTR,#7EFFHMOVX@DPTR,AMOVDPTR,#7EFFH;讀列值MOVXA,@DPTRANLA,#0FHCJNEA,#0FH,KEY1;不全1,說(shuō)明有鍵按下SJMPKEYEND;全1,說(shuō)明無(wú)鍵按下KEY1:MOVB,#11111110B;有鍵,逐行輸出0KEY4:MOVA,BMOVDPTR,#PORT1MOVX@DPTR,AMOVDPTR,#PORT2@DPTRMOVXA,ANLA,#0FHCJNEA,#0FH,KEY2MOVA,BRLAJNBACC.4,KEYENDMOVB,ASJMPKEY4KEY2:ANLB,#0FH;計(jì)算鍵值MOVR7,AMOVA,BSWAPAORLA,R7MOVB,A;鍵值在B中MOVR7,#00HMOVR6,#10HKEY6:MOVDPTR,#KEYTABMOVA,R7MOVCA,@A+DPTRCJNEA,B,KEY5MOVA,R7RLAADDA,R7MOVDPTR,#KEYTAB1JMP@A+DPTR;轉(zhuǎn)相應(yīng)的鍵處理KEYTAB1:LJMPK0LJMPK1LJMPK2???LJMPK15KEY5:INCR7DJNZR6,KEY6KEYEND:RETKEYTAB:DB0EEH,0EDH,0EBH,0E7H,0DEH,0DDH,0DBH,0D7HDB0BEH,0BDH,0BBH,0B7H,7EH,7DH,7BH,77H11(ADC0809與MCS,51單片機(jī)接口時(shí)有哪些控制信號(hào),作用分別是什么,使用ADC0809時(shí),轉(zhuǎn)換的主要步驟有哪些,START:啟動(dòng)A/D轉(zhuǎn)換。當(dāng)START為高電平時(shí),A/D開始轉(zhuǎn)換。EOC:轉(zhuǎn)換結(jié)束信號(hào)。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),由低電平轉(zhuǎn)為高電平。OE:輸出允許信號(hào)。CLK:工作時(shí)鐘,最高允許值為1.2MHz。當(dāng)CLK為640kHz時(shí),轉(zhuǎn)換時(shí)間為100μs。ALE:通道地址鎖存允許。A、B、C:通道地址輸入。地址鎖存信號(hào)ALE在上升沿將三位通道地址鎖存,相應(yīng)通道的模擬量經(jīng)多路模擬開關(guān)送到A/D轉(zhuǎn)換器。啟動(dòng)信號(hào)START上升沿復(fù)位內(nèi)部電路,START信號(hào)的下降沿啟動(dòng)A/D轉(zhuǎn)換。此時(shí)轉(zhuǎn)換結(jié)束信號(hào)EOC呈低電平狀態(tài),由于逐次逼近需要一定的過(guò)程,所以在此期間模擬信號(hào)應(yīng)維持不變,比較器一次次地進(jìn)行比較,直到轉(zhuǎn)換結(jié)束。此時(shí)轉(zhuǎn)換結(jié)束信號(hào)EOC變?yōu)楦唠娖?,若CPU發(fā)出輸出允許信號(hào)OE,則可讀出數(shù)據(jù),一次A/D轉(zhuǎn)換的過(guò)程就結(jié)束了。12(在一個(gè)由MCS,51單片機(jī)與一片ADC0809組成的數(shù)據(jù)采集系統(tǒng)中,ADC0809的地址為7FF8H,7FFFH。試畫出有關(guān)的邏輯框圖,并編寫出每隔一分鐘輪流采集一次8個(gè)通道數(shù)據(jù)的程序。共采樣100次,其采樣值存入片外RAM3000H開始的存儲(chǔ)單元中。原理框圖參看圖6-45。第7章MCS,51系列單片機(jī)串行總線擴(kuò)展技術(shù)1(SPI總線一般使用幾條線,分別是什么,SPI使用4條線:串行時(shí)鐘SCK,主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO(簡(jiǎn)稱SO),主機(jī)輸出CS/從機(jī)輸入數(shù)據(jù)線MOSI(簡(jiǎn)稱SI)和低電平有效的從機(jī)選擇線。2(I2C總線一般使用幾條線,分別是什么,I2C總線采用兩線制,由數(shù)據(jù)線SDA和時(shí)鐘線SCL構(gòu)成。2(說(shuō)明IC總線主機(jī)、從機(jī)數(shù)據(jù)傳輸過(guò)程。322IC總線采用兩線制,由數(shù)據(jù)線SDA和時(shí)鐘線SCL構(gòu)成。IC總線為同步傳輸總線,數(shù)據(jù)線上的信號(hào)完全與時(shí)鐘同步。數(shù)據(jù)傳送采用主從方式,即主器件(主控器)尋址從器件(被控器),啟動(dòng)總線產(chǎn)生時(shí)鐘,傳送數(shù)據(jù)及結(jié)束數(shù)據(jù)的傳送。SDA/SCL總線上掛接的單片2機(jī)(主器件)或外圍器件(從器件),其接口電路都應(yīng)具有IC總線接口,所有器件都通過(guò)總線尋址,而且所有SDA/SCL的同名端相連24(SPI總線與IC總線在擴(kuò)展多個(gè)外部器件時(shí)有什么不同,SPI總線有主機(jī)、從機(jī)的概念。圖7-1所示為SPI外圍擴(kuò)展結(jié)構(gòu)圖。該系統(tǒng)有一臺(tái)主機(jī),2從機(jī)通常是外圍接口器件,如EPROM、A/D、日歷時(shí)鐘及顯示驅(qū)動(dòng)等。SCKSISOSCKSISOSCKSISOSCKSISO單?外圍器件1#外圍器件1#外圍器件1#片CSCSCS機(jī)I/OI/OI/O圖7-1SPI外圍串行擴(kuò)展結(jié)構(gòu)圖單片機(jī)與外圍器件在SCK、SO和SI上都是同名端相連的。外圍擴(kuò)展多個(gè)器件時(shí),SPI無(wú)法通過(guò)數(shù)據(jù)線譯碼選擇,故SPI的外圍器件都有片選端口。在擴(kuò)展單個(gè)SPI器件時(shí),外CS設(shè)的端可以接地,或通過(guò)I/O接口控制;在擴(kuò)展多個(gè)SPI外圍器件時(shí),單片機(jī)應(yīng)分別通過(guò)I/O接口來(lái)分時(shí)選通外圍器件。2IC總線采用兩線制,由數(shù)據(jù)線SDA和時(shí)鐘線SCL存儲(chǔ)器鍵盤/顯示接口2SADSCLSADSCL構(gòu)成。IC總線為同步傳輸總線,數(shù)據(jù)線上的信號(hào)完SAD單全與時(shí)鐘同步。數(shù)據(jù)傳送采用主從方式,即主器件(主片機(jī)SCL控器)尋址從器件(被控器),啟動(dòng)總線產(chǎn)生時(shí)鐘,SADSCLSADSCL傳送數(shù)據(jù)及結(jié)束數(shù)據(jù)的傳送。SDA/SCL總線上掛接的鍵盤/顯示接口存儲(chǔ)器2圖7-2IC總線應(yīng)用系統(tǒng)的組成2單片機(jī)(主器件)或外圍器件(從器件),其接口電路都應(yīng)具有IC總線接口,所有器件都通過(guò)總線尋址,而且所有SDA/SCL的同名端相連,如圖7-2所示。5(單總線的操作原理是什么,單總線系統(tǒng)中配置的各種測(cè)控器件,是由Dallas公司提供的專用芯片實(shí)現(xiàn)的。每個(gè)芯片均有64位ROM,廠家對(duì)每一個(gè)芯片用激光燒寫編碼,其中存有16位十進(jìn)制編碼序列號(hào),是器件的地址編號(hào),確保掛在總線上后,可以唯一地確定。除了器件地址編碼外,芯片內(nèi)還幾含有收發(fā)控制和電源存儲(chǔ)電路。這些芯片的耗電量都很小,從總線上饋送電量(空閑時(shí)為微瓦,工作時(shí)為幾毫瓦)到大電容中就可以正常工作,故一般不另附加電源。6(具有SPI總線的器件,除具有SDO、SDI和SCK外,還有其他控制線嗎,還有/CS控制端。7(SPI總線上掛有多個(gè)SPI器件,如何選中某一個(gè)SPI從器件,SPI串行擴(kuò)展系統(tǒng)中作為主器件的單片機(jī)在啟動(dòng)一次傳送時(shí),便產(chǎn)生8個(gè)時(shí)鐘傳送給接)在前,低口芯片,作為同步時(shí)鐘,控制數(shù)據(jù)的輸入與輸出。數(shù)據(jù)的傳送格式是高位(MSB位(LSB)在后。數(shù)據(jù)線上輸出數(shù)據(jù)的變化以及輸入數(shù)據(jù)時(shí)的采樣,都取決于SCK。但對(duì)于不同的外圍芯片,有的可能是SCK上升沿起作用,有的可能是SCK的下降沿起作用。2228(IC總線上掛有多個(gè)IC器件,如何選中某一個(gè)IC器件,2在一般的并行接口擴(kuò)展系統(tǒng)中,器件地址都是由地址線的連接形式?jīng)Q定的,而在IC總線系統(tǒng)中,地址是由器件類型及其地址引腳電平?jīng)Q定的,對(duì)器件的尋址采用軟件的方法。2IC總線上所有外圍器件都有規(guī)范的器件地址。器件地址由7位組成,它與一個(gè)方向位2共同構(gòu)成IC總線器件的尋址字節(jié)第8章單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)1(單片機(jī)應(yīng)用系統(tǒng)一般由哪幾部分組成,從系統(tǒng)的角度來(lái)看,單片機(jī)應(yīng)用系統(tǒng)是由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成的。硬件系統(tǒng)是指單片機(jī)擴(kuò)展的存儲(chǔ)器、外設(shè)及其接口電路等,軟件系統(tǒng)包括監(jiān)控程序和各種應(yīng)用程序。2(單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)主要有哪些內(nèi)容,單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)包含硬件設(shè)計(jì)與軟件設(shè)計(jì)兩部分,具體涉及的內(nèi)容主要有單片機(jī)系統(tǒng)、通道與接口、系統(tǒng)的抗干擾、應(yīng)用軟件的設(shè)計(jì)等。3(單片機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法是什么,(1)確定系統(tǒng)的功能與性能。(2)確定系統(tǒng)基本結(jié)構(gòu)。(3)單片機(jī)應(yīng)用系統(tǒng)硬件與軟件設(shè)計(jì)。(4)資源分配4(在單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)中,軟、硬件分工的原則

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論