本書詳細介紹美國ATMEL公司的AT89S51/52單片機片內硬件資源及工作原理,重點介紹了單片機應用的各種技術實現以及相應的C51語言編程,如信息的顯示與輸入,中斷,定時/計數,串行通信,模/數與數/模轉換以及系統的並行與串行擴展的接口設計等。
張毅剛,哈爾濱工業大學教授,國家精品課程「單片機原理」負責人,並獲國家精品資源共享課「單片機原理」建設立項。教育部全國高校網絡培訓中心「單片機原理」骨干教師高級研修班特聘主講教師和黑龍江省教學名師獲得者。
主持並獲得省高等教育教學成果一等獎2項,二等獎2項。獲國家教學成果一等獎1項。普通高等教育「十五」、「十一五」和「十二五」國家級規划教材主編。主要科研方向為自動化測試技術、嵌入式控制器應用等。參加並完成多項科研項目,獲國家科技進步二等獎1項,航天部科技進步獎5項。
目錄
第1章 單片機概述 1
1.1 什麼是單片機 1
1.2 單片機的發展歷史 2
1.3 單片機的特點 2
1.4 單片機的應用 3
1.5 單片機的發展趨勢 4
1.6 MCS—51系列與AT89S5x系列單片機 5
1.6.1 MCS—51系列單片機 5
1.6.2 AT89S5x系列單片機 6
1.7 各種衍生品種的8051單片機 8
1.7.1 STC系列單片機 8
1.7.2 C8051F×××單片機 9
1.7.3 ADμC812單片機 9
1.7.4 華邦W77系列、W78系列單片機 9
1.8 PIC系列單片機與AVR系列單片機 10
1.8.1 PIC系列單片機 10
1.8.2 AVR系列單片機 11
1.9 其他的嵌入式處理器簡介 11
1.9.1 嵌入式DSP處理器 12
1.9.2 嵌入式微處理器 12
思考題及習題 13
第2章 AT89S51單片機片內硬件結構 15
2.1 AT89S51單片機的片內硬件結構 15
2.2 AT89S51的引腳功能 17
2.2.1 電源及時鍾引腳 17
2.2.2 控制引腳 17
2.2.3 並行I/O口引腳 18
2.3 AT89S51的CPU 19
2.3.1 運算器 19
2.3.2 控制器 21
2.4 AT89S51單片機存儲器的結構 21
2.4.1 程序存儲器空間 22
2.4.2 數據存儲器空間 22
2.4.3 特殊功能寄存器 23
2.4.4 位地址空間 26
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口 30
2.6 時鍾電路與時序 30
2.6.1 時鍾電路設計 31
2.6.2 機器周期、指令周期與指令時序 32
2.7 復位操作和復位電路 32
2.7.1 復位操作 32
2.7.2 復位電路設計 33
2.8 看門狗定時器(WDT)的使用 33
2.9 低功耗節電模式 35
2.9.1 空閑模式 35
2.9.2 掉電運行模式 36
2.10 AT89S52單片機與AT89S51單片機的差異 36
2.10.1 AT89S52單片機與AT89S51單片機片內硬件資源的差別 37
2.10.2 AT89S52的引腳 37
2.10.3 AT89S52單片機的存儲器結構 37
思考題及習題 40
第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的分支與循環程序結構 54
3.2.6 C51的數組 60
3.2.7 C51的指針 62
3.3 C51語言的函數 63
3.3.1 函數的分類 63
3.3.2 函數的參數與返回值 64
3.3.3 函數的調用 65
3.3.4 中斷服務函數 66
3.3.5 變量及存儲方式 66
3.3.6 宏定義與文件包含 66
3.3.7 庫函數 67
思考題及習題 68
第4章 開發與仿真工具 69
4.1 KeilC51的使用 69
4.1.1 KeilC51簡介 69
4.1.2 基本操作 69
4.1.3 添加用戶源程序文件 71
4.1.4 程序的編譯與調試 73
4.1.5 項目的設置 75
4.2 Proteus虛擬仿真工具介紹 77
4.2.1 Proteus功能簡介 77
4.2.2 ProteusISIS的虛擬仿真 78
4.2.3 Proteus的各種虛擬仿真調試工具 84
4.2.4 虛擬設計仿真舉例 87
思考題及習題 93
第5章 單片機與開關、鍵盤以及顯示器件的接口設計 94
5.1 單片機控制發光二極管顯示 94
5.1.1 單片機與發光二極管的連接 94
5.1.2 I/O端口的編程控制 95
5.2 開關狀態檢測 98
5.2.1 開關檢測案例198
5.2.2 開關檢測案例299
5.3 單片機控制LED數碼管的顯示 100
5.3.1 LED數碼管的顯示原理 100
5.3.2 LED數碼管的靜態顯示與動態顯示 103
5.4 單片機控制LED點陣顯示器顯示 106
5.4.1 LED點陣顯示器的結構與顯示原理 106
5.4.2 控制16×16LED點陣顯示屏的案例 107
5.5 單片機控制LCD1602液晶顯示器的顯示 109
5.5.1 LCD1602液晶顯示模塊簡介 110
5.5.2 單片機控制字符型LCD1602顯示案例 116
5.6 鍵盤接口設計 119
5.6.1 鍵盤接口設計應解決的問題 119
5.6.2 獨立式鍵盤接口設計案例 120
5.6.3 矩陣式鍵盤的接口設計案例 127
5.6.4 非編碼鍵盤掃描方式的選擇 129
5.6.5 單片機與專用鍵盤/顯示器芯片HD7279的接口設計 130
思考題及習題 140
第6章 中斷系統的工作原理及應用 142
6.1 AT89S51中斷技術概述 142
6.2 AT89S51中斷系統結構 142
6.2.1 中斷請求源 143
6.2.2 中斷請求標志寄存器 143
6.3 中斷允許與中斷優先級的控制 144
6.3.1 中斷允許寄存器IE 145
6.3.2 中斷優先級寄存器IP 145
6.4 響應中斷請求的條件 146
6.5 外部中斷的響應時間 147
6.6 外部中斷的觸發方式選擇 148
6.6.1 電平觸發方式 148
6.6.2 跳沿觸發方式 148
6.7 中斷請求的撤銷 148
6.8 中斷函數 149
6.9 中斷系統應用舉例 150
6.9.1 單一外中斷的應用 151
6.9.2 兩個外中斷的應用 152
6.9.3 中斷嵌套的應用 153
思考題及習題 155
第7章 定時器/計數器的工作原理及應用 157
7.1 定時器/計數器的結構 157
7.1.1 定時器/計數器工作方式寄存器TMOD 158
7.1.2 定時器/計數器控制寄存器TCON 158
7.2 定時器/計數器的4種工作方式 159
7.2.1 方式0159
7.2.2 方式1160
7.2.3 方式2160
7.2.4 方式3161
7.3 計數器對外部輸入的計數信號的要求 162
7.4 定時器/計數器T0、T1的編程應用 163
7.4.1 P1口控制8只LED每0.5s閃亮一次 163
7.4.2 計數器的應用 164
7.4.3 控制P1.0產生周期為2ms的方波 166
7.4.4 利用T1控制發出1kHz的音頻信號 167
7.4.5 LED數碼管秒表的制作 169
7.4.6 測量脈沖寬度——門控位GATEx的應用 171
7.4.7 LCD時鍾的設計 173
7.5 AT89S52新增定時器/計數器T2簡介 175
7.5.1 T2的特殊功能寄存器T2CON和T2MOD 175
7.5.2 T2的16位自動重裝載方式 177
7.5.3 T2的捕捉方式 179
7.5.4 T2的波特率發生器方式及可編程時鍾輸出 179
思考題及習題 182
第8章 串行口的工作原理及用 184
8.1 串行通信基礎 184
8.1.1 並行通信與串行通信 184
8.1.2 同步通信與異步通信 185
8.1.3 串行通信的傳輸模式 186
8.1.4 串行通信的錯誤校驗 186
8.2 串行口的結構 187
8.2.1 串行口控制寄存器SCON 187
8.2.2 特殊功能寄存器PCON 188
8.3 串行口的4種工作方式 189
8.3.1 方式0189
8.3.2 方式1193
8.3.3 方式2194
8.3.4 方式3195
8.4 多機通信 196
8.5 波特率的制定方法 197
8.5.1 波特率的定義 197
8.5.2 定時器T1產生波特率的計算 197
8.6 串行口應用設計案例 198
8.6.1 串行通信標准接口RS232、RS422與RS485簡介 199
8.6.2 方式1的應用設計 201
8.6.3 方式2和方式3的應用設計 208
8.6.4 多機通信的應用設計 210
8.6.5 單片機與PC串行通信的設計 216
8.6.6 PC與單片機或與多個單片機的串行通信 220
思考題及習題 221
第9章 單片機系統的並行擴展 223
9.1 系統並行擴展技術 223
9.1.1 系統並行擴展結構 223
9.1.2 地址空間分配 225
9.1.3 外部地址鎖存器 227
9.2 外部數據存儲器的並行擴展 228
9.2.1 常用的靜態RAM(SRAM)芯片 228
9.2.2 讀寫片外RAM的操作時序 229
9.2.3 並行擴展數據存儲器的設計 230
9.2.4 單片機外擴數據存儲器RAM6264的案例設計 232
9.3 片內Flash存儲器的編程 233
9.3.1 使用通用編程器的程序寫入 234
9.3.2 使用下載線的ISP編程 234
9.4 E2PROM的並行擴展 235
9.4.1 並行E2PROM芯片簡介 235
9.4.2 AT89S51單片機擴展E2PROMAT2864的設計 236
9.5 AT89S51擴展並行I/O芯片82C55的設計 237
9.5.1 I/O接口擴展概述 237
9.5.2 並行I/O芯片82C55簡介 238
9.5.382C55的3種工作方式 241
9.5.4 AT89S51單片機與82C55的接口設計 245
9.6 利用74LSTTL電路擴展並行I/O口 247
9.7 用AT89S51單片機的串行口擴展並行輸入/輸出口 248
9.7.1 用74LS165擴展並行輸入口 248
9.7.2 用74LS164擴展並行輸出口 249
思考題及習題 250
……
第10章 AT89S51單片機系統的串行擴展
第11章 AT89S51單片機與DAC、ADC的接口
第12章 單片機各種應用設計
第13章 功率接口設計
第14章 單片機應用系統抗干擾與可靠性設計
第15章 單片機應用系統的設計與調試
附錄A 基礎實驗題目
附錄B 課程設計題目
附錄C 頭文件”LCD1602.h”清單
附錄D 頭文件”DS1302.h”清單
參考文獻
1.1 什麼是單片機 1
1.2 單片機的發展歷史 2
1.3 單片機的特點 2
1.4 單片機的應用 3
1.5 單片機的發展趨勢 4
1.6 MCS—51系列與AT89S5x系列單片機 5
1.6.1 MCS—51系列單片機 5
1.6.2 AT89S5x系列單片機 6
1.7 各種衍生品種的8051單片機 8
1.7.1 STC系列單片機 8
1.7.2 C8051F×××單片機 9
1.7.3 ADμC812單片機 9
1.7.4 華邦W77系列、W78系列單片機 9
1.8 PIC系列單片機與AVR系列單片機 10
1.8.1 PIC系列單片機 10
1.8.2 AVR系列單片機 11
1.9 其他的嵌入式處理器簡介 11
1.9.1 嵌入式DSP處理器 12
1.9.2 嵌入式微處理器 12
思考題及習題 13
第2章 AT89S51單片機片內硬件結構 15
2.1 AT89S51單片機的片內硬件結構 15
2.2 AT89S51的引腳功能 17
2.2.1 電源及時鍾引腳 17
2.2.2 控制引腳 17
2.2.3 並行I/O口引腳 18
2.3 AT89S51的CPU 19
2.3.1 運算器 19
2.3.2 控制器 21
2.4 AT89S51單片機存儲器的結構 21
2.4.1 程序存儲器空間 22
2.4.2 數據存儲器空間 22
2.4.3 特殊功能寄存器 23
2.4.4 位地址空間 26
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口 30
2.6 時鍾電路與時序 30
2.6.1 時鍾電路設計 31
2.6.2 機器周期、指令周期與指令時序 32
2.7 復位操作和復位電路 32
2.7.1 復位操作 32
2.7.2 復位電路設計 33
2.8 看門狗定時器(WDT)的使用 33
2.9 低功耗節電模式 35
2.9.1 空閑模式 35
2.9.2 掉電運行模式 36
2.10 AT89S52單片機與AT89S51單片機的差異 36
2.10.1 AT89S52單片機與AT89S51單片機片內硬件資源的差別 37
2.10.2 AT89S52的引腳 37
2.10.3 AT89S52單片機的存儲器結構 37
思考題及習題 40
第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的分支與循環程序結構 54
3.2.6 C51的數組 60
3.2.7 C51的指針 62
3.3 C51語言的函數 63
3.3.1 函數的分類 63
3.3.2 函數的參數與返回值 64
3.3.3 函數的調用 65
3.3.4 中斷服務函數 66
3.3.5 變量及存儲方式 66
3.3.6 宏定義與文件包含 66
3.3.7 庫函數 67
思考題及習題 68
第4章 開發與仿真工具 69
4.1 KeilC51的使用 69
4.1.1 KeilC51簡介 69
4.1.2 基本操作 69
4.1.3 添加用戶源程序文件 71
4.1.4 程序的編譯與調試 73
4.1.5 項目的設置 75
4.2 Proteus虛擬仿真工具介紹 77
4.2.1 Proteus功能簡介 77
4.2.2 ProteusISIS的虛擬仿真 78
4.2.3 Proteus的各種虛擬仿真調試工具 84
4.2.4 虛擬設計仿真舉例 87
思考題及習題 93
第5章 單片機與開關、鍵盤以及顯示器件的接口設計 94
5.1 單片機控制發光二極管顯示 94
5.1.1 單片機與發光二極管的連接 94
5.1.2 I/O端口的編程控制 95
5.2 開關狀態檢測 98
5.2.1 開關檢測案例198
5.2.2 開關檢測案例299
5.3 單片機控制LED數碼管的顯示 100
5.3.1 LED數碼管的顯示原理 100
5.3.2 LED數碼管的靜態顯示與動態顯示 103
5.4 單片機控制LED點陣顯示器顯示 106
5.4.1 LED點陣顯示器的結構與顯示原理 106
5.4.2 控制16×16LED點陣顯示屏的案例 107
5.5 單片機控制LCD1602液晶顯示器的顯示 109
5.5.1 LCD1602液晶顯示模塊簡介 110
5.5.2 單片機控制字符型LCD1602顯示案例 116
5.6 鍵盤接口設計 119
5.6.1 鍵盤接口設計應解決的問題 119
5.6.2 獨立式鍵盤接口設計案例 120
5.6.3 矩陣式鍵盤的接口設計案例 127
5.6.4 非編碼鍵盤掃描方式的選擇 129
5.6.5 單片機與專用鍵盤/顯示器芯片HD7279的接口設計 130
思考題及習題 140
第6章 中斷系統的工作原理及應用 142
6.1 AT89S51中斷技術概述 142
6.2 AT89S51中斷系統結構 142
6.2.1 中斷請求源 143
6.2.2 中斷請求標志寄存器 143
6.3 中斷允許與中斷優先級的控制 144
6.3.1 中斷允許寄存器IE 145
6.3.2 中斷優先級寄存器IP 145
6.4 響應中斷請求的條件 146
6.5 外部中斷的響應時間 147
6.6 外部中斷的觸發方式選擇 148
6.6.1 電平觸發方式 148
6.6.2 跳沿觸發方式 148
6.7 中斷請求的撤銷 148
6.8 中斷函數 149
6.9 中斷系統應用舉例 150
6.9.1 單一外中斷的應用 151
6.9.2 兩個外中斷的應用 152
6.9.3 中斷嵌套的應用 153
思考題及習題 155
第7章 定時器/計數器的工作原理及應用 157
7.1 定時器/計數器的結構 157
7.1.1 定時器/計數器工作方式寄存器TMOD 158
7.1.2 定時器/計數器控制寄存器TCON 158
7.2 定時器/計數器的4種工作方式 159
7.2.1 方式0159
7.2.2 方式1160
7.2.3 方式2160
7.2.4 方式3161
7.3 計數器對外部輸入的計數信號的要求 162
7.4 定時器/計數器T0、T1的編程應用 163
7.4.1 P1口控制8只LED每0.5s閃亮一次 163
7.4.2 計數器的應用 164
7.4.3 控制P1.0產生周期為2ms的方波 166
7.4.4 利用T1控制發出1kHz的音頻信號 167
7.4.5 LED數碼管秒表的制作 169
7.4.6 測量脈沖寬度——門控位GATEx的應用 171
7.4.7 LCD時鍾的設計 173
7.5 AT89S52新增定時器/計數器T2簡介 175
7.5.1 T2的特殊功能寄存器T2CON和T2MOD 175
7.5.2 T2的16位自動重裝載方式 177
7.5.3 T2的捕捉方式 179
7.5.4 T2的波特率發生器方式及可編程時鍾輸出 179
思考題及習題 182
第8章 串行口的工作原理及用 184
8.1 串行通信基礎 184
8.1.1 並行通信與串行通信 184
8.1.2 同步通信與異步通信 185
8.1.3 串行通信的傳輸模式 186
8.1.4 串行通信的錯誤校驗 186
8.2 串行口的結構 187
8.2.1 串行口控制寄存器SCON 187
8.2.2 特殊功能寄存器PCON 188
8.3 串行口的4種工作方式 189
8.3.1 方式0189
8.3.2 方式1193
8.3.3 方式2194
8.3.4 方式3195
8.4 多機通信 196
8.5 波特率的制定方法 197
8.5.1 波特率的定義 197
8.5.2 定時器T1產生波特率的計算 197
8.6 串行口應用設計案例 198
8.6.1 串行通信標准接口RS232、RS422與RS485簡介 199
8.6.2 方式1的應用設計 201
8.6.3 方式2和方式3的應用設計 208
8.6.4 多機通信的應用設計 210
8.6.5 單片機與PC串行通信的設計 216
8.6.6 PC與單片機或與多個單片機的串行通信 220
思考題及習題 221
第9章 單片機系統的並行擴展 223
9.1 系統並行擴展技術 223
9.1.1 系統並行擴展結構 223
9.1.2 地址空間分配 225
9.1.3 外部地址鎖存器 227
9.2 外部數據存儲器的並行擴展 228
9.2.1 常用的靜態RAM(SRAM)芯片 228
9.2.2 讀寫片外RAM的操作時序 229
9.2.3 並行擴展數據存儲器的設計 230
9.2.4 單片機外擴數據存儲器RAM6264的案例設計 232
9.3 片內Flash存儲器的編程 233
9.3.1 使用通用編程器的程序寫入 234
9.3.2 使用下載線的ISP編程 234
9.4 E2PROM的並行擴展 235
9.4.1 並行E2PROM芯片簡介 235
9.4.2 AT89S51單片機擴展E2PROMAT2864的設計 236
9.5 AT89S51擴展並行I/O芯片82C55的設計 237
9.5.1 I/O接口擴展概述 237
9.5.2 並行I/O芯片82C55簡介 238
9.5.382C55的3種工作方式 241
9.5.4 AT89S51單片機與82C55的接口設計 245
9.6 利用74LSTTL電路擴展並行I/O口 247
9.7 用AT89S51單片機的串行口擴展並行輸入/輸出口 248
9.7.1 用74LS165擴展並行輸入口 248
9.7.2 用74LS164擴展並行輸出口 249
思考題及習題 250
……
第10章 AT89S51單片機系統的串行擴展
第11章 AT89S51單片機與DAC、ADC的接口
第12章 單片機各種應用設計
第13章 功率接口設計
第14章 單片機應用系統抗干擾與可靠性設計
第15章 單片機應用系統的設計與調試
附錄A 基礎實驗題目
附錄B 課程設計題目
附錄C 頭文件”LCD1602.h”清單
附錄D 頭文件”DS1302.h”清單
參考文獻
網路書店
類別
折扣
價格
-
新書87折$271