單片機原理及接口技術(C51編程)( 微課版 第3版)
定 價:54 元
- 作者:張毅剛 著
- 出版時間:2020/1/1
- ISBN:9787565830051
- 出 版 社:人民郵電出版社
- 中圖法分類:I18
- 頁碼:384
- 紙張:膠版紙
- 版次:3
- 開本:16開
本書詳細介紹了美國ATMEL公司8051內核的AT89S51/52單片機工作原理及應用設計,且融入了目前在教學中已經廣泛使用的虛擬仿真開發(fā)工具Proteus,并給出較多的、經過驗證的仿真案例。本書也展示了作者的“單片機原理”國家精品課程的教學模式與教學方法改革的部分成果,對課程體系結構的改進也體現(xiàn)在本書之中。
1.張毅剛 哈爾濱工業(yè)大學教授。多年來一直致力于單片機課程內容的改革與更新以及單片機教材的建設,他編寫的單片機教材被國內眾多院校采用,在全國具有較大影響,該課程被評為國家精品課程、資源共享課。
2.單片機一書采用科學合理的課程體系結構,即以芯片為基礎,以接口設計為主線,以應用系統(tǒng)設計為目的。避免僅從原理上去對單片機進行分析和介紹,特別注重各種接口設計和應用系統(tǒng)的設計中的軟硬件結合。
3.課程內容緊跟科技發(fā)展,不斷更新,具有實用性、典型性。授課中的應用實例,大多來自科研工作及教學實踐。
4.注重學生的實際動手、創(chuàng)新能力的培養(yǎng),建立了課堂教學、實驗教學加課程設計的三位一體的培養(yǎng)體系,把先進的信息技術手段(電子課件、網絡教學平臺)融入教學之中。
張毅剛教授畢業(yè)于哈爾濱工業(yè)大學無線電技術專業(yè),現(xiàn)任哈爾濱工業(yè)大學電氣學院教授,主要研究方向:虛擬儀器及計算機自動測試技術。主要研究內容:虛擬儀器的系統(tǒng)結構、設計和組建;微型計算機、單片機、數字信號處理機在虛擬儀器系統(tǒng)中的應用。
第 1章 單片機概述 1
1.1 什么是單片機 1
1.2 單片機的發(fā)展歷史 2
1.3 單片機的特點 2
1.4 單片機的應用 3
1.5 單片機的發(fā)展趨勢 4
1.6 MCS-51系列與AT89S5x系列單片機 5
1.6.1 MCS-51系列單片機 5
1.6.2 8051內核單片機與AT89S5x系列單片機 6
1.7 各種衍生品種的8051單片機 7
1.7.1 STC系列單片機 7
1.7.2 C8051F×××單片機 8
1.7.3 ADμC812單片機 9
1.7.4 臺灣華邦W77系列、W78系列單片機 9
1.8 PIC系列單片機與AVR系列單片機 9
1.8.1 PIC系列單片機 9
1.8.2 AVR系列單片機 10
1.9 其他的嵌入式處理器簡介 11
1.9.1 嵌入式DSP處理器 11
1.9.2 嵌入式微處理器 12
思考題及習題 12
第 2章 AT89S51單片機片內硬件結構 14
2.1 AT89S51單片機的片內硬件結構 14
2.2 AT89S51的引腳功能 15
2.2.1 電源及時鐘引腳 15
2.2.2 控制引腳 16
2.2.3 并行I/O口引腳 17
2.3 AT89S51的CPU 18
2.3.1 運算器 19
2.3.2 控制器 20
2.4 AT89S51單片機存儲器的結構 20
2.4.1 程序存儲器空間 21
2.4.2 數據存儲器空間 22
2.4.3 特殊功能寄存器 23
2.4.4 位地址空間 25
2.5 AT89S51單片機的并行I/O端口 27
2.5.1 P0口 27
2.5.2 P1口 28
2.5.3 P2口 29
2.5.4 P3口 29
2.6 時鐘電路與時序 30
2.6.1 時鐘電路設計 30
2.6.2 機器周期、指令周期與指令時序 31
2.7 復位操作和復位電路 32
2.7.1 復位操作 32
2.7.2 復位電路設計 33
2.8 AT89S51單片機的最小應用系統(tǒng) 33
2.9 看門狗定時器(WDT)的使用 34
2.10 低功耗節(jié)電模式 35
2.10.1 空閑模式 36
2.10.2 掉電運行模式 36
2.11 AT89S52單片機與AT89S51單片機的差異 37
2.11.1 AT89S52單片機與AT89S51單片機片內硬件資源的差別 37
2.11.2 AT89S52的引腳 37
2.11.3 AT89S52單片機的存儲器結構 38
思考題及習題 41
第3章 C51編程語言基礎 43
3.1 C51編程語言簡介 43
3.1.1 C51語言與8051匯編語言的比較 43
3.1.2 C51語言與標準C語言的比較 44
3.2 C51語言程序設計基礎 44
3.2.1 C51語言中的數據類型與存儲類型 45
3.2.2 C51語言的特殊功能寄存器及位變量定義 49
3.2.3 C51語言的絕對地址訪問 51
3.2.4 C51的基本運算 52
3.2.5 C51的分支與循環(huán)程序結構 55
3.2.6 C51的數組 61
3.2.7 C51的指針 62
3.3 C51語言的函數 63
3.3.1 函數的分類 63
3.3.2 函數的參數與返回值 65
3.3.3 函數的調用 65
3.3.4 中斷服務函數 66
3.3.5 變量及存儲方式 67
3.3.6 宏定義與文件包含 67
3.3.7 庫函數 68
思考題及習題 68
第4章 開發(fā)與仿真工具 70
4.1 Keil C51的使用 70
4.1.1 Keil C51簡介 70
4.1.2 基本操作 70
4.1.3 添加用戶源程序文件 72
4.1.4 程序的編譯與調試 75
4.1.5 項目的設置 77
4.2 Proteus虛擬仿真工具介紹 80
4.2.1 Proteus功能簡介 80
4.2.2 Proteus ISIS的虛擬仿真 80
4.2.3 Proteus的各種虛擬仿真調試工具 87
4.2.4 虛擬設計仿真舉例 91
思考題及習題 97
第5章 單片機與開關、鍵盤以及顯示器件的接口設計 98
5.1 單片機控制發(fā)光二極管顯示 98
5.1.1 單片機與發(fā)光二極管的連接 98
5.1.2 I/O端口的編程控制 99
5.2 開關狀態(tài)檢測 102
5.2.1 開關檢測案例1 102
5.2.2 開關檢測案例2 103
5.3 單片機控制LED數碼管的顯示 104
5.3.1 LED數碼管的顯示原理 104
5.3.2 LED數碼管的靜態(tài)顯示與動態(tài)顯示 107
5.4 單片機控制LED點陣顯示器顯示 110
5.4.1 LED點陣顯示器的結構與顯示原理 110
5.4.2 控制16×16 LED點陣顯示屏的案例 111
5.5 字符型LCD 1602液晶顯示器的顯示控制 113
5.5.1 LCD 1602液晶顯示模塊簡介 114
5.5.2 單片機控制字符型LCD 1602顯示案例 120
5.6 點陣式液晶顯示器LCD12864的顯示控制 123
5.6.1 引腳及顯示原理 124
5.6.2 控制命令 125
5.6.3 單片機控制LCD12864顯示的案例 127
5.7 鍵盤接口設計 131
5.7.1 鍵盤接口設計應解決的問題 132
5.7.2 獨立式鍵盤接口設計案例 133
5.7.3 矩陣式鍵盤的接口設計案例 139
5.7.4 非編碼鍵盤掃描方式的選擇 141
5.7.5 單片機與專用鍵盤/顯示器芯片HD7279的接口設計 142
思考題及習題 152
第6章 中斷系統(tǒng)的工作原理及應用 154
6.1 AT89S51中斷技術概述 154
6.2 AT89S51中斷系統(tǒng)結構 154
6.2.1 中斷請求源 155
6.2.2 中斷請求標志寄存器 155
6.3 中斷允許與中斷優(yōu)先級的控制 156
6.3.1 中斷允許寄存器IE 157
6.3.2 中斷優(yōu)先級寄存器IP 157
6.4 響應中斷請求的條件 158
6.5 外部中斷的響應時間 159
6.6 外部中斷的觸發(fā)方式選擇 160
6.6.1 電平觸發(fā)方式 160
6.6.2 跳沿觸發(fā)方式 160
6.7 中斷請求的撤銷 160
6.8 中 斷 函 數 161
6.9 中斷系統(tǒng)應用舉例 163
6.9.1 單一外中斷的應用 163
6.9.2 兩個外中斷的應用 164
6.9.3 中斷嵌套的應用 166
6.10 AT89S52與AT89S51中斷系統(tǒng)的差別 167
6.10.1 中斷請求源的差別 167
6.10.2 中斷請求標志寄存器的差別 168
6.10.3 中斷允許寄存器與中斷優(yōu)先級寄存器的差別 168
思考題及習題 170
第7章 定時器/計數器的工作原理及應用 172
7.1 定時器/計數器的結構 172
7.1.1 定時器/計數器工作方式寄存器TMOD 173
7.1.2 定時器/計數器控制寄存器TCON 173
7.2 定時器/計數器的4種工作方式 174
7.2.1 方式0 174
7.2.2 方式1 175
7.2.3 方式2 175
7.2.4 方式3 176
7.3 計數器對外部輸入的計數信號的要求 177
7.4 定時器/計數器T0、T1的編程應用 178
7.4.1 P1口控制8只LED每0.5s閃亮一次 178
7.4.2 計數器的應用 179
7.4.3 控制P1.0產生周期為2ms的方波 181
7.4.4 利用T1控制發(fā)出1kHz的音頻信號 182
7.4.5 LED數碼管秒表的制作 184
7.4.6 測量脈沖寬度——門控位GATEx的應用 186
7.4.7 LCD時鐘的設計 188
7.5 AT89S52新增定時器/計數器T2簡介 190
7.5.1 T2的特殊功能寄存器T2CON和T2MOD 190
7.5.2 T2的16位自動重裝載方式 192
7.5.3 T2的捕捉方式 194
7.5.4 T2的波特率發(fā)生器方式及可編程時鐘輸出 194
思考題及習題 197
第8章 串行口的工作原理及應用 199
8.1 串行通信基礎 199
8.1.1 并行通信與串行通信 199
8.1.2 同步通信與異步通信 200
8.1.3 串行通信的傳輸模式 201
8.1.4 串行通信的錯誤校驗 201
8.2 串行口的結構 202
8.2.1 串行口控制寄存器SCON 202
8.2.2 特殊功能寄存器PCON 203
8.3 串行口的4種工作方式 204
8.3.1 方式0 204
8.3.2 方式1 208
8.3.3 方式2 210
8.3.4 方式3 211
8.4 多 機 通 信 211
8.5 波特率的制定方法 212
8.5.1 波特率的定義 213
8.5.2 定時器T1產生波特率的計算 213
8.6 串行口應用設計案例 214
8.6.1 串行通信標準接口RS232、RS422與RS485簡介 214
8.6.2 方式1的應用設計 217
8.6.3 方式2和方式3的應用設計 223
8.6.4 多機通信的應用設計 225
8.6.5 單片機與PC串行通信的設計 231
8.6.6 PC與單片機或與多個單片機的串行通信 235
思考題及習題 237
第9章 單片機系統(tǒng)的并行擴展 239
9.1 系統(tǒng)并行擴展技術 239
9.1.1 系統(tǒng)并行擴展結構 239
9.1.2 地址空間分配 241
9.1.3 外部地址鎖存器 243
9.2 外部數據存儲器的并行擴展 244
9.2.1 常用的靜態(tài)RAM(SRAM)芯片 244
9.2.2 讀寫片外RAM的操作時序 245
9.2.3 并行擴展數據存儲器的設計 246
9.2.4 單片機外擴數據存儲器RAM6264的案例設計 248
9.3 片內Flash存儲器的編程 250
9.3.1 使用通用編程器的程序寫入 250
9.3.2 使用下載線的ISP編程 251
9.4 E2PROM的并行擴展 251
9.4.1 并行E2PROM芯片簡介 252
9.4.2 AT89S51單片機擴展E2PROM AT2864的設計 252
9.5 AT89S51擴展并行I/O芯片82C55的設計 253
9.5.1 I/O接口擴展概述 253
9.5.2 并行I/O芯片82C55簡介 254
9.5.3 82C55的3種工作方式 258
9.5.4 AT89S51單片機與82C55的接口設計 262
9.6 利用74LSTTL電路擴展并行I/O口 264
9.7 用AT89S51單片機的串行口 擴展并行輸入/輸出口 265
9.7.1 用74LS165擴展并行輸入口 265
9.7.2 用74LS164擴展并行輸出口 266
思考題及習題 267
第 10章 AT89S51單片機系統(tǒng)的串行擴展 269
10.1 單總線串行擴展 269
10.1.1 單總線擴展的典型應用——DS18B20的溫度測量系統(tǒng) 269
10.1.2 設計案例:單總線DS18B20溫度測量系統(tǒng) 272
10.2 SPI總線串行擴展 275
10.3 I2C總線的串行擴展 276
10.3.1 I2C串行總線系統(tǒng)的基本結構 276
10.3.2 I2C總線的數據傳送規(guī)定 277
10.3.3 AT89S51的I2C總線擴展系統(tǒng) 280
10.3.4 I2C總線數據傳送的模擬 281
10.3.5 利用I2C總線擴展E2PROM AT24C02的IC卡設計 284
思考題及習題 290
第 11章 AT89S51單片機與DAC、ADC的接口 292
11.1 單片機擴展DAC概述 292
11.2 單片機擴展并行8位DAC0832的設計 293
11.2.1 DAC0832簡介 293
11.2.2 案例設計:單片機擴展DAC0832的程控電壓源 294
11.2.3 案例設計:波形發(fā)生器的制作 296
11.3 單片機擴展串行10位DAC—TLC5615 300
11.3.1 串行DAC—TLC5615簡介 300
11.3.2 案例設計:單片機擴展串行DAC—TLC5615的設計 302
11.4 單片機擴展ADC概述 304
11.5 單片機并行擴展8位A/D轉換器ADC0809 305
11.5.1 案例設計:單片機控制ADC0809進行A/D轉換 306
11.5.2 案例設計:兩路輸入的數字電壓表的設計 308
11.6 單片機擴展串行8位A/D轉換器TLC549 311
11.6.1 TLC549的特性及工作原理 311
11.6.2 案例設計:單片機擴展TLC549的設計 312
11.7 單片機擴展串行12位 ADC—TLC2543的設計 314
11.7.1 TLC2543的特性及工作原理 314
11.7.2 案例設計:單片機擴展TLC2543的設計 316
思考題及習題 319
第 12章 單片機各種應用設計 321
12.1 單片機控制步進電機的設計 321
12.2 單片機控制直流電機 323
12.3 頻率計的制作 325
12.4 電話機撥號的模擬 328
12.5 8位競賽搶答器設計 333
12.6 基于時鐘/日歷芯片DS1302的電子鐘設計 337
思考題及習題 344
第 13章 功率接口設計 345
13.1 單片機與外圍集成數字驅動電路的接口 345
13.2 單片機與光電耦合器的接口 347
13.2.1 晶體管輸出型光電耦合器驅動接口 347
13.2.2 晶閘管輸出型光電耦合器驅動接口 349
13.3 單片機與繼電器的接口 350
13.3.1 單片機與直流電磁式繼電器功率接口 350
13.3.2 單片機與交流電磁式接觸器的接口 351
13.4 單片機與晶閘管的接口 352
13.4.1 單向晶閘管 352
13.4.2 雙向晶閘管 352
13.4.3 光耦合雙向晶閘管驅動器 352
13.5 單片機與集成功率電子開關輸出接口 354
13.5.1 集成功率電子開關TWH8751簡介 355
13.5.2 集成功率電子開關TWH8751的典型應用 356
13.6 單片機與固態(tài)繼電器的接口 356
13.6.1 固態(tài)繼電器的特性與分類 356
13.6.2 固態(tài)繼電器的應用 357
13.7 低壓開關量信號輸出技術 360
思考題及習題 360
第 14章 單片機應用系統(tǒng)抗干擾與可靠性設計 362
14.1 干擾的來源 362
14.2 供電系統(tǒng)干擾及其抗干擾措施 363
14.2.1 電源噪聲來源、種類及危害 363
14.2.2 供電系統(tǒng)的抗干擾設計 363
14.3 過程通道干擾的抑制措施—隔離 364
14.3.1 光電隔離的基本配置 364
14.3.2 光電隔離的實現(xiàn) 365
14.4 空間干擾及抗干擾措施 366
14.4.1 接地技術 367
14.4.2 屏蔽技術 368
14.5 反電勢干擾的抑制 369
14.6 印制電路板的抗干擾設計 370
14.6.1 地線及電源線設計 370
14.6.2 去耦電容的配置 371
14.6.3 印制電路板的布線的抗干擾設計 371
14.7 軟件抗干擾措施 372
14.7.1 軟件抗干擾的一般方法 372
14.7.2 軟件濾波 372
14.7.3 開關量輸入/輸出軟件抗干擾設計 373
思考題及習題 374
第 15章 單片機應用系統(tǒng)的設計與調試 376
15.1 單片機應用系統(tǒng)的設計步驟 376
15.2 單片機應用系統(tǒng)設計 377
15.2.1 硬件設計應考慮的問題 377
15.2.2 典型的單片機應用系統(tǒng) 378
15.2.3 系統(tǒng)設計中的總線驅動 379
15.2.4 軟件設計考慮的問題 381
15.3 單片機應用系統(tǒng)的仿真開發(fā)與調試 381
思考題及習題 385
附錄A 386
基礎實驗題目 386
實驗1 單片機I/O口實驗——LED流水燈 386
實驗2 單個外部中斷實驗 386
實驗3 中斷嵌套實驗 387
實驗4 定時器/計數器的定時實驗 387
實驗5 定時器/計數器的計數器實驗 387
實驗6 串口方式0擴展并行輸出口實驗 388
實驗7 串行口方式0擴展并行輸入口實驗 388
實驗8 雙單片機串行通信 389
實驗9 擴展82C55并行I/O實驗 390
實驗10 獨立式鍵盤實驗 390
實驗11 矩陣式鍵盤掃描實驗 391
實驗12 單片機控制1602液晶顯示器顯示字符 391
實驗13 DAC0832的D/A轉換實驗 392
實驗14 ADC0809的A/D轉換實驗 392
實驗15 I2C總線串行擴展——AT24C02存儲器讀寫 393
附錄B 394
課程設計題目 394
題目1 節(jié)日彩燈控制器的設計 394
題目2 單一外中斷的應用 394
題目3 LED數碼管秒表的制作 395
題目4 音樂音符發(fā)生器的制作 395
題目5 用定時器設計的門鈴 396
題目6 控制數碼管循環(huán)顯示單個數字 396
題目7 基于DS18B20的數字溫度計設計 396
題目8 利用定時器在P1.0 上產生周期為2ms的方波 397
題目9 電話鍵盤及撥號的模擬 398
題目10 雙機串行口方式1單工通信 398
題目11 數碼管顯示4×4 矩陣鍵盤的鍵號 399
題目12 波形發(fā)生器的制作 399
題目13 頻率計的制作 399
題目14 數字電壓表設計 400
題目15 單片機控制串行DAC—— TLC5615的調壓器 401
題目16 單片機控制16×16 陣列LED的顯示 401
題目17 直流電機控制實驗 402
題目18 步進電機控制實驗 402
附錄C 406
頭文件\"LCD1602.h\"清單 406
附錄D 408
頭文件\"DS1302.h\"清單 408
參考書目 412