內容簡介
本書通過大量實例和採用程式逐行解說的方式介紹51單片機和C語言編程。全書主要內容有單片機快速入門、數制與C51語言基礎、51單片機編程軟體的使用、單片機驅動發光二極體的電路及編程、單片機驅動LED數碼管的電路及編程、中斷功能的使用及編程、定時器/計數器的使用及編程、按鍵電路及編程、雙色LED點陣的使用及編程、液晶顯示屏的使用及編程、步進電機的使用及編程、單片機的串列通信及編程、模擬I2C匯流排通信及編程、A/D(模/數)與D/A(數/模)轉換電路及編程、51單片機的硬體系統、單片機開發常用電子元器件。
本書內容由淺入深、語言通俗易懂,並且內容結構安排符合學習認知規律,適合作為初學者學習51單片機C語言編程的自學圖書,也適合作為職業院校電類專業的單片機教材使用。
圖書目錄
第1章單片機快速入門 1
1.1 單片機簡介 / 1
1.1.1 什麼是單片機 / 1
1.1.2 單片機套用系統的組成及實例說明 / 2
1.1.3 單片機的分類 / 3
1.1.4 單片機的套用領域 / 4
1.2 單片機套用系統開發實例 / 4
1.2.1 選擇單片機的型號 / 4
1.2.2 設計單片機電路原理圖 / 5
1.2.3 製作單片機電路 / 6
1.2.4 用編程軟體編寫單片機控制程式 / 7
1.2.5 計算機、下載(燒錄)器和單片機的連線 / 10
1.2.6 用燒錄軟體將程式寫入單片機 / 13
1.2.7 單片機電路的通電與測試 / 16
第2章數制與C51語言基礎 18
2.1 數制與數制的轉換 / 18
2.1.1 十進制數 / 18
2.1.2 二進制數 / 18
2.1.3 十六進制數 / 20
2.1.4 二進制數與十進制數的轉換 / 20
2.1.5 二進制數與十六進制數的轉換 / 20
2.1.6 單片機的數的表示及運算 / 21
2.2 C51語言基礎 / 23
2.2.1 常量 / 23
2.2.2 變數 / 24
2.2.3 運算符 / 24
2.2.4 關鍵字 / 27
2.2.5 數組 / 28
2.2.6 循環語句(while、do while、for語句) / 29
2.2.7 選擇語句(if、switch…case語句) / 30
第3章51單片機編程軟體的使用 33
3.1 Keil C51軟體的安裝 / 33
3.1.1 Keil C51軟體的版本及獲取 / 33
3.1.2 Keil C51軟體的安裝 / 33
3.2 程式的編寫與編譯 / 35
3.2.1 啟動Keil C51軟體並新建工程檔案 / 35
3.2.2 新建源程式檔案並與工程關聯起來 / 38
3.2.3 編寫程式 / 40
3.2.4 編譯程式 / 42
3.3 程式的仿真與調試 / 45
3.3.1 編寫或打開程式 / 45
3.3.2 仿真設定 / 46
3.3.3 編譯程式 / 47
3.3.4 仿真調試程式 / 48
第4章單片機驅動發光二極體的電路及編程 52
4.1 LED(發光二極體) / 52
4.1.1 外形與符號 / 52
4.1.2 性質 / 52
4.1.3 檢測 / 53
4.1.4 限流電阻的阻值計算 / 53
4.2 單片機點亮單個LED的電路及程式詳解 / 53
4.2.1 單片機點亮單個LED的電路 / 53
4.2.2 採用位操作方式編程點亮單個LED的程式及詳解 / 54
4.2.3 採用位元組操作方式編程點亮單個LED的程式及詳解 / 55
4.2.4 單個LED以固定頻率閃爍發光的程式及詳解 / 56
4.2.5 單個LED以不同頻率閃爍發光的程式及詳解 / 58
4.3 單片機點亮多個LED的電路及程式詳解 / 59
4.3.1 單片機點亮多個LED的電路 / 59
4.3.2 採用位操作方式編程點亮多個LED的程式及詳解 / 59
4.3.3 採用位元組操作方式編程點亮多個LED的程式及詳解 / 60
4.3.4 多個LED以不同頻率閃爍發光的程式及詳解 / 61
4.3.5 多個LED左移和右移的程式及詳解 / 61
4.3.6 LED循環左移和右移的程式及詳解 / 63
4.3.7 LED移動並閃爍發光的程式及詳解 / 64
4.3.8 用查表方式控制LED多樣形式發光的程式及詳解 / 65
4.3.9 LED花樣發光的程式及詳解 / 66
4.4 採用PWM(脈寬調製)方式調節LED亮度的原理及程式詳解 / 67
4.4.1 採用PWM方式調節LED亮度的原理 / 67
4.4.2 採用PWM方式調節LED亮度的程式及詳解 / 68
第5章單片機驅動LED數碼管的電路及編程 70
5.1 單片機驅動一位LED數碼管的電路及程式詳解 / 70
5.1.1 一位LED數碼管的外形、結構與檢測 / 70
5.1.2 單片機連線一位LED數碼管的電路 / 72
5.1.3 單個數碼管靜態顯示一個字元的程式及詳解 / 73
5.1.4 單個數碼管動態顯示多個字元的程式及詳解 / 73
5.1.5 單個數碼管環形轉圈顯示的程式及詳解 / 74
5.1.6 單個數碼管顯示邏輯電平的程式及詳解 / 74
5.2 單片機驅動8位LED數碼管的電路及程式詳解 / 75
5.2.1 多位LED數碼管外形、結構與檢測 / 75
5.2.2 單片機連線8位共陰型數碼管的電路 / 76
5.2.3 8位數碼管顯示1個字元的程式及詳解 / 78
5.2.4 8位數碼管逐位顯示8個字元的程式及詳解 / 79
5.2.5 8位數碼管同時顯示8個字元的程式及詳解 / 80
5.2.6 8位數碼管動態顯示8個以上字元的程式及詳解 / 80
第6章中斷功能的使用及編程 82
6.1 中斷的基本概念與處理過程 / 82
6.1.1 什麼是中斷 / 82
6.1.2 中斷的基本概念 / 82
6.1.3 中斷的處理過程 / 83
6.2 8051單片機的中斷系統結構與控制暫存器 / 83
6.2.1 中斷系統的結構 / 83
6.2.2 中斷源暫存器 / 84
6.2.3 中斷允許暫存器IE / 85
6.2.4 中斷優先權控制暫存器IP / 86
6.3 中斷編程舉例 / 87
6.3.1 中斷編程的電路例圖 / 87
6.3.2 用外部中斷0以低電平方式觸發中斷的程式及詳解 / 88
6.3.3 用外部中斷1以下降沿方式觸發中斷的程式及詳解 / 89
第7章定時器/計數器的使用及編程 91
7.1 定時器/計數器的定時與計數功能 / 91
7.1.1 定時功能 / 91
7.1.2 計數功能 / 92
7.2 定時器/計數器的結構原理 / 92
7.2.1 定時器/計數器的結構 / 92
7.2.2 定時器/計數器的工作原理 / 92
7.3 定時器/計數器的控制暫存器與四種工作方式 / 94
7.3.1 定時器/計數器控制暫存器TCON / 94
7.3.2 工作方式控制暫存器TMOD / 94
7.3.3 定時器/計數器的工作方式 / 95
7.4 定時器/計數器的套用及編程 / 99
7.4.1 產生1kHz方波信號的程式及詳解 / 99
7.4.2 產生50kHz方波信號的程式及詳解 / 100
7.4.3 產生周期為1s方波信號的程式與長延時的方法 / 101
第8章按鍵電路及編程 103
8.1 獨立按鍵輸入電路與程式詳解 / 103
8.1.1 開關輸入產生的抖動及軟、硬體解決方法 / 103
8.1.2 單片機連線8個獨立按鍵和8個LED的電路 / 104
8.1.3 一個按鍵點動控制一個LED亮滅的程式及詳解 / 104
8.1.4 一個按鍵鎖定控制一個LED亮滅的程式及詳解 / 104
8.1.5 四路搶答器的程式及詳解 / 106
8.1.6 獨立按鍵控制LED和LED數碼管的單片機電路 / 107
8.1.7 兩個按鍵控制一位數字增、減並用8位數碼管顯示的程式及詳解 / 107
8.1.8 兩個按鍵控制多位數字增、減並用8位數碼管顯示的程式及詳解 / 110
8.1.9 按鍵長按與短按產生不同控制效果的程式及詳解 / 111
8.1.10 8個獨立按鍵控制LED亮滅和LED數碼管顯示的程式及詳解 / 114
8.2 矩陣鍵盤輸入電路與程式詳解 / 116
8.2.1 單片機連線16鍵矩陣鍵盤和8位數碼管的電路 / 116
8.2.2 矩陣鍵盤行列掃描方式輸入及顯示的程式及詳解 / 116
8.2.3 中斷觸發鍵盤行列掃描的矩陣鍵盤輸入及顯示電路與程式詳解 / 120
8.2.4 矩陣鍵盤密碼鎖的程式及詳解 / 125
第9章雙色LED點陣的使用及編程 129
9.1 雙色LED點陣的結構原理與檢測 / 129
9.1.1 共陽型和共陰型點陣的電路結構 / 129
9.1.2 點陣的混色規律 / 129
9.1.3 點陣的靜態字元或圖形顯示原理 / 130
9.1.4 點陣的動態字元或圖形顯示原理 / 133
9.1.5 雙色點陣的識別與檢測 / 134
9.2 單片機驅動雙色點陣的電路及編程 / 135
9.2.1 74HC595晶片 / 135
9.2.2 單片機配合74HC595晶片驅動雙色LED點陣的電路 / 136
9.2.3 雙色點陣顯示一種顏色字元的程式及詳解 / 136
9.2.4 雙色點陣正反交替顯示兩種顏色字元的程式及詳解 / 139
9.2.5 字元移入和移出點陣的程式及詳解 / 141
第10章液晶顯示屏的使用及編程 145
10.1 1602字元型液晶顯示屏的硬、軟體 / 145
10.1.1 外形與引腳功能 / 145
10.1.2 內部字型檔及代碼 / 146
10.1.3 LCD屏各顯示位與DDRAM的地址關係 / 146
10.1.4 1602顯示屏的指令集 / 147
10.2 單片機驅動1602液晶顯示屏的電路及編程 / 151
10.2.1 單片機驅動1602液晶顯示屏的電路 / 151
10.2.2 1602液晶顯示屏靜態顯示字元的程式及詳解 / 151
10.2.3 1602液晶顯示屏逐個顯示字元的程式及詳解 / 154
10.2.4 1602液晶顯示屏字元滾動顯示的程式及詳解 / 154
10.2.5 矩陣鍵盤輸入與1602液晶顯示屏顯示的電路及程式詳解 / 156
第11章步進電機的使用及編程 160
11.1 步進電機與驅動晶片 / 160
11.1.1 步進電機的結構與工作原理 / 160
11.1.2 驅動晶片ULN2003 / 163
11.1.3 五線四相步進電機 / 165
11.2 單片機驅動步進電機的電路及編程 / 166
11.2.1 由按鍵、單片機、驅動晶片和數碼管構成的步進電機驅動電路 / 166
11.2.2 用單4拍方式驅動步進電機正轉的程式及詳解 / 167
11.2.3 用雙4拍方式驅動步進電機自動正反轉的程式及詳解 / 167
11.2.4 外部中斷控制步進電機正反轉的程式及詳解 / 169
11.2.5 用按鍵控制步進電機啟動、加速、減速、停止的程式及詳解 / 171
第12章單片機的串列通信及編程 175
12.1 並行通信和串列通信 / 175
12.1.1 串列通信的兩種方式 / 175
12.1.2 串列通信的數據傳送方向 / 177
12.2 串列通信口的結構與原理 / 178
12.2.1 串列通信口的結構 / 178
12.2.2 串列通信口的工作原理 / 178
12.3 串列通信口的控制暫存器 / 179
12.3.1 串列控制暫存器(SCON) / 179
12.3.2 電源控制暫存器(PCON) / 180
12.4 四種工作方式與波特率的設定 / 180
12.4.1 方式0 / 180
12.4.2 方式1 / 182
12.4.3 方式2 / 182
12.4.4 方式3 / 183
12.4.5 波特率的設定 / 183
12.5 串列通信的套用編程 / 184
12.5.1 利用串列通信的方式0實現產品計數顯示的電路及編程 / 184
12.5.2 利用串列通信的方式1實現雙機通信的電路及編程 / 185
第13章模擬I2C匯流排通信及編程 190
13.1 I2C匯流排 / 190
13.1.1 概述 / 190
13.1.2 I2C匯流排通信協定 / 190
13.1.3 I2C匯流排的數據傳送格式 / 191
13.2 I2C匯流排存儲器24C02(E2PROM) / 192
13.2.1 外形與引腳功能 / 192
13.2.2 器件地址的設定 / 192
13.2.3 讀/寫操作 / 193
13.3 單片機與24C02的I2C匯流排通信電路及編程 / 196
13.3.1 模擬I2C匯流排通信的程式及詳解 / 196
13.3.2 利用I2C匯流排從24C02讀寫一個數據並用LED顯示的電路及程式詳解 / 199
13.3.3 利用I2C匯流排從24C02讀寫多個數據的電路及程式詳解 / 201
13.3.4 利用24C02存儲按鍵的操作信息的電路及程式詳解 / 202
第14章A/D(模/數)與D/A(數/模)轉換電路及編程 206
14.1 A/D(模/數)與D/A(數/模)轉換原理 / 206
14.1.1 A/D轉換 / 206
14.1.2 D/A轉換 / 208
14.2 A/D與D/A轉換晶片PCF8591 / 208
14.2.1 外形與引腳功能 / 208
14.2.2 器件地址和功能設定 / 209
14.3 由PCF8591晶片構成的A/D和D/A轉換電路及編程 / 210
14.3.1 單片機、PCF8591晶片與8位數碼管構成的A/D和D/A轉換及顯示電路 / 210
14.3.2 1路A/D轉換並顯示轉換值的程式及詳解 / 210
14.3.3 4路電壓測量顯示的程式及詳解 / 213
14.3.4 D/A轉換輸出顯示的程式及詳解 / 216
第15章51單片機的硬體系統 219
15.1 8051單片機的引腳功能與內部結構 / 219
15.1.1 引腳功能 / 219
15.1.2 單片機與片外存儲器的連線與控制 / 221
15.1.3 內部結構 / 223
15.2 8051單片機I/O連線埠的結構與工作原理 / 225
15.2.1 P0連線埠 / 226
15.2.2 P1連線埠 / 227
15.2.3 P2連線埠 / 228
15.2.4 P3連線埠 / 228
15.3 8051單片機的存儲器 / 229
15.3.1 存儲器的存儲單位與編址 / 229
15.3.2 片內外程式存儲器的使用與編址 / 230
15.3.3 片內外數據存儲器的使用與編址 / 231
15.3.4 數據存儲器的分區 / 231
15.3.5 特殊功能暫存器(SFR) / 233
15.4 STC89C5X系列單片機 / 238
15.4.1 STC89C5X單片機的版本、封裝形式和引腳 / 238
15.4.2 STC89C5X系列單片機的型號命名規則 / 242
15.4.3 STC89C5X系列單片機的常用型號的主要參數 / 242
15.4.4 STC89C5X系列單片機的I/O連線埠 / 242
15.4.5 STC89C5X系列單片機的程式存儲器與數據存儲器 / 246
15.4.6 STC89C5X系列單片機的特殊功能暫存器 / 247
第16章單片機開發常用電子元器件 250
16.1 基本電子元器件 / 250
16.1.1 電阻器 / 250
16.1.2 電位器 / 252
16.1.3 排阻 / 253
16.1.4 電容器 / 254
16.1.5 電感器 / 255
16.1.6 變壓器 / 256
16.2 半導體元器件 / 259
16.2.1 二極體 / 259
16.2.2 整流二極體與整流橋堆 / 260
16.2.3 穩壓二極體 / 261
16.2.4 肖特基二極體 / 262
16.2.5 快恢復二極體 / 263
16.2.6 三極體 / 264
16.2.7 單向晶閘管 / 267
16.2.8 絕緣柵型場效應管(MOS管) / 268
16.3 其他類型元器件 / 270
16.3.1 雙色發光二極體 / 270
16.3.2 紅外線接收組件 / 271
16.3.3 光電耦合器 / 271
16.3.4 光遮斷器 / 272
16.3.5 耳機 / 273
16.3.6 蜂鳴器 / 274
16.3.7 石英晶體諧振器(晶振) / 276
16.3.8 電磁繼電器 / 277
16.3.9 乾簧管 / 278
16.3.10 自恢復熔斷器 / 278
16.3.11 瞬態電壓抑制二極體 / 279
16.4 貼片元器件 / 280
16.4.1 貼片封裝規格 / 280
16.4.2 手工焊接方法 / 280
16.4.3 貼片電阻器 / 282
16.4.4 貼片電位器 / 282
16.4.5 貼片熔斷器 / 283
16.4.6 貼片電容器 / 283
16.4.7 貼片電感器 / 284
16.4.8 貼片二極體 / 284
16.4.9 貼片三極體 / 285
16.5 積體電路 / 286
16.5.1 積體電路的引腳識別 / 286
16.5.2 三端固定輸出穩壓器(78XX/79XX) / 286
16.5.3 三端精密穩壓器(TL431) / 288
16.5.4 雙運算放大器(LM358) / 289
16.5.5 雙電壓比較器(LM393) / 291
16.5.6 單全橋/單H橋/電機驅動晶片(L9110) / 292
16.5.7 常用的74系列晶片型號 / 293
16.5.8 8路三態輸出D型鎖存器晶片(74HC573) / 294
16.5.9 三-八線解碼器/多路分配器晶片(74HC138) / 296
16.5.10 8路選擇器/分配器晶片 (74HC4051) / 297
16.5.11 串/並轉換晶片(74HC164) / 298
16.5.12 並/串轉換晶片(74HC165) / 299
視頻講解清單 301