第1章 緒論 11.1 單片機基礎知識 11.1.1 單片機的結構和特點 11.1.2 單片機的發(fā)展 21.1.3 單片機芯片技術的發(fā)展趨勢 21.2 單片機應用 41.2.1 單片機應用方向 41.2.2 單片機應用系統(tǒng)的分類 51.3 51系列單片機 61.3.1 MCS-51系列單片機 61.3.2 AT89系列單片機 71.3.3 各種衍生品種的51單片機 81.4 其他系列單片機 101.5 其他嵌入式處理器簡介 12習題1 13第2章 AT89S51單片機的結構與組成 142.1 AT89S51單片機的內部結構及信號引腳 142.1.1 AT89S51單片機結構 142.1.2 信號引腳 162.1.3 中央處理器CPU 172.1.4 存儲器 192.1.5 I/O口及相應的特殊功能寄存器 242.2 時鐘電路與CPU時序 272.2.1 時鐘電路 272.2.2 CPU時序 272.3 AT89S51單片機的復位 292.4 AT89S51單片機的節(jié)電方式 302.4.1 空閑方式 312.4.2 掉電方式 312.5 Flash的串行編程和三級加密 32習題2 34第3章 指令與匯編語言程序設計 353.1 指令系統(tǒng)概述 353.1.1 MCS-51匯編指令的格式 363.1.2 指令中的符號標識及注釋符 363.2 尋址方式 373.2.1 寄存器尋址 373.2.2 直接尋址 373.2.3 寄存器間接尋址 383.2.4 立即尋址 393.2.5 變址尋址 393.2.6 相對尋址 393.2.7 位尋址 403.2.8 MCS-51尋址方式小結 403.3 MCS-51指令說明 413.3.1 數據傳送指令 413.3.2 算術操作指令 453.3.3 邏輯操作及移位類指令 493.3.4 控制轉移指令 523.3.5 位操作類指令 573.3.6 訪問I/O口指令的使用說明 583.4 MCS-51偽指令 593.5 MCS-51匯編語言程序設計 613.5.1 順序結構程序設計 613.5.2 分支程序設計 623.5.3 循環(huán)程序設計 633.5.4 子程序設計 66習題3 69第4章 C51程序設計 724.1 Keil C51編程語言 724.1.1 Keil C51的函數和程序結構 724.1.2 C51和標準C的函數差別 744.2 C51的數據類型、運算符、表達式 764.2.1 C51的基本數據類型 764.2.2 C51變量、常量、指針 774.2.3 C51的復雜數據類型 814.2.4 C51的運算符和表達式 834.3 C51的程序流控制語句 864.4 編譯預處理命令 884.4.1 宏定義 884.4.2 條件編譯 884.4.3 文件包含 894.4.4 數據類型的重新定義 904.5 C51的編程技巧 904.6 Keil C51庫函數原型列表 914.7 C51編程實例 944.7.1 基本的輸入/輸出 944.7.2 C51軟件延時 95習題4 96第5章 AT89S51中斷系統(tǒng) 975.1 中斷概述 975.2 AT89S51中斷系統(tǒng) 985.2.1 AT89S51中斷源 985.2.2 AT89S51中斷控制 1005.2.3 中斷響應 1015.3 中斷系統(tǒng)的編程 1025.3.1中斷服務程序的結構 1025.3.2 C51中斷函數 1025.3.3 中斷應用舉例 1035.4 外部中斷源的擴展 1075.4.1 用定時器T0、T1作為外部中斷擴展 1075.4.2 用中斷與查詢相結合的方法擴展外部中斷 107習題5 108第6章 AT89S51/S52單片機的定時器/計數器 1096.1 定時器的內部結構 1096.1.1 方式寄存器TMOD 1106.1.2 控制寄存器TCON 1116.1.3 定時器的工作方式 1116.2 定時器應用舉例 1136.2.1 定時控制、脈寬檢測 1136.2.2 電壓/頻率轉換 1176.3 定時器/計數器T2 1186.3.1 T2的狀態(tài)控制寄存器T2CON 1196.3.2 T2的工作方式 1196.4 監(jiān)視定時器 1236.4.1 WDT的原理 1236.4.2 AT89S51內部的WDT 1236.4.3 AT89S51掉電和空閑狀態(tài)時的WDT 1236.4.4 WDT的軟件技術 124習題6 124第7章 AT89S51的串行通信及其應用 1267.1 概述 1267.1.1 串行通信的字符格式 1267.1.2 串行通信的數據通路形式 1277.1.3 串行通信的傳輸速率 1277.1.4 串行通信的總線標準與接口 1287.2 51單片機的串行通信接口 1327.2.1 通用的異步接收/發(fā)送器UART 1327.2.2 串行口的控制寄存器 1337.2.3 串行接口的工作方式 1347.2.4 波特率設計 1367.3 串行通信應用舉例 1387.3.1 方式0應用設計鍵盤顯示接口 1387.3.2 雙機、多機通信應用 1397.3.3 單片機與微機的串行通信 1497.3.4 單片機在GSM無線通信網絡中的應用 1527.4 CAN總線串行通信技術 1577.4.1 CAN總線系統(tǒng)構成 1587.4.2 CAN總線的報文類型與幀結構 1597.4.3 CAN的總線技術 1647.4.4 CAN控制器SJA1000 1657.4.5 CAN總線收發(fā)器82C50 1727.4.6 CAN 總線系統(tǒng)智能節(jié)點 173習題7 175第8章 51單片機系統(tǒng)擴展技術 1768.1 并行總線擴展技術 1778.1.1 并行總線技術 1778.1.2 存儲器的并行擴展 1788.1.3 I/O接口的并行擴展 1848.2 串行總線擴展技術 1908.2.1 I2C串行總線 1908.2.2 SPI總線 1968.2.3 1-Wire 單總線 201習題8 208第9章 單片機與外設接口技術 2109.1 鍵盤接口技術 2109.1.1 鍵盤的基本工作原理 2109.1.2 鍵盤工作方式 2129.2 顯示器接口技術 2159.2.1 LED顯示器 2159.2.2 LCD點陣液晶顯示器及其接口 2229.3 D/A轉換接口技術 2289.3.1 后向通道概述 2289.3.2 D/A轉換器的技術指標 2299.3.3 12位電壓輸出型串行D/A轉換器TLV5616 2309.3.4 電壓/電流轉換電路設計 2329.4 A/D轉換接口技術 2329.4.1 前向通道概述 2329.4.2 A/D轉換器工作原理及分類 2339.4.3 串行A/D轉換器TLC1542的應用 2349.4.4 8位A/D及D/A轉換器PCF8591 2369.5 紅外遙控 2399.5.1 紅外遙控系統(tǒng) 2399.5.2 遙控發(fā)射器及其編碼 2399.5.3 遙控信號接收 240習題9 242第10章 系統(tǒng)設計及抗干擾技術 24310.1 單片機應用系統(tǒng)的開發(fā)過程 24310.1.1 技術方案論證 24310.1.2 硬件系統(tǒng)的設計 24410.1.3 應用軟件的設計 24510.1.4 硬件、軟件系統(tǒng)的調試 24510.1.5 程序的固化 24510.2 單片機硬件系統(tǒng)的設計 24510.2.1 元件的選取 24510.2.2 硬件電路的設計原則 24610.2.3 單片機資源的分配 24610.2.4 印制電路板的設計 24710.3 單片機軟件系統(tǒng)的設計 24810.3.1 任務的確定 24810.3.2 軟件結構的設計 24810.4 單片機系統(tǒng)抗干擾技術 24810.4.1 硬件抗干擾措施 24810.4.2 軟件抗干擾措施 250第11章 Keil C51軟件的使用 25311.1 工程文件的建立及設置 25311.1.1 工程文件的建立和編譯、連接 25311.1.2 設置工程文件的屬性 25611.2 程序調試 25911.2.1 常用調試命令 25911.2.2 在線匯編 26011.2.3 斷點設置 26111.3 Keil程序調試窗口 26111.3.1 存儲器窗口 26111.3.2 觀察窗口 26211.3.3 工程窗口寄存器頁 26211.3.4 外圍接口窗口 263附錄A MCS-51指令表 264附錄B ASCII碼表 269