單片機原理與應(yīng)用-趙德安-習題答案
《單片機原理與應(yīng)用-趙德安-習題答案》由會員分享,可在線閱讀,更多相關(guān)《單片機原理與應(yīng)用-趙德安-習題答案(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第一章習題 2 根據(jù)程序存儲器的差別 單片機可以分為哪幾種類型 答 MCS 51 系列單片機按片內(nèi)不同程序存儲器的配置來分 可以分為以 下 3 種類型 片內(nèi)帶 Mask ROM 掩膜 ROM 型 8051 80C51 8052 80C52 此類芯 片是由半導(dǎo)體廠家在芯片生產(chǎn)過程中 將用戶的應(yīng)用程序代碼通過掩膜工藝制 作到 ROM 中 其應(yīng)用程序只能委托半導(dǎo)體廠家 寫入 一旦寫入后不能修改 此類單片機適合大批量使用 片內(nèi)帶 EPROM 型 8751 87C51 8752 此類芯片帶有透明窗口 可 通過紫外線擦除存儲器中的程序代碼 應(yīng)用程序可通過專門的編程器寫入到單 片機中 需要更改時可擦除重新寫入 此類單片機價格較貴 不宜于大批量使 用 片內(nèi)無 ROM ROMLess 型 8031 80C31 8032 此類芯片的片內(nèi)沒有 程序存儲器 使用時必須在外部并行擴展程序存儲器存儲芯片 此類單片機由 于必須在外部并行擴展程序存儲器存儲芯片 造成系統(tǒng)電路復(fù)雜 目前較少使 用 3 單片機的主要特點是什么 它適宜構(gòu)成通用微機系統(tǒng)還是專用微機系統(tǒng) 為什么 答 單片機是一種集成電路芯片 是采用超大規(guī)模集成電路技術(shù)把具有數(shù) 據(jù)處理能力的中央處理器 CPU 隨機存儲器 RAM 只讀存儲器 ROM 多種 I O 口和 中斷系統(tǒng) 定時器 計時器等功能 可能還包括顯示驅(qū)動電路 脈寬調(diào) 制電路 模擬多路轉(zhuǎn)換器 A D 轉(zhuǎn)換器等電路 集成到一塊硅片上構(gòu)成的一個 小而完善的計算機系統(tǒng) 其主要特點如下 1 價格便宜 10 元以內(nèi)計算機 2 功能不大 只能專用在適用的領(lǐng)域 但在適用的領(lǐng)域中 性價比卻是最 佳 3 可靠性高 抗干擾能力強 4 功耗比較低 對電源要求低 適用面廣 5 外圍擴展能力強 可以應(yīng)用到不同的控制系統(tǒng)中 根據(jù)其特點可知 單片機功能不大 適宜構(gòu)成專用微機系統(tǒng) 4 研制微機應(yīng)用系統(tǒng)時 應(yīng)如何選擇單片機的型號 答 在單片機應(yīng)用研究系統(tǒng)開發(fā)中 單片機是整個設(shè)計的核心 設(shè)計者需 要為單片機安排合適的外部器件 同時還需要設(shè)計整個控制軟件 因此選擇合 適的單片機型號很重要 目前 市場上的單片機種類繁多 在進行正式的單片 機應(yīng)用研究系統(tǒng)開發(fā)之前 需要根據(jù)不同單片機的特性 從中作出合理的選擇 所以在單片機選型時 主要需要注意以下幾點 1 仔細調(diào)查市場 盡量選用主流的 貨源充足的單片機型號 這些器件使 用比較廣泛 有許多設(shè)計資料供學習或參考 2 盡量選擇所需硬件集成在單片機內(nèi)部的型號 例如 ADC DAC I2C SPI 和 USB 等 這樣便于整個控制系統(tǒng)的軟件管理 減少 外部硬件的投入 縮小整體電路板的面積 從而減少總體投資等 3 對于手持設(shè)備 移動設(shè)備或者其他需要低功耗的設(shè)備 盡量選擇低電壓 低功耗的單片機型號 這樣可以減少能量的消耗 延長設(shè)備的使用壽命 4 在資金等條件允許的情況下 盡量選擇功能豐富 擴展能力強的單片機 這樣便于以后的功能升級和擴展 5 對于體積有限制的產(chǎn)品 盡量選擇貼片封裝的單片機型號 這樣可以減 少電路板面積 從而降低硬件成本 同時也有助于電磁兼容設(shè)計 第二章 1 分別寫出一個 MCS 51 中 ROM EPROM 無 ROM 型單片機的型號 和內(nèi)部資源 其中哪個產(chǎn)品內(nèi)部具有固化的軟件 該軟件能否被所有用戶所使 用 怎樣使用該種產(chǎn)品 答 片內(nèi)帶 Mask ROM 掩膜 ROM 型 8051 80C51 8052 80C52 此 類芯片是由半導(dǎo)體廠家在芯片生產(chǎn)過程中 將用戶的應(yīng)用程序代碼通過掩膜工 藝制作到 ROM 中 其應(yīng)用程序只能委托半導(dǎo)體廠家 寫入 一旦寫入后不能 修改 片內(nèi)帶 EPROM 型 8751 87C51 8752 此類芯片帶有透明窗口 可 通過紫外線擦除存儲器中的程序代碼 應(yīng)用程序可通過專門的編程器寫入到單 片機中 需要更改時可擦除重新寫入 片內(nèi)無 ROM ROMLess 型 8031 80C31 8032 此類芯片的片內(nèi)沒有 程序存儲器 使用時必須在外部并行擴展程序存儲器存儲芯片 MCS 51系 列 單 片 機 分 類 表 子 片 片 片 尋 I O 中 無 ROM EPROM 計 并 串 51 8031 80C320 8051 8751 4 128 2 64 2 16 4 8 1 5 80C31 80C51 87C51 4 128 2 64 2 16 4 8 1 5 52 8032 8052 8752 8 256 2 64 3 16 4 8 1 6 80C32 80C52 87C52 8 256 2 64 3 16 4 8 1 6 其中 8051 80C51 8052 80C52 等產(chǎn)品具有固化軟件 該軟件不能被所 有用戶所使用 應(yīng)用程序只能委托半導(dǎo)體廠家 寫入 3 什么是堆棧 8032 的堆棧區(qū)可以設(shè)在什么地方 一般應(yīng)設(shè)在什么區(qū)域 如 何實現(xiàn) 試舉例說明 答 堆棧是在片內(nèi) RAM 中專門開辟出來的一個區(qū)域 數(shù)據(jù)的存取是以 后 進先出 的結(jié)構(gòu)方式處理的 實質(zhì)上 堆棧就是一個按照 后進先出 原則組織 的一段內(nèi)存區(qū)域 8032 的堆棧區(qū)原則上可以設(shè)在內(nèi)部 RAM 中的 00H FFH 的任意區(qū)域內(nèi) 一 般應(yīng)設(shè)在 30H 7FH 的范圍內(nèi) 通過賦值的方式實現(xiàn) 如 MOV SP 60H 4 8031 的內(nèi)部 RAM 中 哪些可以作為數(shù)據(jù)緩沖區(qū) 在 8031 內(nèi)部 RAM 中 工作寄存器區(qū) 00H 1FH 和位尋址區(qū) 20H 2FH 可 以作為數(shù)據(jù)緩沖區(qū) 6 MCS 51 單片機構(gòu)成系統(tǒng)時 程序存儲器的容量最大是多少 答 MCS 51 單片機構(gòu)成系統(tǒng)時 程序存儲器的容量最大是 64KB 7 當單片機系統(tǒng)的程序存儲器的容量為 8KB 時 程序存儲器的開始地址為 多少 答 單片機內(nèi)部無 ROM 時 EA 0 時 只訪問外部 ROM ROM 為外部 ROM 開始地址為 0000H 1FFFH 8KB 2 13 8192D 2000H 故 地址為 2000H 1 1FFFH 單片機內(nèi)部有 ROM 一般為 4KB 地址范圍為 0000H 0FFFH 外部 ROM 的開 始地址為 1000H 1FFFH EA 1 時 9 當單片機系統(tǒng)外部數(shù)據(jù)存儲器的容量為 8KB 時 數(shù)據(jù)存儲器的開始地址 一定要是 0000H 嗎 答 不一定 只有是間隔 1FFFH 個字節(jié) 都可以 第三章 1 指出下列指令中劃線操作數(shù)的尋址方式和指令的操作功能 MOV A 78H 立即尋址 將立即數(shù)送入累加器 A MOV A 78H 直接尋址 將內(nèi)部 RAM 78H 單元內(nèi)容送累加器 A MOV A R6 寄存器尋址 將 R6 內(nèi)容送累加器 A INC R0 寄存器間接尋址 將指針 R0 指向的內(nèi)部 RAM 單元內(nèi)容加 1 PUSH ACC 寄存器尋址 將累加器 A 的內(nèi)容入棧 RL A 寄存器尋址 將累加器 A 的內(nèi)容左移 1 位 CPL 30H 位尋址 將位變量 30H 的內(nèi)容取反 SJMP 相對尋址 死循環(huán)指令 MOVC A A PC 基寄存器加變址寄存器間接尋址 程序存儲器 PC 和累加 器 A 中內(nèi)容相加 送到累加器 A 2 指出下列指令中哪些是非法的 DEC DPTR DEC DPL MOV A R2 MOV A R1 MOV R1 R0 MOV A R0 MOV P1 1 30H MOV P1 1 C 或者 MOV C 30H MOV 30H A MOV A 30H MOV OV 30H MOV PSW 7 C MOV A A DPTR MOVC A A DPTR RRC 30H RRC A 所有的移位指令均是對累積器 A 進行的 RL B RL A XRL C 30H 錯 因為位操作指令中 沒有位的異或運算 3 如何將 1 個立即數(shù) 30H 送入內(nèi)部 RAM 90H 單元 如何將立即數(shù)送特殊功能 寄存器 P1 1 MOV R0 90H MOV R0 30H 能不能直接 MOV 90H 30H 不能 因為內(nèi)部 RAM 的高 128 字節(jié)只能用寄存器間接尋址 2 MOV P1 30H 4 執(zhí)行下列一段程序后 試分析有關(guān)單元內(nèi)容 MOV PSW 0 PSW 00H MOV R0 30H R0 30H MOV 30H 40H 30H 40H MOV 40H 50 40H 50H MOV A R0 A 40H ADDC A 0CEH A 40H 0CEH 0 0EH PSW 10000101B 85H INC R0 R0 31H 執(zhí)行結(jié)果 R0 31H 30H 40H 40H 50 A 0EH PSW 85H 這里特別注意 OV 的值 在帶符號數(shù)的加減運算中 OV 1 表示加減運算超出 了累積器 A 所能表示的有符號數(shù)范圍 128 127 即產(chǎn)生了溢出 因此運算 結(jié)果是錯誤的 反之 OV 0 表示運算結(jié)果正確 即無溢出產(chǎn)生 OV CY 和 CY1 的異或 其中 CY1 為第六位向第七位是否有進位或借位 有 為 CY1 1 沒有 CY1 0 執(zhí)行加法 ADD 時 當位 6 向位 7 進位 而位 7 不向 C 進位時 OV 1 或者位 6 不向位 7 進位 而位 7 向 C 進位時 同樣 OV 1 5 試編寫一段程序 內(nèi)部 RAM 40H 41H 單元內(nèi)容傳送到外部 RAM 2000H 2001H 單 元中 MOV DPTR 2000H MOV R0 40H MOV A R0 MOVX DPTR A INC R0 INC DPTR MOV A R0 MOVX DPTR A 6 試編寫一段程序 根據(jù)累加器 A 的內(nèi)容 到程序存儲器 1000H 起始的表格 中取一雙字 節(jié)數(shù) 送內(nèi)部 RAM 50H 51H 單元 MOV DPTR 1000H PUSH ACC MOVC A A DPTR MOV 50H A POP ACC INC DPTR MOVC A A DPTR MOV 51H A 7 試編寫一段程序 進行兩個 16 位數(shù)的相減運算 6483H 56E2H 結(jié)果高 8 位存在內(nèi)部 RAM 40H 低 8 位存 41H CLR C MOV A 83H SUBB A 0E2H MOV 41H A MOV A 64H SUBB A 56H MOV 40H A 8 試編寫一段程序 將 30H 31H 單元中存放的 BCD 數(shù) 壓縮成一個字節(jié) 原 30H 單元 內(nèi)容為高位 并放入 30H 單元 MOV A 30H SWAP A ORL A 31H 9 試編寫一段程序 將 30H 32H 單元中的壓縮 BCD 拆成 6 個單字節(jié) BCD 數(shù) 并放入 33H 38H 單元 MOV SP 60H MOV A 30H MOV R0 33H ACALL H2ASC MOV A 31H ACALL H2ASC MOV A 32H ACALL H2ASC SJMP H2ASC MOV B A ANL A 0FH MOV R0 A INC R0 MOV A B SWAP A ANL A 0FH MOV R0 A INC R0 RET 10 設(shè)晶振頻率為 6MHz 試編寫一個延時 1ms 的子程序 并利用該子程序 編寫一段主程序 在 P1 0 引腳上輸出高電平寬 2ms 低電平寬 1ms 的方波信號 MOV SP 60H LOOP SETB P1 0 ACALL DELAY ACALL DELAY CLR P1 0 ACALL DELAY SJMP LOOP DELAY MOV R0 248 1T DJNZ R0 2T NOP 1T RET 2T 延時計算 1T 248 2T 1T 2T 500T 1ms 第四章 5 晶振為 12MHz 用 T0 產(chǎn)生 1ms 的定時 可以選擇哪幾種方式 分別寫出定 時器的方式字和計數(shù)初值 如需要 1s 的定時 應(yīng)如何實現(xiàn) 答 由于定時器工作在方式 2 和方式 3 下時的最大定時時間只有 0 256ms 因 此要想獲得 1ms 的定時時間 定時器必須工作在方式 0 或方式 1 機器周期為 T 計數(shù) 12 1 12 10 6s 1 s 若采用方式 0 定時器的方式字 TMOD 為 00H 根據(jù)公式可得定時器的計 數(shù)初值為 TC M T T 計數(shù) 213 1 10 3 1 7192 1C18H 即 TH0 應(yīng)裝 0E0H TL0 應(yīng)裝 18H 高三位為 0 若采用方式 1 定時器的方式字 TMOD 為 01H 根據(jù)公式可得定時器的計 數(shù)初值為 TC M T T 計數(shù) 216 1 10 3 1 64536 FC18H 即 TH0 應(yīng)裝 0FCH TL0 應(yīng)裝 18H 如需要 1s 的定時 可以采用循環(huán)定時 增加循環(huán)次數(shù) 第五章 1 若晶振為 6MHz 試編寫一個 2ms 延時子程序 DELAY MOV R0 498 1T DJNZ R0 2T NOP 1T RET 2T 延時計算 1T 498 2T 1T 2T 1000T 2ms 6 試設(shè)計一個 n 字節(jié)的無符號十進制數(shù)加法子程序 其功能為將 R0 和 R1 指出的 內(nèi)部 RAM 中兩個 n 字節(jié)壓縮 BCD 碼無符號十進制數(shù)相加 結(jié)果存放于被加數(shù) 單元中 子程序入口時 R0 R1 分別指向被加數(shù)和加數(shù)的低位字節(jié) 字節(jié)數(shù) n 存于 R2 出口時 R0 指向和的最高位字節(jié) CY 為進位位 LEN EQU 30 ORG 0000H AJMP MAIN ORG 0030H MAIN MOV SP 60H MOV R2 LEN ACALL ADD NBYTE SJMP ADD NBYTE CLR C LOOP MOV A R0 ADDC A R1 DA A MOV R0 A INC R0 INC R1 DJNZ R2 LOOP RET END 11 試設(shè)計一個子程序 其功能為將 R0 指出的內(nèi)部 RAM 中 6 個單字節(jié)正 整數(shù)按從小到 大的次序重新排列 S 2 L MOV R4 5 CLR F0 PUSH 00H R0 入棧 POP 01H 出棧賦給 R1 INC R1 LOOP0 MOV A R4 MOV R5 A LOOP1 MOV A R0 MOV B A MOV A R1 CJNE A B NEXT SJMP NOCH NEXT JNC NOCH SETB F0 MOV R0 A XCH A B MOV R1 A NOCH INC R0 INC R1 DJNZ R5 LOOP1 JNB F0 HALT DJNZ R4 LOOP0 HALT RET- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機 原理 應(yīng)用 德安 習題 答案
鏈接地址:http://ioszen.com/p-10659909.html