《51單片機開發與套用技術詳解》是2009年電子工業出版社出版的圖書,作者是趙建領、薛園園。本書全面詳細地講述了單片機的原理、編程指南及套用案例,其中51系列單片機的編程部分是本書的重點。
基本介紹
宣傳語,內容簡介,適合讀者,目錄,專業,
宣傳語
原創經典,中科院一線研發工程師傾力打造
深入介紹51單片機程式語言,透析單片機硬體編程操作
通過大量典型套用案例,引領讀者迅速掌握51單片機開發技術
內容簡介
全書分為5篇38章。首先介紹了51系列單片機的開發概述及單片機的基本結構,接著介紹了單片機的彙編程式設計語言,然後介紹了單片機C51語言的程式設計,隨後結合單片機的指令系統及各個功能部件詳細講解了單片機的編程操作,以及單片機硬體資源的仿真和程式調試。本書最後還給出了在各個領域中常用到的一些典型案例,供讀者在學習和工作中參考。
本書知識點覆蓋全面、結構安排緊湊、講解詳細、實例豐富。對於51系列單片機的初學者,通過本書可以快速掌握單片機的程式設計。本書對具有一定開發經驗的設計人員,也有很好的參考價值。
適合讀者
單片機的初學者
電子設計愛好者
電子工程師
系統開發人員
大學、大專等電子相關專業的學生及教師
編 者
目錄
第一篇 51系列單片機基礎
第1章 51系列單片機概述 35
本章主要介紹了單片機的發展歷程、51系列單片機的簡介和51系列單片機的套用領域;接著介紹了一下實際常用的一些主流半導體廠商的單片機型號,以供讀者參考;最後,詳細介紹了開發51系列單片機套用系統的整個流程及主要注意事項。
1.1 單片機的產生與發展 35
1.2 51系列單片機介紹 36
1.2.1 51系列單片機簡介 36
1.2.2 51系列單片機的套用領域 36
1.3 最新51核心單片機介紹 37
1.3.1 Atmel單片機介紹 37
1.3.2 Cypress單片機介紹 37
1.3.3 Infineon單片機介紹 38
1.3.4 Silicon單片機介紹 38
1.3.5 Maxim單片機介紹 38
1.3.6 NXP單片機介紹 39
1.3.7 Winbond單片機介紹 39
1.3.8 Analog Devices單片機介紹 39
1.3.9 TI單片機介紹 40
1.3.10 其他單片機介紹 40
1.4 51系列單片機開發概述 40
1.4.1 分析測控系統 41
1.4.2 單片機選型 41
1.4.3 硬體資源分配 41
1.4.4 程式設計 42
1.4.5 仿真測試 42
1.4.6 實際硬體測試 42
1.5 小結 42
第2章 51系列單片機基本結構 43
本章詳細介紹了51系列單片機的基本結構,包括單片機的內部結構、引腳功能、中央處理器CPU、存儲器的結構、單片機的復位、單片機工作的時鐘和時序、並行I/O連線埠的結構和性能,以及單片機系統的掉電保護和低功耗設計。最後,還給出了一個典型的單片機最小系統。本章在講述的時候,不僅對基本的8051進行了介紹,還介紹了目前新推出的高性能單片機AT89S52。這樣讀者在學習基礎知識的同時,還可以了解最新單片機的性能和使用。
2.1 51系列單片機的內部結構 43
2.1.1 內部結構的主要組成部分 43
2.1.2 單片機結構的類型 44
2.2 51系列單片機的引腳功能 45
2.2.1 51系列單片機的引腳封裝 45
2.2.2 51系列單片機引腳功能 45
2.3 中央處理器(CPU) 47
2.3.1 算術邏輯部件(ALU) 47
2.3.2 控制器 47
2.3.3 通用暫存器 48
2.3.4 專用暫存器 48
2.4 存儲器結構 50
2.4.1 程式存儲器及其擴展 50
2.4.2 數據存儲器及其擴展 51
2.5 51系列單片機的復位 55
2.5.1 單片機的復位狀態 55
2.5.2 單片機的復位電路 55
2.6 51系列單片機的時鐘和時序 56
2.6.1 振盪器和時鐘電路 57
2.6.2 CPU的時序 58
2.6.3 指令執行的時序 58
2.6.4 訪問外部ROM/RAM的操作時序 60
2.7 51系列單片機的並行I/O口 61
2.7.1 並行I/O口 61
2.7.2 並行I/O口的套用 64
2.7.3 並行I/O口的擴展 64
2.8 系統掉電保護和低功耗設計 66
2.8.1 掉電保護 66
2.8.2 低功耗設計 67
2.9 51系列單片機的最小系統 68
2.10 小結 69
第3章 Keil C51開發工具簡介 70
本章詳細介紹了Keil μVision3的集成開發環境μVision3,包括安裝過程、項目管理視窗、選單欄、工具列,以及μVision3的管理配置和各種常用的視窗。μVision3是一個十分優秀的單片機開發軟體,套用得十分廣泛,熟練掌握μVision3集成開發環境的使用是單片機設計的基礎。
3.1 Keil μVision3簡介 70
3.2 μVision3安裝 70
3.3 μVision3集成開發環境 71
3.3.1 μVision3項目管理視窗 72
3.3.2 μVision3的選單欄 72
3.3.3 μVision3的工具列 77
3.3.4 μVision3的管理配置 79
3.3.5 μVision3的各種常用視窗 81
3.4 小結 84
第二篇 編程篇——彙編語言
第4章 彙編語言程式設計 85
本章主要講述了彙編語言的偽指令、彙編語言的程式格式及源程式的編譯。本章最後還通過一個具體的實例,介紹了如何在Keil μVision3集成開發環境中進行單片機的彙編程式設計及仿真。彙編語言是最早套用於單片機開發的程式語言。相比其他程式設計語言,彙編語言指令的執行速度快、代碼短小精悍,且具有確定的指令執行周期。熟練掌握本章內容是後續彙編語言程式學習的基礎。
4.1 彙編語言程式概述 85
4.1.1 彙編語言簡介 85
4.1.2 彙編語言程式設計步驟 86
4.1.3 彙編語言程式實例 86
4.2 偽指令 87
4.2.1 彙編程式起始偽指令ORG 87
4.2.2 彙編程式結束偽指令END 87
4.2.3 等值偽指令EQU(或=) 87
4.2.4 數據地址賦值偽指令DATA 88
4.2.5 定義位元組偽指令DB 88
4.2.6 定義字偽指令DW 88
4.2.7 定義空間偽指令DS 89
4.2.8 位地址符號偽指令BIT 89
4.3 彙編語言程式的格式 89
4.4 源程式的彙編 90
4.5 Keil μVision3中運行彙編語言實例 90
4.5.1 創建項目 90
4.5.2 創建源檔案 91
4.5.3 編譯項目 92
4.5.4 仿真調試 92
4.6 小結 93
第5章 彙編語言程式結構 94
本章主要介紹了利用彙編語言進行單片機設計的各種程式結構,包括順序結構、分支結構、循環結構和子程式結構。本章還介紹了兩類比較常用的程式設計類型,即查表程式和運算類的程式。對於比較複雜的問題可以根據設計的要求,選用不同的程式結構來進行設計。因此,熟練掌握本章內容,對讀者以後的設計工作會很有幫助。
5.1 順序結構程式 94
5.2 分支結構程式 95
5.2.1 雙分支結構 95
5.2.2 多分支結構 96
5.3 循環結構程式 97
5.3.1 循環程式的結構和組成 97
5.3.2 循環程式示例 98
5.3.3 多重循環程式結構 99
5.4 子程式結構 100
5.4.1 子程式的結構 100
5.4.2 子程式的調用與返回 100
5.4.3 子程式設計實例 101
5.5 查表結構程式 102
5.6 運算類程式 103
5.6.1 8位帶符號整數的乘法子程式 103
5.6.2 8位帶符號整數的除法子程式 104
5.7 小結 106
第三篇 編程篇——C51
第6章 單片機C語言程式設計基礎 107
單片機C語言是現在單片機系統設計所廣泛採用的程式語言。本章首先介紹了單片機C語言(C51語言)的特點,然後分別介紹了C51語言的標識符、關鍵字、數據類型、運算符和表達式等,並對每一個知識點都提供了完整詳細的實例分析。本章是單片機C51語言的基礎,熟練掌握本章知識,對以後章節的學習會有很大的幫助。
6.1 單片機C語言概述 107
6.1.1 單片機C語言和彙編語言對比 107
6.1.2 C51語言的主要特點 107
6.2 單片機C語言在Keil μVision3中套用實例 108
6.2.1 創建項目 108
6.2.2 創建源檔案 109
6.2.3 編譯項目 109
6.2.4 仿真調試 110
6.3 C51的標識符與關鍵字 111
6.3.1 標識符 111
6.3.2 關鍵字 111
6.4 C51的數據類型 113
6.4.1 常量與變數 114
6.4.2 整型數據 114
6.4.3 浮點型數據 115
6.4.4 字元型數據 116
6.4.5 指針型數據 119
6.4.6 無值型數據 120
6.5 C51的變數作用域 120
6.5.1 基本規則 120
6.5.2 自動變數 121
6.5.3 外部變數 122
6.5.4 靜態變數 123
6.5.5 暫存器變數 123
6.6 分隔設定與const修飾符 123
6.6.1 C51分隔設定 123
6.6.2 const修飾符 124
6.7 運算符 125
6.7.1 算術運算符 125
6.7.2 邏輯運算符和關係運算符 126
6.7.3 位運算符 128
6.7.4 特殊運算符 130
6.7.5 運算符優先權和結合性 133
6.8 表達式 134
6.8.1 算術表達式 134
6.8.2 賦值表達式 135
6.8.3 逗號表達式 136
6.8.4 關係和邏輯表達式 137
6.9 小結 138
第7章 數組 139
本章首先介紹了C51語言中的數組的使用,主要包括數組類型的說明、數組元素的表示及初始化賦值。接著,本章分別對一維數組、二維數組及多維數組的使用進行了詳細的講解。數組是重要數據結構,廣泛套用於C51語言的程式設計中。因此,熟練掌握本章內容是學習C51語言的基礎。
7.1 數組類型說明 139
7.2 數組元素的表示 140
7.3 數組元素的初始化賦值 140
7.4 一維數組 141
7.4.1 一維數組聲明 142
7.4.2 向函式傳遞一維數組 142
7.4.3 一維字元串數組 142
7.5 二維數組 143
7.5.1 二維數組聲明 144
7.5.2 二維數組初始化 145
7.5.3 二維字元串數組 146
7.6 多維數組 147
7.7 小結 147
第8章 指針 148
本章首先介紹了C51語言中指針的使用,主要包括指針的概念、指針變數的聲明和賦值。接著,本章詳細講解了指針變數的引用及運算規則。最後,本章還對幾種特殊的指針進行了詳細的介紹,主要包括數組指針、字元指針及指針數組。指針的概念來源於C語言,在程式設計中靈活使用指針可以最佳化程式設計。因此,熟練掌握本章內容是學習C51語言的基礎,同時對讀者以後的C51語言程式設計工作會大有幫助。
8.1 地址、指針和指針變數的概念 148
8.2 指針變數的聲明 148
8.3 指針變數的賦值 149
8.3.1 初始化賦值 149
8.3.2 取地址賦值 149
8.3.3 指針之間賦值 149
8.3.4 數組賦值 150
8.3.5 字元串賦值 150
8.3.6 函式入口賦值 150
8.4 指針變數的引用 150
8.4.1 取地址運算符“&” 150
8.4.2 取內容運算符“*” 151
8.5 指針變數的運算 152
8.5.1 關係運算 152
8.5.2 算術運算 152
8.6 數組指針 153
8.6.1 指向一維數組的指針 153
8.6.2 指向二維數組的指針 154
8.6.3 指向一個由n個元素所組成的數組指針 156
8.6.4 指針和數組的關係 156
8.7 字元指針 157
8.8 指針數組 158
8.9 小結 159
第9章 結構 160
本章首先介紹了C51語言中的結構的使用,主要包括結構的定義、結構變數的定義和賦值。接著,本章詳細講解了結構數組及結構指針的使用。最後,本章還對幾種特殊的指針進行了詳細的介紹,主要包括嵌套結構和位結構。結構是C51語言中重要的數據類型,其和C語言中的結構非常類似。熟練掌握本章內容是學習C51語言的基礎,同時對讀者以後的C51程式設計工作會大有幫助。
9.1 結構的定義 160
9.2 結構變數的定義 161
9.2.1 先定義結構,再定義結構變數 161
9.2.2 在定義結構的同時,定義結構變數 161
9.2.3 直接說明結構變數 161
9.3 結構變數的使用 162
9.4 多重結構變數的賦值 163
9.5 結構變數的初始化 163
9.6 結構數組 164
9.6.1 結構數組的定義 164
9.6.2 結構數組的初始化賦值 165
9.7 結構指針 166
9.8 特殊結構 168
9.8.1 嵌套結構 168
9.8.2 位結構 169
9.9 小結 170
第10章 聯合、枚舉、類型說明和位域 171
本章主要介紹了幾種特殊形式的聚合數據類型,包括聯合類型、枚舉類型,還介紹了類型說明及位域。這些特殊的數據類型是對基本數據類型的有效擴充。靈活運用這些特殊數據類型,可以方便單片機的程式設計。因此,熟練掌握本章內容是單片機程式設計的基礎。
10.1 聯合類型 171
10.1.1 聯合和聯合變數的定義 171
10.1.2 聯合變數成員的引用 172
10.2 結構和聯合的區別 174
10.3 枚舉類型 175
10.3.1 枚舉的定義 175
10.3.2 枚舉變數的聲明 175
10.3.3 枚舉類型變數的賦值 176
10.4 類型說明 178
10.5 位域 179
10.5.1 位域的定義和位域變數的聲明 179
10.5.2 位域變數的使用 180
10.6 小結 181
第11章 C51語言的函式 182
本章詳細介紹了C51語言中函式的使用,包括函式的定義、形參和實參、函式的返回值、函式的調用、函式及其變數的作用域。本章還結合單片機程式設計的特點,介紹了C51程式中的main函式。函式是C51語言中的重要概念,靈活運用函式可以實現程式的模組化設計。因此,熟練掌握本章內容,是C51語言程式設計的基礎。
11.1 函式的概念和分類 182
11.1.1 從函式定義角度 182
11.1.2 從有無返回值角度 183
11.1.3 從數據傳送角度 183
11.2 函式的定義 183
11.3 函式的參數 185
11.3.1 形參和實參 185
11.3.2 數組作為函式參數 186
11.3.3 多維數組作為函式參數 188
11.3.4 指針作為函式參數 188
11.4 函式的返回值 189
11.5 函式調用 189
11.5.1 賦值調用與引用調用 190
11.5.2 遞歸調用 190
11.5.3 嵌套調用 192
11.6 函式及其變數的作用域 193
11.6.1 函式的作用域 193
11.6.2 函式的變數作用域 193
11.7 main函式 194
11.8 小結 194
第12章 C51語言的常用庫函式詳解 195
本章詳細講解了C51語言中常用的庫函式,主要包括字元函式、字元串函式、I/O函式、數學函式、標準函式、內部函式、絕對地址訪問函式、變數參數表函式、全程跳轉函式及偏移量函式。這些庫函式涵蓋了常見的字元、字元串、數學計算、I/O控制等功能,讀者在進行程式設計時可以直接調用使用。因此,熟練掌握和運用本章內容,可以大大減輕程式設計的負擔,方便單片機的程式設計。
12.1 字元函式 195
12.1.1 檢查英文字母函式 195
12.1.2 檢查字母數字函式 196
12.1.3 檢查控制字元函式 196
12.1.4 十進制數字檢查函式 197
12.1.5 可列印字元檢查函式 197
12.1.6 包含空格的可列印字元檢查函式 198
12.1.7 格式字元檢查函式 199
12.1.8 小寫英文字母檢查函式 199
12.1.9 大寫英文字母檢查函式 200
12.1.10 控制字元檢查函式 200
12.1.11 十六進制數字檢查函式 201
12.1.12 十六進制數字轉換函式 202
12.1.13 大寫字元轉換函式 202
12.1.14 小寫字元轉換函式 203
12.1.15 ASCII字元轉換函式 204
12.1.16 大寫字元宏轉換函式 204
12.1.17 小寫字元宏轉換函式 205
12.2 字元串函式 206
12.2.1 字元查找函式 206
12.2.2 指定長度的字元串比較函式 206
12.2.3 字元串複製函式 207
12.2.4 帶終止字元的字元串複製函式 208
12.2.5 字元串移動函式 209
12.2.6 字元串填充函式 209
12.2.7 字元串追加函式 210
12.2.8 指定長度的字元串追加函式 210
12.2.9 字元串比較函式 211
12.2.10 包含結束符的字元串比較函式 212
12.2.11 字元串覆蓋函式 213
12.2.12 指定長度的字元串覆蓋函式 213
12.2.13 獲取字元串個數函式 214
12.2.14 搜尋字元串函式 214
12.2.15 搜尋字元函式 215
12.2.16 返回位置值的字元搜尋函式 216
12.2.17 字元包含函式 216
12.2.18 返回位置值的字元包含函式 217
12.2.19 在指定字元集中查找不包含字元函式 218
12.2.20 在指定字元集中查找包含字元函式 218
12.2.21 查找第一個包含字元函式 219
12.2.22 查找最後一個包含字元函式 219
12.3 I/O函式 220
12.3.1 字元讀入函式 220
12.3.2 字元讀入輸出函式 221
12.3.3 字元串讀入函式 222
12.3.4 字元回送函式 222
12.3.5 字元輸出函式 223
12.3.6 格式化輸出函式 223
12.3.7 格式化記憶體緩衝區輸出函式 225
12.3.8 字元串輸出函式 226
12.3.9 格式化輸入函式 227
12.3.10 格式化記憶體緩衝區輸入函式 228
12.3.11 字元串記憶體輸出函式 229
12.3.12 指向緩衝區的輸出函式 230
12.4 數學函式 231
12.4.1 絕對值函式 231
12.4.2 指數及對數函式 232
12.4.3 三角函式 232
12.4.4 取整函式 234
12.4.5 浮點型分離函式 234
12.4.6 冪函式 235
12.5 標準函式 235
12.5.1 字元串轉換函式 236
12.5.2 帶返回指針的字元串轉換函式 237
12.5.3 隨機函式 238
12.5.4 數組記憶體分配函式 238
12.5.5 釋放記憶體函式 239
12.5.6 初始化記憶體函式 240
12.5.7 記憶體分配函式 240
12.5.8 調整記憶體大小函式 241
12.6 內部函式 242
12.6.1 循環左移函式 242
12.6.2 循環右移函式 243
12.6.3 延時函式 244
12.6.4 位測試函式 244
12.7 絕對地址訪問函式 245
12.7.1 BYTE型存儲空間訪問函式 245
12.7.2 WORD型存儲空間訪問函式 245
12.7.3 far存儲區訪問函式 246
12.7.4 far存儲區數組訪問函式 247
12.8 變數參數表函式 247
12.9 全程跳轉函式 248
12.10 計算結構體成員的偏移量函式 249
12.11 小結 250
第13章 C51語句和流程 251
本章詳細講述了單片機C51語言中的各種語句結構,包括說明語句、表達式語句、複合語句、循環語句、條件語句、開關語句、跳轉語句、函式調用語句、空語句和返回語句。這些語句是C51語言程式的重要組成部分。靈活利用這些語句,可以實現不同的程式流程控制結構,如順序結構、選擇結構和循環結構等,以達到簡化程式的目的。熟練掌握本章內容是進行C51語言程式設計的基礎。
13.1 說明語句 251
13.2 表達式語句 251
13.3 複合語句 252
13.4 循環語句 253
13.4.1 while語句 253
13.4.2 do-while語句 254
13.4.3 for語句 254
13.5 條件語句 255
13.5.1 單分支結構 255
13.5.2 雙分支結構 255
13.5.3 階梯式if-else-if結構 256
13.6 開關語句 258
13.7 跳轉語句 259
13.7.1 goto語句 259
13.7.2 break語句 260
13.7.3 continue 語句 260
13.8 函式調用語句 261
13.9 空語句 261
13.10 返回語句 262
13.11 C51語言的流程控制結構 263
13.12 小結 264
第14章 預處理及用戶配置檔案 265
本章詳細介紹了C51語言所支持的各種預處理命令,包括宏定義指令、檔案包含指令、條件編譯指令和其他一些編譯指令。然後還介紹了C51語言編譯器的一些控制指令,這需要和具體的編譯器相聯繫。最後還介紹了一下C51語言的用戶配置檔案。熟練掌握本章內容,對讀者以後的單片機程式設計有很大幫助。
14.1 預處理命令概述 265
14.2 宏定義指令 265
14.2.1 #define命令 266
14.2.2 #undef命令 267
14.3 檔案包含指令 268
14.4 條件編譯指令 269
14.4.1 #if、#else、#endif命令 269
14.4.2 #elif命令 270
14.4.3 #ifdef、#ifndef命令 270
14.5 其他編譯指令 271
14.5.1 #line命令 271
14.5.2 #error 272
14.5.3 #pragma 272
14.6 C51語言編譯器的控制指令 273
14.6.1 源檔案控制類 273
14.6.2 目標檔案(Object)控制類 273
14.6.3 列表檔案(Listing)控制類 273
14.7 C51語言的用戶配置檔案 274
14.7.1 C51語言啟動代碼檔案 274
14.7.2 C51語言啟動代碼分析 277
14.7.3 變數初始化檔案 279
14.7.4 基本I/O函式檔案 279
14.7.5 分組配置檔案 279
14.8 小結 280
第15章 C51語言的存儲結構 281
本章詳細講述了C51語言的存儲器結構、存儲類型、存儲模式及存儲器指針等,後面還介紹了動態記憶體分配。數據的存儲模式是單片機系統特有的概念,這裡的內容涉及單片機的硬體資源比較多,讀者應該對照著單片機的介紹來進行學習,這樣可以加深理解。
15.1 存儲器結構 281
15.1.1 51系列單片機的存儲區域 281
15.1.2 片內數據存儲器(RAM)的結構 281
15.2 存儲類型 282
15.2.1 data存儲類型 282
15.2.2 bdata存儲類型 282
15.2.3 idata存儲類型 283
15.2.4 pdata存儲類型 283
15.2.5 xdata存儲類型 283
15.2.6 code存儲類型 284
15.3 擴展數據類型 284
15.3.1 sfr和sfr16 284
15.3.2 sbit 285
15.3.3 bit型變數 285
15.4 存儲模式 285
15.4.1 Small模式 286
15.4.2 Compact模式 286
15.4.3 Large模式 286
15.4.4 存儲模式的選擇 286
15.5 C51語言的存儲器指針 286
15.5.1 一般指針 286
15.5.2 存儲器指針 287
15.5.3 指針存儲類型與指針所指向的數據的存儲類型的關係 288
15.6 動態記憶體分配 288
15.6.1 C51語言的動態分配函式 289
15.6.2 malloc和calloc函式 289
15.7 小結 289
第四篇 51系列單片機編程指南篇
第16章 51系列單片機的指令系統 290
本章詳細講解了51系列單片機的指令系統,包括指令的7種定址方式,以及51系列單片機指令系統中的各類指令的書寫格式、功能、使用方法及注意事項等。對於每一條指令,均給出了完整詳細的實例來講解如何在程式設計中套用。這一章的內容是讀者學習使用單片機的基礎必備知識,深刻地理解單片機指令系統,可以為接下來的學習打下良好的基礎。
16.1 指令系統簡介 290
16.1.1 指令格式 290
16.1.2 指令符號 291
16.2 定址方式 292
16.2.1 立即定址 292
16.2.2 直接定址 293
16.2.3 暫存器定址 295
16.2.4 暫存器間接定址 295
16.2.5 變址定址 297
16.2.6 相對定址 298
16.2.7 位定址 299
16.3 數據傳送指令 300
16.3.1 內部RAM數據傳送指令 300
16.3.2 外部RAM數據傳送指令 304
16.3.3 程式存儲器數據傳送指令 305
16.3.4 數據交換指令 306
16.3.5 堆疊操作指令 308
16.4 算術運算指令 309
16.4.1 加法指令 309
16.4.2 帶進位的加法指令 311
16.4.3 帶借位的減法指令 312
16.4.4 加1指令 314
16.4.5 減1指令 315
16.4.6 乘除法指令 316
16.4.7 十進制調整指令 317
16.5 邏輯運算及移位指令 318
16.5.1 邏輯與指令 319
16.5.2 邏輯或指令 320
16.5.3 邏輯異或指令 321
16.5.4 累加器清零指令 322
16.5.5 累加器取反指令 323
16.5.6 組合邏輯電路的實現 324
16.5.7 循環移位指令 324
16.6 控制轉移指令 326
16.6.1 無條件轉移指令 326
16.6.2 條件轉移指令 330
16.6.3 子程式調用及返回指令 334
16.7 位操作指令 337
16.7.1 位變數傳送指令 337
16.7.2 置位與清零指令 338
16.7.3 位邏輯運算指令 339
16.7.4 位控制轉移指令 340
16.8 空操作指令 342
16.9 51系列單片機指令匯總 343
16.10 小結 347
第17章 51系列單片機的定時器/計數器 348
本章詳細講述了51系列單片機的定時器/計數器的結構、控制暫存器及4種工作方式,並分別給出了詳細的程式設計方法;本章還對52子系列的單片機定時器/計數器T2也進行了詳細的介紹。定時器/計數器是單片機的一個非常有用的功能,熟練掌握本章內容,對讀者以後的單片機設計有很大幫助。
17.1 定時器/計數器0和1 348
17.1.1 定時器/計數器的結構 348
17.1.2 定時器/計數器的功能 349
17.1.3 T0和T1的控制暫存器 349
17.2 定時器/計數器0和1的工作模式 352
17.2.1 工作模式0及其程式設計 352
17.2.2 工作模式1及其程式設計 354
17.2.3 工作模式2及其程式設計 356
17.2.4 工作模式3及其程式設計 358
17.3 定時器/計數器2 360
17.3.1 T2的控制暫存器T2CON和T2MOD及其程式訪問 361
17.3.2 定時器/計數器2的工作模式 362
17.4 小結 367
第18章 51系列單片機中斷系統及其程式設計 368
本章詳細講述了中斷系統的基本概念,並重點介紹了51系列單片機的中斷類型及中斷的各種控制標準位;接著講述了51系列單片機對中斷的處理過程,並通過實例詳細講述了各種中斷源的編程方式;最後還介紹了外部中斷源的擴展方式及其程式設計。中斷是51系列單片機重要的系統資源,合理使用中斷系統,可以減輕CPU的負擔,簡化程式設計,實現對外部信號的實時處理。因此,熟練掌握本章內容是學習51系列單片機的基礎。
18.1 中斷系統概述 368
18.1.1 什麼是中斷 368
18.1.2 中斷的用途 368
18.1.3 中斷需要解決的問題 369
18.2 51系列單片機的中斷類型 371
18.2.1 外部中斷源 371
18.2.2 定時中斷源 371
18.2.3 串列中斷源 371
18.3 51系列單片機的中斷系統 372
18.3.1 中斷請求標誌及其訪問 372
18.3.2 中斷允許標誌及其訪問 373
18.3.3 中斷優先權標誌及其訪問 374
18.4 中斷的處理過程 375
18.4.1 中斷回響 375
18.4.2 中斷處理 377
18.4.3 中斷返回 378
18.4.4 中斷請求的撤離 378
18.5 中斷源的程式設計 378
18.5.1 外部中斷源的程式設計 378
18.5.2 定時中斷源的程式設計 380
18.5.3 串列中斷源的程式設計 381
18.6 外部中斷源的擴展 382
18.6.1 定時器/計數器擴展外部中斷源 382
18.6.2 查詢方式擴展外部中斷源 385
18.7 小結 386
第19章 51系列單片機的串列接口 387
本章首先詳細介紹了串列通信的基本方式,包括異步串列通信和同步串列通信,以及單工制式、半雙工制式和全雙工制式三種數據傳送方式。51系列單片機集成了全雙工的串列接口,本章詳細介紹了單片機串列接口的內部結構、程式控制、4種工作模式及其程式設計等。最後介紹了單片機的串列接口在雙機通信和多機通信方面的套用。單片機串列口的套用非常廣泛,熟練掌握本章內容很重要。
19.1 串列通信概述 387
19.1.1 串列通信簡介 387
19.1.2 串列通信的數據傳送方式 389
19.2 51系列單片機的串列接口 390
19.2.1 單片機串列接口的內部結構 390
19.2.2 單片機串列接口的程式控制 391
19.2.3 波特率的程式設計 393
19.3 串列口的工作模式0 396
19.3.1 模式0的傳送及擴展輸出連線埠 396
19.3.2 模式0的接收及擴展輸入連線埠 398
19.4 串列口的工作模式1 399
19.4.1 模式1的傳送 400
19.4.2 模式1的接收 401
19.5 串列口的工作模式2 402
19.5.1 模式2的傳送 402
19.5.2 模式2的接收 403
19.6 串列口的工作模式3 405
19.6.1 模式3的傳送 405
19.6.2 模式3的接收 406
19.7 雙機通信程式設計 407
19.7.1 查詢方式 407
19.7.2 中斷方式 408
19.8 多機通信程式設計 410
19.8.1 多機通信原理 411
19.8.2 多機通信協定約定 411
19.8.3 多機通信程式設計 411
19.9 小結 416
第20章 C51下的RTX-51實時多任務作業系統 417
本章詳細介紹了運行於8051硬體平台的RTX-51實時多任務作業系統。RTX-51的程式不同於普通的單片機程式,這裡對RTX-51的任務調度、系統函式、任務管理及RTX-51 Tiny的配置進行了詳細的闡述。熟練掌握和運用本章內容,可以簡化複雜的多任務單片機系統設計。
20.1 RTX-51實時多任務作業系統簡介 417
20.1.1 RTX-51種類 417
20.1.2 RTX-51與單任務程式的比較 418
20.2 RTX-51的任務調度 419
20.2.1 RTX-51循環任務調度 420
20.2.2 RTX-51事件任務調度 420
20.2.3 RTX-51信號任務調度 421
20.2.4 優先權及搶先任務切換 421
20.2.5 RTX-51的其他特性 422
20.3 RTX-51 Tiny的系統函式 423
20.3.1 傳送信號函式isr_send_signal 423
20.3.2 清除信號標誌函式os_clear_signal 423
20.3.3 啟動任務函式os_create_task 424
20.3.4 刪除任務函式os_delete_task 424
20.3.5 當前任務號函式os_running_task_id 425
20.3.6 傳送信號函式os_send_signal 425
20.3.7 等待函式os_wait 425
20.3.8 等待函式os_wait1 426
20.3.9 等待函式os_wait2 427
20.4 RTX-51 Tiny的任務管理 428
20.4.1 RTX-51 Tiny的任務狀態 428
20.4.2 RTX-51 Tiny的事件 428
20.4.3 RTX-51 Tiny的任務切換 428
20.5 RTX-51 Tiny的配置檔案 429
20.6 RTX-51 Tiny的要求及限定 431
20.6.1 使用RTX-51 Tiny的要求 431
20.6.2 RTX-51 Tiny的注意事項 432
20.7 RTX-51 FULL的系統函式及技術參數 433
20.7.1 RTX-51 FULL函式一覽 433
20.7.2 RTX-51的技術參數 434
20.8 小結 435
第21章 Keil μVision3中的單片機硬體資源仿真 436
本章詳細介紹了Keil μVision3集成開發環境中,對單片機各種常見的片上資源的仿真操作。主要包括並行I/O連線埠、定時器/計數器、串列接口、中斷、看門狗定時器、A/D、D/A、暫存器及低功耗仿真。單片機的程式設計主要是對各種片上資源進行操作,Keil μVision3集成開發環境對各種片上資源均提供了完善的仿真支持。在程式設計時,通過仿真操作可以完美地模擬程式的執行情況,便於及時發現問題。這樣便大大提高了程式開發的可靠性,加速了程式的開發速度。因此,讀者應該熟練掌握本章內容。
21.1 仿真概述 436
21.2 並行I/O連線埠的仿真 436
21.3 定時器/計數器的仿真 438
21.3.1 定時器/計數器T0和T1的仿真界面 438
21.3.2 定時器/計數器T2的仿真界面 439
21.3.3 定時器/計數器的仿真操作 440
21.4 串列接口的仿真 442
21.4.1 串列接口的仿真界面 442
21.4.2 串列接口的仿真操作 443
21.4.3 字元串輸入輸出的仿真操作 444
21.5 中斷仿真 446
21.5.1 中斷系統的仿真界面 446
21.5.2 中斷系統的仿真操作 447
21.6 看門狗定時器的仿真 448
21.6.1 看門狗定時器的仿真界面 448
21.6.2 看門狗定時器的仿真操作 448
21.7 A/D仿真 449
21.7.1 A/D轉換器的仿真界面 450
21.7.2 A/D轉換器的仿真操作 450
21.8 D/A仿真 452
21.8.1 D/A轉換器的仿真界面 452
21.8.2 D/A轉換器的仿真操作 453
21.9 暫存器仿真 455
21.9.1 暫存器的仿真界面 455
21.9.2 暫存器的仿真操作 455
21.10 低功耗仿真 456
21.11 小結 457
第22章 Keil μVision3中的程式調試 458
本章詳細介紹了Keil μVision3集成開發環境的程式調試功能,包括性能分析器、代碼覆蓋分析器和斷點等。本章還詳細介紹了Keil μVision3編譯器提供的調試命令,這些調試命令大大擴展了單片機程式的仿真調試。合理使用Keil μVision3的各種調試功能及調試命令,可以在程式設計和調試時達到事半功倍的效果。因此,熟練掌握本章內容有助於讀者分析和最佳化單片機程式。
22.1 Keil μVision3的程式調試器概述 458
22.2 性能分析器 458
22.3 代碼覆蓋分析器 459
22.4 斷點 460
22.5 Keil μVision3調試命令 461
22.5.1 通用命令 461
22.5.2 程式命令 465
22.5.3 斷點命令 467
22.5.4 存儲器命令 469
22.6 小結 471
第五篇 典型案例篇
第23章 鍵盤程式設計 472
本章詳細講述了鍵盤設計需要注意的一些問題,然後介紹了獨立式按鍵和矩陣式鍵盤的工作方式。其中著重講了矩陣式鍵盤的掃描法、線反轉法和中斷法的工作原理及程式設計。最後通過一個完整電路,實現了矩陣式鍵盤的掃描查詢方式在程式中的套用。在實例中,還通過仿真分析了整個程式流程的正確性。矩陣式鍵盤套用十分廣泛,熟練掌握它的使用是學習單片機套用系統的基礎。
23.1 鍵盤接口概述 472
23.1.1 按鍵編碼 472
23.1.2 輸入的可靠性 472
23.1.3 程式檢測及回響 473
23.2 獨立式按鍵及其編程接口 473
23.2.1 獨立式按鍵結構 473
23.2.2 獨立式按鍵程式設計 474
23.3 4×4矩陣式鍵盤及其編程接口 475
23.3.1 掃描法及其程式設計 475
23.3.2 線反轉法及其程式設計 477
23.3.3 中斷法及其程式設計 479
23.4 矩陣式鍵盤的接口實例 480
23.4.1 電路圖 480
23.4.2 程式設計 481
23.4.3 程式仿真 483
23.5 小結 485
第24章 LED數碼管顯示 486
本章詳細介紹了LED數碼管顯示器件,包括7段共陽極LED數碼管和7段共陰極LED數碼管,然後介紹了LED的靜態顯示技術及其套用實例。本章還重點講解了LED數碼管的動態顯示技術,包括靜態驅動、動態驅動和LED驅動器驅動。最後通過一個具體的實例講解了使用LED驅動器控制多個LED的顯示。LED數碼管顯示是單片機系統中常用的顯示接口,讀者應該熟練掌握其使用方法。
24.1 LED數碼管概述 486
24.1.1 7段共陽極LED結構及顯示段碼 486
24.1.2 7段共陰極LED結構及顯示段碼 487
24.2 單個LED驅動實例 488
24.2.1 電路圖 488
24.2.2 程式設計 490
24.3 多個LED驅動方式 492
24.3.1 靜態驅動顯示 493
24.3.2 動態驅動顯示 497
24.3.3 LED驅動器 499
24.4 多個LED驅動實例 503
24.4.1 LED驅動器電路圖 503
24.4.2 程式設計 504
24.5 小結 508
第25章 LCD液晶顯示模組 509
本章詳細介紹了液晶和液晶顯示模組的結構及原理,並對常用的LCD驅動控制器的指令和功能進行了介紹,其中給出了用於圖形點陣式液晶讀寫的詳細子函式。最後利用一款採用這個驅動器的液晶顯示模組,來介紹如何控制其顯示漢字和圖形等。近年來,液晶顯示模組套用越來越廣泛。熟練掌握本章內容對讀者以後的設計很有幫助。
25.1 LCD液晶顯示概述 509
25.1.1 液晶的來源 509
25.1.2 LCD液晶顯示器結構及原理 509
25.1.3 液晶顯示模組的種類 510
25.1.4 液晶顯示模組的優點 511
25.2 液晶顯示模組控制接口 511
25.2.1 LCD控制驅動器ST7920概述 511
25.2.2 ST7920功能說明 512
25.2.3 ST7920基本指令集 516
25.2.4 ST7920擴充指令集 518
25.2.5 ST7920的操作方式 520
25.2.6 圖形點陣式液晶顯示模組 521
25.2.7 圖形點陣式液晶讀寫子函式 522
25.3 漢字及圖形顯示實例 525
25.3.1 電路設計 525
25.3.2 建立項目 526
25.3.3 漢字顯示實例 526
25.3.4 圖形顯示實例 528
25.3.5 任意位置圖形顯示實例 530
25.4 小結 532
第26章 D/A轉換實例 533
本章首先詳細介紹了D/A轉換器的基本知識,包括D/A轉換器的原理、D/A轉換器的類型及技術參數,然後介紹了一個高速易使用的D/A轉換晶片AD558。最後通過一個具體的實例,介紹了如何採用AD558在光通信領域中完成對光信號的相位精確調製。D/A轉換器在測控領域有著廣泛的套用,擴展了8051單片機處理模擬信號的能力,是現代電子設計中不可缺少的一部分。
26.1 D/A轉換概述 533
26.1.1 D/A轉換原理 533
26.1.2 D/A轉換器的類型 534
26.1.3 D/A轉換器的技術參數 535
26.2 高速D/A轉換晶片AD558 536
26.2.1 AD558簡介 536
26.2.2 AD558電壓輸出模式 537
26.2.3 AD558的數據鎖存 538
26.3 光通信電壓調製電路實例——電路部分 539
26.3.1 相位調製的原理 539
26.3.2 電壓調製系統 540
26.3.3 電路圖 541
26.4 光通信電壓調製電路實例——程式部分 544
26.4.1 系統狀態編碼 544
26.4.2 建立項目 544
26.4.3 主程式 545
26.4.4 無調製模式函式 546
26.4.5 調製模式1函式 546
26.4.6 調製模式2函式 547
26.4.7 調製模式3函式 547
26.4.8 調製模式4函式 547
26.5 光通信電壓調製電路實例——仿真部分 547
26.5.1 程式仿真 548
26.5.2 運行效果 548
26.6 小結 548
第27章 可程式邏輯器件CPLD 549
本章首先介紹了可程式邏輯器件的發展,以及CPLD和FPGA的結構及邏輯實現。可程式邏輯器件一般採用VHDL語言進行設計,本章對VHDL語言進行了簡要的介紹。本章對常用的CPLD晶片EPM7128SLC84進行展開講解,提供了Altera公司的CPLD下載電路。本章實例部分,使用CPLD配合AT89S52來擴展了8051單片機的並行I/O連線埠。單片機和可程式邏輯器件內部結構不同,各有優勢,實際系統中經常需要將兩者結合使用。
27.1 可程式邏輯器件概述 549
27.1.1 可程式邏輯器件的發展 549
27.1.2 CPLD的結構及其邏輯實現 549
27.1.3 FPGA的結構及其邏輯實現 551
27.2 硬體描述語言簡述 552
27.2.1 硬體描述語言VHDL概述 553
27.2.2 VHDL程式結構 553
27.3 Altera常用CPLD晶片介紹 555
27.4 使用CPLD擴展51單片機I/O接口 557
27.4.1 CPLD擴展單片機I/O接口原理 558
27.4.2 電路圖 558
27.5 單片機程式設計 559
27.5.1 項目建立 559
27.5.2 主程式 560
27.6 VHDL程式設計 560
27.6.1 項目建立 560
27.6.2 程式設計 561
27.7 程式仿真 563
27.7.1 設計CPLD引腳 563
27.7.2 仿真操作 564
27.8 程式下載 565
27.9 小結 567
第28章 51系列單片機讀寫I2C匯流排 568
本章詳細介紹了I2C串列匯流排的工作原理、結構及定址方式等,並對I2C串列匯流排的數據傳輸進行了詳細的介紹。本章還給出了採用普通的51系列單片機模擬讀寫I2C串列匯流排的彙編語言和C語言的代碼。最後通過一個具體的實例,講解了單片機讀寫I2C匯流排外圍器件的電路設計及程式設計。I2C串列匯流排具有接口簡單,體積小等優點,在實際電路設計中經常使用。熟練掌握本章內容,可以控制大部分的I2C匯流排外圍器件,從而大大擴展了51系列單片機的使用範圍。
28.1 I2C匯流排概述 568
28.1.1 I2C匯流排工作原理 568
28.1.2 I2C匯流排的電氣結構和負載能力 569
28.1.3 I2C匯流排器件的定址方式 569
28.2 I2C匯流排數據傳輸協定及其程式詳解 570
28.2.1 起始信號 570
28.2.2 終止信號 571
28.2.3 應答信號 571
28.2.4 非應答信號 572
28.2.5 應答位檢查 573
28.2.6 匯流排數據位 573
28.2.7 寫數據 573
28.2.8 讀數據 576
28.3 51單片機讀寫EEPROM 579
28.3.1 串列EEPROM存儲器簡介 579
28.3.2 電路設計 580
28.3.3 程式設計 581
28.3.4 仿真分析 582
28.4 小結 583
第29章 單片機音樂播放 584
本章詳細講述了音樂學中音調和節拍的概念,以及如何使用單片機來實現音調和節拍的演奏。本章還給出了一些音樂片段的示例代碼。最後通過一個具體的實例,講解了如何使用單片機播放音樂。單片機的功能強大,成本低廉,對於需要簡單音樂播放的場合,可以選擇使用單片機控制揚聲器來實現。
29.1 單片機發音概述 584
29.1.1 音調 584
29.1.2 節拍 586
29.1.3 單片機音樂播放的方法及音樂示例 586
29.2 單片機音樂播放實例——電路圖 589
29.3 單片機音樂播放實例——程式設計 590
29.3.1 建立項目 590
29.3.2 程式設計 591
29.4 小結 593
第30章 實時時鐘晶片套用 594
本章詳細介紹了實時時鐘晶片DS1302的命令位元組和數據格式,並介紹了兩種數據傳輸方式,即單位元組傳輸方式和多位元組突發傳輸方式。本章通過一個具體的實例,講解了如何使用8051單片機來實現對DS1302的控制,在該實例中分別採用了單位元組傳輸方式和多位元組傳輸方式來對DS1302的時鐘暫存器及RAM進行操作。實時時鐘常用於需要時間設定和顯示的場合,在單片機套用系統中很常見,讀者熟練掌握本章內容,可以輕鬆實現單片機的時鐘顯示擴展。
30.1 實時時鐘晶片DS1302概述 594
30.1.1 實時時鐘晶片DS1302概述 594
30.1.2 實時時鐘晶片DS1302命令位元組 595
30.1.3 實時時鐘晶片DS1302數據格式 595
30.1.4 實時時鐘晶片DS1302數據傳輸方式 597
30.2 單片機讀寫實時時鐘晶片實例 598
30.2.1 電路圖 598
30.2.2 建立項目 598
30.2.3 主程式 599
30.2.4 復位函式 601
30.2.5 位元組讀取函式 602
30.2.6 位元組寫入函式 602
30.2.7 初始化函式 602
30.2.8 時鐘位元組寫入函式 603
30.2.9 RAM位元組寫入函式 604
30.2.10 時鐘暫存器內容顯示函式 604
30.2.11 多位元組突發方式讀取RAM函式 605
30.2.12 多位元組突發方式寫入RAM函式 605
30.3 小結 606
第31章 靜態RAM存儲器套用 607
本章詳細講述了RAM存儲器的種類和特點,並重點講解了套用最為廣泛的靜態RAM存儲器。本章還對一款常用的靜態RAM存儲器HM628128進行了詳細介紹。最後,通過一個綜合的實例介紹了靜態RAM存儲器的讀寫。實例中使用了計算機的串列通信接口,以及單片機的串列接口設計。通過本章的講解,讀者可以掌握單片機系統中靜態RAM存儲器的讀寫及計算機串列的套用。
31.1 靜態RAM存儲器概述 607
31.1.1 RAM存儲器概述 607
31.1.2 靜態RAM晶片HM628128 608
31.1.3 靜態RAM晶片HM628128的讀寫 608
31.2 靜態RAM存儲器讀寫實例 609
31.2.1 系統原理 610
31.2.2 串列通信接口概述 610
31.2.3 單片機與RS-232C的接口 615
31.2.4 系統電路原理圖 616
31.2.5 建立項目 617
31.2.6 主程式設計 618
31.2.7 系統運行 620
31.3 小結 622
第32章 道路交通燈控制系統 623
本章詳細講述了道路交通燈的運行原理,以及如何使用RTX-51 Tiny程式來實現道路交通燈的控制模擬。本章給出了詳細的電路圖,以及RTX-51 Tiny的多任務程式。通過本章的學習,可以掌握實時多任務作業系統的設計,尤其是基於8051單片機的RTX-51 Tiny的程式設計。
32.1 交通燈控制系統概述 623
32.1.1 道路交通燈概述 623
32.1.2 交通燈控制系統 623
32.2 交通燈控制系統原理圖 624
32.3 多任務交通燈控制系統程式 625
32.3.1 建立項目 625
32.3.2 多任務劃分及程式設計 626
32.3.3 串列通信函式 632
32.3.4 獲取命令函式 635
32.4 小結 636
第33章 單匯流排溫度感測器DS18S20 637
本章介紹了1-Wire單匯流排的工作原理,並結合1-Wire匯流排接口溫度感測器DS18S20,詳細講解了其供電方式及數據操作命令。最後通過一個完整的實例介紹了如何使用51系列單片機模擬1-Wire匯流排數據傳輸,從而實現DS18S20的控制。1-Wire單匯流排是一種結構簡單的接口協定,其最大化地減少了I/O引腳數目,在實際電路中有著廣泛的套用。
33.1 單匯流排概述 637
33.2 單匯流排溫度感測器DS18S20 638
33.2.1 溫度感測器DS18S20概述 638
33.2.2 DS18S20的供電方式 639
33.2.3 DS18S20的數據操作 639
33.3 單片機讀寫溫度感測器DS18S20實例 642
33.3.1 電路圖 642
33.3.2 建立項目 643
33.3.3 DS18S20讀寫子函式 643
33.3.4 主函式 649
33.3.5 程式仿真 651
33.4 小結 651
第34章 Microware串列匯流排EEPROM的套用 652
本章詳細講解了三線制Microware串列匯流排,並通過Microware串列匯流排的EEPROM介紹了Microware串列匯流排的操作指令及其操作時序。本章最後通過一個具體的實例,介紹了如何使用標準的51系列單片機來在軟體上仿真模擬Microware串列匯流排。其中給出了Microware串列匯流排讀寫的子函式及一個完整的實例。三線制Microware串列匯流排減少了I/O引腳的使用,在實際電路設計中具有廣泛的套用,讀者應該熟練掌握。
34.1 三線制Microware串列匯流排概述 652
34.2 Microware串列匯流排接口的EEPROM 653
34.2.1 Microware串列匯流排接口EEPROM概述 653
34.2.2 Microware串列匯流排接口EEPROM的指令 653
34.2.3 Microware串列匯流排接口EEPROM的指令時序 654
34.3 51系列單片機讀寫三線制EEPROM實例 657
34.3.1 電路圖 657
34.3.2 建立項目 657
34.3.3 三線制Microware串列匯流排讀寫子函式 658
34.3.4 主程式 660
34.3.5 Microware串列匯流排仿真 662
34.4 小結 663
第35章 單片機控制印表機實例 664
本章詳細講述了LASER PP40微型四色描繪式印表機,包括其接口、工作時序、文本模式和圖形模式等。本章最後還通過一個具體的實例,介紹了如何使用51系列單片機控制LASER PP40微型印表機列印輸出。LASER PP40微型印表機接口簡單、控制方便,十分適合作為單片機系統的智慧型輸出擴展。因此,熟練掌握本章內容對讀者以後的單片機系統設計工作很有幫助。
35.1 印表機概述 664
35.1.1 LASER PP40印表機概述 664
35.1.2 LASER PP40的文本模式 665
35.1.3 LASER PP40的圖形模式 666
35.2 51系列單片機控制印表機實例 667
35.2.1 電路圖 667
35.2.2 建立項目 668
35.2.3 程式設計 668
35.3 小結 669
第36章 A/D轉換實例 670
本章首先詳細介紹了A/D轉換的原理、A/D轉換器的技術參數及A/D轉換器的選用原則。接著,本章介紹了一個高性能的8通道A/D轉換器MAX197。其中,詳細講解了MAX197的特性、引腳功能,以及接口、控制和時序邏輯等。最後,本章通過一個完整的實例介紹了A/D轉換器MAX197與單片機的接口。A/D轉換在測控領域,特別是模擬信號的數據採集系統中有著廣泛的套用,讀者應熟練掌握A/D轉換的相關知識及A/D轉換器的使用。
36.1 A/D轉換概述 670
36.1.1 A/D轉換原理 670
36.1.2 A/D轉換器的技術參數 672
36.1.3 A/D轉換器的選擇原則 673
36.2 8通道A/D轉換器MAX197 673
36.2.1 MAX197的特性及引腳功能 674
36.2.2 MAX197的接口、控制字及時序 675
36.3 單片機讀寫A/D轉換器實例 677
36.3.1 電路圖 677
36.3.2 建立項目 679
36.3.3 程式設計 679
36.3.4 程式仿真 682
36.4 小結 682
第37章 單片機讀寫智慧型IC卡 683
本章主要介紹了智慧型IC卡的相關知識。其中對目前市場上廣泛使用的AT45DB041D接觸式IC卡晶片進行了詳細介紹,包括晶片的功能、記憶體空間和指令。本章還通過一個具體的實例,介紹了如何使用單片機對IC卡晶片進行讀寫操作。由於IC卡晶片採用SPI串列數據接口,這裡使用了帶有SPI接口的AT89S8253單片機進行讀寫操作。智慧型IC卡目前得到廣泛的使用,讀者應該熟練掌握本章內容。
37.1 智慧型IC卡概述 683
37.1.1 智慧型IC卡分類 683
37.1.2 接觸式IC卡 684
37.1.3 非接觸式IC卡 684
37.2 智慧型IC卡晶片 684
37.2.1 IC卡晶片AT45DB041簡介 684
37.2.2 AT45DB041D的記憶體空間及其讀寫 685
37.2.3 AT45DB041D的指令 686
37.3 單片機讀寫智慧型IC卡實例 687
37.3.1 電路圖 687
37.3.2 SPI接口單片機AT89S8253簡介 688
37.3.3 建立項目 689
37.3.4 IC卡晶片AT45DB041D讀寫子函式 690
37.3.5 主程式 692
37.4 小結 694
第38章 單片機智慧型鋰電池充電管理 695
本章首先介紹了廣泛使用的鋰電池,以及鋰電池的充電要求。接著介紹了MAXIM公司的一款高性能的智慧型充電管理晶片MAX1898,包括MAX1898引腳功能及其充電工作原理。最後,本章通過一個具體的實例,介紹了如何使用51系列單片機控制MAX1898來實現單節鋰電池的智慧型充電過程。鋰電池及其充電器廣泛套用於生活中,因此,熟練掌握本章內容具有極大的實際意義。
38.1 鋰電池及其充電概述 695
38.1.1 鋰電池概述 695
38.1.2 鋰電池充電概述 696
38.2 智慧型充電管理晶片MAX1898 696
38.2.1 智慧型充電管理晶片MAX1898概述 696
38.2.2 MAX1898充電工作原理 697
38.3 單片機智慧型控制鋰電池充電實例 698
38.3.1 電路圖 699
38.3.2 智慧型充電器的功能 700
38.3.3 建立項目 700
38.3.4 程式設計 701
38.4 小結 702
專業
一般機電專業都有開通單片機的課程,由於單片機的廣泛套用,我的電子行業的剛剛起步,人才的需求相當的匱乏,一般從事單片機的編程與開發,
《單片機的原理與套用》 課程的開通主要是相關的指令的介紹與如何的使用,調用子程式等,加上實習課,基本能夠更好的掌握。