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