圖書簡介
單片機作為微型計算機的一個重要分支,套用面很廣,發展也很快。儘管單片機種類繁多,但其中最為典型、套用最廣泛的仍當屬Intel公司的51系列單片機。本書介紹了單片機技術、C語言使用和套用系統開發等相關知識,內容包括單片機的內部結構、指令系統、C語言及編譯器Keil μVision4的使用、內部各模組的開發、接口編程和擴展技術,以及單片機套用系統的開發。
圖書目錄
第1章緒論 1
1.1單片機概論 1
1.1.1微處理器、微型計算機與單片機 1
1.1.2單片機的分類和指標 3
1.1.3單片機的內部結構 3
1.1.4單片機的套用領域及趨勢 4
1.1.5單片機的程式語言概述 7
1.1.6如何學習單片機這門技術 8
1.2常用的51單片機 9
1.2.1Intel公司系列單片機 9
1.2.2Atmel公司系列單片機 9
1.2.3Philips公司系列單片機 10
1.2.4STC公司系列單片機 10
1.3本章小結 10
習題 11
第2章單片機硬體基礎 12
2.1單片機內部結構 12
2.1.1中央處理器(CPU) 12
2.1.2存儲器結構 15
2.1.3I/O連線埠結構 22
2.1.4定時器/計數器結構 25
2.1.5中斷系統 25
2.2單片機引腳功能 26
2.2.1晶片封裝 26
2.2.2晶片引腳及功能 27
2.3單片機工作時序 29
2.3.1時鐘電路 29
2.3.2時序定時單位 30
2.3.3指令的執行時序 30
2.4單片機的工作方式 31
2.4.1復位工作方式 31
2.4.2程式執行方式 32
2.4.3低功耗工作方式 32
2.4.4其他工作方式 33
2.5單片機的最小系統 33
2.6本章小結 34
習題 35
第3章單片機的指令系統 37
3.1單片機的指令系統概述 37
3.1.1指令格式 37
3.1.2符號說明 37
3.2單片機的定址方式 38
3.2.1立即定址 38
3.2.2直接定址 39
3.2.3暫存器定址 39
3.2.4間接定址(暫存器間接定址) 39
3.2.5變址定址 40
3.2.6相對定址 40
3.2.7位定址 40
3.2.8定址方式總匯 41
3.3單片機的指令說明 42
3.3.1數據傳送類指令 42
3.3.2算術運算類指令 46
3.3.3邏輯運算類指令 50
3.3.4控制轉移類指令 52
3.3.5位操作指令 55
3.3.6單片機的偽指令 56
3.4彙編程式設計 59
3.5本章小結 62
習題 63
第4章單片機的KeilμVision4軟體開發環境 66
4.1Keil開發工具 66
4.1.1集成環境 66
4.1.2啟動程式 68
4.1.3工作環境 69
4.2單片機軟體開發流程 74
4.2.1建立工程 74
4.2.2建立原始碼檔案 76
4.2.3工程設定 78
4.2.4軟體編譯與連線 83
4.2.5硬體編程 84
4.2.6程式下載 85
4.3軟體調試 85
4.3.1調試視窗 86
4.3.2調試命令 91
4.4本章小結 94
習題 94
第5章C51程式設計基礎及
實例剖析 96
5.1C程式的基本概念 96
5.1.1主函式 97
5.1.2標識符和關鍵字 97
5.1.3數據的基本類型 99
5.1.4常量和變數 100
5.1.5運算符與表達式 103
5.1.6函式 109
5.2基本的程式設計結構 113
5.2.1順序結構 113
5.2.2選擇結構 115
5.2.3循環結構 119
5.3C51構造數據類型 126
5.3.1數組 126
5.3.2指針 129
5.3.3結構 134
5.3.4聯合 139
5.3.5枚舉 140
5.4本章小結 141
實驗與設計 142
實驗5-1用*號輸出字母C51的圖案 142
實驗5-2用自增自減運算控制P1口流水花樣 144
實驗5-3用不同數據類型控制燈閃爍的時間 146
實驗5-4燈的左移右移程式 148
習題 149
第6章C51語言的進階套用 152
6.1程式設計及編程方法 152
6.1.1單片機程式的編制過程 152
6.1.2單片機程式設計技巧 152
6.2KeilC51的預處理器 155
6.2.1宏定義 155
6.2.2檔案包含 161
6.2.3條件編譯 162
6.3KeilC51常用庫函式 164
6.3.1內部函式intrins.h 165
6.3.2輸入/輸出流函式stdio.h 165
6.3.3動態記憶體分配函式stdlib.h 167
6.3.4字元函式ctype.h 167
6.3.5緩衝區和字元串操作函式string.h 168
6.3.6絕對地址訪問absacc.h 169
6.3.7訪問SFR和SFR_bit地址regxx.h 169
6.4在KeilμVision中編寫用戶自己的庫函式 169
6.4.1用戶庫函式的建立步驟 170
6.4.2用戶庫函式的引用步驟 170
6.4.3一個用戶庫函式的套用實例 170
6.5C51語言的編譯常見報警錯誤以及解決辦法 172
6.5.1變數未被使用警告(Warning280) 173
6.5.2函式未被聲明警告(WarningC206) 173
6.5.3頭檔案無法打開錯誤(ErrorC318) 173
6.5.4函式名稱重複定義錯誤(ErrorC237) 174
6.5.5函式未被調用警告 174
6.5.6記憶體空間溢出錯誤 174
6.5.7函式重入警告 174
6.5.8常見編譯器錯誤列表 175
6.6本章小結 179
實驗與設計 180
實驗6-1處理代碼段中未被使用的變數 180
實驗6-2記憶體空間溢出錯誤處理 180
習題 181
第7章51單片機的內部資源 182
7.1輸入/輸出控制 182
7.2中斷系統 183
7.2.1中斷的基本概念 184
7.2.2中斷源及其中斷的入口地址 184
7.2.3中斷控制相關的暫存器 185
7.2.4中斷回響過程 187
7.2.5C51中斷的程式設計 188
7.3定時/計數器 192
7.3.1定時/計數器的結構和工作方式 192
7.3.2定時/計數器的暫存器 194
7.3.3定時/計數器的工作方式 196
7.3.4定時/計數器的程式設計 199
7.4本章小結 202
實驗與設計 203
實驗7-1設計報警器 203
實驗7-2統計外中斷1的中斷次數 204
實驗7-3定時/計數器T0作定時套用實驗 206
習題 208
第8章51單片機的系統擴展 210
8.1單片機外部擴展資源和擴展編址技術概述 210
8.1.1單片機外部擴展資源簡介 210
8.1.2單片機系統擴展原理 211
8.1.3存儲器擴展的編址技術 214
8.2程式存儲器的擴展 215
8.2.1程式存儲器的典型晶片 215
8.2.2EEPROM與單片機的連線 216
8.3數據存儲器的擴展 217
8.3.1單片機RAM的讀寫時序 217
8.3.2RAM與單片機的連線 218
8.4並行I/O口的擴展 219
8.4.1採用TTL電路擴展I/O接口 220
8.4.2採用8255晶片擴展I/O接口 220
8.5可程式外圍定時/計數器8253 224
8.5.18253的結構和引腳 224
8.5.28253的工作方式和控制字 226
8.5.38253與C51單片機的接口 226
8.6外部中斷的擴展 229
8.6.1採用定時/計數器溢出中斷擴展外部中斷源 229
8.6.2採用串列通信接口擴展外部中斷源 230
8.6.3採用中斷源查詢法擴展外部中斷源 230
8.6.4用優先權編碼器擴展中斷源 231
8.7I2C接口晶片AT24CXX 233
8.7.1I2C匯流排的特點 233
8.7.2I2C匯流排通信技術 234
8.7.3AT24C系列與C51的接口 235
8.8SPI接口晶片X5045 240
8.8.1SPI匯流排的組成 241
8.8.2X5045簡介 241
8.8.3X5045晶片與C51單片機的連線 243
8.9本章小結 247
實驗與設計 248
實驗8-18255並口擴展實驗 248
實驗8-2I2C匯流排實驗 249
習題 253
第9章51單片機的串列通信接口 256
9.1串列通信方式 256
9.1.1串列通信分類 256
9.1.2數據的傳輸模式 257
9.1.3波特率 257
9.2串口結構 258
9.2.151單片機串列口的硬體結構 258
9.2.2數據緩衝暫存器SBUF 260
9.2.3串列口控制暫存器SCON 260
9.2.4特殊功能暫存器PCON 261
9.3MCS-51串口工作方式 261
9.3.1方式0 262
9.3.2方式1 262
9.3.3方式2和方式3 262
9.3.4各方式下波特率的計算 263
9.4串列通信接口標準RS-232 263
9.4.1RS-232C標準 264
9.4.2單片機串列通信的連線 266
9.5串列通信接口標準RS-422和
RS-485 266
9.5.1RS-422通信協定 267
9.5.2RS-485通信協定 269
9.6本章小結 271
實驗與設計 271
習題 273
第10章51單片機的A/D與D/A轉換 276
10.1數/模轉換 276
10.1.1D/A轉換器 276
10.1.2D/A轉換晶片DAC0832 278
10.1.3DAC0832套用實例 280
10.2模/數轉換 282
10.2.1A/D轉換器 282
10.2.2A/D轉換晶片ADC0809 284
10.2.3MCS-51單片機與ADC0809接口 286
10.3本章小結 289
實驗與設計 289
實驗10-1簡易直流電源的設計 289
實驗10-2簡單數字電壓表的設計 290
習題 293
第11章輸入設備 296
11.1輸入設備的分類及結構 296
11.1.1開關和按鍵 296
11.1.2按鍵去抖動 296
11.1.3非編碼獨立式鍵盤 297
11.1.4非編碼矩陣式鍵盤 298
11.1.5編碼鍵盤 298
11.2鍵盤與單片機的接口 298
11.2.1獨立式鍵盤與單片機的接口 299
11.2.2矩陣式鍵盤與單片機的接口 300
11.3本章小結 304
實驗與設計 304
習題 306
第12章輸出設備 310
12.1輸出設備的種類及結構 310
12.1.1發光二極體 310
12.1.2數碼管 310
12.1.3液晶顯示模組 312
12.2輸出設備的接口及其編程 312
12.2.1LED指示燈功能的程式實現 313
12.2.2數碼管與單片機接口的程式實現 314
12.3本章小結 317
實驗與設計 318
習題 320
第13章51單片機系統開發基礎 322
13.1單片機系統的基本開發過程 322
13.1.1系統開發概述 322
13.1.2總體方案設計 323
13.1.3硬體設計 325
13.1.4軟體設計 326
13.1.5系統調試 327
13.2系統的最佳化設計 329
13.2.1系統的可靠性設計 329
13.2.2系統自診斷 332
13.3本章小結 334
習題 334
第14章單片機系統綜合實例——投票系統 336
14.1實例需求說明 336
14.2實例設計 336
14.2.1總體設計 336
14.2.2投票系統中心端硬體設計 337
14.2.3投票系統終端硬體設計 338
14.2.4通信協定設計 340
14.3套用代碼設計 340
14.3.1投票系統中心端套用代碼設計 340
14.3.2中心端套用代碼綜合 348
14.3.3投票系統終端套用代碼設計 351
14.3.4終端套用代碼綜合 357
實驗與設計 359
實驗14-1呼吸燈 359
實驗14-2跑步機啟停/速度
控制模組 360
實驗14-3簡易電子琴 361
實驗14-4手機撥號模組 362
實驗14-5簡易頻率計 364
實驗14-6天車控制系統 365
實驗14-7PC中控系統 366
實驗14-8負載平衡監控系統 366
實驗14-9電子抽獎系統 368
實驗14-10簡易波形發生器 369