本書詳細(xì)介紹了美國Atmel公司的AT89S51單片機(jī)的硬件結(jié)構(gòu)與工作原理、8051匯編語言指令系統(tǒng),并從應(yīng)用設(shè)計(jì)的角度介紹了AT89S51單片機(jī)的各種硬件擴(kuò)展接口設(shè)計(jì)、接口驅(qū)動(dòng)程序設(shè)計(jì),以及AT89S51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),同時(shí)給出較多的典型設(shè)計(jì)案例。另外,本書還對(duì)AT89S51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)中的各種器件加以介紹。
本書配有PPT課件、教學(xué)大綱、教學(xué)設(shè)計(jì)、基礎(chǔ)實(shí)驗(yàn)題目、基礎(chǔ)實(shí)驗(yàn)指導(dǎo)、思考題及習(xí)題答案、模擬試卷及答案、課程設(shè)計(jì)題目及要求、擴(kuò)充學(xué)習(xí)資料等教學(xué)資源,用書老師可在人郵教育社區(qū)免費(fèi)下載使用。
本書可作為各類工科院校電子技術(shù)、工業(yè)自動(dòng)化、計(jì)算機(jī)、自動(dòng)控制、智能儀器儀表、電氣工程、機(jī)電一體化等專業(yè)單片機(jī)課程教材,也可供從事單片機(jī)應(yīng)用設(shè)計(jì)的工程技術(shù)人員參考。
1.科學(xué)合理的內(nèi)容體系結(jié)構(gòu)
本書以芯片為基礎(chǔ),以接口設(shè)計(jì)為主線,以應(yīng)用系統(tǒng)設(shè)計(jì)為目的,不僅從原理上對(duì)單片機(jī)進(jìn)行分析和介紹,更強(qiáng)調(diào)各種接口設(shè)計(jì)和應(yīng)用系統(tǒng)設(shè)計(jì)中的軟硬件結(jié)合。
2.注重培養(yǎng)學(xué)生的動(dòng)手和創(chuàng)新能力
本書遵循“課堂教學(xué)+實(shí)驗(yàn)教學(xué)+課程設(shè)計(jì)”的培養(yǎng)體系,把先進(jìn)的信息技術(shù)與手段(電子資源、網(wǎng)絡(luò)教學(xué)平臺(tái))融入教學(xué)之中。
3.內(nèi)容實(shí)用,緊跟實(shí)踐
本書中的應(yīng)用實(shí)例大多來自科研工作及教學(xué)實(shí)踐,內(nèi)容兼具典型性與實(shí)用性。
張毅剛 哈爾濱工業(yè)大學(xué)教授,國家精品課《單片機(jī)原理》、國家精品資源共享課《單片機(jī)原理》、首批國家精品在線開放課程《單片機(jī)原理》、國家級(jí)一流本科課程負(fù)責(zé)人。黑龍江省教學(xué)名師獎(jiǎng)獲得者,教育部全國高校網(wǎng)絡(luò)培訓(xùn)中心《單片機(jī)原理》骨干教師高級(jí)研修班特聘主講教授。主持并獲得國家優(yōu)秀教材二等獎(jiǎng)1項(xiàng),省高等教育教學(xué)成果一等獎(jiǎng)2項(xiàng),二等獎(jiǎng)2項(xiàng)。獲國家教學(xué)成果一等獎(jiǎng)1項(xiàng)(排名3)。
主編出版普通高等教育國家級(jí)“十五”規(guī)劃教材1本、“十一五” 國家級(jí)規(guī)劃教材2本、“十二五”普通高等教育本科國家級(jí)規(guī)劃教材2本。
主要科研方向?yàn)樽詣?dòng)化測(cè)試技術(shù)。參加多項(xiàng)科研項(xiàng)目,獲國家科技進(jìn)步二等獎(jiǎng)1項(xiàng),部委科技進(jìn)步獎(jiǎng)6項(xiàng)。
第 1章 單片機(jī)概述 1
1.1 單片機(jī)簡(jiǎn)介 1
1.2 單片機(jī)的發(fā)展歷史 2
1.3 單片機(jī)的特點(diǎn) 2
1.4 單片機(jī)的應(yīng)用 3
1.5 單片機(jī)的發(fā)展趨勢(shì) 3
1.6 MCS-51系列與AT89S5x系列單片機(jī) 4
1.6.1 MCS-51系列單片機(jī) 5
1.6.2 8051內(nèi)核單片機(jī)與AT89S5x系列單片機(jī)簡(jiǎn)介 5
思考題及習(xí)題 6
第 2章 AT89S51單片機(jī)的片內(nèi)硬件結(jié)構(gòu) 7
2.1 AT89S51單片機(jī)的硬件組成 7
2.2 AT89S51的引腳功能 8
2.2.1 電源引腳和時(shí)鐘引腳 9
2.2.2 控制引腳 9
2.2.3 并行I/O口引腳 10
2.3 AT89S51的CPU 11
2.3.1 運(yùn)算器 11
2.3.2 控制器 12
2.4 AT89S51單片機(jī)存儲(chǔ)器的結(jié)構(gòu) 13
2.4.1 程序存儲(chǔ)器空間 13
2.4.2 數(shù)據(jù)存儲(chǔ)器空間 14
2.4.3 特殊功能寄存器 15
2.4.4 位地址空間 17
2.5 AT89S51單片機(jī)的并行I/O端口 19
2.5.1 P0口 19
2.5.2 P1口 20
2.5.3 P2口 21
2.5.4 P3口 21
2.6 時(shí)鐘電路與時(shí)序 22
2.6.1 時(shí)鐘電路設(shè)計(jì) 23
2.6.2 時(shí)鐘周期、機(jī)器周期、指令周期與指令時(shí)序 24
2.7 復(fù)位操作和復(fù)位電路 24
2.7.1 復(fù)位操作 24
2.7.2 復(fù)位電路設(shè)計(jì) 25
2.8 AT89S51單片機(jī)的最小應(yīng)用系統(tǒng) 26
思考題及習(xí)題 26
第3章 8051指令系統(tǒng)與編程基礎(chǔ) 28
3.1 指令系統(tǒng)概述 28
3.2 指令格式 28
3.3 指令系統(tǒng)的尋址方式 29
3.4 8051指令系統(tǒng)分類介紹 31
3.4.1 數(shù)據(jù)傳送類指令 32
3.4.2 算術(shù)運(yùn)算類指令 36
3.4.3 邏輯操作類指令 40
3.4.4 控制轉(zhuǎn)移類指令 43
3.4.5 位操作類指令 45
3.5 8051指令匯總 47
3.6 某些指令的說明 50
3.7 8051匯編語言程序設(shè)計(jì)基礎(chǔ) 52
3.7.1 編程語言概述 52
3.7.2 匯編語言語句和格式 52
3.7.3 偽指令 54
3.7.4 匯編語言源程序的匯編 56
3.8 8051匯編語言程序設(shè)計(jì)舉例 57
3.8.1 子程序的設(shè)計(jì) 57
3.8.2 查表程序設(shè)計(jì) 58
3.8.3 分支轉(zhuǎn)移程序設(shè)計(jì) 60
3.8.4 循環(huán)程序設(shè)計(jì) 62
思考題及習(xí)題 63
第4章 AT89S51單片機(jī)的中斷系統(tǒng) 64
4.1 AT89S51中斷技術(shù)概述 64
4.2 AT89S51中斷系統(tǒng)結(jié)構(gòu) 64
4.2.1 中斷請(qǐng)求源 65
4.2.2 中斷請(qǐng)求標(biāo)志寄存器 65
4.3 中斷允許與中斷優(yōu)先級(jí)的控制 66
4.3.1 中斷允許寄存器IE 66
4.3.2 中斷優(yōu)先級(jí)寄存器IP 68
4.4 響應(yīng)中斷請(qǐng)求的條件 70
4.5 外部中斷的響應(yīng)時(shí)間 71
4.6 外部中斷的觸發(fā)方式選擇 71
4.6.1 電平觸發(fā)方式 71
4.6.2 跳沿觸發(fā)方式 71
4.7 中斷請(qǐng)求的撤銷 71
4.8 中斷服務(wù)子程序的設(shè)計(jì) 72
思考題及習(xí)題 75
第5章 單片機(jī)與開關(guān)/鍵盤以及顯示器件的接口設(shè)計(jì) 76
5.1 單片機(jī)控制發(fā)光二極管的顯示 76
5.1.1 單片機(jī)與發(fā)光二極管的連接 76
5.1.2 單片機(jī)I/O端口控制發(fā)光二極管的編程 77
5.2 開關(guān)狀態(tài)檢測(cè) 78
5.3 單片機(jī)控制LED數(shù)碼管的顯示 79
5.3.1 LED數(shù)碼管顯示原理 79
5.3.2 LED數(shù)碼管的顯示方式 81
5.3.3 LED數(shù)碼管靜態(tài)顯示設(shè)計(jì) 82
5.3.4 LED數(shù)碼管動(dòng)態(tài)顯示設(shè)計(jì) 83
5.4 單片機(jī)控制LED點(diǎn)陣顯示器顯示 85
5.4.1 LED點(diǎn)陣顯示器結(jié)構(gòu)與顯示原理 85
5.4.2 控制16×16 LED點(diǎn)陣顯示器的設(shè)計(jì) 86
5.5 單片機(jī)控制LCD1602液晶顯示器的顯示 90
5.5.1 LCD1602液晶顯示模塊簡(jiǎn)介 90
5.5.2 單片機(jī)控制字符型LCD1602的顯示案例 94
5.6 鍵盤接口設(shè)計(jì) 97
5.6.1 鍵盤接口設(shè)計(jì)應(yīng)解決的問題 97
5.6.2 獨(dú)立式鍵盤的設(shè)計(jì) 98
5.6.3 矩陣式鍵盤的設(shè)計(jì) 101
思考題及習(xí)題 104
第6章 AT89S51單片機(jī)的定時(shí)器/計(jì)數(shù)器 105
6.1 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu) 105
6.1.1 工作方式控制寄存器TMOD 106
6.1.2 定時(shí)器/計(jì)數(shù)器控制寄存器TCON 106
6.2 定時(shí)器/計(jì)數(shù)器的4種工作方式 107
6.2.1 方式0 107
6.2.2 方式1 108
6.2.3 方式2 108
6.2.4 方式3 109
6.3 對(duì)外部輸入的計(jì)數(shù)信號(hào)的要求 111
6.4 定時(shí)器/計(jì)數(shù)器的編程和應(yīng)用 111
6.4.1 方式1的應(yīng)用 111
6.4.2 方式2的應(yīng)用 113
6.4.3 方式3的應(yīng)用 116
思考題及習(xí)題 118
第7章 AT89S51單片機(jī)的串行口 119
7.1 串行通信基礎(chǔ) 119
7.1.1 并行通信與串行通信 119
7.1.2 同步串行通信與異步串行通信 120
7.1.3 串行通信的傳輸模式 121
7.1.4 串行通信的錯(cuò)誤校驗(yàn) 121
7.2 串行口的結(jié)構(gòu) 122
7.2.1 串行口控制寄存器SCON 122
7.2.2 特殊功能寄存器PCON 124
7.3 串行口的4種工作方式 124
7.3.1 方式0 124
7.3.2 方式1 126
7.3.3 方式2 128
7.3.4 方式3 130
7.4 多機(jī)通信 130
7.5 波特率的設(shè)置方法 131
7.5.1 波特率的定義 131
7.5.2 定時(shí)器T1產(chǎn)生波特率的計(jì)算 131
7.6 串行口的應(yīng)用 133
7.6.1 串行通信接口標(biāo)準(zhǔn) 133
7.6.2 串行通信接口設(shè)計(jì)需要考慮的問題 136
7.6.3 雙機(jī)串行通信軟件編程 136
思考題及習(xí)題 141
第8章 AT89S51單片機(jī)外部存儲(chǔ)器的并行擴(kuò)展 142
8.1 系統(tǒng)并行擴(kuò)展結(jié)構(gòu) 142
8.2 存儲(chǔ)器地址空間分配和外部地址鎖存器 143
8.2.1 存儲(chǔ)器地址空間分配 143
8.2.2 外部地址鎖存器 147
8.3 靜態(tài)RAM的并行擴(kuò)展 148
8.3.1 常用的靜態(tài)RAM(SRAM)芯片 148
8.3.2 片外RAM的讀寫操作時(shí)序 149
8.3.3 AT89S51單片機(jī)與片外RAM的接口設(shè)計(jì)與軟件編程 151
8.4 片內(nèi)Flash存儲(chǔ)器的編程 153
8.4.1 使用通用編程器的程序?qū)懭搿?54
8.4.2 使用下載線的ISP 155
思考題及習(xí)題 155
第9章 單片機(jī)系統(tǒng)的并行擴(kuò)展技術(shù) 157
9.1 I/O接口并行擴(kuò)展 157
9.1.1 擴(kuò)展的I/O接口的功能 157
9.1.2 I/O端口的編址 158
9.1.3 I/O數(shù)據(jù)的傳送方式 158
9.1.4 I/O接口芯片 159
9.2 AT89S51單片機(jī)擴(kuò)展I/O接口芯片82C55的設(shè)計(jì) 159
9.2.1 82C55簡(jiǎn)介 159
9.2.2 工作方式選擇控制字及端口PC置位/復(fù)位控制字 161
9.2.3 82C55的3種工作方式 162
9.2.4 AT89S51單片機(jī)與82C55的接口設(shè)計(jì) 166
思考題及習(xí)題 168
第 10章 單片機(jī)系統(tǒng)的串行擴(kuò)展技術(shù) 169
10.1 單總線串行擴(kuò)展 169
10.1.1 單總線系統(tǒng)的典型應(yīng)用——DS18B20的溫度測(cè)量系統(tǒng) 169
10.1.2 單總線DS18B20溫度測(cè)量系統(tǒng)的設(shè)計(jì) 172
10.2 SPI總線串行擴(kuò)展 176
10.3 I2C總線串行擴(kuò)展 177
10.3.1 I2C總線系統(tǒng)的基本結(jié)構(gòu) 178
10.3.2 I2C總線的數(shù)據(jù)傳送規(guī)定 178
10.3.3 AT89S51的I2C總線系統(tǒng)擴(kuò)展 181
10.3.4 I2C總線數(shù)據(jù)傳送的模擬 182
思考題及習(xí)題 184
第 11章 AT89S51單片機(jī)與DAC、ADC的接口 185
11.1 單片機(jī)擴(kuò)展DAC概述 185
11.2 單片機(jī)擴(kuò)展并行8位DAC0832的接口設(shè)計(jì) 186
11.2.1 DAC0832簡(jiǎn)介 186
11.2.2 AT89S51單片機(jī)與DAC0832的接口設(shè)計(jì) 188
11.3 單片機(jī)擴(kuò)展ADC概述 192
11.4 單片機(jī)擴(kuò)展并行8位ADC0809的接口設(shè)計(jì) 193
11.4.1 ADC0809簡(jiǎn)介 193
11.4.2 AT89S51單片機(jī)與ADC0809的接口設(shè)計(jì) 194
思考題及習(xí)題 197
第 12章 其他常用的接口設(shè)計(jì) 198
12.1 步進(jìn)電機(jī)的控制 198
12.1.1 控制步進(jìn)電機(jī)的工作原理 198
12.1.2 控制步進(jìn)電機(jī)的設(shè)計(jì)案例 199
12.2 直流電機(jī)的控制 200
12.2.1 控制直流電機(jī)的工作原理 201
12.2.2 控制直流電機(jī)的設(shè)計(jì)案例 201
12.3 基于時(shí)鐘/日歷芯片DS1302的電子鐘的接口設(shè)計(jì) 203
12.3.1 DS1302的工作原理 203
12.3.2 DS1302的應(yīng)用設(shè)計(jì)案例 206
思考題及習(xí)題 212
第 13章 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì) 213
13.1 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)步驟 213
13.2 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì) 214
13.2.1 硬件設(shè)計(jì)應(yīng)考慮的問題 214
13.2.2 典型的單片機(jī)應(yīng)用系統(tǒng) 215
13.2.3 系統(tǒng)設(shè)計(jì)中的總線驅(qū)動(dòng) 216
13.2.4 軟件設(shè)計(jì)應(yīng)考慮的問題 218
13.2.5 軟件的總體框架設(shè)計(jì) 218
思考題及習(xí)題 219
參考文獻(xiàn) 220