深入淺出C51:單片機原理、接口與項目實踐
王春榮、夏爾冬、郭淩宙
相關主題
商品描述
《深入淺出C51 : 單片機原理、接口與項目實踐》是一本帶領讀者輕松學習 AT89C51 單片機開發的實用教程。本書從理論到實踐,從模塊到系統,以“硬件→指令→編程→接口→項目”為主線,用 13 章的篇幅,詳細解讀了 AT89C51 的內部結構、匯編指令系統與程序設計方法,並手把手指導搭建開發環境。在此基礎上,深入剖析了中斷、定時、串行通信等單片機的核心功能,以及 I/O 擴展和鍵盤、顯示等人機交互技術,最終通過綜合項目設計實現知識的融會貫通。 本書源於作者多年的教學積澱,語言通俗易懂,體系清晰,並配有精心制作的 PPT 課件,極大地提升了學習效率。
目錄大綱
目錄
第1章 單片機概述 1
1.1 嵌入式系統與單片機簡介 1
1.1.1 嵌入式系統 1
1.1.2 單片機在嵌入式系統中的地位 3
1.2 單片機的發展歷史及應用領域 5
1.2.1 發展歷史 5
1.2.2 應用領域 7
1.3 主流單片機系列簡介 9
1.4 AT89C51 單片機簡介 12
1.5 如何學習單片機 13
課後習題 14
第2章 AT89C51單片機硬件結構 15
2.1 AT89C51 的內部結構與引腳功能 15
2.1.1 內部結構總覽 15
2.1.2 引腳功能詳解 16
2.2 中央處理器 18
2.3 存儲器結構 19
2.3.1 程序存儲器 19
2.3.2 內部數據存儲器 20
2.3.3 特殊功能寄存器 21
2.3.4 三總線結構 25
2.4 I/O 端口結構與工作原理 25
2.4.1 P0 口的結構與工作原理 25
2.4.2 P1 口的結構與工作原理 26
2.4.3 P2 口的結構與工作原理 27
2.4.4 P3 口的結構與工作原理 27
2.4.5 端口負載能力與接口要求 28
2.5 單片機的最小系統電路設計 29
2.5.1 電源電路 29
2.5.2 時鐘電路與 CPU 時序 29
2.5.3 復位電路 31
2.5.4 EA 引腳處理 32
2.5.5 搭建最小系統與點亮 LED 33
課後習題 34
第3章 AT89C51匯編指令系統 35
3.1 匯編語言格式與尋址方式 35
3.1.1 匯編指令格式 35
3.1.2 匯編指令中的常用符號 36
3.1.3 尋址方式 37
3.2 數據傳送類指令 39
3.2.1 內部 RAM 和 SFR 之間的數據傳送 39
3.2.2 外部 RAM 的數據傳送 41
3.2.3 查表指令 41
3.2.4 數據交換指令 42
3.2.5 棧操作指令 43
3.3 算術運算類指令 43
3.3.1 不帶進位的加法指令 43
3.3.2 帶進位的加法指令 44
3.3.3 帶借位的減法指令 44
3.3.4 加1指令 45
3.3.5 減1指令 45
3.3.6 乘法指令 45
3.3.7 除法指令 46
3.3.8 十進制調整指令 46
3.4 邏輯運算與移位類指令 46
3.4.1 邏輯“與”運算指令 47
3.4.2 邏輯“或”運算指令 47
3.4.3 邏輯“異或”運算指令 47
3.4.4 循環移位指令 48
3.4.5 清零與取反指令 48
3.5 控制轉移類指令 48
3.5.1 無條件轉移指令 49
3.5.2 條件轉移指令 50
3.5.3 子程序調用與返回指令 51
3.5.4 空操作指令 51
3.6 位操作指令 51
3.6.1 位操作的基本概念 52
3.6.2 位傳送指令 52
3.6.3 位置位與清零指令 52
3.6.4 位邏輯運算指令 53
3.6.5 位控制轉移指令 53
課後習題 54
第4章 匯編語言程序設計 57
4.1 偽指令與匯編程序設計的基本步驟 57
4.1.1 偽指令 57
4.1.2 匯編程序設計的基本步驟 60
4.2 程序設計方法 61
4.2.1 順序結構 61
4.2.2 分支結構 61
4.2.3 循環結構 65
4.3 子程序設計與堆棧操作 70
4.3.1 子程序的結構與調用 70
4.3.2 參數傳遞與堆棧操作 73
4.4 查表程序設計 74
4.5 延時程序設計 75
4.6 代碼風格與註釋規範 77
課後習題 78
第5章 單片機開發環境搭建 82
5.1 軟件開發流程 82
5.2 匯編語言程序設計基礎 84
5.3 Keil μVision 集成開發環境的使用 85
5.3.1 軟件的安裝與註冊 85
5.3.2 點亮 LED 86
5.4 程序仿真與調試方法 89
5.5 程序下載到單片機的方法 90
5.5.1 編程器與下載線 90
5.5.2 使用 STC-ISP 軟件下載程序 91
課後習題 91
第6章 定時器/計數器 92
6.1 定時器/計數器的工作原理 92
6.1.1 定時器/計數器模式 93
6.1.2 基本工作流程 94
6.2 工作方式寄存器與控制寄存器 94
6.2.1 工作方式寄存器 TMOD 94
6.2.2 控制寄存器 TCON 95
6.3 工作方式詳解 96
6.3.1 方式 0 96
6.3.2 方式 1 96
6.3.3 方式 2 97
6.3.4 方式 3 98
6.4 定時器的應用 99
6.5 計數器的應用 100
課後習題 102
第7章 串行通信 104
7.1 串行通信基本概念 104
7.1.1 串行通信與並行通信 104
7.1.2 同步通信與異步通信 107
7.1.3 傳輸方向 110
7.2 RS-232 通信標準與電平轉換 112
7.2.1 RS-232 簡介 112
7.2.2 電平轉換與 MAX232 芯片 114
7.3 串行口結構與控制寄存器 116
7.3.1 串行口內部結構 116
7.3.2 串行口控制寄存器 SCON 118
7.3.3 電源控制寄存器 PCON 119
7.4 串行口工作模式 120
7.4.1 模式 0 120
7.4.2 模式 1 121
7.4.3 模式 2 122
7.4.4 模式 3 122
7.5 串行口的應用 123
7.5.1 串行口工作方式 0 123
7.5.2 串行口工作方式 1 126
7.5.3 單片機雙機通信技術 128
7.5.4 雙機通信軟件協議設計與實現 129
課後習題 132
第8章 中斷系統 133
8.1 中斷的概念與優點 133
8.1.1 什麼是中斷 133
8.1.2 中斷的優點 134
8.2 中斷源與中斷結構 135
8.2.1 中斷源 135
8.2.2 中斷結構 135
8.3 中斷允許寄存器與中斷優先級寄存器 136
8.3.1 中斷允許寄存器 IE 136
8.3.2 中斷優先級寄存器 IP 137
8.4 外部中斷的應用 138
8.5 中斷服務程序的編寫要點 140
課後習題 141
第9章 並行I/O口擴展 143
9.1 I/O 口擴展的必要性與方法 143
9.1.1 擴展的必要性 143
9.1.2 擴展的基本方法 144
9.2 使用簡單芯片擴展(74HC573和74HC245) 145
9.2.1 使用 74HC573 擴展輸出口 145
9.2.2 使用 74HC245 擴展輸入口 148
9.3 使用可編程接口芯片 8255A 擴展 155
9.3.1 可編程並行接口芯片 8255A 155
9.3.2 芯片 8255A 的應用 158
課後習題 163
第10章 人機交互接口技術 164
10.1 LED 數碼管顯示原理 164
10.1.1 數碼管的基本結構 164
10.1.2 靜態顯示原理與應用 166
10.1.3 動態掃描原理與應用 168
10.2 獨立按鍵與矩陣鍵盤的檢測原理與編程 170
10.2.1 獨立按鍵 171
10.2.2 矩陣鍵盤 172
10.3 字符型 LCD1602 液晶顯示器的應用 177
10.3.1 LCD1602 概述 177
10.3.2 LCD1602 的指令集 177
10.3.3 LCD1602 的初始化與編程 178
10.3.4 自定義字符的應用 181
課後習題 181
第11章 模擬量接口技術 183
11.1 模擬量與數字量的概念 183
11.1.1 模擬信號與數字信號 183
11.1.2 模擬系統與數字系統的接口 184
11.1.3 A/D 轉換的核心概念 186
11.2 D/A 轉換原理與芯片 DAC0832 的應用 186
11.2.1 D/A 轉換的基本原理 186
11.2.2 DAC0832 芯片詳解與應用 188
11.3 A/D 轉換原理與芯片 ADC0804/0809 的應用 194
11.3.1 A/D 轉換的基本原理 194
11.3.2 ADC0804 芯片詳解與應用 196
11.3.3 ADC0809 芯片詳解與應用 198
11.3.4 A/D 轉換的應用 202
課後習題 203
第12章 綜合項目設計 205
12.1 項目一:數字溫度計 205
12.1.1 設計目的與意義 205
12.1.2 項目設計要求 206
12.1.3 項目設計內容 206
12.2 項目二:紅外遙控系統 213
12.2.1 設計目的與意義 213
12.2.2 項目設計要求 213
12.2.3 項目設計內容 213
12.3 項目三:步進電機控制 219
12.3.1 設計目的與意義 219
12.3.2 項目設計要求 220
12.3.3 項目設計內容 220
12.4 項目四:智能小車控制 225
12.4.1 設計目的與意義 225
12.4.2 項目設計要求 225
12.4.3 項目設計內容 225
課後習題 232
第13章 C語言與匯編語言混合編程簡介 234
13.1 匯編語言與 C 語言 234
13.2 C51 編程基礎與實踐應用 235
13.3 匯編語言與 C 語言的混合編程與調用 239
課後習題 242
參考文獻 243
附錄A AT89C51指令表 244
A.1 數據傳送類指令 244
A.2 算術運算類指令 245
A.3 邏輯運算類指令 246
A.4 控制轉移類指令 246
A.5 位操作類指令 247
附錄B ASCII碼表 249



