單片微機(jī)原理及應(yīng)用--徐春輝---電子工業(yè)出版社習(xí)題答案
《單片微機(jī)原理及應(yīng)用--徐春輝---電子工業(yè)出版社習(xí)題答案》由會員分享,可在線閱讀,更多相關(guān)《單片微機(jī)原理及應(yīng)用--徐春輝---電子工業(yè)出版社習(xí)題答案(150頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第 1 章 1 簡述計(jì)算機(jī)的基本組成結(jié)構(gòu) 答 計(jì)算機(jī)的基本組成結(jié)構(gòu)由輸入設(shè)備 輸出設(shè)備 運(yùn) 算器 控制器和存儲器等五大部件構(gòu)成 2 簡述單片微型計(jì)算機(jī)系統(tǒng)應(yīng)用和開發(fā)的特點(diǎn) 答 單片微型計(jì)算機(jī)系統(tǒng)應(yīng)用和開發(fā)的特點(diǎn)是需要進(jìn)行 軟硬兩方面的設(shè)計(jì)和調(diào)試 第 2 章 1 為什么微型計(jì)算機(jī)要采用二進(jìn)制 十六進(jìn)制代碼能為微 型計(jì)算機(jī)直接執(zhí)行嗎 為什么要使用十六進(jìn)制數(shù) 答 在所有數(shù)制中 只有二進(jìn)制數(shù)最容易用電路來表達(dá) 據(jù)此構(gòu)建的計(jì)算機(jī)結(jié)構(gòu)也是最簡單的 十六進(jìn)制代碼不能 為計(jì)算機(jī)直接執(zhí)行 只有二進(jìn)制代碼才能為計(jì)算機(jī)所識別 和執(zhí)行 二進(jìn)制代碼過于冗長 而其對應(yīng)的十六進(jìn)制數(shù)則 更為簡潔 而且此二種數(shù)制的相互轉(zhuǎn)換非常方便 這就是 常常使用十六進(jìn)制數(shù)來表示其對應(yīng)的二進(jìn)制數(shù)的原因 2 將下列各二進(jìn)制數(shù)分別轉(zhuǎn)換為十進(jìn)制數(shù)和十六進(jìn)制數(shù) 1 11010B 2 110100B 3 10101011B 4 11111B 答 1 11010B 26 1AH 2 110100B 52 34H 3 10101011B 171 ABH 4 11111B 31 1FH 3 將下列各數(shù)分別轉(zhuǎn)換為二進(jìn)制數(shù)和十六進(jìn)制數(shù) 1 129D 2 253D 3 0 625 4 111 111 答 1 129D 10000001B 81H 2 253D 11111101B FDH 3 0 625 0 101B 0 AH 4 111 111 01101111 000111B 6F 1CH 4 把下列十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)和二進(jìn)制數(shù) 1 AAH 2 BBH 3 C CH 4 DE FCH 5 ABC DH 6 128 08H 答 1 AAH 170 10101010B 2 BBH 187 10111011B 3 C CH 12 75 1100 1100H 4 DE FCH 222 984375 11011110 1111110B 5 ABC DH 2748 8125 101010111100 1101B 6 128 08H 296 03125 100101000 00001 5 什么叫原碼 反碼及補(bǔ)碼 答 在機(jī)器數(shù)中 最高位為符號位 正數(shù)的符號位用 0 表示 負(fù)數(shù)的符號位用 1 表示 其余為該數(shù)的絕對值 這 種表示法稱為原碼 正數(shù)的反碼和原碼相同 負(fù)數(shù)的反碼 為其原碼除符號位外其他各位按位取反得所值 正數(shù)的補(bǔ) 碼和原碼相同 負(fù)數(shù)的補(bǔ)碼為反碼加 1 6 已知原碼如下 寫出其反碼及補(bǔ)碼 其最高位為符號位 1 X 原 01011001 2 X 原 11011011 3 X 原 11111100 答 1 X 反 X 補(bǔ) X 原 01011001 2 X 反 10100100 X 補(bǔ) 10100101 3 X 反 10000011 X 補(bǔ) 10000100 7 當(dāng)微機(jī)把下列數(shù)視為無符號數(shù)時(shí) 它們相應(yīng)的十進(jìn)制數(shù) 為多少 若把它們視為補(bǔ)碼 最高位為符號位 那么它們 相應(yīng)的十進(jìn)制數(shù)又是多少 1 10001110 2 10110000 3 00010001 4 01110101 答 視為無符號數(shù)時(shí) 1 10001110B 142 2 10110000B 176 3 00010001B 17 4 01110101B 117 若把它們視為補(bǔ)碼 最高位為符號位 那么它們相應(yīng)的 十進(jìn)制數(shù)是 1 10001110B 114 2 10110000B 80 3 00010001B 17 4 01110101B 117 8 先將下列十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 然后分別完成邏 輯乘 邏輯加和邏輯異或操作 1 33H 和 BBH 2 ABH 和 FFH 3 78H 和 0FH 答 1 X 33H 00110011B Y BBH 10111011B X Y 00110011B X Y 10111011B X Y 10001000B 2 X ABH 10101011B Y FFH 11111111B X Y 10101011B X Y 11111111B X Y 01010100B 3 X 78H 01111000B Y 0FH 00001111B X Y 00001000B X Y 01111111B X Y 01110111B 9 已知 x 和 y 試分別計(jì)算 x y 補(bǔ) 和 x y 補(bǔ) 并指出是否產(chǎn) 生溢出 設(shè)補(bǔ)碼均用 8 位表示 1 x 1001110 y 0010110 2 x 0101101 y 1100100 3 x 0101110 y 0111011 4 x 1000101 y 0110011 答 1 x y 補(bǔ) 01100100B 無溢出 x y 補(bǔ) 00111000B 無溢出 2 x y 補(bǔ) 11001001B 無溢出 x y 補(bǔ) 10010001B 溢出 3 x y 補(bǔ) 00001101B 無溢出 x y 補(bǔ) 10010111B 無溢出 2 x y 補(bǔ) 10001000 B 無溢出 x y 補(bǔ) 11101110B 無溢出 10 寫出下列各數(shù)的 BCD 碼 1 45 2 98 3 124 4 1998 答 1 45 0100 0101 BCD 2 98 1001 1000 BCD 3 124 0001 0010 0100 BCD 4 1998 0001 1001 1001 1000 BCD 11 用十六進(jìn)制形式寫出下列字符的 ASCII 碼 1 CD 2 COMPUTER 3 HELLO 4 F365 答 1 43H 44H 2 43H 4FH 4DH 50H 55H 54H 45H 52H 3 48H 45H 4CH 4CH 4FH 4 46H 33H 36H 35H 12 ALU 是什么部件 它能完成什么運(yùn)算功能 答 ALU 稱為算術(shù)邏輯部件 它能完成算術(shù)運(yùn)算和邏輯 運(yùn)算 13 累加器有何用處 答 累加器通常用于提供 ALU 的一個(gè)運(yùn)算數(shù)據(jù)或暫存 ALU 的運(yùn)算結(jié)果 此外還能使存儲其中的數(shù)據(jù)左移或右移 14 控制字是什么意思 試舉個(gè)例子說明之 答 控制字是一個(gè)二進(jìn)制數(shù) 其各位代表相應(yīng)控制信號 的邏輯狀態(tài) 例如 CON LAEALBEBLCECLDED 10010000 表示要將寄存器 B 的內(nèi)容傳送入寄存器 A 中去 15 ROM 和 RAM 各有何特點(diǎn)和用處 答 ROM 為只能讀出的存儲器 可用于存放固定的程序 和數(shù)據(jù) ROM 為可在線寫入和讀出的存儲器 可用于隨時(shí)寫入或 讀出數(shù)據(jù) 也可用于寫入隨時(shí)有可能改變的用戶程序 16 為什么要建立 地址 這個(gè)概念 答 因?yàn)榇鎯ζ鞯拇鎯卧芏?為區(qū)分不同的存儲單 元必須給每個(gè)存儲單元編上地址 17 除地線公用外 5 根地址線和 11 根地址線各可選多少 個(gè)地址 答 2 5 32 個(gè)地址 211 2048 個(gè)地址 18 譯碼器有何用處 答 譯碼器用于產(chǎn)生和輸入代碼相對應(yīng)的控制信號 如 果是存儲器地址譯碼器則其能根據(jù)輸入的地址信號產(chǎn)生存 儲器相應(yīng)單元的選通信號 19 存儲地址寄存器 MAR 和存儲數(shù)據(jù)寄存器 MDR 各有何用處 答 MAR 用以接受來自 PC 的地址號 MDR 用以接受來自總線的數(shù)據(jù) 此二者均為存儲器的主要輔件 20 微型計(jì)算機(jī)的基本結(jié)構(gòu)是怎樣的 包括哪些主要部件 答 微型計(jì)算機(jī)包括微處理器 CPU 隨機(jī)存取存儲 器 RAM 只讀存儲器 ROM I O 接口電路及外設(shè)組 成 前面四大部分通過系統(tǒng)總線連接在一起 21 指令 指令系統(tǒng)和程序三者間有什么區(qū)別和聯(lián)系 答 指令是指揮計(jì)算機(jī)工作的指示和命令 而指令系統(tǒng) 則是一臺計(jì)算機(jī)所擁有的所有指令的集合 程序則是為了 實(shí)現(xiàn)特點(diǎn)功能而將取自指令系統(tǒng)的指令按照一定順序排列 起來的組織體 22 控制部件包括哪些主要環(huán)節(jié) 各有何用處 答 1 指令部件 作用是獲取來自程序存儲器的 二進(jìn)制指令操作碼并將其譯成控制動(dòng)作信號送入控制矩陣 2 時(shí)序部件 作用是用于產(chǎn)生微操作控制部件所需 的定時(shí)脈沖信號 3 控制矩陣 控制矩陣可以為 ID 輸出信號配上節(jié) 拍電位和節(jié)拍脈沖 也可將外部進(jìn)來的控制信號組合 共 同形成相應(yīng)的微操作控制信號序列 控制相關(guān)部件按照嚴(yán) 格的先后順序執(zhí)行指令所要求的各種微操作 最終完成規(guī) 定的操作 23 環(huán)形計(jì)數(shù)器有何用處 什么叫環(huán)形字 答 環(huán)形計(jì)數(shù)器用于產(chǎn)生機(jī)器節(jié)拍 若將環(huán)形計(jì)數(shù)器的 輸出視為一個(gè)字 則這個(gè)字就稱為環(huán)形字 24 試說明下列各部件的作用 1 程序計(jì)數(shù)器 PC 2 指令寄存器 IR 3 指令譯 碼器 ID 答 1 程序計(jì)數(shù)器 PC 是在控制器中設(shè)置的一個(gè)專用 寄存器 用來存放當(dāng)前要執(zhí)行的指令在存儲器中的位置信 息 即存儲器地址 以便根據(jù)此地址去讀取指令 2 指令寄存器 IR 是用來暫時(shí)存放從存儲器中取出的當(dāng) 前要執(zhí)行指令的操作碼的這么一個(gè)寄存器 3 指令譯碼器 ID 是對指令操作碼進(jìn)行分析 在其輸出 端產(chǎn)生各種控制電平 以形成相應(yīng)的微操作 用以實(shí)現(xiàn)指 令執(zhí)行過程中所需要的功能控制的這么一個(gè)譯碼器 25 什么叫例行程序 什么叫機(jī)器周期 取指周期和執(zhí)行 周期 本章所論模型式計(jì)算機(jī)的機(jī)器周期包括幾個(gè)時(shí)鐘周 期 機(jī)器節(jié)拍 機(jī)器周期是否一定是固定不變的 答 例行程序是由控制部件內(nèi)部的結(jié)構(gòu)確定了的各條指 令的執(zhí)行步驟 機(jī)器周期是指一條指令從取指到執(zhí)行完所 需的時(shí)鐘周期數(shù) 取指周期為從 PC 開始輸出使程序存儲器 中的指令進(jìn)入 IR 到 PC 1 為止的時(shí)鐘周期數(shù) 執(zhí)行周期為從 指令進(jìn)入控制器起至執(zhí)行完的時(shí)鐘周期數(shù) 本章所論模型 計(jì)算機(jī)的機(jī)器周期包括 6 個(gè)時(shí)鐘周期 在這里機(jī)器周期是 固定的 但是對于不同的計(jì)算機(jī)而言 機(jī)器周期就不一定 是固定的了 26 何謂總線 它有哪幾類 它們的主要功能是什么 答 將多個(gè)裝置或部件連接起來并傳送信息的公共通道 稱為總線 總線通常有如下三種類型 數(shù)據(jù)總線 DB 專門傳送數(shù)據(jù)信息 地址總線 AB 專門傳送地址信息 控制總線 CB 專門傳送控制信息 27 微型計(jì)算機(jī)系統(tǒng)的硬件和軟件包括哪些部分 各部分 的作用是什么 答 硬件系統(tǒng)主要包括主機(jī)箱 顯示器 鍵盤和打印機(jī) 等 主機(jī)箱內(nèi)裝有主機(jī)板 光盤和硬盤驅(qū)動(dòng)器 電源等 CPU 內(nèi)存儲器和 I O 接口電路等裝在主機(jī)板上 一般主機(jī) 板上還留有擴(kuò)展插槽 以備用戶擴(kuò)展其他功能 硬件系統(tǒng) 是運(yùn)行各種軟件的支持平臺 計(jì)算機(jī)的軟件系統(tǒng)包括系統(tǒng)軟件和應(yīng)用軟件 系統(tǒng)軟件 是為了最大限度地發(fā)揮計(jì)算機(jī)的功能 便于使用 管理和 維護(hù)計(jì)算機(jī)硬件的軟件 它也是應(yīng)用軟件的支撐軟件 可 以為應(yīng)用軟件提供很好的運(yùn)行環(huán)境 應(yīng)用軟件是指用戶為 了解決某一領(lǐng)域的實(shí)際問題而編制的計(jì)算機(jī)應(yīng)用程序 具 有明顯的針對性和專用性 28 什么叫單片機(jī) 和一般型計(jì)算機(jī)相比 單片機(jī)有何特 點(diǎn) 答 單片是在一塊芯片上集成了中央處理器 CPU 存儲器 RAM ROM 定時(shí)器 計(jì)數(shù)器 中斷控制 各種 輸入 輸出 I O 接口 如并行 I O 口 串行 I O 口和 A D 轉(zhuǎn)換器 等為一體的器件 一般微型計(jì)算機(jī)的基本結(jié)構(gòu)由 CPU 運(yùn)算器 控制器 存儲器 輸入設(shè)備和輸出設(shè)備五大部分組成 各部分通過 外部總線連接而成為一體 單片機(jī)的結(jié)構(gòu)是在一塊芯片上 集成了中央處理器 CPU 存儲器 定時(shí)器 計(jì)數(shù)器 中 斷控制 各種輸入 輸出接口 如并行 I O 口 串行 I O 口 和 A D 轉(zhuǎn)換器 等 它們通過單片機(jī)內(nèi)部總線連接而成為 一體 29 除了單片機(jī)這一名稱之外 單片機(jī)還可稱為 和 答 微控制器和嵌入式控制器 30 MCS 51 系列單片機(jī)的基本型芯片分別為哪幾種 它們 的差別是什么 答 基本芯片為 8031 8051 8751 8031 內(nèi)部包括 1 個(gè) 8 位 CPU 128BRAM 21 個(gè)特殊功能 寄存器 SFR 4 個(gè) 8 位并行 I O 口 1 個(gè)全雙工串行口 2 個(gè) 16 位定時(shí)器 計(jì)數(shù)器 但片內(nèi)無程序存儲器 需外擴(kuò) EPROM 芯片 8051 是在 8031 的基礎(chǔ)上 片內(nèi)又集成有 4KBROM 作 為程序存儲器 是 1 個(gè)程序不超過 4KB 的小系統(tǒng) 8751 是在 8031 的基礎(chǔ)上 增加了 4KB 的 EPROM 它構(gòu) 成了 1 個(gè)程序小于 4KB 的小系統(tǒng) 用戶可以將程序固化在 EPROM 中 可以反復(fù)修改程序 31 MCS 51 系列單片機(jī)與 51 系列單片機(jī)的異同點(diǎn)是什么 答 51 系列單片機(jī)與 MCS 51 系列單片機(jī)的內(nèi)核結(jié)構(gòu)和 指令系統(tǒng)完全兼容 前者相比后者制造工藝得到改進(jìn) 并 且片內(nèi)資源有所增加 32 說明單片機(jī)主要應(yīng)用在哪些領(lǐng)域 答 單片機(jī)主要應(yīng)用領(lǐng)域?yàn)?工業(yè)自動(dòng)化 智能儀器儀 表 消費(fèi)類電子產(chǎn)品 通信方面 武器裝備 終端及外部 設(shè)備控制 多機(jī)分布式系統(tǒng) 第 3 章 1 AT89S51 單片機(jī)的片內(nèi)都集成了哪些功能部件 答 AT89S51 單片機(jī)的片內(nèi)都集成了如下功能部件 1 1 個(gè)微處理器 CPU 2 128 個(gè)數(shù)據(jù)存儲器 RAM 單元 3 4K Flash 程序存儲器 4 4 個(gè) 8 位 可編程并行 I O 口 P0 口 P1 口 P2 口 P3 口 5 1 個(gè)全雙工串行口 6 2 個(gè) 16 位定時(shí)器 計(jì)數(shù)器 7 1 個(gè)看門狗定時(shí)器 8 一個(gè)中斷系統(tǒng) 5 個(gè)中斷源 2 個(gè) 優(yōu)先級 9 25 個(gè)特殊功能寄存器 SFR 10 1 個(gè) 看門狗定時(shí)器 2 說明 AT89S51 單片機(jī)的 引腳接高電平或低電平的區(qū)別 答 當(dāng)腳為高電平時(shí) 單片機(jī)讀片內(nèi)程序存儲器 4K 字 節(jié) Flash 中的內(nèi)容 但在 PC 值超過 0FFFH 即超出 4K 字 節(jié)地址范圍 時(shí) 將自動(dòng)轉(zhuǎn)向讀外部程序存儲器內(nèi)的程序 當(dāng)腳為低電平時(shí) 單片機(jī)只對外部程序存儲器的地址為 0000H FFFFH 中的內(nèi)容進(jìn)行讀操作 單片機(jī)不理會片內(nèi)的 4K 字節(jié)的 Flash 程序存儲器 3 單片機(jī)的存儲器在物理結(jié)構(gòu)上和邏輯上有何區(qū)別 答 單片機(jī)存儲器的邏輯空間是指由單片機(jī) CPU 所確定 的可以尋址的空間 而物理空間是指有具體物理器件相對 應(yīng)可以實(shí)際存儲數(shù)據(jù)的那部分邏輯空間 4 AT89S51 單片機(jī)中執(zhí)行程序的地址放在哪里 是幾位二 進(jìn)制數(shù) 最大尋址范圍是多少 程序狀態(tài)字 PSW 各位的定 義是什么 答 PC 16 位 64KB 程序狀態(tài)字 PSW 各位的定義是 1 Cy PSW 7 進(jìn)位標(biāo)志位 2 Ac PSW 6 輔助進(jìn)位標(biāo)志位 3 F0 PSW 5 用戶設(shè)定標(biāo)志位 4 RS1 RS0 PSW 4 PSW 3 4 組工作寄存器區(qū)選擇 控制位 5 OV PSW 2 溢出標(biāo)志位 6 PSW 1 位 保留位 未做定義 不可使用 7 P PSW 0 奇偶標(biāo)志位 5 什么叫堆棧 AT89S51 中堆棧的最大容量是多少 答 所謂堆棧 是指一個(gè)連續(xù)的數(shù)據(jù)存儲區(qū)域 其操作 原則為 先進(jìn)后出 或 后進(jìn)先出 AT89S51 中堆棧的最大容量理論上可以達(dá)到 128B 6 開機(jī)復(fù)位后 CPU 使用哪一組工作寄存器 它們的地址 是什么 如何改變當(dāng)前工作寄存器組 答 第 0 組 地址是 00H 07H 通過修改 PSW 中 RS1 RS0 兩位的值來改變當(dāng)前工作寄存器組 7 64KB 程序存儲器空間有 5 個(gè)單元地址對應(yīng) AT89S51 單片 機(jī) 5 個(gè)中斷源的中斷入口地址 請寫出這些單元的入口地 址及對應(yīng)的中斷源 答 64K 程序存儲器空間中 5 個(gè)特殊單元所分別對應(yīng)的 5 個(gè)中斷源的中斷服務(wù)程序入口地址如 下表所示 入口地址 中斷源 0003H 外部中斷 0 000BH 定時(shí)器 0 T0 0013H 外部中斷 1 001BH 定時(shí)器 1 T1 0023H 串行口 8 在程序設(shè)計(jì)時(shí) 為什么有時(shí)要對復(fù)位后的堆棧指針 SP 重新賦值 如果在操作中需要使用三組工作寄存器 SP 的 初值應(yīng)該至少多大 答 系統(tǒng)復(fù)位后 SP 初始化為 07H 使得堆棧事實(shí)上由 08H 單元開始 考慮到 08H 1FH 單元分屬于工作寄存器區(qū) 的 1 3 組 如果程序設(shè)計(jì)中要用到這些寄存器組 則必須 在復(fù)位后對堆棧指針 SP 重新賦值 最好把 SP 值改置為 1FH 或更大的值如 60H SP 的初始值越小 堆棧深度就越深 堆棧指針的值可以由軟件改變 因此堆棧在內(nèi)部 RAM 中的 位置比較靈活 如果在操作中需要使用三組工作寄存器 SP 的初值至少 應(yīng)該為 17H 9 AT89S51 的尋址范圍是多少 最多可以配置多大容量的 外部 ROM 和多大容量的外部 RAM 答 64KB 64KB 64KB 10 AT89S51 單片機(jī)運(yùn)行出錯(cuò)或程序進(jìn)入死循環(huán)時(shí)如何擺脫 困境 答 通過硬件復(fù)位 11 AT89S51 單片機(jī)擴(kuò)展系統(tǒng)中片外程序存儲器和片外數(shù)據(jù) 存儲器 使用相同的地址編碼 是否會在數(shù)據(jù)總線上出現(xiàn) 爭總線現(xiàn)象 為什么 答 不會 因?yàn)檫@兩種存儲器使用的選通信號不同 片 外程序存儲器使用 作為輸出使能控制信號 而片外數(shù)據(jù) 存儲器分別使用 和 作為讀寫控制信號 12 AT89S51 的 P0 口和 P2 口各有何作用 P0 口為什么要 外接鎖存器 答 P0 口通常作為分時(shí)復(fù)用的地址 數(shù)據(jù)總線使用 作為 地址總線使用時(shí)用于提供 16 位地址總線的低 8 位地址信號 P2 口通常用于提供 16 位地址總線的高 8 位地址信號 在前 述功能不使用的情況下 這兩端口也可以作為一般的 I O 使 用 P0 口外接鎖存器的目的是使 CPU 發(fā)出的地址信號在 P0 口作為數(shù)據(jù)通道時(shí)依然保持有效 13 AT89S51 的 ALE 引腳有何作用 AT89S51 不接外部 RAM 時(shí) ALE 信號有何特點(diǎn) 答 AT89S51 的 ALE 引腳用于對低 8 位地址信號的鎖存 控制 AT89S51 不接外部 RAM 時(shí) ALE 信號是頻率為時(shí)鐘 頻率六分之一的固定周期信號 14 舉例說明單片機(jī)工業(yè)控制系統(tǒng)中掉電保護(hù)的意義和方 法 答 單片機(jī)工業(yè)控制系統(tǒng)在運(yùn)行程序的過程中 如果發(fā) 生掉電故障將會丟失 RAM 和寄存器中的數(shù)據(jù) 其后果有時(shí) 是很嚴(yán)重的 為此 需要掉電保護(hù)功能 進(jìn)行掉電保護(hù)處 理 掉電保護(hù)方式是通過對 SFR 中的 PCON 地址 87H 相應(yīng) 位置 1 而啟動(dòng)的 當(dāng) CPU 執(zhí)行一條置 PCON 1 位 PD 為 1 的指令后 系統(tǒng)進(jìn)入掉電工作方式 在這種工作方式下 內(nèi)部振蕩器停止工作 由于沒有振蕩時(shí)鐘 因此 所有的 功能部件都停止工作 但內(nèi)部 RAM 區(qū)和特殊功能寄存器的 內(nèi)容被保留 而端口的輸出狀態(tài)值都保存在對應(yīng)的 SFR 中 掉電模式的退出有兩種方法 硬件復(fù)位和外部中斷 硬件 復(fù)位時(shí)要重新初始化 SFR 但不改變片內(nèi) RAM 的內(nèi)容 當(dāng) VCC恢復(fù)到正常工作水平時(shí) 只要硬件復(fù)位信號維持 10ms 便可使單片機(jī)退出掉電運(yùn)行模式 15 內(nèi)部 RAM 中 位地址為 40H 88H 的位 該位所在字 節(jié)的字節(jié)地址分別為 和 答 28H 88H 16 片內(nèi)字節(jié)地址為 2AH 單元最低位的位地址是 片內(nèi)字節(jié)地址為 88H 單元的最低位的位地址為 答 50H 88H 17 若 A 中的內(nèi)容為 63H 那么 P 標(biāo)志位的值為 答 P 標(biāo)志位的值為 0 18 在 AT89S51 單片機(jī)中 如果采用 6 MHz 晶振 那么一 個(gè)機(jī)器周期為 答 2 s 19 判斷下列說法是否正確 A 使用 AT89S51 且引腳 1 時(shí) 仍可外擴(kuò) 64 KB 的 程序存儲器 B 區(qū)分片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的 方法是 看其位于地址范圍的低端還是高端 C 在 AT89S51 中 為使準(zhǔn)雙向的 I O 口工作在輸入方 式 必須事先預(yù)置為 1 D PC 可以視為程序存儲器的地址指針 答 A 錯(cuò) B 錯(cuò) C 對 D 對 20 AT89S51 單片機(jī)復(fù)位后 R4 所對應(yīng)的存儲單元的地址 為 因上電時(shí) PSW 這時(shí)當(dāng)前的工作 寄存器區(qū)是 組工作寄存器區(qū) 答 04H 00H 第 0 21 判斷以下有關(guān) PC 和 DPTR 的結(jié)論是否正確 A 指令可以訪問寄存器 DPTR 而 PC 不能用指令訪問 B 它們都是 16 位寄存器 C 在單片機(jī)運(yùn)行時(shí) 它們都具有自動(dòng)加 1 的功能 D DPTR 可以分為 2 個(gè) 8 位的寄存器使用 但 PC 不能 答 A 對 B 對 C 錯(cuò) D 對 22 內(nèi)部 RAM 中 可作為工作寄存器區(qū)的單元地址為 H H 答 字節(jié)地址 00H 1FH 的單元可作為工作寄存器區(qū) 23 判斷下列說法是否正確 A AT89S51 中特殊功能寄存器 SFR 就是片內(nèi) RAM 中的一部分 B 片內(nèi) RAM 的位尋址區(qū) 只能供位尋址使用 而不 能進(jìn)行字節(jié)尋址 C AT89S51 共有 21 個(gè)特殊功能寄存器 它們的位都是 可用軟件設(shè)置的 因此是可以進(jìn)行位尋址的 D SP 稱為堆棧指針 堆棧是單片機(jī)內(nèi)部的一個(gè)特殊區(qū) 域 與 RAM 無關(guān) 答 A 錯(cuò) B 錯(cuò) C 錯(cuò) D 錯(cuò) 24 在程序運(yùn)行中 PC 的值是 A 當(dāng)前正在執(zhí)行指令的前一條指令的地址 B 當(dāng)前正在執(zhí)行指令的地址 C 當(dāng)前正在執(zhí)行指令的下一條指令的首地址 D 控制器中指令寄存器的地址 答 C 26 AT89S51 單片機(jī)程序存儲器的尋址范圍是由程序計(jì)數(shù)器 PC 的位數(shù)所決定的 因?yàn)?AT89S51 的 PC 是 16 位的 因此 其尋址的范圍為 KB 答 64 27 AT89S51 的 4 個(gè)并行雙向口 P0 P3 的驅(qū)動(dòng)能力各為多 少 要想獲得較大的輸出驅(qū)動(dòng)能力 是采用低電平輸出還 是采用高電平輸出 答 P0 口每位可驅(qū)動(dòng) 8 個(gè) LSTTL 輸入 而 P1 P2 P3 口 的每一位的驅(qū)動(dòng)能力 只有 P0 口的一半 當(dāng) P0 口的某位 為高電平時(shí) 可提供 400 A 的電流 當(dāng) P0 口的某位為低電 平 0 45V 時(shí) 可提供 3 2mA 的灌電流 如低電平允許提 高 灌電流可相應(yīng)加大 所以 任何一個(gè)口要想獲得較大 的驅(qū)動(dòng)能力 只能用低電平輸出 28 當(dāng) AT89S51 單片機(jī)運(yùn)行出錯(cuò)或程序陷入死循環(huán)時(shí) 如 何擺脫困境 答 通過硬件復(fù)位 練習(xí)與思考題 4 1 按長度分 51 系列單片機(jī)的指令有 1 字節(jié)的 2 字節(jié)的和 3 字節(jié)的 2 按 指 令 的 執(zhí) 行 時(shí) 間 分 51 系 列 單 片 機(jī) 的 指 令 有 1 2 和 4 機(jī) 器 周 期 的 指 令 3 51 系列單片機(jī)匯編語言指令格式中 唯一不可缺少 的部分是 B A 標(biāo)號 B 操作碼 C 操作數(shù) D 注釋 4 簡述 8051 的尋址方式和每種尋址方式所涉及的尋址 空間 答 尋址方式 尋址空間 操作數(shù)的存放空間 立即尋址 程序存儲器 直接尋址 片內(nèi) RAM 低 128 字節(jié) 特殊功能寄存器 寄存器尋 址 工作寄存器 R0 R7 A B DPTR 寄存器間 接尋址 片內(nèi) RAM R0 R1 SP 片外 RAM R0 R1 DPTR 變址尋址 程序存儲器 A PC A DPTR 相對尋址 程序存儲器 256 字節(jié)范圍內(nèi) PC 偏移量 位尋址 片內(nèi) RAM 的位尋址區(qū) 字節(jié) 地址 20H 2FH 地址能被 8 整除的特殊功 能寄存器 5 51 系列單片機(jī)的尋址方式中 位尋址的尋址空間是 D A 工作寄存器 R0 R7 B 專用寄存器 SFR C 程序存儲器 ROM D 片內(nèi) RAM 的 20H 2FH 字節(jié)中的所有位和地址 可被 8 整除的 SFR 的有效位 6 分析下面各指令源操作數(shù)的尋址方式 MOV A 32H 直接尋址 MOV R7 A 寄存器尋址 MOV R0 0FEH 立即尋址 MOV A R1 寄存器間接尋址 MOV DPTR 1E00H 立即尋址 MOVC A A DPTR 變址尋址 MOV C 20H 位尋址 JC 10H 相對尋址 7 訪問特殊功能寄存器和外部數(shù)據(jù)存儲器 分別可以采 用哪些尋址方式 答 訪問特殊功能寄存器只能用直接尋址 訪問外部數(shù) 據(jù)存儲器只能用寄存器間接尋址 8 在寄存器尋址方式中 指令中指定寄存器的內(nèi)容就是 操作數(shù) 9 在尋址方式中 只能使用 8 位二進(jìn)制數(shù)作為 直接地址 10 在寄存器間接尋址方式中 其 間接 體現(xiàn)在指令 中寄存器的內(nèi)容不是操作數(shù) 而是操作數(shù)的 地址 11 在變址尋址方式中 以 累加器 A 作變址寄存器 以 PC 或 DPTR 作基址寄存器 12 三種傳送指令 MOV MOVC 和 MOVX 使用時(shí)有 什么區(qū)別 答 MOV 指令用來實(shí)現(xiàn)單片機(jī)內(nèi)部寄存器 存儲單元 特殊功能寄存器之間的數(shù)據(jù)傳送 MOVC 指令用來讀程序存儲器中的數(shù)據(jù)表 MOVX 指令用來實(shí)現(xiàn)累加器 A 和外部數(shù)據(jù)存儲 器之間的數(shù)據(jù)傳送 13 假 定 DPTR 的 內(nèi) 容 為 8100H 累 加 器 的 內(nèi) 容 為 40H 執(zhí) 行 指 令 MOVC A A DPTR 后 程序存儲器 8140H 單元的內(nèi)容送累加器 A 中 14 單片機(jī)中 PUSH 和 POP 指令常用來 C A 保護(hù)斷點(diǎn) B 保護(hù)現(xiàn)場 C 保護(hù)現(xiàn)場 恢復(fù)現(xiàn)場 D 保護(hù)斷點(diǎn) 恢復(fù) 斷點(diǎn) 15 假定 A 85H R0 20H 20H AFH 執(zhí) 行指令 ADD A R0 后 累加器 A 的內(nèi)容為 34H CY 的內(nèi)容為 1 AC 的內(nèi)容為 1 OV 的內(nèi)容為 1 16 假定 A 56H R5 67H 執(zhí)行指令 ADD A R6 DA A 后 累加器 A 的內(nèi)容為 23H Cy 的內(nèi)容為 1 17 假定 A 50H B 0A0H 執(zhí)行指令 MUL AB 后 寄存器 B 的內(nèi)容為 32H 累加器 A 的內(nèi)容為 00H 18 假定 A 0FBH B 12H 執(zhí)行指令 DIV AB 后 累加器 A 的內(nèi)容為 0DH 寄存器 B 的內(nèi)容為 11H 19 下列指令中可將累加器 A 最高位置 1 的是 B C D E A ORL A 7FH B ORL A 80H C SETB 0E7H D ORL E0H 80H E SETB ACC 7 20 假 定 標(biāo) 號 L2 對 應(yīng) 的 地 址 值 為 0100H 標(biāo) 號 L3 對 應(yīng) 的 地 址 值 為 0123H 當(dāng) 執(zhí) 行 指 令 L2 SJMP L3 時(shí) 該指令的相對偏移量 即指令的第二字節(jié) 為 21H 21 在位操作中 能起到與字節(jié)操作中累加器的相似作 用的是 進(jìn)位標(biāo)志位 C 22 累加器 A 中存放著一個(gè)其值小于等于 127 的 8 位無 符號數(shù) Cy 0 執(zhí)行 RLC A 指令后 則 A 中的數(shù) 變?yōu)樵瓉淼?2 倍 23 試根據(jù)以下要求寫出相應(yīng)的匯編語言指令 1 將 R6 的高四位和 R7 的高四位交換 R6 R7 的低 四位內(nèi)容保持不變 答 MOV A R6 MOV 30H R7 MOV R0 40H MOV R0 30H XCHD A R0 MOV R7 A MOV 30H R0 MOV R6 30H 2 兩個(gè)無符號數(shù)分別存放在 30H 31H 試求出他們 的和并將結(jié)果存放在 32H 答 MOV A 30H ADD A 31H MOV 32H A 3 將 30H 單元的內(nèi)容左環(huán)移兩位 并送外部 RAM 3000H 單元 答 MOV A 30H RL A RL A MOV DPTR 3000H MOVX DPTR A 4 將程序存儲器中 1000H 單元的內(nèi)容取出送外部 RAM 3000H 單元 答 MOV A 0 MOV DPTR 1000H MOVC A A DPTR MOV DPTR 3000H MOVX DPTR A 5 使累加器 A 的最高位置位 答 SETB ACC 7 6 使進(jìn)位標(biāo)志位清 0 答 CLR C 7 使 ACC 4 ACC 5 和 ACC 6 置 1 答 ORL A 01110000B 24 下述程序執(zhí)行后 SP A 和 B 分別為多少 ORG 1000H MOV SP 40H MOV A 30H LCALL SUBR ADD A 10H MOV B A SJMP SUBR MOV DPTR 100AH PUSH DPL PUSH DPH RET 答 SP 42H A 30H B 30H 練習(xí)與思考題 5 1 用于程序設(shè)計(jì)的語言分為哪幾種 它們各有什么特點(diǎn) 答 51 系列單片機(jī)的編程語言可以分為匯編語言和高級語 言 如 C 語言 兩種 各自的特點(diǎn)如下 名稱 特點(diǎn) 缺點(diǎn) 優(yōu)點(diǎn) 適用 場合 匯編 語言 用符號書 寫指令 用助記 符表示操 作碼 特 殊符號表 示操作數(shù) 機(jī)器不能直接識 別 程序員必須 了解機(jī)器的結(jié)構(gòu) 和指令系統(tǒng) 不 易推廣和普及 不能移植 不具 備通用性 較易為 人們識 別 記 憶和讀 寫 實(shí)時(shí) 控制 系統(tǒng) 高級 語言 用以英語 為基礎(chǔ)的 語句編程 機(jī)器不能直接識 別 執(zhí)行時(shí)間長 易于推 廣和交 流 不 依賴于 機(jī)器 具有通 用性 科學(xué) 運(yùn)算 和數(shù) 據(jù)處 理 2 說明偽指令的作用 偽 的含義是什么 常用的偽指 令有哪些 其功能是什么 答 偽指令是在 機(jī)器匯編 過程中 用來對匯編過程進(jìn) 行某種控制或者對符號和標(biāo)號進(jìn)行賦值 偽 的含義是 指這些指令不屬于指令系統(tǒng)中的指令 匯編時(shí)也不產(chǎn)生機(jī) 器代碼 常用偽指令有 ORG EQU DATA DB DW DS BIT END 功能 ORG 指出后面程序塊或數(shù)據(jù)塊在程序存儲器中存放的 起始地址 EQU 賦值命令 DATA 對數(shù)據(jù)地址或代碼地址賦予規(guī)定的字符名稱 DB 定義字節(jié)數(shù)據(jù) DW 定義字?jǐn)?shù)據(jù) DS 從指定的地址單元開始 保留若干單元備用 BIT 定義位地址符號命令 END 匯編結(jié)束命令 3 設(shè)常量和數(shù)據(jù)標(biāo)號的定義為 ORG 2000H DAT1 DB 1 2 3 4 5 DAT2 DB ABCD DAT3 DW 1200H 2 TAB DW DAT1 DAT3 1 畫出上述數(shù)據(jù)或地址的存儲形式 2 寫出各標(biāo)號的地址 答 1 地址 內(nèi)容 H 2000H 01 02 03 04 05 2005H 41 42 43 44 2009H 12 00 FF FE 200DH 20 00 20 09 2 DAT1 2000H DAT2 2005H DAT3 2009H TAB 200DH 4 編 寫 雙 字 節(jié) 加 法 程 序 要 求 被 加 數(shù) 放 在 內(nèi) 部 R A M 的 3 0 H 高 字 節(jié) 3 1 H 低 字 節(jié) 單 元 中 加 數(shù) 存 放 在 內(nèi) 部 R A M 的 3 2 H 高 字 節(jié) 和 3 3 H 低 字 節(jié) 中 運(yùn) 算 結(jié) 果 放 存 放 在 3 0 H 3 1 H 中 進(jìn) 位 存 放 在 位 尋 址 區(qū) 的 0 0 H 位 答 O R G 0 0 0 0 H M O V A 3 1 H A D D A 3 3 H M O V 3 1 H A M O V A 3 0 H A D D C A 3 2 H M O V 3 0 H A M O V 0 0 H C S J M P E N D 5 試編寫程序 找出片內(nèi) RAM 30H 5FH 單元中無符號數(shù) 的最大數(shù) 并將結(jié)果存入 60H 單元 答 ORG 0000H MOV R0 30H MOV R7 2FH MOV A R0 AGAIN INC R0 MOV B A CLR C SUBB A R0 JNC L1 MOV A R0 AJMP L2 L1 MOV A B L2 DJNZ R7 AGAIN MOV 60H A SJMP END 6 試 編 寫 程 序 統(tǒng) 計(jì) 片 內(nèi) R A M 的 2 0 H 5 F H 單 元 中 出 現(xiàn) 5 5 H 的 次 數(shù) 并 將 統(tǒng) 計(jì) 結(jié) 果 送 6 0 H 單 元 答 T A B E Q U 2 0 H O R G 0 0 0 0 H S T A R T M O V 6 0 H 0 M O V R 0 T A B L O O P 2 M O V A 5 5 H C L R C S U B B A R 0 J N Z N E X T I N C 6 0 H N E X T I N C R 0 C J N E R 0 6 0 H L O O P 2 S J M P E N D 7 編寫程序 將片外數(shù)據(jù)存儲區(qū)中 3000H 30FFH 單元全 部清零 答 ORG 0000H START MOV A 0 MOV R7 0 MOV DPTR 3000H LOOP MOVX DPTR A INC DPTR DJNZ R7 LOOP SJMP END 8 將外部 RAM 8000H 開始的 20 個(gè)字節(jié)數(shù)據(jù)傳送到外部 RAM 8100H 開始的地址單元中去 答 DATA1 EQU 8000H DATA2 EQU 00H ORG 0000H START MOV DPTR DATA1 MOV R0 DATA2 MOV R7 20 LOOP MOVX A DPTR MOV P2 81H MOVX R0 A INC R0 INC DPTR DJNZ R7 LOOP SJMP END 9 編 程 統(tǒng) 計(jì) 累 加 器 A 中 1 的 個(gè) 數(shù) 答 以 下 程 序 將 A 中 1 的 個(gè) 數(shù) 放 在 3 0 H 單 元 DAT EQU 37H O R G 0 0 0 0 H S T A R T P U S H A C C M O V A D A T M O V 3 0 H 0 N E X T J Z E X I T C L R C R L C A J N C L 1 I N C 3 0 H L 1 A J M P N E X T P O P A C C E X I T S J M P E N D 1 0 編 寫 程 序 將 3 0 H 3 4 H 單 元 中 壓 縮 的 B C D 碼 數(shù) 每 個(gè) 字 節(jié) 存 放 兩 個(gè) B C D 碼 數(shù) 轉(zhuǎn) 換 為 A S C I I 碼 數(shù) 并 將 結(jié) 果 存 放 在 片 內(nèi) R A M 6 0 H 6 9 H 單 元 答 O R G 0 0 0 0 H S T A R T M O V R 0 3 0 H M O V R 1 6 0 H M O V R 7 2 A G A I N M O V A R 0 A N L A 0 F 0 H S W A P A A D D A 3 0 H M O V R 1 A M O V A R 0 A N L A 0 F H A D D A 3 0 H I N C R 1 M O V R 1 A I N C R 0 I N C R 1 D J N Z R 7 A G A I N S J M P E N D 1 1 將 內(nèi) 部 R A M 3 0 H 單 元 的 內(nèi) 容 轉(zhuǎn) 換 成 三 位 B C D 碼 百 位 十 位 個(gè) 位 并 將 結(jié) 果 存 入 外 部 R A M 1 0 0 0 H 開 始 的 單 元 答 O R G 0 0 0 0 H S T A R T M O V A 3 0 H M O V D P T R 1 0 0 0 H M O V B 1 0 0 D I V A B M O V X D P T R A I N C D P T R M O V A B M O V B 1 0 D I V A B M O V X D P T R A M O V A B I N C D P T R M O V X D P T R A S J M P E N D 1 2 請 使 用 位 操 作 指 令 編 程 實(shí) 現(xiàn) 其 中 2 0 H 2 F H 2 A H 都 是 位 地 址 答 O R G 0 0 0 0 H MOV C 20H ANL C 2FH CPL C ORL C 2AH MOV P1 0 C SJMP END 13 簡述利用 Keil Vision 調(diào)試匯編語言程序的主要步驟 答 利用 Keil Vision 調(diào)試軟件的主要步驟包括 建立 工程 project 編寫匯編語言源程序并保存 在工程中 添加源文件 設(shè)置工程 編譯并連接 創(chuàng)建目標(biāo)文件 調(diào) 試程序 14 如何產(chǎn)生 hex 文件 答 編譯并連接時(shí) 在 Project Workspace 窗口中 右鍵 Target 1 選擇 Options For Target Target1 選 項(xiàng) 彈出 option for Target 對話窗 選 Output 選項(xiàng) 卡 選中 Create HEX File 15 在 Keil Vision 環(huán)境中 如何查看寄存器和數(shù)據(jù)存儲 單元內(nèi)容 答 點(diǎn)擊 Regs 可查看寄存器的內(nèi)容 在 Keil 的菜單欄中 選擇 View Memory Window 選項(xiàng) 打開 Memory 對話窗 在 Address 欄中輸入地址 D 0030H 查看片內(nèi) RAM 中 0030H 的內(nèi)容 X 外部數(shù)據(jù)存儲器 C 程序存儲器 練習(xí)與思考題 8 1 什么叫中斷 計(jì)算機(jī)采用中斷有什么好處 答 外部發(fā)生的某一件事件使 CPU 暫停正在執(zhí)行 的程序 轉(zhuǎn)而執(zhí)行與該事件相對應(yīng)的程序 執(zhí)行完此 程序后再返回到原來被暫停的地方 繼續(xù)執(zhí)行原來的 程序 這樣一個(gè)過程就被稱為中斷 中斷的好處 1 可以提高 CPU 的工作效率 2 可以提高實(shí)時(shí)數(shù)據(jù)的處理時(shí)效 3 實(shí)現(xiàn)實(shí)時(shí)控制 2 什么叫中斷源 AT89S51 有哪些中斷源 各有什么特 點(diǎn) 答 引起中斷的原因稱為中斷源 AT89S51 中斷系統(tǒng)共 有 5 個(gè)中斷請求源 1 外部中斷請求 0 中斷請求標(biāo)志 為 IE0 2 外部中斷請求 1 中斷請求標(biāo)志為 IE1 3 定時(shí)器 計(jì)數(shù)器 T0 溢出中斷請求 中斷請求標(biāo)志 為 TF0 4 定時(shí)器 計(jì)數(shù)器 T1 溢出中斷請求 中斷請求 標(biāo)志為 TF1 5 串行口中斷請求 中斷請求標(biāo)志為 TI 或 RI 特點(diǎn) 2 個(gè)外部中斷源 3 個(gè)內(nèi)部中斷源 3 什么叫中斷系統(tǒng) 中斷系統(tǒng)的功能是什么 答 實(shí)現(xiàn)中斷處理功能的軟硬件系統(tǒng)稱為中斷系統(tǒng) 中斷系統(tǒng)的功能是 1 對同時(shí)提出中斷請求的多中斷源進(jìn)行優(yōu)先 級判斷 2 實(shí)現(xiàn)中斷嵌套 3 自動(dòng)響應(yīng)中斷 4 實(shí)現(xiàn)中斷并返回 4 中斷嵌套及中斷優(yōu)先級的含義是什么 答 當(dāng) CPU 正在處理一個(gè)中斷源請求時(shí) 執(zhí)行相應(yīng)的中 斷服務(wù)程序 發(fā)生了另外一個(gè)優(yōu)先級比它更高的中斷源 請求 CPU 暫停對原來中斷源的服務(wù)程序 轉(zhuǎn)而去處理優(yōu) 先級更高的中斷請求源 處理完以后 再回到原低級中斷 源服務(wù)程序 這樣的過程稱為中斷嵌套 一個(gè) CPU 通常可以與多個(gè)中斷源相連 由于中斷產(chǎn) 生的隨機(jī)性 可能出現(xiàn)兩個(gè)或兩個(gè)以上中斷源同時(shí)請求中 斷的情況 這就要求設(shè)計(jì)者必須根據(jù)輕重緩急給每個(gè)中斷 源賦予一個(gè)中斷優(yōu)先級 這樣 當(dāng)多個(gè)中斷源同時(shí)向 CPU 請求中斷時(shí) CPU 就可以率先響應(yīng)中斷優(yōu)先權(quán)高的中斷請 求 而把中斷優(yōu)先權(quán)低的中斷請求暫時(shí)擱置起來 等到處 理完優(yōu)先權(quán)高的中斷請求后再來響應(yīng)優(yōu)先權(quán)低的中斷 這 就是中斷優(yōu)先級的含義 5 AT89S51 的 6 個(gè)中斷標(biāo)志位代號是什么 它們在什么 情況下被置位和復(fù)位 答 1 外部中斷 0 中斷請求標(biāo)志為 IE0 2 外 部中斷 1 中斷請求標(biāo)志位為 IE1 3 定時(shí)器 計(jì)數(shù)器 T0 溢出中斷請求標(biāo)志位為 TF0 4 定時(shí)器 計(jì)數(shù)器 T1 溢出中斷請求標(biāo)志位為 TF1 5 串行口發(fā)送中 斷請求標(biāo)志位為 TI 6 串行口接收中斷請求標(biāo)志 位為 RI 各標(biāo)志位因有相應(yīng)的中斷請求而置位 前四個(gè)標(biāo)志 位因相應(yīng)的中斷請求被響應(yīng)而復(fù)位 而后兩個(gè)標(biāo)志位 則是在中斷服務(wù)程序里通過軟件復(fù)位 6 中斷允許寄存器 IE 各位的定義是什么 請寫出允許 T1 定時(shí)器溢出中斷的指令 答 IE 中各位的定義如下 1 EA 中斷允許總控制位 EA 0 CPU 屏蔽所有的中斷請求 CPU 關(guān)中斷 EA 1 CPU 開放所有中斷 CPU 開中斷 2 ES 串行口中斷允許位 ES 0 禁止串行口中斷 ES 1 允許串行口中斷 3 ET1 定時(shí)器 計(jì)數(shù)器 T1 的溢出中斷允許位 ET1 0 禁止 T1 溢出中斷 ET1 1 允許 T1 溢出中斷 4 EX1 外部中斷 1 中斷允許位 EX1 0 禁止外部中斷 1 中斷 EX1 1 允許外部中斷 1 中斷 5 ET0 定時(shí)器 計(jì)數(shù)器 T0 的溢出中斷允許位 ET0 0 禁止 T0 溢出中斷 ET0 1 允許 T0 溢出中斷 6 EX0 外部中斷 0 中斷允許位 EX0 0 禁止外部中斷 0 中斷 EX0 1 允許外部中斷 0 中斷 允許 T1 定時(shí)器溢出中斷的指令為 MOV IE 88H 或用位操作指令 SETB EA 和 SETB ET1 7 試 寫 出 設(shè) 定 和 上 的 中 斷 請 求 為 高 優(yōu) 先 級 和 允 許 它 們 中 斷 的 程 序 此 時(shí) 若 和 引 腳 上 同 時(shí) 有 中 斷 請 求 信 號 輸 入 試 問 AT89S51 先 響 應(yīng) 哪 個(gè) 引 腳 上 的 中 斷 請 求 為 什 么 答 程 序 為 用 位 操 作 指 令 SETB PX0 SETB PX1 SETB EA SETB EX0 SETB EX1 用 字 節(jié) 操 作 指 令 MOV IE 85H MOV IP 05H 若 和 引 腳 上 同 時(shí) 有 中 斷 請 求 信 號 輸 入 則 AT89S51 先 響 應(yīng) 引 腳 上 的 中 斷 請 求 因 為 在 同 一 級 別 的 中 斷 源 查 詢 順 序 中 排 在 之 前 8 AT89S51 響應(yīng)中斷是有條件的 請說出這些條件 中 斷響應(yīng)的全過程如何 答 響應(yīng)中斷的條件 1 有中斷源發(fā)出中斷請求 2 中斷中允許位 EA 1 即 CPU 開中斷 3 申請中斷的中斷源的中斷允許位為 1 即中斷 沒有被屏蔽 4 無同級或更高級中斷正在服務(wù) 5 當(dāng)前指令周期已經(jīng)結(jié)束 6 若現(xiàn)行指令為 RETI 或訪問 IE 或 IP 指令時(shí) 該 指令以及緊接著的另一條指令已執(zhí)行完畢 AT89S51 單片機(jī)的中斷響應(yīng)全過程 CPU 在每個(gè)機(jī)器周期 S5P2 期間順序采樣每個(gè)中斷源 CPU 在下一個(gè)機(jī)器周期 S6 期間按優(yōu)先級順序查詢中斷 標(biāo)志 如查詢到某個(gè)中斷標(biāo)志為 1 將在接下來的機(jī)器 周期 S1 期間按優(yōu)先級進(jìn)行中斷處理 中斷系統(tǒng)通過硬件 自動(dòng)將相應(yīng)的中斷矢量地址裝入 PC 以便進(jìn)入相應(yīng)的中 斷服務(wù)程序 一旦響應(yīng)中斷 AT89S51 首先置位相應(yīng)的 中斷 優(yōu)先級生效 觸發(fā)器 然后由硬件執(zhí)行一條長調(diào) 用指令 把當(dāng)前的 PC 值壓入堆棧 以保護(hù)斷點(diǎn) 再將 相應(yīng)的中斷服務(wù)的入口地址送入 PC 于是 CPU 接著從 中斷服務(wù)程序的入口處開始執(zhí)行 對于有些中斷源 CPU 在響應(yīng)中斷后會自動(dòng)清除中斷標(biāo)志 9 AT89S51 響應(yīng)中斷的時(shí)間是否是固定的 為什么 答 AT89S51 響應(yīng)中斷的時(shí)間不是固定的 由于 CPU 不是在任何情況下對中斷請求都予以響應(yīng)的 此外 在 不同的情況下 CPU 對中斷響應(yīng)的時(shí)間也是不同的 下面 以外部中斷 為例 說明中斷響應(yīng)的時(shí)間 在每個(gè)機(jī)器周期的 S5P2 期間 端的中斷請求信 號被記錄到 TCON 的 IE0 位 CPU 在下一個(gè)機(jī)器周期才 會查詢這些值 這時(shí)如果滿足中斷響應(yīng)的條件 下一條 要執(zhí)行的指令將是一條硬件長調(diào)用指令 LCALL 使 程序轉(zhuǎn)入中斷矢量入口 調(diào)用本身要用 2 個(gè)機(jī)器周期 這樣 從外部中斷請求有效到開始執(zhí)行中斷服務(wù)程序的 第一條指令 至少需要 3 個(gè)機(jī)器周期 這是最短的響應(yīng) 時(shí)間 如果遇到中斷受阻的情況 這中斷響應(yīng)時(shí)間會更長一 些 例如 當(dāng)一個(gè)同級或更高級的中斷服務(wù)程序正在進(jìn) 行 則附加的等待時(shí)間取決于正在進(jìn)行的中斷服務(wù)程序 如果正在執(zhí)行的一條指令還沒有進(jìn)行到最后一個(gè)機(jī)器周 期 附加的等待時(shí)間為 1 3 個(gè)機(jī)器周期 如果正在執(zhí)行 的是 RETI 指令或者訪問 IE 或 IP 的指令 則附加的等待 時(shí)間在 5 個(gè)機(jī)器周期內(nèi) 若系統(tǒng)中只有一個(gè)中斷源 則 響應(yīng)時(shí)間為 3 8 個(gè)機(jī)器周期 10 AT89S51 中 哪些中斷可以隨著中斷被響應(yīng)而自動(dòng) 撤除 哪些中斷需要用戶來撤除 撤除的方法是什么 答 下降沿觸發(fā)方式下的外部中斷 0 和外部中斷 1 以及定時(shí)器 計(jì)數(shù)器 T0 和 T1 的溢出中斷請求 可以隨著 中斷被響應(yīng)而自動(dòng)撤除 串行口中斷請求需要用戶來撤 除 撤除的方法是用指令將相應(yīng)中斷請求標(biāo)位清零 另 外 對于電平沿觸發(fā)方式下的外部中斷 0 和外部中斷 1 的中斷請求信號通常也需要用戶通過軟件來撤除 11 試寫出 為下降沿觸發(fā)方式的中斷初始化程序 答 ORG 0000H AJMP MAIN ORG 0013H AJMP PINT1 ORG 0100H MAIN SETB IT1 SETB EX1 SETB EA HERE AJMP HERE PINT1 RETI END 12 中斷響應(yīng)過程中 為什么通常要保護(hù)現(xiàn)場 如何保 護(hù) 答 由于在執(zhí)行中斷服務(wù)程序時(shí)需要使用 CPU 的某 些寄存器來進(jìn)行運(yùn)算 傳送 保存中間結(jié)果 這樣一來 就使得斷點(diǎn)處的這些寄存器的原值被改變 中斷返回后 繼續(xù)執(zhí)行主程序時(shí)就會產(chǎn)生錯(cuò)誤 因此 在正式執(zhí)行中斷 服務(wù)程序之前必須采取保護(hù)措施 將斷點(diǎn)處的有關(guān)寄存器 的值送入堆棧保護(hù) 具體保護(hù)哪些寄存器的內(nèi)容 應(yīng)根據(jù) 具體情況而定 13 AT89S51 提供了哪些中斷源 各中斷源對應(yīng)的中斷 入口地址是多少 答 AT89S51 提供的中斷源及各中斷源對應(yīng)的中斷 入口地址如下表所示 表 8 2 中斷入口地址 中 斷源 入 口地 址 外 部中斷 0 000 3H 定 時(shí) 計(jì) 數(shù)器 T0 000 BH 外 部中斷 1 001 3H 定 時(shí) 計(jì) 數(shù)器 T1 001 BH 串 行口中 斷 002 3H 14 AT89S51 對各種中斷提出的中斷請求如何進(jìn)行控制 答 AT89S51 對各種中斷提出的中斷請求進(jìn)行中斷允 許及優(yōu)先級的控制 具體是通過對 IE IP 兩個(gè)特殊功能 寄存器的設(shè)置來實(shí)現(xiàn) 15 子 程 序 和 中 斷 服 務(wù) 程 序 有 何 異 同 子 程 序 返 回 指 令 RET 和 中 斷 返 回 指 令 RETI 能 相 互 替 代 嗎 答 子程序和中斷服務(wù)程序的相同處 都是被調(diào)用的 一段程序 執(zhí)行完后都能返回原調(diào)用處 不同處在于 1 子程序調(diào)用是預(yù)先安排好的 而中斷調(diào)用是隨機(jī)發(fā) 生的 2 調(diào)用子程序 是為主程序服務(wù)的 而中斷服 務(wù)程序與主程序的程序可以毫無關(guān)系 3 子程序是由 主程序中安排的調(diào)用指令給出目標(biāo)地址 而中斷調(diào)用是 通過隱指令獲得中斷服務(wù)程序的入口地址 子程序返回指令 RET 和中斷返回指令 RETI 不能相互 替代 雖然 RET 和 RETI 指令都有返回原調(diào)用處的功能 但是 RETI 還具有清除中斷響應(yīng)時(shí)被置 1 的內(nèi)部中斷優(yōu) 先級寄存器的優(yōu)先級狀態(tài)的功能 16 AT89S51 單片機(jī)各中斷標(biāo)志是如何產(chǎn)生的 又如何 清除 答 當(dāng)單片機(jī)檢測到 或 上有中斷請求信號時(shí) 就將相應(yīng)的中斷標(biāo)志位 IE0 或 IE1 置為 1 當(dāng)定時(shí)器 計(jì)數(shù)器 T0 或 T1 置為 1 當(dāng) CPU 響應(yīng)此四個(gè)中斷中 的任何一個(gè)后 相應(yīng)的中斷標(biāo)志位由硬件自動(dòng)清除 如 果中斷是禁止的 這些標(biāo)志位也可通過軟件清除 串行 口完成一次發(fā)送或接收后就將相應(yīng)的中斷請求標(biāo)志位 TI 或 RI 置 1 這兩個(gè)標(biāo)志位需要用軟件給與清除 17 AT89S51 單片機(jī)響應(yīng)外部中斷的典型時(shí)間是多少 在哪些情況下 CPU 將推遲對外部中斷請求的響應(yīng) 答 在一個(gè)單一中斷的系統(tǒng)里 AT89S51 單片機(jī)響 應(yīng)外部中斷的典型時(shí)間是在 3 8 個(gè)機(jī)器周期之間 當(dāng) AT89S51 正在處理同級或更高優(yōu)先級的中斷時(shí) 則將推遲對此外部中斷請求的響應(yīng) 18 AT89S51 單片機(jī)響應(yīng)中斷后 產(chǎn)生硬件長調(diào)用指令 LCALL 執(zhí)行指令的過程包括 首先把 PC 的 內(nèi)容壓入堆棧 以進(jìn)行斷點(diǎn)保護(hù) 然后把長調(diào)用指令 的 16 位地址送 PC 使程序執(zhí)行轉(zhuǎn)向 程序存 儲器 中的中斷地址區(qū) 19 AT89S51 擴(kuò)展外部中斷源的常用方法有哪些 答 1 借用定時(shí)器作為外部中斷使用 2 采用中斷和查詢相結(jié)合的方法擴(kuò)充外部中斷源 20 寫出定時(shí)器 T0 作為外部中斷源的初始化程序 答 MOV TMOD 06H MOV TL0 0FFH MOV TH0 0FFH SETB EA SETB ET0 SETB TR0 21 某系統(tǒng)有 3 個(gè)外部中斷 分別為中斷源 1 中斷源 2 和中斷源 3 當(dāng)某一個(gè)中斷源發(fā)出高電平的中斷請求 信號時(shí) 即可使 引腳變低電平 從而引起 CPU 的中斷響應(yīng) 設(shè)優(yōu)先級處理順序由高到低依次為中斷 源 3 中斷源 2 中斷源 1 中斷服務(wù)程序入口地址分 別為 2100H 2200H 2300H 試設(shè)計(jì)實(shí)現(xiàn)此功能的硬 件電路 并編寫主程序及中斷服務(wù)程序 轉(zhuǎn)至相應(yīng)的 入口- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片 微機(jī) 原理 應(yīng)用 徐春輝 電子工業(yè) 出版社 習(xí)題 答案
鏈接地址:http://italysoccerbets.com/p-10632123.html