單片機(jī)原理及應(yīng)用課后習(xí)題答案張?zhí)m紅.doc
《單片機(jī)原理及應(yīng)用課后習(xí)題答案張?zhí)m紅.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)原理及應(yīng)用課后習(xí)題答案張?zhí)m紅.doc(103頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
單片機(jī)原理及應(yīng)用 張?zhí)m紅 9第 1 章 微型計(jì)算機(jī)的基本概念 11 微型計(jì)算機(jī)由哪幾部分組成每一部分各起何作用 解 微型計(jì)算機(jī)由微處理器芯片存儲(chǔ)器芯片輸入/輸出接口電路芯片與總線組成 微處理器是微型計(jì)算機(jī)的核心它通常包括 3 個(gè)基本部分① 算術(shù)邏輯部件 ALU Arithmetic Logic Unit 對(duì)傳送到微處理器的數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算或邏輯運(yùn)算的電路如執(zhí)行加法減法運(yùn)算 邏輯與邏輯或運(yùn)算等② 工作寄存器組用來存放操作數(shù)及運(yùn)算的中間結(jié)果等③ 控制部件 包括時(shí)鐘電路和控制電路時(shí)鐘電路產(chǎn)生時(shí)鐘脈沖用于計(jì)算機(jī)各部分電路的同步定時(shí)控制電路 產(chǎn)生完成各種操作所需的控制信號(hào) 存儲(chǔ)器是微型計(jì)算機(jī)的重要組成部分計(jì)算機(jī)有了存儲(chǔ)器才具備記憶功能 I/O 接口是溝通 CPU 與外部設(shè)備的不可缺少的重要部件外部設(shè)備種類繁多其運(yùn)行速度 數(shù)據(jù)形式電平等各不相同常常與 CPU 不一致所以要用 I/O 接口作橋梁起到信息轉(zhuǎn)換與協(xié) 調(diào)的作用 總線是在微型計(jì)算機(jī)各芯片之間或芯片內(nèi)部各部件之間傳輸信息的一組公共通信線 12 什么是 CPU什么是主機(jī) 解由于運(yùn)算器控制器是計(jì)算機(jī)處理信息的關(guān)鍵部件所以常將它們合稱為中央處理單元 CPU Central Processing Unit簡(jiǎn)稱 CPU 通常把運(yùn)算器控制器存儲(chǔ)器這三部分稱為計(jì)算機(jī)的主機(jī) 13 何謂計(jì)算機(jī)系統(tǒng)何謂單板機(jī)何謂單片機(jī) 解計(jì)算機(jī)與外圍設(shè)備電源系統(tǒng)軟件一起構(gòu)成應(yīng)用系統(tǒng)稱為計(jì)算機(jī)系統(tǒng) 在一塊印刷電路板上集成了中央處理單元 CPU只讀存儲(chǔ)器 ROM隨機(jī)存取存儲(chǔ)器 RAM IO 接口定時(shí)器計(jì)數(shù)器中斷系統(tǒng)等功能部件構(gòu)成一臺(tái)完整的微型計(jì)算機(jī)稱為單板機(jī) 在一塊半導(dǎo)體芯片上集成了中央處理單元 CPU只讀存儲(chǔ)器 ROM隨機(jī)存取存儲(chǔ)器 RAM IO 接口定時(shí)器計(jì)數(shù)器中斷系統(tǒng)等功能部件構(gòu)成一臺(tái)完整的微型計(jì)算機(jī)稱為單片機(jī) 14 為什么要采用總線結(jié)構(gòu)芯片為什么要通過緩沖器才能掛在總線上 解微型計(jì)算機(jī)采用總線結(jié)構(gòu)后芯片之間不需單獨(dú)走線大大減少了連接線的數(shù)量 掛在總線上的芯片不能同時(shí)發(fā)送信息否 則多個(gè)信息同時(shí)出現(xiàn)在總線上將發(fā)生沖突而造成出錯(cuò) 如果有幾塊芯片需要輸出信息就必須分時(shí)傳送為了實(shí)現(xiàn)這個(gè)要求掛在總線上的各芯片必須通 過緩沖器與總線相連 15 何謂程序計(jì)數(shù)器程序計(jì)數(shù)器中存放的是什么內(nèi)容它對(duì)計(jì)算機(jī)的工作起什么作用在什么情 況下程序的執(zhí)行順序發(fā)生轉(zhuǎn)移此時(shí)程序計(jì)數(shù)器的內(nèi)容是怎么樣的 解程序計(jì)數(shù)器 PC 是管理程序執(zhí)行次序的特殊功能寄存器 程序計(jì)數(shù)器 PC 中存放的是下一條要執(zhí)行的指令的地址它管理程序執(zhí)行的次序 在執(zhí)行轉(zhuǎn)移指令的情況下程序的執(zhí)行順序發(fā)生轉(zhuǎn)移此時(shí)程序計(jì)數(shù)器直接接受內(nèi)部總線送來 的數(shù)據(jù)并用該數(shù)據(jù)取代原有的內(nèi)容 16 評(píng)價(jià)存儲(chǔ)器有哪些重要的指標(biāo)為什么說存儲(chǔ)器性能已成為計(jì)算機(jī)性能提高的關(guān)鍵 10 解存儲(chǔ)器的重要指標(biāo)是容量和存取速度 容量越大則記憶的信息越多計(jì)算機(jī)的功能就越強(qiáng)存儲(chǔ)器的存取速度比 CPU 的運(yùn)算速度要 低所以存儲(chǔ)器的工作速度是影響計(jì)算機(jī)工作速度的主要因素 17 綜述存儲(chǔ)器的種類特點(diǎn)用途和優(yōu)缺點(diǎn)主要針對(duì)內(nèi)存 解按結(jié)構(gòu)與使用功能分內(nèi)存儲(chǔ)器可分為隨機(jī)存取存儲(chǔ)器 RAM 和只讀存儲(chǔ)器 ROM 兩類 隨機(jī)存取存儲(chǔ)器 RAM 又稱讀寫存儲(chǔ)器它的數(shù)據(jù)讀取存入時(shí)間都很短因此計(jì)算機(jī)運(yùn)行時(shí) 既可以從 RAM 中讀數(shù)據(jù)又可以將數(shù)據(jù)寫入 RAM但掉電后 RAM 中存放的信息將丟失 RAM 適宜存放原始數(shù)據(jù)中間結(jié)果及最后的運(yùn)算結(jié)果因此又被稱作數(shù)據(jù)存儲(chǔ)器 只讀存儲(chǔ)器 ROM 讀出一個(gè)數(shù)據(jù)的時(shí)間為數(shù)百納秒有時(shí)也可改寫但寫入一個(gè)數(shù)據(jù)的時(shí)間長(zhǎng)達(dá) 數(shù)十 ms因此在計(jì)算機(jī)運(yùn)行時(shí)只能執(zhí)行讀操作掉電后 ROM 中存放的數(shù)據(jù)不會(huì)丟失 ROM 適宜存放程序常數(shù)表格等因此又稱為程序存儲(chǔ)器 只讀存儲(chǔ)器又可以分為下列四類 ① 掩膜 ROM在半導(dǎo)體工廠生產(chǎn)時(shí)已經(jīng)用掩膜技術(shù)將程序做入芯片用戶只能讀出其內(nèi)容而 不能改寫掩膜 ROM 只能應(yīng)用于有固定程序且批量很大的產(chǎn)品中 ② 可編程只讀存儲(chǔ)器 PROM用戶可將程序?qū)懭?PROM僅程序一經(jīng)寫入就不能改寫 ③ 可擦除可編程只讀存儲(chǔ)器 EPROM用戶可將程序?qū)懭?EPROM 芯片如果要改寫程序先 用紫外燈照射芯片擦去原先的程序然后寫入新程序與 PROM 芯片一樣寫入的速度很慢且 要用到高壓所以必須用特定的 EPROM 編程器寫入信息在計(jì)算機(jī)運(yùn)行時(shí)只能執(zhí)行讀操作 ④ 電擦除可編程只讀存儲(chǔ)器 EEPROM這是近年發(fā)展起來的一種只讀存儲(chǔ)器由于采用電擦 除方式而且擦除寫入讀出的電源都用十 5V故能在應(yīng)用系統(tǒng)中在線改寫但目前寫入時(shí)間較 長(zhǎng)約需 10ms 左右讀出時(shí)間約為幾百 ns 18 何謂堆棧為什么要設(shè)置堆棧棧區(qū)是怎樣確定的數(shù)據(jù)進(jìn)棧出棧按照何種規(guī)律進(jìn)棧用什 么指令出棧用什么指令進(jìn)棧出棧時(shí)棧指針如何變化通常棧底所指是什么內(nèi)容 解微型計(jì)算機(jī)中的堆棧是讀寫存儲(chǔ)器 RAM 中的一個(gè)特殊的區(qū)域是一組按照先進(jìn)后出的方式工 作的用于暫存信息的存儲(chǔ)單元 設(shè)置堆棧的目的是便于保護(hù)斷點(diǎn)地址與現(xiàn)場(chǎng)信息 用堆棧指針指示堆棧所在的位置 數(shù)據(jù)進(jìn)棧出棧按先進(jìn)后出的原則工作 進(jìn)棧用 PUSH 指令出棧用 POP 指令進(jìn)棧時(shí)指針向地址增加的方向變化出棧時(shí)指針向地址 減小的方向變化 棧底是最先進(jìn)棧的信息所在的單元 19 請(qǐng)解釋下列名詞 1 字長(zhǎng)字字節(jié)BCD 碼ASCII 碼 2 指令指令地址指令系統(tǒng)程序 解1一臺(tái)計(jì)算機(jī)一次所能處理的二進(jìn)制代碼的位數(shù)稱為該計(jì)算機(jī)的字長(zhǎng) 16 位二進(jìn)制數(shù)稱為一個(gè)字 8 位二進(jìn)制數(shù)稱為一個(gè)字節(jié) 二進(jìn)制編碼的十進(jìn)制數(shù)簡(jiǎn)稱二 十進(jìn)制數(shù)又稱 BCD 碼 Binary Coded Decimal 11 ASCII 碼是美國(guó)標(biāo)準(zhǔn)信息交換代碼 American Standard Code for Information Interchange 的縮寫 2指令控制計(jì)算機(jī)進(jìn)行各種操作的命令稱為指令 指令地址指令所在存儲(chǔ)單元的地址 指令系統(tǒng)一臺(tái)計(jì)算機(jī)所具有的所有指令的結(jié)合稱為該計(jì)算機(jī)的指令系統(tǒng) 程序一系列指令的有序集合稱為程序 110 計(jì)算機(jī)中常用的計(jì)數(shù)制有哪些 解二進(jìn)制十進(jìn)制 BCD 十六進(jìn)制 111 什么是機(jī)器碼 什么是真值 解把符號(hào)數(shù)值化的數(shù)稱為機(jī)器數(shù)或機(jī)器碼原來的數(shù)值叫做機(jī)器數(shù)的真值 112 完成下列數(shù)制的轉(zhuǎn)換 1 10100110B= D= H 2 011B= D 3 25325= B= H 4 10ll011101B= H= BCD 解 1 166A6 2 075 3 1111110101FD4 4 5BA10010001.01XXXXXXXXXX 113 8 位和 16 位二進(jìn)制數(shù)的原碼補(bǔ)碼和反碼可表示的數(shù)的范圍分別是多少 解8 位二進(jìn)制數(shù)原碼 127 ~127 16 位二進(jìn)制數(shù)原碼 32767 ~32767 8 位二進(jìn)制數(shù)補(bǔ)碼 128~ 127 16 位二進(jìn)制數(shù)補(bǔ)碼 32768 ~32767 8 位二進(jìn)制數(shù)反碼 127~ 127 16 位二進(jìn)制數(shù)反碼 32767~ 32767 114 寫出下列真值對(duì)應(yīng)的原碼和補(bǔ)碼的形式 1 X=111001lB 2 X=71D 3 X=1001001B 解 1 原碼11110011B 補(bǔ)碼10001101B 2 原碼11000111B 補(bǔ)碼10111001B 3 原碼01001001B 補(bǔ)碼01001001B 115 寫出符號(hào)數(shù) 10110101B 的反碼和補(bǔ)碼 解11001010B11001011B 116 已知 X 和 Y 的真值求[X 十 Y]的補(bǔ)碼 1 X=1110111B Y=l011010B 2 X=56D Y=21D 12 解 1 11100011B 2 00100011B 117 己知 X=1101001B Y=1010110B. 用補(bǔ)碼求 XY 的值 解11101101B 118 請(qǐng)寫出下列字符的 ASCII 碼 4A3= 解34H41H33H3DH21H 119 若給字符 4 和 9 的 ASCII 碼加奇校驗(yàn)應(yīng)是多少 解34HB9H 120 上題中若加偶校驗(yàn)結(jié)果如何 解B4H39H 121 計(jì)算下列表達(dá)式 1 4EH 十 10110101B 00101 BCD= D 2 4EH 2408H 十B2 = B 解 1 129.5D 2 101010B 13 第 2 章 MCS51 單片機(jī)的硬件結(jié)構(gòu) 21 請(qǐng)結(jié)合課本中 MCS51 系列單片機(jī)的結(jié)構(gòu)圖闡明其大致組成 解按功能部件分51 子系列單片機(jī)由 CPU數(shù)據(jù)存儲(chǔ)器 RAM程序存儲(chǔ)器 ROM特殊功能寄存 器4 個(gè)并行 IO 口1 個(gè)串行口定時(shí)器計(jì)數(shù)器中斷系統(tǒng)等八個(gè)功能部件組成 CPU 由累加器 A暫存器 12ALUPSW 等組成 數(shù)據(jù)存儲(chǔ)器由 RAM 地址寄存器RAM 單元等組成 程序存儲(chǔ)器指 EPROM 或 ROM SFR 指 P0P1P2P3 鎖存器BDPTR 等 22 綜述 MCS51 系列單片機(jī)各引腳的作用并進(jìn)行分類 解 1 主電源引腳 Vcc接5V 電源正端 Vss接5V 電源地端 2 外接晶體引腳 XTAL1片內(nèi)反相放大器輸入端 XTAL2 片內(nèi)反相放大器輸出端 3 輸入/輸出引腳 com P0 口的 8 個(gè)引腳在不接片外存儲(chǔ)器與不擴(kuò)展 I/O 接口時(shí)作為準(zhǔn)雙向輸入/輸 出接口在輸入時(shí)需要附加條件的雙向輸入輸出口稱為準(zhǔn)雙向 IO 口在接有片外存儲(chǔ)器或擴(kuò)展 IO 接口時(shí)P0 口分時(shí)復(fù)用為低 8 位地址總線和雙向數(shù)據(jù)總線 com P1 口的8 個(gè)引腳可作為準(zhǔn)雙向 I/O 接口使用對(duì)于 52 子系列P10 與 P11 還有 第二種功能P10 可用作定時(shí)器/計(jì)數(shù)器2 的計(jì)數(shù)脈沖輸入端 T2P11 可用作定時(shí)器/計(jì)數(shù)器 2 的 外部控制端 T2EX com P2 口的 8 個(gè)引腳一般可作為準(zhǔn)雙向 I/O 接口在接有片外存儲(chǔ)器或擴(kuò)展 I/O 接 口且尋址范圍超過 256 個(gè)字節(jié)時(shí)P2 口用為高 8 位地址總線 com P3 口的 8 個(gè)引腳 ① 一般可作為準(zhǔn)雙向 I/O 接口 ② P3 口的第二功能如表 21 所示 表 21 引腳 第二功能 P30 P31 P32 P33 P34 P35 P36 P37 RXD 串行輸入口 RXD 串行輸出口 INT0 外部中斷 0 請(qǐng)求輸入端 INT1 外部中斷 1 請(qǐng)求輸入端 T0 定時(shí)器計(jì)數(shù)器 0 計(jì)數(shù)脈沖輸入端 T1 定時(shí)器計(jì)數(shù)器 1 計(jì)數(shù)脈沖輸入端 WR 片外數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出端 RD 片外數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端 14 23 EA 引腳的作用是什么在下列四種情況下 EA 引腳各應(yīng)該接何種電平 1 只有片內(nèi) ROM 2 只有片外 ROM 3 有片內(nèi) ROM 和片外 ROM 4 有片內(nèi) ROM 和片外 ROM片外 ROM 所存為調(diào)試程序 解 EA /VDD片外程序存儲(chǔ)器選用端 1 EA 1 2 EA 0 3 若片外 ROM 和片內(nèi) ROM 編址不重疊則EA 1 4 若片外 ROM和片內(nèi) ROM 編址重疊則 訪問片內(nèi)ROM 時(shí)EA 1訪 問片外 ROM 時(shí)EA 0 24 MCS51 系列單片機(jī)的引腳中有多少根IO 線它們與單片機(jī)對(duì)外的地址總線和數(shù)據(jù)總線之間有 什么關(guān)系其地址總線和數(shù)據(jù)總線各有多少位對(duì)外可尋址的地址空間有多大 解MCS51 系列單片機(jī)有 4 個(gè) IO 端口每個(gè)端口都是 8 位雙向口共占 32 根引腳在無片外擴(kuò) 展的存儲(chǔ)器的系統(tǒng)中這 4 個(gè)端口的每一位都可以作為雙向通用 IO 端口使用在具有片外擴(kuò)展存 儲(chǔ)器的系統(tǒng)中P2 口作為高 8 位地址線P0 口分時(shí)作為低 8 位地址線和雙向數(shù)據(jù)總線P3 口作為 控制線使用地址和數(shù)據(jù)線分別是 16 位和 8 位對(duì)外可尋址的地址空間是 64KB 25 程序計(jì)數(shù)器的符號(hào)是什么MCS51 系列單片機(jī)的程序計(jì)數(shù)器有幾位它的位置在哪里 解 程序計(jì)數(shù)器的符號(hào)是 PCMCS51 系列單片機(jī)的程序計(jì)數(shù)器有 16 位為一個(gè)專用寄存器在 CPU 內(nèi)部 26 何謂程序狀態(tài)字它的符號(hào)是什么它的位置在哪里它各位的含義是什么為 1為 0各代表 什么各在何種場(chǎng)合有用 解程序狀態(tài)字是一個(gè) 8 位寄存器它包含了程序運(yùn)行的狀態(tài)信息它的符號(hào)是 PSW它的位置在 CPU 中各位含義如下 D7 D6 D5 D4 D3 D2 D1 D0 C AC F0 RS1 RS0 O2 P 1 進(jìn)位標(biāo)志位 C PSW7 作用在執(zhí)行某些算術(shù)操作類邏輯操作類指令時(shí)可被硬件或軟件置位或清零 例如 8 位加法運(yùn)算時(shí)如果運(yùn)算結(jié)果的最高位D7 有進(jìn)位則 C 1否則 C=0 又如 8 位減法運(yùn)算時(shí)如果運(yùn)算結(jié)果的最高位D7 有借位則 C=1否則 C=0 2 輔助進(jìn)位標(biāo)志 Ac PSW6 作用8 位加法運(yùn)算時(shí)如果低半字節(jié)的最高位 D3 有進(jìn)位則 Ac=1否則 Ac=08 位減法 運(yùn)算時(shí)如果 D3 有借位則 Ac=1否則 Ac=0 Ac 在作 BCD 碼運(yùn)算而進(jìn)行二十進(jìn)制調(diào)整時(shí)有用 3 軟件標(biāo)志 F0 PSW5 作用是用戶定義的一個(gè)狀態(tài)標(biāo)志可通過軟件對(duì)它置位或清零編程時(shí)也常測(cè)試其是否 建起而進(jìn)行程序分支 15 4 工作寄存器組選擇位 RS1RS0 PSW4PSW3 作用用軟件置位或清零以確定四組工作寄存器中的哪一組工作它們與各組的對(duì)應(yīng)關(guān)系為 RS1 RS0 0 0 0 組地址從 0007H 0 1 1 組地址從 080FH 1 0 2 組地址從 1017H 1 1 3 組地址從 181FH 5 溢出標(biāo)志 OV PSW2 作用當(dāng)執(zhí)行算術(shù)運(yùn)算時(shí)由硬件置位或清零以指示溢出狀態(tài)各種算術(shù)指令對(duì)該位的影響情 況在指令系統(tǒng)中詳細(xì)介紹 6 奇偶標(biāo)志 P PSW0 每執(zhí)行一條指令單片機(jī)都能根據(jù) A 中 1 的個(gè)數(shù)的奇偶自動(dòng)令 P 置位或清零奇為 1偶為0 此標(biāo)志對(duì)串行通信的數(shù)據(jù)傳輸非常有用通過奇偶校驗(yàn)可檢驗(yàn)傳輸?shù)目煽啃? 27 MCS51 系列單片機(jī)的內(nèi)存由哪幾部分組成其編址與訪問的規(guī)律是怎樣的 解MCS51 系列單片機(jī)內(nèi)存由程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間 程序存儲(chǔ)器的編址自 0000H 開始最大可至 FFFFHMCS51 單片機(jī)有 3 種不同的芯片片內(nèi) 有掩膜只讀存儲(chǔ)器的 如 80518 052 片 內(nèi)有 EPROM的 如 8751 和片內(nèi)沒有只讀存儲(chǔ)器的 如 8031 8032 而 ROM 的尋址范圍為 64KB所以片內(nèi)程序存儲(chǔ)器的容量遠(yuǎn)小于該數(shù)可見如擴(kuò)展片外存 儲(chǔ)器其裕量是很大的 ROM 編址規(guī)律程序存儲(chǔ)器的編址規(guī)律為先片內(nèi)后片外片內(nèi)片外連續(xù)二者一般不作 重疊根據(jù) PC 的內(nèi)容進(jìn)行訪問 片內(nèi) RAM 從 00H 開始編址片外 RAM 從 0000H 開始部分地址重疊實(shí)際并不完全一樣 若只需擴(kuò)展少量片外 RAM容量不超過 256 個(gè)單元?jiǎng)t也可以按照 8 位二進(jìn)制編址從 00H 開始 到 FFH 結(jié)束由于訪問片內(nèi)外 RAM 所用的指令不一樣不會(huì)引起混淆 28 MCS51 系列單片機(jī)片內(nèi)RAM 有多少單元有哪些用途這些用途各占用哪些單元堆棧的棧 區(qū)設(shè)在哪里 解51 子系列片內(nèi) RAM 有 128B 單元52 子系列片內(nèi) RAM 有 256B 單元 單片機(jī)片內(nèi) RAM 可分為工作寄存器區(qū)位尋址區(qū)數(shù)據(jù)緩沖區(qū)三個(gè)區(qū)域 1 工作寄存器區(qū)00H1FH 單元為工作寄存器區(qū)供用戶編程時(shí)使用臨時(shí)寄存8 位信息分 為四組 0 7 R R 但同時(shí)只能有一組參與程序程序的運(yùn)行用 RS1RS0 兩位的狀態(tài)來選擇參與 運(yùn)行的工作寄存器組 2 位尋地址20H2FH 對(duì)該區(qū)的每一位都有一個(gè)位地址共有 128 個(gè)位地址 3 數(shù)據(jù)緩沖區(qū)30H7FH 52 子系列為 30HFFH作為普通的 RAM 單元使用 4 堆棧棧區(qū)一般設(shè)在 2FH 以上的單元 29 MCS51 系列單片機(jī)在片內(nèi)集成了哪些主要邏輯功能部件各個(gè)邏輯部件的主要功能是什么 解MCS51 單片機(jī)在片內(nèi)集成了中央處理器CPU程序存儲(chǔ)器ROM數(shù)據(jù)存儲(chǔ)器RAM 定時(shí)器計(jì)數(shù)器并行 IO 接口串行 IO 接口和中斷系統(tǒng)等幾大單元 CPU是整個(gè)單片機(jī)的核心部件由 運(yùn)算器和控制器組成運(yùn) 算器可以完成算術(shù)運(yùn)算和邏輯運(yùn)算 16 其操作順序在控制器控制下進(jìn)行控制器是由程序計(jì)數(shù)器 PCProgram Counter指令寄存器 IR Instruction Register指令譯碼器 IDInstruction Decoder定時(shí)控制邏輯和振蕩器OSC 等電路組 成CPU 根據(jù) PC 中的地址將欲執(zhí)行指令的指令碼從存儲(chǔ)器中取出存放在 IR 中ID 對(duì) IR 中的指 令碼進(jìn)行譯碼定時(shí)控制邏輯在 OSC 配合下對(duì) ID 譯碼后的信號(hào)進(jìn)行分時(shí)以產(chǎn)生執(zhí)行本條指令所 需的全部信號(hào) 程序存儲(chǔ)器ROM用于存儲(chǔ)程序常數(shù)表格等 數(shù)據(jù)存儲(chǔ)器RAM用于存儲(chǔ)數(shù)據(jù) 8051 內(nèi)部有兩個(gè) 16 位可編程序的定時(shí)器計(jì)數(shù)器 T0 和 T1均為加 1 計(jì)數(shù)器可用于定時(shí)和對(duì) 外部輸入脈沖的計(jì)數(shù) 8051 的中斷系統(tǒng)主要由中斷允許控制器 IE 和中斷優(yōu)先級(jí)控制器 IP 等電路組成可實(shí)現(xiàn)對(duì) 5 個(gè) 中斷源的管理8051 的中斷系統(tǒng)主要由中斷允許控制器 IE 和中斷優(yōu)先級(jí)控制器 IP 等電路組成其 中IE 用于控制5 個(gè)中斷源中哪些中斷請(qǐng)求被允許向CPU 提出哪些中斷源的中斷請(qǐng)求被禁止IP 用于控制 5 個(gè)中斷源的中斷請(qǐng)求的優(yōu)先權(quán)級(jí)別 IO 接口是 MCS51 單片機(jī)對(duì)外部實(shí)現(xiàn)控制和信息交換的必經(jīng)之路用 于信息傳送過程中的速度 匹配和增加它的負(fù)載能力可分為串行和并行 IO 接口 210 8051 單片機(jī)的控制總線信號(hào)有哪些各有何作用 解獨(dú)立的控制線一共有 4 條 1ALE PROG 地址鎖存允許編程線配合 P0 口引腳的第二功能使用在訪問片外存儲(chǔ)器時(shí) 8051CPU在P07~P00 引腳上輸出片外存儲(chǔ)器低8位地址的同時(shí)在ALE PROG 上輸出一個(gè)高電位 脈沖用于把這個(gè)片外存儲(chǔ)器低8位地址鎖存到外部專用地址鎖存器以便空出 P07~P00 引腳線 去傳送隨后而來的片外存儲(chǔ)器讀寫數(shù)據(jù)在不訪問片外存儲(chǔ)器時(shí)8051 自動(dòng)在 ALE PROG 上輸出頻 率為 fosc6 的脈沖序列該脈沖序列可用作外部時(shí)鐘源或作為定時(shí)脈沖源使用 2 EA Vpp允許訪問片外存儲(chǔ)器/編程電源線可以控制 8051 使用片內(nèi) ROM 還是使用片外 ROM若EA =0則允許使用片內(nèi) ROM若EA =1則允許使用片外 ROM 3PSEN 片外 ROM 選通線在執(zhí)行訪問片外 ROM 的指令 MOVC 時(shí)8051 自動(dòng)在PSEN 上產(chǎn) 生一個(gè)負(fù)脈沖用于為片外 ROM 芯片的選通其他情況下PSEN 線均為高電平封鎖狀態(tài) 4RSTVPD復(fù)位/備用電源線可以使 8051 處于復(fù)位工作狀態(tài) 211 何謂特殊功能寄存器8031 有哪些特殊功能寄存器試按其用途相關(guān)聯(lián)的硬件功能單元如 CPU并行 IO 口串行 IO 口定時(shí)器計(jì)數(shù)器中斷控制等進(jìn)行分類 解特殊功能寄存器也稱專用寄存器專用于控制管理片內(nèi)算術(shù)邏輯部件并行 IO 口串行 IO 口定時(shí)器計(jì)數(shù)器中斷系統(tǒng)等功能模塊的工作用戶在編程時(shí)可以置數(shù)設(shè)定但不能移作它用 除 PC 外8031 有 18 個(gè)專用寄存器其中 3 個(gè)為雙字節(jié)寄存器共占用 21 個(gè)字節(jié)按其用途 相關(guān)聯(lián)的硬件功能單元可分P0 口堆棧指針數(shù)據(jù)指針低字節(jié)數(shù)據(jù)指針高字節(jié)定時(shí)器計(jì)數(shù)器 計(jì)數(shù)器 0 高低字節(jié)定時(shí)器計(jì)數(shù)器 1 高低字節(jié)P1 口電源控制串行控制串行數(shù)據(jù)緩沖 器P2 口中斷允許控制P3 口中斷允許優(yōu)先級(jí)控制程序狀態(tài)字累加器B 寄存器共 18 個(gè) 專用寄存器 212 何謂時(shí)鐘周期指令周期機(jī)器周期針對(duì) MCS51 系列單片機(jī)如采用 12MHZ 晶振它們 的頻率和周期各是什么 解 振蕩器輸出的振蕩脈沖經(jīng)二分頻成為內(nèi)部時(shí)鐘信號(hào)用作單片機(jī)內(nèi)部各功能部件按序協(xié)調(diào)工作 的控制信號(hào)其周期稱時(shí)鐘周期 機(jī)器周期6 個(gè)時(shí)鐘周期構(gòu)成一個(gè)機(jī)器周期 17 指令周期CPU 執(zhí)行一條指令的時(shí)間 針對(duì) MCS51 系列單片機(jī)采用 12MHZ 晶振則振蕩周期為 0167us時(shí)鐘周期為 0333us 頻率為 6MHZ機(jī)器周期為 1us頻率為 1MHZ指令周期為 1us 到 4us頻率為 1MHZ 到 025MHz 213 綜述 P0P1P2P3 口各有哪幾種功能 解這 4 個(gè)接口可以并行輸入或輸出 8 位數(shù)據(jù)也可按位使用即每一根輸入/輸出線都能獨(dú)立地 用作輸入或輸出四個(gè) 8 位并行口的功能各不相同 P0 口是三態(tài)雙向口通常稱為數(shù)據(jù)總線口因?yàn)橹挥性摽谀苤苯佑糜趯?duì)外部數(shù)據(jù)總線的讀寫操 作P0 口還用于輸出外部數(shù)據(jù)存儲(chǔ)器的低 8 位地址由于是分時(shí)輸出故應(yīng)在外部加地址鎖存器將 地址數(shù)據(jù)鎖存地址鎖存信號(hào)用 ALE P1 口是專門供用戶使用的 IO 接口是準(zhǔn)雙向接口 P2 口是供系統(tǒng)擴(kuò)展時(shí)作高 8 位地址線用如果沒有系統(tǒng)擴(kuò)展例如使用 80518751 單片機(jī)不擴(kuò) 展外部存儲(chǔ)器時(shí)P2 口也可以作為用戶 IO 線使用P2 口也是準(zhǔn)雙向口 P3 口是雙功能口該口的每一位均可以獨(dú)立地定義為第一 IO 功能或第二 IO 口功能P3 口的 第二功能如表 21 所示 214 在讀回端口數(shù)據(jù)時(shí)為什么應(yīng)讀鎖存器內(nèi)容而不宜讀引腳電平 解假如通過三態(tài)門從引腳上讀回?cái)?shù)據(jù)有時(shí)會(huì)發(fā)生錯(cuò)誤例如用一根口線去驅(qū)動(dòng)一個(gè)晶體管的 基極在向此口線輸出 l 時(shí)鎖存器 Q=1但晶體管導(dǎo)通后引腳上的電平已拉到低電平 07V 從引腳讀回?cái)?shù)據(jù)會(huì)錯(cuò)讀為 0 215 闡明準(zhǔn)雙向口這一名稱所以要加用準(zhǔn)字的理由 解在執(zhí)行輸入操作時(shí)如果鎖存器原來寄存的數(shù)據(jù) Q=0那么由于Q =1 將使 V1 導(dǎo)通引腳被 始終箝拉在低電平上不可能輸入高電平為此用作輸入前必須先用輸出指令置 Q=1使 V1 截止正因?yàn)槿绱?P1 口稱為準(zhǔn)雙向接口 216 8031單片機(jī)與開關(guān)及LED發(fā)光二極管接口電路如216題圖所示用 8031單片機(jī)P1 com 作為數(shù)據(jù)輸入口聯(lián)接開關(guān) K3K0 com 作為輸出口聯(lián)接發(fā)光二極管 LED3LED0 編程使開關(guān) K3K0 的狀態(tài)由 com 輸入再由 com 輸出通過發(fā)光二極管顯示出來要求開關(guān)合上時(shí)二 極管亮開關(guān)斷開時(shí)二極管不亮 5V EA P15 P16 8031 P17 LED1 LED2 LED3 P14 5V P10 P11 P12 LED0 P13 K1 K2 K3 K0 216 題圖 解 ORG 2200H MOV AFFH P1 口為輸入先送 1 18 MOV P1A P1 口低 4 位輸出 1 LOOPMOV AP 1 口狀態(tài)輸入 SWAP A 開關(guān)狀態(tài)到高 4 位 ORL A0FH低 4 位為 1為下一次輸入做準(zhǔn)備 MOV P1A 開關(guān)狀態(tài)輸出 AJMP LOOP 循環(huán) 217 電路如 217 題圖所示用 8031P1 口的 P10P11 作為變量 XW 的輸入端用 P12 作為電 路輸出端并用 LED 來顯示輸出P13 端傳送狀態(tài)消息當(dāng)檢測(cè)到 P13 為低電平時(shí)CPU 開始運(yùn) 算 D X W X W 并把結(jié)果送 P12 輸出顯示然后重新開始檢測(cè) P13 狀態(tài)信息試編 寫完成上述要求的程序 EA 5V X W P10 P11 8031 P13 Y P12 217 題圖 解參考程序如下 ORG 0000H LJMP MAIN ORG 0100H MAIN MOV P108H LOOP MOV CP13 JC LOOP MOV P103H MOV CP10 ANL CP11 CPL C MOV 00HC MOV CP10 ORL CP11 ANL C00H MOV P12C SJMP MAIN END 218 第 218 題圖示電路中X1X2X3 是三個(gè)故障源當(dāng)系統(tǒng)無故障時(shí)X1X2X3 均為低電 19 平對(duì)應(yīng)的三個(gè)顯示燈全滅當(dāng)某部分出現(xiàn)故障時(shí)其對(duì)應(yīng)的輸入端由低電平變?yōu)楦唠娖綇亩? 起 51單片機(jī)中斷中 斷服務(wù)程序的任務(wù)是判定故障并 點(diǎn)亮對(duì)應(yīng)的發(fā)光二極管發(fā) 光二極管 LED1~ LED3 對(duì)應(yīng)三個(gè)輸入端 X1~X3試編程 5V EA P13 P14 8031 P15 INT0 X1 X2 X3 LED1 LED2 LED3 P10 P11 P12 218 題圖 解參考程序如下 ORG 0000H LJMP MAIN ORG 0003H LJMP INT0SER ORG 0100H MAIN MOV P10FFH SETB IT0 SETB EX0 SETB EA LOOP AJMP LOOP INT0SER JNB P10L1 CLRP13 L1 JNB P11L2 CLRP14 L2 JNB P12L3 CLRP15 L3 RET END 219 設(shè)某單片機(jī)應(yīng)用系統(tǒng)的 P1 口連接如第 219 題圖所示要求根據(jù) K0 的合斷情況決定 D1D0 的點(diǎn)亮如果 K0 合上D0 點(diǎn)亮如果 K0 斷開D1 點(diǎn)亮試編程實(shí)現(xiàn)之 解 ORG 0000H LJMP MAIN ORG 0100H MAIN MOV P10C0H LOOP JB P17ELSE CLRP10 20 AJMP LOOP ELSE CLRP11 AJMP LOOP END 5V 5V EA K0 D0 D1 P17 P11 P10 8031 第 219 題圖 220 設(shè)某單片機(jī)應(yīng)用系統(tǒng)的 P1 口連接如第 220 題圖所示問 5V 5V EA K0 K1 D0 D1 P17 P16 P11 P10 8031 第 220 題圖 1 執(zhí)行第一條指令后哪些指示燈會(huì)亮 2 第二條指令的用處 3 執(zhí)行下列指令到最后A 要求寫出分析過程 MOV P10EH ORL P1C0H MOV AP1 ANL AC0H 解 1 D1 會(huì)亮 2為 P17P16 的輸入做準(zhǔn)備 3A 的內(nèi)容為 80H 221 MCS51 怎樣實(shí)現(xiàn)上電復(fù)位與操作復(fù)位并請(qǐng)綜述各專用寄存器復(fù)位后的狀態(tài) 解與其他計(jì)算機(jī)一樣MCS51 單片機(jī)系統(tǒng)有上電復(fù)位和操作復(fù)位兩種方法所謂上電復(fù)位是 21 指計(jì)算機(jī)上電瞬間要在 RST 引腳上出現(xiàn)寬度大于 10ms 的正脈沖使計(jì)算機(jī)進(jìn)入復(fù)位狀態(tài)操作 復(fù)位指用戶按下復(fù)位按鈕使計(jì)算進(jìn)入復(fù)位狀態(tài) 復(fù)位是靠外部電路實(shí)現(xiàn)的221 題圖是上電復(fù)位及按鈕復(fù)位的一種實(shí)用電路 上電時(shí)5V 電源立即對(duì)單片機(jī)芯片供電同時(shí)經(jīng)R 對(duì) C3 充電C3 上電壓建立的過程就是負(fù)脈 沖的寬度經(jīng)倒相后RST 上出現(xiàn)正脈沖使單片機(jī)實(shí)現(xiàn)了上電復(fù)位按鈕按下時(shí) RST 上同樣出現(xiàn) 高電平實(shí)現(xiàn)了操作復(fù)位在應(yīng)用系統(tǒng)中有些外圍芯片也需要復(fù)位如果這些芯片復(fù)位端的復(fù)位 電平與單片機(jī)一致則可以與單片機(jī)復(fù)位腳相連因此非門在這里不僅起到了倒相作用還增大 了驅(qū)動(dòng)能力電容 C1C2 起濾波作用防止干擾竄入復(fù)位端產(chǎn)生誤動(dòng)作 10 K W 1 C 2 C 3 C CC V 100 pF 10μ F 10μ F 221 題圖 復(fù)位電路 各專用寄存器復(fù)位后的狀態(tài) 如下表所示 22 第 3 章 MCS51 系列單片機(jī)的指令系統(tǒng) 31 MCS51 系列單片機(jī)的尋址方式有哪幾種請(qǐng)列表分析各種尋址方式的訪問對(duì)象與尋址范圍 解①立即尋址②寄存器尋址③寄存器間接尋址④直接尋址⑤基址寄存器加變址寄存器間 接尋址⑥相對(duì)尋址⑦位尋址 尋址方式 訪問對(duì)象 尋址范圍 立即尋址 立即數(shù) 寄存器尋址 工作寄存器 R0R7累加器 A 寄存器 B 數(shù)據(jù)指針 DPTR位處理器 C 00H1FHE0HF0H82H 83H 寄存器間接尋址 RAM 單元 內(nèi)部 RAM 及外部擴(kuò)展的 64KRAM 直接尋址 ROM 和 RAM 內(nèi)部 RAM 00H7FH SFR 80HFFH ROM64KB 變址尋址 ROM ROM 0000HFFFFH 相對(duì)尋址 ROM ROM 0000HFFFFH 位尋址 位尋址區(qū) 內(nèi) RAM 20H2FH 中的可尋 址位SFR 中的可尋址位 32 要訪問片內(nèi) RAM可有哪幾種尋址方式 解對(duì)于 51 系列要訪問片內(nèi) RAM有間接尋址直接尋址位尋址52 子系列訪問片內(nèi)低 128 個(gè)字節(jié)有直接尋址位尋址間接尋址高 128 字節(jié)有間接尋址 33 要訪問片外 RAM可有哪幾種尋址方式 解訪問片外 RAM 有寄存器間接尋址方式 34 要訪問 ROM可有哪幾種尋址方式 解要訪問 ROM 有直接尋址變址尋址相對(duì)尋址 35 試分別對(duì) 51 子系列和 52 子系列說明 MOV Adirect 指令與 MOV ARj 指令的訪問范圍 解MOV Adirect 指令中 direct 對(duì)于 51 子系列的訪問范圍為內(nèi) RAM 中的低 128B 單元從 00H 到 7FH訪問 SFR 的范圍是從 80H 到 FFH52 子系列的訪問范圍與 51 子系列的訪問范圍相同 MOV ARj 指令對(duì)于 51 子系列的訪問范圍為內(nèi) RAM 的 128B 單元從 00H 到 7FH對(duì)于 52 子系列的訪問范圍為片內(nèi) RAM 從 00H 到 FFH 36 傳送指令中有哪幾小類是訪問 RAM 的哪幾個(gè)類是訪問 ROM 的CPU 訪問 ROM 多不多 什么時(shí)候需要訪問 ROM 解 訪問 RAM 的有以累加器 A 為一方的傳送指令不以累加器為一方的傳送指令用立即數(shù)置 數(shù)的指令訪問片外 RAM 的傳送指令 進(jìn)棧出棧指令交換指令 訪問 ROM 的有 基址寄存器加變址寄存器間址指令 23 因?yàn)?ROM 是只讀存儲(chǔ)器用作程序存儲(chǔ)器已事先存入各種程序常數(shù)表格等CPU 訪問 ROM 不多當(dāng)執(zhí)行程序程序轉(zhuǎn)移以及用戶訪問時(shí)需要訪問 ROM 37 區(qū)分下列指令的不同功能 ⑴ MOV A 24H 與 MOV A24H ⑵ MOV A R0 與 MOV A R0 ⑶ MOV A R0 與 MOVX AR0 解⑴ 前者是將立即數(shù) 24H 送入 A 中后者是將 24H 單元的內(nèi)容送入 A 中 2 前者將 R0 中的內(nèi)容送入 A 中后者是將以R0 中的內(nèi)容為地址所在單元的內(nèi)容送入 A 中 3 前者是將片內(nèi) RAM 以 R0 中的內(nèi)容為地址所在單元的內(nèi)容送入 A 中后者是將片外 RAM 的以 R0 中的內(nèi)容為地址所在單元的內(nèi)容送入 A 中 38 設(shè)片內(nèi) RAM30H 單元的內(nèi)容為 40H設(shè)片內(nèi) RAM40H 單元的內(nèi)容為 10H片內(nèi) RAM10H 單 元的內(nèi)容為 00H P1 0CAH請(qǐng)寫出下列指令執(zhí)行后的結(jié)果 MOV R0 30H MOV A R0 MOV R1 A MOV B R1 MOV R0 P1 MOV P3 P1 MOV 10H 20H MOV 30H 10H 解 MOV R0 30H R0←30H MOV A R0 A←40H MOV R1 A R1←40H MOV B R1 B←10H MOV R0 P1 30H ←0CAH MOV P3 P1 P3←0CAH MOV 10H 20H 10H←20H MOV 30H 10H 30H←20H 39 已知 A 35H R0 6FH P1 90H FCH SP C0H試寫出下列指令的執(zhí)行結(jié)果 1 MOV R6A 2 MOV R0A 3 MOV A90H 4 MOV A90H 5 MOV 80H81H 6 MOVX R0A 7 PUSH A 8 SWAP A 9 XCH AR0 24 解 1 MOV R6 A R6 35H 2 MOV R0 A 6FH 35H 3 MOV A 90H A 90H 4 MOV A 90H A FCH 5 MOV 80H 81H 80H 81H 6 MOV R0 A 6FH 35H 7 PUSH A SP C1H C1H 35H 8 SWAP A A 53H 9 XCH A R0 A 6FH R0 35H 310 已知 A 02H R 1 7FH D PTR 2FFCH片 內(nèi) RAM 7FH 70H片 外 RAM 2FFEH 11H ROM 2FFEH 64H試分別寫出下列指令的執(zhí)行結(jié)果 1 MOV A R1 2 MOVX DPTRA 3 MOVC AADPTR 4 XCHD AR1 解1 A 70H 2 片外 RAM2FFCH 02H 3 A 64H 4 A 00H 片內(nèi) RAM7FH 72H 311 已知 A 78H R1 78H B 04HC 1片內(nèi) RAM 78H DDH片內(nèi) RAM 80H 6CH 試分別寫出下列指令的執(zhí)行結(jié)果如涉及標(biāo)志位也要寫出 1 ADD A R1 2 ADDC A78H 3 SUBB A77H 4 INC R1 5 DEC 78H 6 MUL AB 7 DIV AB 8 ANL 78H78H 9 ORL AOFH 10 XRL 80HA 解1A 55H PSW 1110 2A 56H PSW 1110 3A 00H PSW 0000 25 4R1 79H 578H DCH 6BA 01E0H C 1 OV 1 7B 00HA 1EH 878H 58H 9A 7FH 1080H 14H 312 請(qǐng)對(duì)下列各組數(shù)分別計(jì)算與或異或的結(jié)果 1 10011010B 和 00001111B 2 11010011B 和 01011010B 3 11001100B 和 00110011B 4 10101010B 和 11111111B 解1結(jié)果分別為 00001010B 10011111B 10010101B 2結(jié)果分別為 01010010B 11011011B 10001001B 3結(jié)果分別為 00000000B 11111111B 11111111B 4結(jié)果分別為 10101010B 11111111B 01010101B 313 為達(dá)到下列要求請(qǐng)說明應(yīng)采用何種邏輯操作采用什么操作數(shù)要求不得改變各未涉及位的 內(nèi)容 1 使累加器的最低位置1 2 清除累加器的高四位 3 使 A2 和 A 3 置 1 4 清除 A3A 4 A5A 6 解1邏輯或操作 操作數(shù)00000001B 2邏輯與操作 操作數(shù)00001111B 3邏輯或操作 操作數(shù)00001100B 4邏輯與操作 操作數(shù)10000111B 314 寫出下列各條指令的機(jī)器碼并逐條寫出依次執(zhí)行每一條指令后的結(jié)果和 PSW 的內(nèi)容 1 CLR A 2 MOV A 9BH 3 MOV B0AFH 26 4 ADD AB 解 1機(jī)器碼 E4H A 0 2機(jī)器碼 749BH A 9BH 3機(jī)器碼 75F0AFH A AFH 4機(jī)器碼 25F0H A 4AH PSW 11XXX1X1B 315 要選用工作寄存器 3 組請(qǐng)采用三種不同的指令實(shí)現(xiàn)之 解 1 SETB PSW4 SETB PSW3 2 ORL PSW18H 3 MOV PSW18H 316 列舉三種能使累加器 A 內(nèi)容清零的指令并比較其優(yōu)缺點(diǎn) 解 1 ANL A00H 2 MOV A00H 3 CLR A 317 回答問題 1 算術(shù)操作類指令對(duì)標(biāo)志位的影響 2 邏輯操作類指令對(duì)字節(jié)內(nèi)容的修改 解1算術(shù)操作指令的執(zhí)行將影響特殊功能寄存器中狀態(tài)寄存器 PSW 的 3 個(gè)標(biāo)志位 CPSW7進(jìn)位標(biāo)志AcPSW6輔助進(jìn)位標(biāo)志OVPSW2輔助進(jìn)位標(biāo)志 3 個(gè)標(biāo)志除特別指出外指令服從以下規(guī)則 ① 操作結(jié)果在最高位有進(jìn)位輸出加法時(shí)或借位輸入減法時(shí)C 1否則C 0 ② 操作結(jié)果的低 4 位有進(jìn)位輸出 加法時(shí)或 有向高4 位的借位 減法時(shí)A c 1否 則A c 0 ③ 溢出標(biāo)志OV滿足邏輯關(guān)系式OV C6?? C 7 C6 為加法時(shí)累加器 A 的 D6 位向 D7 產(chǎn)生的進(jìn)位或減法時(shí)累加器 A 的 D6 位向 D7 產(chǎn)生的 借位有進(jìn)位或借位時(shí)C6 1 C7 為加法時(shí)累加器 A 的 D7 位向更高位產(chǎn)生的進(jìn)位或減法時(shí)累加器 A 的 D7 位向更高位產(chǎn) 生的借位有進(jìn)位或借位時(shí)C7 1 OV 標(biāo)志位常用于加減指令對(duì)帶符號(hào)數(shù)做補(bǔ)碼加減運(yùn)算時(shí)OV 1 表示加減運(yùn)算的結(jié)果超出 了 A 所能表示的帶符號(hào)數(shù)的范圍128~ 127 2①若要對(duì)內(nèi)部的某幾位清零而其它位保持不變可以選用 ANL directdata 指令在需 27 要清零的位上對(duì)應(yīng)的 data 的相應(yīng)位清零 ② 若要對(duì)內(nèi)部的某幾位置 1 可以選用ORL directdata 指令在需要置 1 的位上對(duì)應(yīng)的 data 的相應(yīng)位置 1 ③ 若要對(duì)內(nèi)部的某幾位求反可以選用XRL directdata 指令在需要求反的位上對(duì)應(yīng)的 data 的相應(yīng)位置 1若要對(duì)內(nèi)部 RAM 某單元求反可以選用 XRL direct0FFH 318 要將片內(nèi) RAM 0FH 單元的內(nèi)容傳送去專用寄存器 B對(duì) 0FH 單元的尋址可有三種方法 1 R 尋址 2 R 間址 3 Direct 尋址 請(qǐng)分別編寫出相應(yīng)程序比較其字節(jié)數(shù)機(jī)器周期數(shù)和優(yōu)缺點(diǎn) 解 1 MOV R00FH MOV BR0 2 MOV R00FH MOV BR0 3 MOV B0FH 1 占四個(gè)字節(jié)數(shù)四個(gè)機(jī)器周期數(shù) 2 占四個(gè)字節(jié)數(shù)四個(gè)機(jī)器周期數(shù) 3 占三個(gè)字節(jié) 數(shù)三個(gè)機(jī)器周期數(shù)所以第三種方法最好 319 設(shè) R0 7EH DPTR 10FEH片 內(nèi) RAM 7EH 單元的內(nèi)容為 0FFH7F單元的內(nèi)容為 38H 試為下列程序的每條指令注釋其執(zhí)行結(jié)果 INC R0 INC R0 INC R0 INC DPTR INC DPTR INC DPTR 解 INC R0將 7EH 單元的內(nèi)容加1即 7EH←00H INC R0 R0←7FH INC R0 7FH←39H INC DPTR DPTR←10FFH INC DPTR DPTR←1100H INC DPTR DPTR←1101H 28 320 試編程引用與運(yùn)算判斷某 8 位二進(jìn)制數(shù)是奇數(shù)還是偶數(shù) 解 設(shè)該 8 位二進(jìn)制數(shù)放在累加器 A 中如果是奇數(shù)將 F0 標(biāo)志置 1如果是偶數(shù)將 F0 標(biāo)志 清 0 ORG 2000H STARTMOV R0A ANL A01H JZ LOOP MOV AR0 SETB PSW5 SJMP HERE LOOP MOV AR0 CLR PSW5 HERE SJMP HERE 321 試編程引用或運(yùn)算使任意 8 位二進(jìn)制數(shù)的符號(hào)位必為1 解 ORG 2000H STARTORL A80H 322 請(qǐng)思考引用異或運(yùn)算怎樣可使一帶符號(hào)數(shù)的符號(hào)位改變數(shù)據(jù)位不變?cè)鯓涌墒乖摂?shù)必 然變0 解 將該數(shù)與 80H 相異或就可以改變其符號(hào)位而數(shù)值位保持不變 將該數(shù)與其本身相異或就可以使該數(shù)必然為 0 323 要選擇工作寄存器組可有幾種編程辦法 解可以采用如下三種辦法 1 SETB PSW4 SETB PSW3 2 ORL PSW18H 3 MOV PSW18H 324 設(shè) ROM片內(nèi) RAM片外 RAM 各有關(guān)單元的內(nèi)容示如下圖問執(zhí)行下列程序段后 A 0000 AJMP 030H ORG 0030H 0030 MOV R032H 29 MOV AR0 MOV R1A MOVX AR1 MOVC AADPTR 30H 33H 32H 31H 30H 31H 32H 33H 片內(nèi)RAM 30H 33H 32H 31H 32H 30H 33H 31H 片外RAM 0030H 0033H 0032H 0031H 30H 33H 31H 32H ROM 解 A 30H 325 若在片內(nèi) RAM30H 單元中有二位壓縮的 BCD 碼 95H問執(zhí)行下列程序后片內(nèi) RAM30H 單 元的內(nèi)容是什么31H32H 的內(nèi)容又是什么并寫出 BCD 碼十進(jìn)制調(diào)整的過程 MOV R030H MOV AR0 ANL A0FH MOV R3A MOV AR0 SWAP A ANL A0FH ADD AR3 DA A MOV R0A MOV R3A INC R0 ANL A0FH MOV R0A INC R0 MOV AR3 ANL A0F0H SWAP A MOV R0A RET 解 30H 14H 31H 04H 32H 01H 30 第 4 章 MCS51 匯編語言程序設(shè)計(jì) 41 請(qǐng)解釋下列名詞 機(jī)器碼 助記符 操作碼 操作數(shù) 源程序 目標(biāo)程序 匯編程序 匯編語言 匯編語言程 序 匯編指令 匯編 機(jī)器匯編 人工匯編 解機(jī)器碼 二進(jìn)制代碼形式的指令 操作碼 用指令的英文縮寫表示便于辨識(shí)指令的功能也便于記憶稱為助記符 操作數(shù) 是參與該指令操作的操作數(shù)或操作數(shù)所在的地點(diǎn) 尋址方式 有時(shí)用一個(gè)表達(dá)式來表 示一個(gè)操作數(shù)例如TAB 十 1 源程序 匯編語言程序與高級(jí)語言程序 目標(biāo)程序 二進(jìn)制代碼形式的程序 匯編程序 機(jī)器匯編時(shí)用到的軟件 匯編語言 用縮寫的英文單詞表示操作碼用字母數(shù)字表示操作數(shù)的語言 匯編語言程序 用匯編指令書寫的程序 匯編指令 用縮寫的英文單詞表示操作碼用字母數(shù)字表示操作數(shù)的指令 匯編 將匯編語言源程序翻譯成目標(biāo)程序的過程 機(jī)器匯編 由機(jī)器完成匯編工作 人工匯編 由編程人員手工完成匯編工作 42 經(jīng)過匯編后下列各條語句的標(biāo)號(hào)將是什么數(shù)值 ORG 2000H TABLE DS 10 WORD DB 15202530 FANG EQU 1000H BEGIN MOV AR0 解TABLE 2000HWORD 200AHFANG 1000HBEGIN 200EH 43 下列程序段經(jīng)過匯編后從 2000H 開始的各有關(guān)存儲(chǔ)單元的內(nèi)容將是什么 ORG 2000H TAB DS 5 DB 10H10 DW 2100H ORG 2050H 31 DW TAB DB WORK 解從 2000H 到 2004H 單元內(nèi)容為預(yù)留的 2005H 10H 2006H 0AH 2007H 00H 2008H 21H 2050H 00H 2051H 20H 2052H 57H 2053H 4FH 2054H 52H 2055H 4BH 44 下列程序段經(jīng)過匯編后從 1000H 開始的各有關(guān)存儲(chǔ)單元的內(nèi)容將是什么 ORG 1000H TAB1 EQU 1234H TAB2 EQU 3000H DB START DW TAB1TAB2 解 1000H 53H 1001H 54H 1003H 52H 1004H 54H 1005H 34H 1006H 12H 1007H 00H 1008H 30H 45 有程序如下 CLR C CLR RS1 CLR RS0 MOV A38H MOV R0A MOV 29HR0 SETB RS0 MOV R1A MOV 26HA MOV 28HC 要求 1 區(qū)分哪些是位操作指令哪些是字節(jié)操作指令 32 2 寫出程序執(zhí)行后片內(nèi) RAM 有關(guān)單元的內(nèi)容 3 譯成機(jī)器碼 4 按匯編語言程序的標(biāo)準(zhǔn)格式書寫要求有各條指令的存放地址和必要的注釋 解 1 位操作指令為 CLRSETB 指令再加上MOV 28HC 2 C 0 RS1 0 RS0 1 A 38H R0 38H 29H 38H R1 38H 26H 38H 28H 0 3 4 略 46 試編程 將兩個(gè)四位二進(jìn)制數(shù)并存與一個(gè)字節(jié) 解 設(shè)兩個(gè)四位二進(jìn)制數(shù)分別存放于 R0 和 R1 的低半字節(jié)合并后的結(jié)果存于 R2 中 ORG 2000H STARTMOV AR1 SWAP A ORL AR0 MOV R2A SJMP 47 試編程 有兩個(gè)雙字節(jié)壓縮的 BCD 碼數(shù)相加設(shè)這兩待加數(shù)分別按先低后高原則存放在 30H 31H 和 40H41H 單元和要求放回 30H31H 單元 解 ORG 0050H STARTMOV R030H MOV AR0 ADD A40H DA A MOV R0 A INC R0 MOV AR0 ADDC A41H DAA MOV R0 A SJMP END START 48 試編程將累加器 A內(nèi)容低四位送片外 RAM 7AH 單元高 4位送片外 RAM 7BH單元7 AH 33 7BH 單元的高 4 位均清零 解 ORG 0050H STARTMOV 7CHA ANL 7AH0FH MOV 7AHA MOV A7CH ANL A0F0H SWAP A MOV 7BH A SJMP END START 49 試編程 將片內(nèi) RAM 50H51H 單元二個(gè)無符號(hào)數(shù)中較小的數(shù)存與 60H 單元 解 ORG 2000HH STARTCLR C MOV A50H SUBB A51H JC LESS MOV 60H 51H SJMP ELSE LESS MOV 60H50H ELSE 410 試編程 將片內(nèi) RAM 60H~69H 單元中的十個(gè)數(shù)相加和的低 8 位存入 7EH高 8 位存入 7FH 解 ORG 2000H STARTMOV 7FH00H MOV R109H MOV R060H MOV AR0 INC R0 LOOP ADD AR0 JNC LP1 INC 7FH 34 LP1 INC R0 DJNZ R1LOOP MOV 7EHA DONE 411 試編程 統(tǒng)計(jì)從片內(nèi) RAM 60H 單元起所存 60 個(gè)數(shù)中0的個(gè)數(shù)并存入工作寄存器 R7 解 按照題意看本題所用單片機(jī)是 52 子系列機(jī)型符合題意要求的程序?yàn)? ORG 2000HH STARTMOV R700H MOV R160 MOV R060H LOOP MOV AR0 JNZ NPLS INC R7 NPLS INC R0 DJNZ R1LOOP DONE 412 試編程將 ROM 中自 2000H 單元起的 100 個(gè)數(shù)按序移至片外 RAM 自 2080H- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī) 原理 應(yīng)用 課后 習(xí)題 答案 張?zhí)m紅
鏈接地址:http://ioszen.com/p-8940612.html