本書是根據(jù)高等教育“單片機原理與應(yīng)用”課程教學(xué)基本要求編寫的。介紹了使用*廣泛的MCS-51系列單片機的工作原理、內(nèi)部各功能部件的結(jié)構(gòu)、內(nèi)部硬件資源及應(yīng)用編程、外部擴展技術(shù)。本書采用匯編語言和C語言相對照的編寫方式,同時通過實例介紹匯編語言和C語言的混合編程。本書還介紹了單片機應(yīng)用系統(tǒng)的基本設(shè)計方法,并附有大量的設(shè)計實例。*后一章是實驗與課程設(shè)計,實驗部分安排了10個實驗,采用匯編語言和C語言實現(xiàn);課程設(shè)計部分精選了單片機應(yīng)用的典型應(yīng)用實例和20個課程設(shè)計題目,并給出了設(shè)計要求,內(nèi)容詳實。本書既可作為計算機、電子、機電、測控等相關(guān)專業(yè)的本科或高職教材,也可供相關(guān)工程技術(shù)人員參考。
朱文忠,男,教授,自1995年起在四川理工學(xué)院計算機學(xué)院任教。是四川省計算機學(xué)會教育培訓(xùn)專業(yè)委員會理事、自貢市信息安全委員會委員。負責四川省精品課程《微機原理及應(yīng)用》、四川理工學(xué)院精品課程《單片機原理及應(yīng)用》的教學(xué)工作。負責"基于數(shù)據(jù)同化的釜溪河流域水體參數(shù)濃度遙感估算研究 (2015YSGZZ04)”、"面向智慧旅游信息系統(tǒng)構(gòu)建的旅游數(shù)據(jù)整合研究(ZHZ14-02)”、"物聯(lián)網(wǎng)控制系統(tǒng)中信息傳輸關(guān)鍵技術(shù)及應(yīng)用研究(2014WY06)”等7個四川省重點項目。編寫《微型計算機原理及應(yīng)用――理論、實驗、課程設(shè)計》、《計算機兩部教材組成原理》2部教材。作為**獲獎人,曾獲得四川省教學(xué)成果獎1次,校級教學(xué)成果獎2次。
第1章 單片機概述 1
1.1 單片機的概念 1
1.1.1 單片機的定義 1
1.1.2 單片機的誕生 1
1.1.3 單片機的應(yīng)用領(lǐng)域 2
1.1.4 單片機與嵌入式系統(tǒng) 2
1.2 單片機發(fā)展史及發(fā)展趨勢 2
1.3 MCS-51系列單片機及其兼容產(chǎn)品 3
1.3.1 MCS-51系列單片機分類 4
1.3.2 MCS-51系列單片機的兼容產(chǎn)品 5
1.4 計算機基礎(chǔ)知識 6
1.4.1 數(shù)制 6
1.4.2 數(shù)制轉(zhuǎn)換 7
1.4.3 編碼 8
1.4.4 計算機中數(shù)的表示 9
本章小結(jié) 10
習(xí)題與思考題 10
第2章 MCS-51單片機硬件結(jié)構(gòu) 12
2.1 MCS-51系列單片機的基本結(jié)構(gòu) 12
2.1.1 MCS-51系列單片機的總體基本結(jié)構(gòu) 12
2.1.2 MCS-51系列單片機主要功能部件 12
2.1.3 8051單片機內(nèi)部結(jié)構(gòu)及引腳 13
2.1.4 外部總線構(gòu)成 15
2.2 MCS-51單片機的中央處理器 16
2.2.1 CPU的組成 16
2.2.2 指令執(zhí)行的基本步驟 16
2.2.3 時鐘電路及時鐘時序單位 17
2.3 MCS-51單片機的內(nèi)部存儲器 20
2.3.1 存儲器結(jié)構(gòu)及地址分配 20
2.3.2 內(nèi)部程序存儲器 21
2.3.3 內(nèi)部數(shù)據(jù)存儲器 22
2.3.4 堆棧 26
2.4 MCS-51單片機的工作方式 27
2.4.1 執(zhí)行指令程序方式 27
2.4.2 掉電保護方式 28
2.4.3 低功耗方式 28
本章小結(jié) 30
習(xí)題與思考題 30
第3章 MCS-51單片機指令系統(tǒng) 33
3.1 MCS-51單片機指令概述 33
3.1.1 MCS-51單片機匯編語言指令格式 33
3.1.2 布爾處理機 33
3.1.3 指令中的常用符號 34
3.2 MCS-51單片機的尋址方式 34
3.2.1 立即尋址 35
3.2.2 直接尋址 35
3.2.3 寄存器尋址 36
3.2.4 寄存器間接尋址 36
3.2.5 基址加變址尋址 37
3.2.6 相對尋址 38
3.2.7 位尋址 39
3.3 MCS-51單片機的指令系統(tǒng) 40
3.3.1 數(shù)據(jù)傳送指令 40
3.3.2 算術(shù)運算指令 45
3.3.3 邏輯運算和移位指令 48
3.3.4 控制轉(zhuǎn)移指令 51
3.3.5 位操作指令 56
本章小結(jié) 58
習(xí)題與思考題 59
第4章 匯編語言程序設(shè)計 65
4.1 程序設(shè)計基礎(chǔ) 65
4.1.1 匯編語言源程序設(shè)計的步驟 66
4.1.2 匯編語言的語句格式 67
4.1.3 匯編語言的偽指令 68
4.1.4 MCS-51單片機匯編語言源程序格式及上機過程 73
4.2 單片機匯編語言程序的控制結(jié)構(gòu) 74
4.2.1 順序結(jié)構(gòu)程序設(shè)計 74
4.2.2 分支結(jié)構(gòu)程序設(shè)計 75
4.2.3 循環(huán)結(jié)構(gòu)程序設(shè)計 76
4.2.4 子程序設(shè)計 81
4.3 MCS-51單片機匯編語言程序設(shè)計舉例 83
4.3.1 數(shù)據(jù)傳送程序設(shè)計 83
4.3.2 算術(shù)運算程序設(shè)計 84
4.3.3 數(shù)制轉(zhuǎn)換程序設(shè)計 87
4.3.4 查表程序設(shè)計 90
4.3.5 數(shù)據(jù)檢索程序設(shè)計 92
本章小結(jié) 94
習(xí)題與思考題 95
第5章 C51應(yīng)用基礎(chǔ) 97
5.1 Keil C51簡介 97
5.2 C51程序設(shè)計概述 97
5.2.1 C51語言的特點 97
5.2.2 C51程序與標準C程序的區(qū)別 98
5.2.3 C51的標識符與關(guān)鍵字 98
5.2.4 C51語言程序的書寫格式 99
5.3 C51數(shù)據(jù)類型 99
5.3.1 C51的數(shù)據(jù)類型 99
5.3.2 數(shù)據(jù)類型轉(zhuǎn)換 102
5.4 C51的運算量 103
5.4.1 常量 103
5.4.2 變量 104
5.4.3 存儲模式 105
5.5 C51的運算符和表達式 106
5.5.1 C51運算符簡介 106
5.5.2 算術(shù)運算符和算術(shù)表達式 107
5.5.3 關(guān)系運算符與關(guān)系表達式 107
5.5.4 邏輯運算符與邏輯表達式 108
5.5.5 位運算符 108
5.5.6 賦值運算符和賦值表達式 111
5.5.7 復(fù)合賦值運算符和復(fù)合賦值表達式 111
5.5.8 逗號運算符和逗號表達式 111
5.5.9 條件運算符和條件表達式 112
5.5.10 指針和地址運算符 112
5.5.11 sizeof運算符 112
5.6 C51的基本語句 114
5.6.1 表達式語句和空語句 114
5.6.2 復(fù)合語句 115
5.6.3 條件語句 115
5.6.4 開關(guān)語句 117
5.6.5 循環(huán)結(jié)構(gòu) 119
5.7 C51的指針 121
5.7.1 C51指針變量 122
5.7.2 指針的運算 124
5.7.3 通過指針宏訪問存儲器 124
5.8 C51的函數(shù) 126
5.8.1 C51函數(shù)分類 126
5.8.2 C51函數(shù)的定義 127
5.8.3 C51中斷函數(shù)的定義 128
5.8.4 C51的部分頭文件和庫函數(shù) 129
5.9 C51程序設(shè)計應(yīng)用舉例 132
5.9.1 8051單片機I/O口操作 132
5.9.2 再入函數(shù)的定義 133
5.9.3 排序和查找 133
5.9.4 碼制轉(zhuǎn)換 136
本章小結(jié) 138
習(xí)題與思考題 139
第6章 MCS-51單片機的硬件資源及其應(yīng)用 141
6.1 并行I/O端口 141
6.1.1 端口功能 141
6.1.2 端口原理及操作 142
6.1.3 并行口應(yīng)用舉例 146
6.2 MCS-51的中斷系統(tǒng) 147
6.2.1 MCS-51中斷系統(tǒng)的組成及中斷源 148
6.2.2 MCS-51的中斷控制 149
6.2.3 MCS-51的中斷響應(yīng)過程 152
6.2.4 MCS-51的中斷程序設(shè)計 155
6.3 MCS-51單片機的定時/計數(shù)器 158
6.3.1 定時/計數(shù)器的功能概述 158
6.3.2 定時/計數(shù)器的結(jié)構(gòu)、控制及工作方式 159
6.3.3 定時/計數(shù)器的編程及應(yīng)用 165
6.4 MCS-51單片機的串行接口及其串行通信 168
6.4.1 串行通信的基本概念 169
6.4.2 MCS-51單片機的串行口及控制寄存器 170
6.4.3 MCS-51單片機的串行通信工作方式 172
6.4.4 串行口應(yīng)用舉例 175
本章小結(jié) 183
習(xí)題與思考題 183
第7章 MCS-51單片機系統(tǒng)擴展及其應(yīng)用 187
7.1 存儲器的擴展 187
7.1.1 擴展技術(shù)的原理和方法 187
7.1.2 常用半導(dǎo)體存儲器芯片 190
7.1.3 程序存儲器擴展 193
7.1.4 數(shù)據(jù)存儲器擴展設(shè)計 195
7.1.5 單片機擴展外部存儲器空間地址分配 195
7.1.6 多片存儲器擴展設(shè)計 198
7.2 I/O接口的擴展 200
7.2.1 簡單I/O接口擴展 200
7.2.2 用串行口擴展并行I/O接口 202
7.2.3 可編程I/O接口擴展 203
7.3 D/A、A/D轉(zhuǎn)換及其接口擴展 208
7.3.1 A/D轉(zhuǎn)換芯片ADC0809簡介 208
7.3.2 ADC0809與MCS-51型單片機的接口 210
7.4 MCS-51型單片機與D/A轉(zhuǎn)換接口 212
7.4.1 D/A轉(zhuǎn)換芯片ADC0832簡介 213
7.4.2 DAC0832與MCS-51單片機的接口 215
7.5 MCS-51單片機鍵盤接口 218
7.5.1 獨立式鍵盤 218
7.5.2 矩陣式鍵盤 221
7.6 MCS-51單片機顯示器接口 226
7.6.1 LED顯示器的結(jié)構(gòu)與原理 226
7.6.2 LED顯示器的顯示方式 227
7.6.3 LED顯示接口典型應(yīng)用電路 229
本章小結(jié) 232
習(xí)題與思考題 233
第8章 串行總線擴展技術(shù) 234
8.1 串行總線擴展概述 234
8.1.1 串行擴展的種類 234
8.1.2 串行擴展的特點 234
8.2 I2C串行擴展總線 235
8.3 SPI串行擴展接口 237
8.3.1 SPI總線的結(jié)構(gòu)原理 237
8.3.2 SPI總線的軟件模擬 238
8.3.3 SPI串行擴展應(yīng)用實例 239
8.4 串行單總線(1-Wire)技術(shù) 241
8.4.1 單總線的工作原理 241
8.4.2 單總線應(yīng)用實例――數(shù)字溫度測量與控制 242
本章小結(jié) 248
習(xí)題與思考題 248
第9章 MCS-51單片機應(yīng)用系統(tǒng)設(shè)計 249
9.1 MCS-51單片機應(yīng)用系統(tǒng)的結(jié)構(gòu) 249
9.2 MCS-51單片機應(yīng)用系統(tǒng)設(shè)計 250
9.2.1 總體方案設(shè)計 250
9.2.2 硬件設(shè)計 251
9.2.3 軟件設(shè)計 251
9.2.4 可靠性設(shè)計 253
9.3 單片機應(yīng)用系統(tǒng)的調(diào)試、測試 256
9.3.1 硬件調(diào)試 256
9.3.2 軟件調(diào)試 257
9.3.3 系統(tǒng)聯(lián)合調(diào)試 258
9.3.4 現(xiàn)場調(diào)試及性能測試 258
9.4 單片機應(yīng)用系統(tǒng)舉例 259
9.4.1 單片機在控制系統(tǒng)中的應(yīng)用 259
9.4.2 單片機在里程、速度計量中的應(yīng)用 261
9.4.3 數(shù)字電子時鐘系統(tǒng)設(shè)計實例 265
9.4.4 單片機遙控系統(tǒng)的應(yīng)用設(shè)計 273
本章小結(jié) 296
習(xí)題與思考題 297
第10章 實驗與課程設(shè)計 298
10.1 DVCC-ZHC2/DVCC-52196JH/JH+單片機仿真實驗系統(tǒng)使用簡介 298
10.1.1 實驗系統(tǒng)的啟動 298
10.1.2 實驗系統(tǒng)鍵盤簡介 299
10.1.3 DVCC實驗系統(tǒng)的工作方式 300
10.1.4 實驗過程中實驗結(jié)果的查看 301
10.1.5 實驗的一般步驟 301
10.2 Keil ?Vision開發(fā)環(huán)境簡介 302
10.2.1 Keil ?Vision簡介 302
10.2.2 Keil ?Vision3 集成開發(fā)環(huán)境 302
10.2.3 使用Keil C51進行單片機程序設(shè)計實驗的一般步驟 303
10.3 基礎(chǔ)性實驗 306
實驗一 清零實驗 306
實驗二 拆字實驗 308
實驗三 數(shù)據(jù)排序?qū)嶒?309
實驗四 多分支實驗 312
實驗五 單片機I/O口實驗(P3和P1口應(yīng)用) 314
實驗六 并行I/O口8255擴展實驗 316
實驗七 A/D轉(zhuǎn)換ADC0809應(yīng)用 320
實驗八 D/A轉(zhuǎn)換DAC0832應(yīng)用 323
實驗九 串并轉(zhuǎn)換實驗 326
實驗十 音樂發(fā)聲器(電子音響)實驗 328
實驗十一 繼電器控制實驗 331
10.4 設(shè)計性實驗 333
實驗一 P1口實驗 333
實驗二 獨立式按鍵實驗 335
實驗三 7段LED數(shù)碼管實驗 337
實驗四 8051內(nèi)部定時器實驗 339
實驗五 4×4矩陣式鍵盤實驗 342
10.5 課程設(shè)計 346
10.5.1 設(shè)計目的 346
10.5.2 內(nèi)容及時間安排 346
10.5.3 基本要求 347
10.5.4 考核及評分標準 347
10.5.5 設(shè)計報告內(nèi)容及要求 347
10.5.6 課程設(shè)計實例 347
10.5.7 課程設(shè)計參考題目及要求 356
附錄A ASCII碼表 359
附錄B MCS-51系列單片機指令表 360
附錄C 常用數(shù)字集成電路引腳圖 364
參考文獻 368