《單片機原理及介面技術》是2011年8月人民郵電出版社出版的圖書,作者是張毅剛。
《單片機原理及介面技術(C51編程)》詳細介紹了美國ATMEL公司的AT89S51單片機的硬體結構和片內外圍部件的工作原理,
Keil C51編程基礎知識,並從應用設計的角度介紹AT89S51單片機的各種常用的硬體介面設計,以及相應的Keil C51介面驅動程序設計。本書最後介紹了AT89S51單片機應用系統設計以及一些典型應用舉例。
《單片機原理及介面技術(C51編程)》可作為各類工科院校、職業技術學院
電子技術、計算機、
工業自動化、自動控制、智能儀器儀錶、
電氣工程、
機電一體化等專業
單片機課程教材,也可供從事單片機應用設計的工程技術人員參考。
第1章 單片機概述 1 | 第2章 AT89S51單片機硬體結構 15 | 第3章 C51語言編程基礎 37 | 第4章 AT89S51片內并行埠的原理及編程 68 | 第5章 AT89S51單片機的中斷系統 79 |
1.1 什麼是單片機 1 | 2.1 AT89S51單片機的硬體組成 15 | 3.1 編程語言Keil C51簡介 37 | 4.1 AT89S51的并行I/O埠的結構及工作原理 68 | 5.1 AT89S51中斷技術概述 79 |
1.2 單片機的發展歷史 2 | 2.2 AT89S51的引腳功能 17 | 3.1.1 Keil C51簡介 37 | 4.1.1 P0口 68 | 5.2 AT89S51中斷系統結構 79 |
1.3 單片機的特點 2 | 2.2.1 電源及時鐘引腳 17 | 3.1.2 C51與標準C的比較 38 | 4.1.2 P1口 70 | 5.2.1 中斷請求源 80 |
1.4 單片機的應用 3 | 2.2.2 控制引腳 18 | 3.2 Keil C51的開發工具 39 | 4.1.3 P2口 70 | 5.2.2 中斷請求標誌寄存器 80 |
1.5 單片機的發展趨勢 4 | 2.2.3 并行I/O口引腳 18 | 3.2.1 集成開發環境Keil μVision3簡介 39 | 4.1.4 P3口 71 | 5.3 中斷允許與中斷優先順序的控制 81 |
1.6 MCS-51系列與AT89S5x系列單片機 5 | 2.3 AT89S51的CPU 19 | 3.2.2 Keil μVision3軟體的安裝、啟動和運行 40 | 4.1.5 P1~P3口驅動LED發光二極體的問題 72 | 5.3.1 中斷允許寄存器IE 82 |
1.6.1 MCS-51系列單片機 5 | 2.3.1 運算器 19 | 3.3 C51語言程序設計基礎 40 | 4.2 并行I/O埠的C51編程舉例 73 | 5.3.2 中斷優先順序寄存器IP 82 |
1.6.2 AT89系列單片機 6 | 2.3.2 控制器 21 | 3.3.1 C51語言中的數據類型與存儲類型 41 | 4.2.1 從左到右的流水燈的製作 73 | 5.4 響應中斷請求的條件 84 |
1.6.3 AT89系列單片機的型號說明 7 | 2.4 AT89S51單片機存儲器的結構 21 | 3.3.2 C51語言的特殊功能寄存器及位變數定義 45 | 4.2.2 左右來回循環的流水燈的製作 73 | 5.5 外部中斷的響應時間 85 |
1.7 各種衍生品種的51單片機 8 | 2.4.1 程序存儲器空間 22 | 3.3.3 C51語言的絕對地址訪問 47 | 4.2.3 開關量檢測指示器1 76 | 5.6 外部中斷的觸發方式選擇 86 |
1.7.1 STC系列單片機 9 | 2.4.2 數據存儲器空間 23 | 3.3.4 C51的基本運算 48 | 4.2.4 開關量檢測指示器2 76 | 5.6.1 電平觸發方式 86 |
1.7.2 C8051F×××單片機 10 | 2.4.3 特殊功能寄存器 23 | 3.3.5 C51的分支與循環程序結構 50 | 思考題及習題 77 | 5.6.2 跳沿觸發方式 86 |
1.7.3 ADμC812單片機 10 | 2.4.4 位地址空間 26 | 3.3.6 C51的數組 57 | | 5.7 中斷請求的撤銷 86 |
1.7.4 華邦W77系列、W78系列單片機 10 | 2.5 AT89S51單片機的并行I/O埠 27 | 3.3.7 C51的指針 58 | | 5.8 中斷函數 87 |
1.8 PIC系列單片機與AVR系列單片機 10 | 2.6 時鐘電路與時序 29 | 3.4 C51語言的函數 60 | | 5.9 C51編程舉例 88 |
1.8.1 PIC系列單片機 11 | 2.6.1 時鐘電路設計 29 | 3.4.1 函數的分類 60 | | 5.9.1 單一外中斷的應用 88 |
1.8.2 AVR系列單片機 12 | 2.6.2 機器周期、指令周期與指令時序 30 | 3.4.2 函數的參數與返回值 61 | | 5.9.2 兩個外中斷的應用 89 |
1.9 其他的嵌入式處理器簡介 12 | 2.7 複位操作和複位電路 31 | 3.4.3 函數的調用 62 | | 5.9.3 中斷嵌套 91 |
1.9.1 嵌入式DSP處理器 13 | 2.7.1 複位操作 31 | 3.4.4 中斷服務函數 63 | | 5.9.4 多外部中斷源系統設計 92 |
1.9.2 嵌入式微處理器 13 | 2.7.2 複位電路設計 31 | 3.4.5 變數及存儲方式 63 | | 思考題及習題 93 |
思考題及習題 14 | 2.8 低功耗節電模式 33 | 3.4.6 宏定義與文件包含 64 | | |
| 2.8.1 空閑模式 33 | 3.4.7 庫函數 65 | | |
| 2.8.2 掉電運行模式 34 | 3.5 軟體模擬開發工具Proteus與Keil μVision3的聯調 65 | | |
| 2.8.3 掉電和空閑模式下的WDT 34 | 3.5.1 軟體模擬開發工具Proteus簡介 65 | | |
| 思考題及習題 35 | 3.5.2 Proteus與Keil μVision3的聯調 66 | | |
| | 思考題及習題 67 | | |
第6章 AT89S51單片機的定時器/計數器 95 | 第7章 AT89S51單片機的串列口 110 | 第8章 AT89S51單片機外部存儲器的擴展 138 | 第9章 AT89S51單片機的I/O擴展 160 | 第10章 AT89S51單片機與輸入/輸出外設的介面 178 |
6.1 定時器/計數器的結構 95 | 7.1 串列口的結構 110 | 8.1 系統擴展結構 138 | 9.1 I/O介面擴展概述 160 | 10.1 LED數碼管顯示器的介面設計 178 |
6.1.1 工作方式控制寄存器TMOD 96 | 7.1.1 串列口控制寄存器SCON 110 | 8.2 地址空間分配和外部地址鎖存器 139 | 9.1.1 擴展的I/O介面功能 160 | 10.1.1 LED數碼管的工作原理 178 |
6.1.2 定時器/計數器控制寄存器TCON 96 | 7.1.2 特殊功能寄存器PCON 112 | 8.2.1 存儲器地址空間分配 139 | 9.1.2 I/O埠的編址 160 | 10.1.2 LED數碼管顯示器介面設計舉例 179 |
6.2 定時器/計數器的4種工作方式 97 | 7.2 串列口的4種工作方式 112 | 8.2.2 外部地址鎖存器 142 | 9.1.3 I/O數據的傳送方式 161 | 10.2 鍵盤的介面設計 183 |
6.2.1 方式0 97 | 7.2.1 方式0 112 | 8.3 程序存儲器EPROM的擴展 144 | 9.1.4 I/O介面電路 161 | 10.2.1 鍵盤介面應解決的問題 183 |
6.2.2 方式1 98 | 7.2.2 方式1 116 | 8.3.1 常用的EPROM晶元 144 | 9.2 AT89S51擴展I/O介面晶元82C55的設計 162 | 10.2.2 鍵盤介面設計舉例 184 |
6.2.3 方式2 98 | 7.2.3 方式2 117 | 8.3.2 程序存儲器的操作時序 146 | 9.2.1 82C55晶元簡介 162 | 10.2.3 鍵盤掃描方式的選取 188 |
6.2.4 方式3 99 | 7.2.4 方式3 118 | 8.3.3 AT89S51單片機與EPROM的介面電路設計 148 | 9.2.2 工作方式選擇控制字及埠PC置位/複位控制字 163 | 10.3 鍵盤/顯示器介面的設計實例 188 |
6.3 對外部輸入的計數信號的要求 100 | 7.3 多機通信 119 | 8.4 靜態數據存儲器RAM的擴展 149 | 9.2.3 82C55的3種工作方式 165 | 10.3.1 利用并行I/O晶元82C55實現鍵盤/顯示器介面 188 |
6.4 定時器/計數器的編程和應用 101 | 7.4 波特率的制定方法 120 | 8.4.1 常用的靜態RAM(SRAM)晶元 149 | 9.2.4 AT89S51單片機與82C55的介面設計 169 | 10.3.2 利用串列口實現的鍵盤/顯示器介面 191 |
6.4.1 P1口外接的8隻LED每0.5s閃亮一次 101 | 7.4.1 波特率的定義 120 | 8.4.2 外擴數據存儲器的讀寫操作時序 150 | 9.3 利用74LSTTL電路擴展并行I/O口 171 | 10.3.3 專用介面晶元HD7279實現的鍵盤/顯示器控制 193 |
6.4.2 計數器的應用 102 | 7.4.2 定時器T1產生波特率的計算 120 | 8.4.3 AT89S51單片機與RAM的介面電路設計 151 | 9.4 用AT89S51單片機的串列口擴展并行口 172 | 10.4 AT89S51單片機與液晶顯示器的介面 204 |
6.4.3 擴展一個外部中斷源 103 | 7.5 串列通信的應用設計 122 | 8.5 EPROM和RAM的綜合擴展 153 | 9.4.1 用74LS165擴展并行輸入口 172 | 10.4.1 LCD顯示器的分類 204 |
6.4.4 P1.0上產生周期為2ms的方波 104 | 7.5.1 各種串列通信介面標準 122 | 8.5.1 綜合擴展的硬體介面電路 153 | 9.4.2 用74LS164擴展并行輸出口 173 | 10.4.2 點陣字元型液晶顯示模塊介紹 204 |
6.4.5 P1.1上產生周期為1s的方波 104 | 7.5.2 方式1的應用 124 | 8.5.2 外擴存儲器電路的編程 155 | 9.5 用I/O口控制的聲音報警介面 174 | 10.4.3 AT89S51單片機與LCD的介面及軟體編程 208 |
6.4.6 T1控制發出1kHz的音頻信號 105 | 7.5.3 方式2和方式3的應用 127 | 8.6 片內Flash存儲器的編程 155 | 9.5.1 揚聲器報警介面 174 | 10.5 AT89S51單片機與微型印表機TP(P-40A/16A的介面 211 |
6.4.7 測量脈衝寬度——門控位GATEx的應用 106 | 7.5.4 主從式多機通信的應用 129 | 8.6.1 通用編程器編程 157 | 9.5.2 音樂報警介面 176 | 10.6 AT89S51單片機與BCD碼撥盤的介面設計 215 |
6.4.8 實時時鐘的設計 107 | 7.5.5 單片機與PC的串列通信 133 | 8.6.2 ISP編程 157 | 思考題及習題 176 | 思考題及習題 216 |
思考題及習題 108 | 7.5.6 PC與單片機或與多個單片機的串列通信介面設計 135 | 思考題及習題 158 | | |
| 思考題及習題 136 | | | |
第11章 AT89S51單片機與D/A、A/D轉換器的介面 217 | 第12章 單片機的串列擴展技術 239 | 第13章 AT89S51單片機的應用設計與調試 256 |
11.1 AT89S51單片機與DAC的介面 217 | 12.1 單匯流排串列擴展 239 | 13.1 單片機應用系統的設計步驟 256 |
11.1.1 D/A轉換器簡介 217 | 12.2 SPI匯流排串列擴展 240 | 13.2 單片機應用系統設計 257 |
11.1.2 AT89S51單片機與8位D/A轉換器0832的介面設計 218 | 12.2.1 SPI匯流排的擴展結構 241 | 13.2.1 硬體設計應考慮的問題 257 |
11.2 AT89S51單片機與ADC的介面 225 | 12.2.2 擴展帶SPI串口的A/D轉換器TLC2543 242 | 13.2.2 典型的單片機應用系統 258 |
11.2.1 A/D轉換器簡介 225 | 12.3 I2C匯流排的串列擴展 243 | 13.2.3 系統設計中的地址空間分配與匯流排驅動 259 |
11.2.2 AT89S51與逐次比較型8位A/D轉換器ADC0809的介面 226 | 12.3.1 I2C串列匯流排系統的基本結構 244 | 13.2.4 應用設計例1——最小應用系統設計 261 |
11.2.3 AT89S51與逐次比較型12位A/D轉換器AD1674的介面 230 | 12.3.2 I2C匯流排的數據傳送規定 244 | 13.2.5 應用設計例2——數字電壓表的設計 262 |
11.3 AT89S51單片機與V/F轉換器的介面 234 | 12.3.3 AT89S51的I2C匯流排擴展系統 247 | 13.2.6 應用設計例3——帶有報警功能的溫度測量儀的設計 264 |
11.3.1 用V/F轉換器實現A/D轉換的原理 235 | 12.3.4 I2C匯流排數據傳送的模擬 248 | 13.3 單片機應用系統的模擬開發與調試 266 |
11.3.2 常用V/F轉換器LMX31簡介 235 | 12.3.5 I2C匯流排在IC卡中的應用 251 | 13.3.1 模擬開發系統的種類與基本功能 267 |
11.3.3 V/F轉換器與MCS-51單片機介面 236 | 思考題及習題 25 | 13.3.2 模擬開發系統簡介 267 |
11.3.4 LM331應用舉例 237 | | 13.3.3 用戶樣機的模擬調試 270 |
思考題及習題 238 | | 13.4 單片機應用系統的抗干擾與可靠性設計 272 |
| | 13.4.1 AT89S51片內看門狗定時器的使用 273 |
| | 13.4.2 軟體濾波 273 |
| | 13.4.3 開關量輸入/輸出軟體抗干擾設計 274 |
| | 13.4.4 過程通道干擾的抑制措施——隔離 275 |
| | 13.4.5 印刷電路板抗干擾布線的基本原則 276 |
| | 思考題及習題 278 |
| | 參考文獻 280 |
張毅剛 哈爾濱工業大學教授,國家精品課程“
單片機原理”負責人,黑龍江省教學名師,
教育部全國高校教師網路培訓“單片機原理”課程特聘主講教授。長期從事“單片機原理及應用”、“
計算機自動測試”等課程的教學工作,編著並出版國家級“十五”規劃教材一本、國家級
“十一五”規劃教材兩本,全國工科電子類統編教材一本。主要研究方向為
微控制器技術應用、
虛擬儀器技術、電子測量等。參加並完成多項
科研項目,獲國家科技進步二等獎1項,部委科技進步獎多項。