本書以MCS51系列單片機(jī)為主要對(duì)象,以C語(yǔ)言為主、匯編語(yǔ)言為輔安排全書內(nèi)容,詳細(xì)介紹了51系列單片機(jī)的結(jié)構(gòu)原理和系統(tǒng)設(shè)計(jì),敘述了單片機(jī)開發(fā)軟件Keil C51的應(yīng)用及調(diào)試方法,介紹了單片機(jī)應(yīng)用仿真工具Proteus ISIS,最后一章講述了單片機(jī)系統(tǒng)的實(shí)際開發(fā)制作過程。本書是再版書,相比第2版,本書從單片機(jī)的簡(jiǎn)單應(yīng)用實(shí)例講起,并對(duì)舊版書的結(jié)構(gòu)、內(nèi)容進(jìn)行了更新。
書中列舉了大量單片機(jī)應(yīng)用實(shí)例,所有實(shí)例均仿真通過。本書配套資料中既包含全書的應(yīng)用實(shí)例,還包含30個(gè)課外實(shí)例供讀者參考選用。本書各章都有小結(jié),并配有習(xí)題,多數(shù)習(xí)題要求
第1章 單片機(jī)基礎(chǔ)知識(shí) 1
1.1 單片機(jī)的應(yīng)用與發(fā)展 1
1.1.1 單片機(jī)的簡(jiǎn)單應(yīng)用 1
1.1.2 單片機(jī)的發(fā)展歷史 3
1.2 單片機(jī)的分類 6
1.3 AT89C52單片機(jī)簡(jiǎn)介 7
1.3.1 AT89C52單片機(jī)的引腳功能 8
1.3.2 AT89C52單片機(jī)的內(nèi)部結(jié)構(gòu) 9
1.3.3 AT89C52單片機(jī)的I/O接口部分和特殊功能部分 16
1.4 AT89C52單片機(jī)的時(shí)鐘與復(fù)位電路 17
1.4.1 復(fù)位操作和復(fù)位電路 17
1.4.2 振蕩電路和時(shí)鐘 19
1.4.3 AT89C52單片機(jī)的機(jī)器周期 20
1.5 AT89C52單片機(jī)的低功耗工作方式 21
1.6 常用的名詞術(shù)語(yǔ)和二進(jìn)制編碼 23
1.7 指令程序和指令執(zhí)行 27
本章小結(jié) 27
思考題與習(xí)題 28
第2章 指令系統(tǒng)及匯編語(yǔ)言程序設(shè)計(jì) 29
2.1 尋址方式 29
2.2 指令系統(tǒng) 34
2.2.1 數(shù)據(jù)傳送指令 34
2.2.2 算術(shù)運(yùn)算指令 37
2.2.3 邏輯運(yùn)算指令 39
2.2.4 位(布爾)操作類指令 41
2.2.5 控制轉(zhuǎn)移類指令 42
2.3 匯編語(yǔ)言指令格式及匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 46
2.3.1 匯編語(yǔ)言執(zhí)行指令格式 46
2.3.2 匯編偽指令 47
2 單片機(jī)原理與應(yīng)用實(shí)例仿真(第4版)
2.3.3 匯編語(yǔ)言的特點(diǎn) 49
2.3.4 匯編語(yǔ)言程序設(shè)計(jì)的步驟 49
本章小結(jié) 49
思考題與習(xí)題 49
第3章 單片機(jī)的C語(yǔ)言程序設(shè)計(jì) 51
3.1 C51的程序結(jié)構(gòu) 51
3.2 數(shù)據(jù)類型、存儲(chǔ)類型及存儲(chǔ)模式 53
3.2.1 數(shù)據(jù)類型 53
3.2.2 常量和變量 54
3.2.3 C51的存儲(chǔ)類型及存儲(chǔ)模式 55
3.2.4 特殊功能寄存器、并行接口及位變量的定義 58
3.3 運(yùn)算符、函數(shù)及程序流程控制 61
3.3.1 C51的運(yùn)算符 61
3.3.2 C51的函數(shù) 62
3.3.3 C51的流程控制語(yǔ)句 65
3.4 C51的構(gòu)造數(shù)據(jù)類型 68
3.4.1 數(shù) 組 68
3.4.2 結(jié) 構(gòu) 69
3.4.3 聯(lián) 合 70
3.4.4 枚 舉 71
3.4.5 指 針 71
3.5 C51實(shí)例分析及混合編程 74
3.5.1 C51實(shí)例分析 74
3.5.2 混合編程 75
3.6 Keil C51簡(jiǎn)介 78
3.6.1 項(xiàng)目文件的建立、設(shè)置與目標(biāo)文件的獲得 78
3.6.2 程序的調(diào)試 81
本章小結(jié) 85
思考題與習(xí)題 85
第4章 單片機(jī)的I/O口及Proteus簡(jiǎn)介 87
4.1 P0~P3端口的結(jié)構(gòu)與功能 87
4.1.1 P0端口的結(jié)構(gòu)與功能 87
4.1.2 P1端口的結(jié)構(gòu)與功能 88
4.1.3 P2端口的結(jié)構(gòu)與功能 89
4.1.4 P3端口的結(jié)構(gòu)與功能 90
4.2 Proteus簡(jiǎn)介 91
4.2.1 Proteus ISIS的工作界面 92
4.2.2 Proteus ISIS的基本操作 92
4.2.3 Proteus ISIS的原理圖繪制和仿真 96
4.2.4 Proteus與Keil C相結(jié)合的設(shè)計(jì)和仿真 98
4.3 I/O口應(yīng)用實(shí)例與仿真 105
4.3.1 LED與數(shù)碼管簡(jiǎn)介 105
4.3.2 LED點(diǎn)陣顯示屏 107
4.3.3 簡(jiǎn)易鍵盤的設(shè)計(jì) 109
4.3.4 I/O口的實(shí)例仿真 111
本章小結(jié) 125
思考題與習(xí)題 125
第5章 單片機(jī)的中斷系統(tǒng)與實(shí)例仿真 126
5.1 中斷系統(tǒng)結(jié)構(gòu) 126
5.1.1 中斷概述 126
5.1.2 中斷系統(tǒng)結(jié)構(gòu)與中斷控制 127
5.2 中斷的實(shí)現(xiàn)過程 132
5.2.1 中斷采樣 133
5.2.2 中斷查詢 133
5.2.3 中斷響應(yīng) 133
5.2.4 中斷服務(wù) 135
5.2.5 中斷返回 136
5.2.6 中斷請(qǐng)求的撤銷 137
5.3 中斷系統(tǒng)實(shí)例與仿真 138
本章小結(jié) 148
思考題與習(xí)題 149
第6章 定時(shí)/計(jì)數(shù)器原理及實(shí)例仿真 150
6.1 定時(shí)/計(jì)數(shù)器0和1結(jié)構(gòu)和工作原理 150
6.1.1 定時(shí)/計(jì)數(shù)器0和1 150
6.1.2 與定時(shí)/計(jì)數(shù)器0和定時(shí)/計(jì)數(shù)器1相關(guān)的特殊功能寄存器
151
6.1.3 定時(shí)/計(jì)數(shù)器0和定時(shí)/計(jì)數(shù)器1的工作模式 153
6.2 定時(shí)/計(jì)數(shù)器2(T/C2)的結(jié)構(gòu)和工作原理 155
4 單片機(jī)原理與應(yīng)用實(shí)例仿真(第4版)
6.2.1 與定時(shí)/計(jì)數(shù)器2相關(guān)的特殊功能寄存器 155
6.2.2 定時(shí)/計(jì)數(shù)器2的工作模式 156
6.3 仿真實(shí)例 160
6.3.1 定時(shí)器工作方式實(shí)例 160
6.3.2 計(jì)數(shù)器工作方式實(shí)例 166
6.3.3 捕捉模式實(shí)例 168
6.3.4 定時(shí)/計(jì)數(shù)器復(fù)雜應(yīng)用實(shí)例 174
6.4 看門狗定時(shí)器 178
6.4.1 看門狗簡(jiǎn)介 178
6.4.2 看門狗的工作原理 179
6.4.3 看門狗的使用 179
6.4.4 高級(jí)看門狗 180
本章小結(jié) 180
思考題與習(xí)題 181
第7章 單片機(jī)的串行通信與實(shí)例仿真 182
7.1 串行通信概述 182
7.2 串行接口結(jié)構(gòu)與工作原理 184
7.2.1 AT89C52單片機(jī)的串行接口結(jié)構(gòu) 184
7.2.2 AT89C52單片機(jī)的串行通信過程 185
7.3 串行接口的控制寄存器與工作方式 185
7.3.1 串行接口的控制寄存器 185
7.3.2 串行口的工作方式 188
7.3.3 波特率的確定 191
7.3.4 定時(shí)/計(jì)數(shù)器T2產(chǎn)生波特率 192
7.4 串行接口的實(shí)例與仿真 193
7.5 單片機(jī)多機(jī)通信 200
7.6 單片機(jī)與PC機(jī)串行口通信 207
7.6.1 RS232C接口 207
7.6.2 RS485接口 212
7.6.3 Proteus實(shí)現(xiàn)的PC機(jī)與單片機(jī)的串行通信仿真 216
7.6.4 單片機(jī)與計(jì)算機(jī)的串行通信技術(shù) 221
本章小結(jié) 232
思考題與習(xí)題 232
第8章 單片機(jī)擴(kuò)展技術(shù)與實(shí)例仿真 234
8.1 存儲(chǔ)器的擴(kuò)展實(shí)例與仿真 234
8.1.1 數(shù)據(jù)存儲(chǔ)器的擴(kuò)展 234
8.1.2 程序存儲(chǔ)器的擴(kuò)展 239
8.2 I/O接口的擴(kuò)展實(shí)例與仿真 243
8.2.1 可編程接口芯片8255A 243
8.2.2 8255A的應(yīng)用及仿真 249
8.3 D/A、A/D接口應(yīng)用實(shí)例與仿真 252
8.3.1 D/A轉(zhuǎn)換器 252
8.3.2 A/D轉(zhuǎn)換器 260
本章小結(jié) 267
習(xí)題與思考題 267
第9章 單片機(jī)高級(jí)應(yīng)用實(shí)例 269
9.1 Mifare射頻卡讀/寫器的設(shè)計(jì) 269
9.1.1 Mifare卡的內(nèi)部結(jié)構(gòu) 270
9.1.2 Mifare卡讀/寫器主要模塊的設(shè)計(jì) 272
9.1.3 Mifare卡操作流程 277
9.1.4 FM1702SL密鑰的設(shè)計(jì)與沖突檢測(cè)措施 278
9.1.5 Mifare卡讀/寫軟件設(shè)計(jì) 280
9.2 基于nRF905的無(wú)線傳輸系統(tǒng)設(shè)計(jì) 287
9.2.1 nRF905簡(jiǎn)介 288
9.2.2 nRF905電路原理圖 292
9.2.3 nRF905固件程序設(shè)計(jì) 294
本章小結(jié) 301
思考題與習(xí)題 301
第10章 程序燒錄與樣機(jī)開發(fā) 302
10.1 項(xiàng)目開發(fā)流程 302
10.1.1 項(xiàng)目開發(fā)概述 302
10.1.2 需求分析 302
10.1.3 系統(tǒng)總體設(shè)計(jì) 305
10.2 硬件電路設(shè)計(jì)與焊接 306
10.2.1 準(zhǔn)備工作 306
10.2.2 最小系統(tǒng)硬件電路焊接 308
6 單片機(jī)原理與應(yīng)用實(shí)例仿真(第4版)
10.2.3 電路板焊接效果檢查 309
10.3 軟件開發(fā) 310
10.3.1 軟件開發(fā)過程 311
10.3.2 構(gòu)建軟件項(xiàng)目 312
10.3.3 μVision5軟件調(diào)試 316
10.4 程序存儲(chǔ)器編程 321
10.4.1 程序存儲(chǔ)器編程方法 321
10.4.2 在線編程原理 322
10.4.3 STC系列單片機(jī)的程序下載 324
10.5 綜合調(diào)試 326
10.6 綜合實(shí)例———掉電不丟失日歷時(shí)鐘 327
10.6.1 系統(tǒng)功能要求 327
10.6.2 功能分析及主要元器件確定 327
10.6.3 主要元器件性能介紹 328
10.6.4 硬件設(shè)計(jì) 334
10.6.5 軟件設(shè)計(jì) 335
本章小結(jié) 337
思考題與習(xí)題 337
附錄A 主要單片機(jī)生產(chǎn)商網(wǎng)址及相關(guān)信息網(wǎng)址 338
附錄B 常用數(shù)碼對(duì)應(yīng)關(guān)系表 339
附錄C Proteus VSM 元件庫(kù)和常用元器件說(shuō)明 340
附錄D C語(yǔ)言的關(guān)鍵字 343
附錄E C51的庫(kù)函數(shù) 345
附錄F MCS 51指令表 356
參考文獻(xiàn) 360
實(shí)例目錄
例2.1 寄存器尋址方式 31
例2.2 直接尋址方式 31
例2.3 直接尋址和立即尋址對(duì)比 32
例2.4 寄存器間接尋址方式 32
例2.5 變址尋址方式 33
例2.6 相對(duì)尋址方式 33
例2.7 位尋址方式 34
例2.8 共陰極數(shù)碼管對(duì)應(yīng)的顯示代碼程序 36
例2.9 標(biāo)號(hào)和字節(jié)偽指令DB的使用 47
例2.10 偽指令DS、DB、DW 的使用 48
例3.1 將外部數(shù)據(jù)存儲(chǔ)器2000H~20FFH的內(nèi)容清零 52
例3.2 求兩個(gè)數(shù)的和 63
例3.3 設(shè)計(jì)一個(gè)程序來(lái)實(shí)現(xiàn)以下功能:使用撥動(dòng)開關(guān)模擬從P3.0口輸入一個(gè)脈沖,控制P1口按十六進(jìn)制加一方式變化。這里選用AT89C52單片機(jī)74
例3.4 編寫一個(gè)流水燈程序,其中延時(shí)程序用匯編語(yǔ)言編寫 77
例4.1 閃爍燈的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 111
例4.2 模擬開關(guān)燈的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 113
例4.3 廣告燈(利用查表方式)的Proteus仿真及程序設(shè)計(jì) 115
例4.4 I/O 并行口直接驅(qū)動(dòng)數(shù)碼管顯示的Proteus仿真及C語(yǔ)言程序設(shè)計(jì)119
例4.5 動(dòng)態(tài)數(shù)碼管顯示的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 121
例5.1 外部中斷0的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 138
例5.2 外部中斷在不同觸發(fā)方式下的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 140
例5.3 流水燈Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 142
例5.4 兩位計(jì)數(shù)數(shù)碼管的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 144
例5.5 74LS148外部中斷擴(kuò)展的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 147
例6.1 將例4.1中的軟件延時(shí)方式改為使用定時(shí)器來(lái)延時(shí),其他內(nèi)容不變 161
例6.2 利用定時(shí)器產(chǎn)生脈沖的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 163
例6.3 簡(jiǎn)易車輛里程表的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 166
8 單片機(jī)原理與應(yīng)用實(shí)例仿真(第4版)
例6.4 利用定時(shí)器2測(cè)量脈沖寬度的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 168
例6.5 音樂播放的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 175
例7.1 串入并出芯片74164的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 193
例7.2 串行口自檢的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 195
例7.3 單片機(jī)與單片機(jī)之間的串行通信Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 196
例7.4 多機(jī)通信的Proteus仿真與C語(yǔ)言程序設(shè)計(jì) 201
例7.5 單片機(jī)與PC機(jī)串行通信的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 209
例7.6 RS485串行通信的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 214
例7.7 串行通信的Proteus仿真及C語(yǔ)言程序設(shè)計(jì) 218
例7.8 Visual Basic 6.0上位機(jī)程序控制DS1302時(shí)鐘的Proteus仿真 223
例8.1 AT89C52用一片6264芯片擴(kuò)展8 KB數(shù)據(jù)存儲(chǔ)器并在Proteus中仿真 236
例8.2 AT89C52用一片2764芯片擴(kuò)展8 KB程序存儲(chǔ)器 241
例8.3 AT89C52通過8255A 并行擴(kuò)展,模擬交通燈控制并在Proteus中仿真 249
例8.4 利用DAC0832轉(zhuǎn)換器輸出三角波的Proteus仿真電路和C語(yǔ)言程序設(shè)計(jì)257
例8.5 ADC0808電壓模數(shù)轉(zhuǎn)換Proteus仿真電路和C語(yǔ)言程序設(shè)計(jì) 264