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