本書分為兩部分共9 章,前面5 章介紹標(biāo)準(zhǔn)MCS?51 單片機(jī)的基本原理、內(nèi)部結(jié)構(gòu)、指令系統(tǒng)和C51 程序設(shè)計(jì);后4章重點(diǎn)介紹Silabs 公司推出的髙集成度、髙性能的RISC 單片機(jī)C8051F410,包括單片機(jī)硬件結(jié)構(gòu)和常用片內(nèi)資源的工作原理、程序設(shè)計(jì)等,*后1 章給出應(yīng)用實(shí)例。本書重在原理與實(shí)踐,從標(biāo)準(zhǔn)51 開始由淺入深出詳細(xì)介紹C8051F410,旨在培養(yǎng)讀者的單片機(jī)基礎(chǔ)知識和系統(tǒng)實(shí)用開發(fā)技能,讓讀者逐步掌握單片機(jī)的工作原理、電路設(shè)計(jì)與程序編寫能力。本書為浙江省省級精品課程建設(shè)成果。本書適合各類本科高等院校、高等職業(yè)技術(shù)學(xué)院、中等技術(shù)學(xué)校電氣類、電子信息類、自動化類、計(jì)算機(jī)類及機(jī)械電子工程專業(yè)單片機(jī)課程教材,也可供剛剛接觸單片機(jī)的初學(xué)者自學(xué)閱讀和從事單片機(jī)應(yīng)用設(shè)計(jì)的工程技術(shù)人員參考。
前言單片機(jī)又稱單片微控制器,它不僅是完成某一個邏輯功能的芯片,而是把一個計(jì)算機(jī)系統(tǒng)集成到一個芯片上,相當(dāng)于一個缺少了I/O 設(shè)備的微型計(jì)算機(jī)。1976 年Intel 公司研制出MCS?48 系列8 位單片機(jī),標(biāo)志著單片機(jī)的問世,同年Zilog公司開發(fā)的Z80 微處理器廣泛用于工業(yè)自動控制設(shè)備。20 世紀(jì)80 年代初,Intel 公司推出了MCS?51 系列8 位單片機(jī),MCS?51 單片機(jī)采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器、隨機(jī)存儲器、只讀存儲器、多種I/O 口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能集成到一塊硅片上構(gòu)成的一個小而完善的計(jì)算機(jī)系統(tǒng),擴(kuò)展方面有了很大的提高。隨著電子技術(shù)的高速發(fā)展,單片機(jī)種類豐富、功能日益完善,由單片機(jī)作為主控制器的設(shè)備如全自動洗衣機(jī)、變頻空調(diào)、遙控電視、數(shù)碼相機(jī)、高清機(jī)頂盒、門禁控制、打印機(jī)等產(chǎn)品早已悄悄地進(jìn)入了人們的生活;工業(yè)和國防領(lǐng)域的智能儀表、工業(yè)測控裝置、醫(yī)療CT、航天技術(shù)、導(dǎo)航設(shè)備、現(xiàn)代軍事裝備等都有單片機(jī)扮演著重要的角色。C8051 系列單片機(jī)是Silabs 公司開發(fā)的混合信號微處理器,采用全球領(lǐng)先的模擬器件、高速8051 CPU、ISP Flash 存儲器、JTAG 調(diào)試工具,是目前還在廣泛使用的8 位單片機(jī);兼容標(biāo)準(zhǔn)8051 硬件和指令系統(tǒng)集成有A/D、D/A、可編程定時(shí)/計(jì)數(shù)器陣列PCA、16 位定時(shí)器、UART、I2C 串行總線、看門狗定時(shí)器等眾多功能部件,因此又稱為片上系統(tǒng)(SoC)。最具特色的是增加了數(shù)字交叉開關(guān),它可將內(nèi)部數(shù)字系統(tǒng)資源定向到P0、P1 和P2 端口I/O 引腳,并可將定時(shí)器、串行總線、外部中斷源、AD 輸入、轉(zhuǎn)換比較器輸出通過設(shè)置Crossbar 開關(guān)控制寄存器定向到P0、P1、P2 的I/O 端口,這就允許用戶根據(jù)自己的特定應(yīng)用選擇通用I/O端口和所需數(shù)字資源的組合。目前的單片機(jī)教材大多是沿用20 世紀(jì)80 年代的8051 內(nèi)容,學(xué)生學(xué)完單片機(jī)課程后,不能直接融入企業(yè)的系統(tǒng)設(shè)計(jì)和技術(shù)開發(fā)。為此,本書在編寫過程中,對原有的MCS?51 單片機(jī)內(nèi)容進(jìn)行了壓縮和優(yōu)化,作為單片機(jī)原理性介紹,將那些在實(shí)際應(yīng)用中很少用到或已經(jīng)淘汰的芯片不再寫入教材,以C8051F410 的基本內(nèi)容及其應(yīng)用做重點(diǎn)介紹,形成具有鮮明特色的C8051F 系列單片機(jī)入門教材。全書共分9 章。第1 章是緒論,介紹了單片機(jī)的發(fā)展歷程、應(yīng)用領(lǐng)域、發(fā)展趨勢和SoC單片機(jī)的性能特點(diǎn);第2 章介紹了8051 單片機(jī)的硬件系統(tǒng)、體系結(jié)構(gòu)、引腳功能、存儲器,以及指令系統(tǒng)和使用方法;第3 章介紹了C51 在單片機(jī)中的編程方法,以及混合編程的具體運(yùn)用;第4 章介紹了8051 單片機(jī)定時(shí)器、中斷系統(tǒng)結(jié)構(gòu)、中斷控制及編程方法;第5 章介紹了8051 單片機(jī)串行口結(jié)構(gòu)和編程控制;第6 章介紹Silabs 公司推出的C8051F410 單片機(jī)的系統(tǒng)結(jié)構(gòu)、存儲器組織、IO 端口、中斷處理和時(shí)鐘、電源管理,以及相應(yīng)的控制方法;第7 章介紹C8051F410 單片機(jī)的片內(nèi)定時(shí)器和看門狗應(yīng)用;第8 章介紹C8051F410 單片機(jī)的模數(shù)和數(shù)模轉(zhuǎn)換器的接口使用方法;第9 章以電源控制系統(tǒng)為例,介紹系統(tǒng)硬件電路設(shè)計(jì)和軟件編程方法。全書內(nèi)容豐富,結(jié)構(gòu)完整,其中第2 章、第4 章、第5 章由吳桂初編寫,第6 章、第7章、第9 章由吳平編寫,第1 章、第8 章由楊衛(wèi)波編寫,第3 章由管曉春編寫,書中的示圖表格由章上聰制作和整理;參加本書編寫工作的還有部分研究生。吳桂初、吳平老師負(fù)責(zé)全書的策劃、內(nèi)容安排、文稿編寫修改和審定。全書參考教學(xué)理論36~54 學(xué)時(shí),實(shí)驗(yàn)18 學(xué)時(shí),每章配有適量的思考與練習(xí)題,教學(xué)時(shí)可以根據(jù)實(shí)際情況,適當(dāng)取舍。本書在編寫過程中參考了有關(guān)書籍和文獻(xiàn)資料,在此對相關(guān)作者一并致謝。由于作者水平有限,涉及的知識點(diǎn)較多,難免有錯誤和不足之處,歡迎讀者提出寶貴意見,以便進(jìn)一步改進(jìn)和完善。編 者2018 年2 月
主編吳桂初,溫州大學(xué)教授,浙江省低壓電器重點(diǎn)實(shí)驗(yàn)室主任、“單片機(jī)原理及應(yīng)用”精品課程負(fù)責(zé)人、“智能電網(wǎng)用低壓電器技術(shù)”重點(diǎn)科技創(chuàng)新團(tuán)隊(duì)帶頭人。浙江省浙重大科技專項(xiàng)專家組專家,中國電工技術(shù)學(xué)會電工產(chǎn)品可靠性研究會常務(wù)理事。主持浙江省重大科技專項(xiàng)多項(xiàng),發(fā)表學(xué)術(shù)論文60余篇。
目錄前言第1 章 緒論 11.1 單片機(jī)的發(fā)展概況 11.1.1 單片機(jī)的發(fā)展歷史 11.1.2 單片嵌入式系統(tǒng) 21.2 單片機(jī)的應(yīng)用及發(fā)展趨勢 31.2.1 單片機(jī)應(yīng)用系統(tǒng)結(jié)構(gòu) 31.2.2 單片嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 41.2.3 單片機(jī)的發(fā)展趨勢 51.3 SoC 單片機(jī)簡介 71.3.1 C8051F 系列單片機(jī)簡介 71.3.2 C8051F 系列單片機(jī)的特點(diǎn) 71.3.3 C8051F 系列單片機(jī)的應(yīng)用 91.4 思考與練習(xí) 9第2 章 標(biāo)準(zhǔn)單片機(jī)硬件結(jié)構(gòu)與指令系統(tǒng) 112.1 標(biāo)準(zhǔn)51 單片機(jī)的基本結(jié)構(gòu)及信號引腳 112.1.1 標(biāo)準(zhǔn)51 單片機(jī)的基本結(jié)構(gòu) 112.1.2 標(biāo)準(zhǔn)51 單片機(jī)的內(nèi)部結(jié)構(gòu) 122.1.3 標(biāo)準(zhǔn)51 單片機(jī)的引腳及其功能 142.2 標(biāo)準(zhǔn)51 單片機(jī)的存儲器結(jié)構(gòu) 152.2.1 標(biāo)準(zhǔn)51 單片機(jī)的數(shù)據(jù)存儲器 162.2.2 標(biāo)準(zhǔn)51 單片機(jī)的程序存儲器 182.2.3 標(biāo)準(zhǔn)51 單片機(jī)的特殊功能寄存器 192.3 標(biāo)準(zhǔn)51 單片機(jī)并行輸入/輸出口電路結(jié)構(gòu) 212.3.1 標(biāo)準(zhǔn)51 單片機(jī)的P1 接口、P3 接口的結(jié)構(gòu) 212.3.2 標(biāo)準(zhǔn)51 單片機(jī)的P0 接口、P2 接口的結(jié)構(gòu) 232.3.3 標(biāo)準(zhǔn)51 單片機(jī)并行接口的負(fù)載能力 242.4 標(biāo)準(zhǔn)51 單片機(jī)指令系統(tǒng)和尋址方式 242.4.1 標(biāo)準(zhǔn)51 單片機(jī)指令格式及常用符號 252.4.2 標(biāo)準(zhǔn)51 單片機(jī)的尋址方式 272.5 標(biāo)準(zhǔn)51 單片機(jī)指令分類介紹 302.5.1 數(shù)據(jù)傳送類指令(30 條) 312.5.2 算術(shù)運(yùn)算類指令(24 條) 352.5.3 邏輯運(yùn)算與循環(huán)類指令(25 條) 392.5.4 控制轉(zhuǎn)移類指令(22 條) 422.5.5 標(biāo)準(zhǔn)51 單片機(jī)指令長度和周期數(shù)規(guī)律歸納 452.6 標(biāo)準(zhǔn)51 單片機(jī)匯編語言程序設(shè)計(jì)舉例 462.6.1 程序編制的方法和技巧 462.6.2 源程序的編制 492.6.3 基本程序結(jié)構(gòu) 512.6.4 簡單程序舉例 562.7 思考與練習(xí) 57第3 章 單片機(jī)C51 語言程序設(shè)計(jì)基礎(chǔ) 603.1 C51 語言程序設(shè)計(jì)概述 603.1.1 C51 與匯編語言的區(qū)別 603.1.2 C51 程序設(shè)計(jì)基礎(chǔ) 623.2 C51 程序設(shè)計(jì)實(shí)例解析 703.2.1 基于C51 的程序設(shè)計(jì) 703.2.2 C51 程序設(shè)計(jì)與匯編語言程序設(shè)計(jì)的比較 713.3 Keil C51 集成開發(fā)環(huán)境簡介 763.4 思考與練習(xí) 84第4 章 標(biāo)準(zhǔn)51 單片機(jī)的中斷與定時(shí) 874.1 輸入輸出的基本概念 874.1.1 輸入輸出接口 874.1.2 輸入輸出方式 884.2 標(biāo)準(zhǔn)51 單片機(jī)中斷系統(tǒng) 924.2.1 標(biāo)準(zhǔn)51 單片機(jī)中斷源 934.2.2 標(biāo)準(zhǔn)51 單片機(jī)中斷控制 934.2.3 標(biāo)準(zhǔn)51 單片機(jī)中斷響應(yīng)及中斷處理過程 974.3 標(biāo)準(zhǔn)51 單片機(jī)的定時(shí)器/計(jì)數(shù)器 1044.3.1 標(biāo)準(zhǔn)51 單片機(jī)定時(shí)器的控制 1054.3.2 標(biāo)準(zhǔn)51 單片機(jī)定時(shí)器的4 種模式及其應(yīng)用 1074.4 定時(shí)器/計(jì)數(shù)器與中斷應(yīng)用舉例 1114.5 思考與練習(xí) 116第5 章 標(biāo)準(zhǔn)51 單片機(jī)串行通信 1185.1 串行口結(jié)構(gòu)與工作原理 1185.1.1 并行和串行通信 1185.1.2 串行通信的波特率 1195.1.3 標(biāo)準(zhǔn)51 單片機(jī)的串行接口 1195.2 串行通信工作方式 1225.2.1 串行口方式0 1225.2.2 串行口方式1 1235.2.3 串行口方式2 和方式3 1235.2.4 波特率設(shè)定 1245.3 串行口應(yīng)用舉例 1255.3.1 雙機(jī)通信硬件電路 1255.3.2 PC 和單片機(jī)之間的通信 1325.4 本章小結(jié) 1365.5 思考與練習(xí) 136第6 章 C8051F410 單片機(jī)的結(jié)構(gòu)與原理 1376.1 C8051F410 單片機(jī)系統(tǒng)結(jié)構(gòu) 1376.1.1 系統(tǒng)概述 1376.1.2 系統(tǒng)內(nèi)部結(jié)構(gòu) 1396.1.3 系統(tǒng)引腳 1426.2 C8051F410 存儲器組織 1456.3 C8051F410 端口輸入/輸出 1516.3.1 端口輸入/輸出 1516.3.2 優(yōu)先權(quán)交叉開關(guān)譯碼器 1526.3.3 端口I/O 初始化 1546.3.4 通用端口I/O 1576.4 C8051F410 中斷系統(tǒng) 1636.4.1 C8051F410 中斷系統(tǒng)概述 1636.4.2 中斷寄存器說明 1656.4.3 外部中斷 1696.5 復(fù)位與時(shí)鐘 1716.5.1 復(fù)位源 1716.5.2 上電復(fù)位 1726.5.3 掉電復(fù)位和VDD 監(jiān)視器 1726.5.4 外部復(fù)位 1736.5.5 時(shí)鐘丟失檢測器復(fù)位 1736.5.6 比較器0 復(fù)位 1746.5.7 PCA 看門狗定時(shí)器復(fù)位 1746.5.8 FLASH 錯誤復(fù)位 1746.5.9 smaRTClock(實(shí)時(shí)時(shí)鐘)復(fù)位 1746.5.10 軟件復(fù)位 1756.6 電源管理方式 1756.6.1 空閑方式 1756.6.2 停機(jī)方式 1756.6.3 掛起方式 1766.7 思考與練習(xí) 176第7 章 C8051F41x 片內(nèi)定時(shí)器/計(jì)數(shù)器 1777.1 定時(shí)器0 和定時(shí)器1 1777.2 定時(shí)器2 1837.3 定時(shí)器3 1877.4 可編程計(jì)數(shù)器陣列 1917.4.1 PCA 計(jì)數(shù)器/定時(shí)器 1927.4.2 捕捉/比較模塊 1927.5 看門狗定時(shí)器方式 1987.5.1 看門狗定時(shí)器操作 1987.5.2 看門狗定時(shí)器使用 1997.6 思考與練習(xí) 204第8 章 模數(shù)和數(shù)模轉(zhuǎn)換 2058.1 電壓基準(zhǔn) 2058.2 模數(shù)轉(zhuǎn)換器ADC 2078.2.1 12 位ADC 結(jié)構(gòu) 2078.2.2 ADC 工作方式 2088.2.3 可編程窗口檢測器 2118.2.4 ADC 相關(guān)的I/O 寄存器 2138.2.5 ADC 應(yīng)用設(shè)計(jì) 2168.2.6 ADC 應(yīng)用設(shè)計(jì)的深入討論 2198.3 數(shù)模轉(zhuǎn)換器DAC 2198.3.1 12 位IDAC 結(jié)構(gòu) 2198.3.2 IDA0 輸出更新 2208.3.3 IDAC 輸出字格式 2218.3.4 IDAC 相關(guān)的I/O 寄存器 2218.3.5 DAC 的應(yīng)用設(shè)計(jì) 2238.4 思考與練習(xí) 225第9 章 綜合應(yīng)用 2269.1 數(shù)控交流穩(wěn)壓電源簡介 2269.2 硬件電路設(shè)計(jì) 2269.2.1 單片機(jī)最小系統(tǒng) 2269.2.2 降壓模塊 2289.2.3 鍵盤模塊 2289.2.4 顯示模塊 2289.2.5 直流電機(jī)驅(qū)動模塊 2299.3 軟件程序設(shè)計(jì) 2299.3.1 變量聲明和初始化設(shè)置 2299.3.2 主程序設(shè)計(jì) 2339.3.3 定時(shí)器中斷任務(wù)程序設(shè)計(jì) 2339.3.4 A/D 中斷任務(wù)程序設(shè)計(jì) 2349.3.5 顯示任務(wù)程序設(shè)計(jì) 2359.3.6 按鍵任務(wù)程序設(shè)計(jì) 2369.3.7 電機(jī)任務(wù)程序設(shè)計(jì) 238附錄 80C51 單片機(jī)指令速查表 240參考文獻(xiàn) 244