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