《簡簡單單學通51單片機開發》是2014年出版的圖書,作者是王晉凱等。
基本介紹
- 書名:簡簡單單學通51單片機開發
- 作者:王晉凱
- ISBN:9787302364795
- 定價:69.8元
- 出版社:清華大學出版社
- 出版時間:2014-8-29
- 裝幀:平裝
內容簡介,目錄,
內容簡介
學習單片機開發離不開實踐。將理論和實例結合起來是最好的方式。本書結合實踐,系統地介紹了51單片機開發的方方面面。書中的每章內容都圍繞實例展開,這些例子大多採用彙編和C兩種語言開發,並利用知名EDA仿真軟體Proteus清晰地演示了每個實例的最終運行效果。這無疑可以大大提高讀者的學習興趣,並加深讀者對單片機的理解。當然,每個實例的製作都需要有一定的理論去支撐,所以在實例設計之前會先講解一些理論基礎,並在實例完成之後對這些理論和開發經驗進行總結。這種教學方式可以讓讀者將51單片機的理論知識和動手實踐很好地結合起來,從而達到更好的學習效果。
本書共包含12章。其主要內容有:簡單了解51單片機;從I/O連線埠開始學51單片機;51單片機對中斷的控制;51單片機對時間的控制;數碼管顯示技術;通信利器——串口;數字電子時鐘的設計;更先進的電子時鐘;51單片機外設擴展;點陣液晶LCD和矩陣鍵盤;計算器程式分析與設計;ZLG/GUI在51單片機中的移植及運用。本書每章最後都提供了多個習題和實例擴展題,以幫助讀者鞏固和提高。
本書從51單片機基礎知識開始講解,逐步深入到較複雜的實例,特別適合51單片機初學者閱讀。書中還介紹了很多同類圖書中較少涉及的知識點和作者的實際項目經驗,也適合有基礎的讀者和單片機愛好者進一步研讀。本書注重實踐教學,還非常適合大中專院校的相關專業作為教材使用。
目錄
第1章簡單了解51單片機(教學視頻:77分鐘) 1
1.151單片機硬體簡述 1
1.1.151單片機的邏輯結構及信號引腳 2
1.1.251單片機的存儲器 4
1.1.351單片機的時鐘電路和時序 10
1.1.451單片機的復位電路 11
1.1.5增強型51單片機AT89C52的特點介紹 12
1.251單片機的程式設計語言和軟體編譯環境 13
1.2.1來看一段彙編語言吧 13
1.2.2看看更容易理解的C語言吧 13
1.2.3兩種程式程式語言的關係及相互的優缺點 14
1.2.451單片機的編譯開發環境介紹 15
1.351單片機開發環境Keil的介紹 15
1.3.1Keil開發環境的介紹 15
1.3.2項目建立的方法 16
1.451單片機學習的利器——仿真軟體Proteus 19
1.4.1Proteus簡介 20
1.4.2用Proteus建立一個51單片機最小系統的電路圖 25
1.5通過一個小實例了解51單片機開發 27
1.5.1在Keil中編譯一段程式 27
1.5.2在Proteus中演示程式 30
1.6習題及操作練習 32
第2章從I/O連線埠開始學51單片機(教學視頻:53分鐘) 35
2.1從一個漂亮的流水燈看I/O連線埠 35
2.1.1演示流水燈實例 35
2.1.2流水燈電路圖的繪製 37
2.1.3P1連線埠介紹 43
2.1.4流水燈程式設計流程圖 45
2.2用彙編語言實現流水燈 47
2.2.1用彙編語言小試牛刀 47
2.2.2測試流水燈彙編程式 48
2.2.351單片機彙編語言指令介紹——數據傳送指令 52
2.3用C語言實現流水燈 53
2.3.1根據流程圖來編寫程式 53
2.3.2當代最優秀的程式設計語言——C語言介紹 55
2.4I/O連線埠的輸入控制 62
2.4.1用開關控制流水燈 63
2.4.2程式設計流程 64
2.4.3彙編語言實現開關控制流水 64
2.4.4彙編語言知識擴充——專用暫存器介紹 66
2.4.5用C語言實現開關控制流水燈 69
2.4.6C語言知識擴展 71
2.5習題和擴展練習 73
第3章51單片機對中斷的控制(教學視頻:89分鐘) 76
3.1流水燈彙編程式的改進 76
3.1.1流水燈程式改進的思路 76
3.1.2改進後的彙編語言流水燈 78
3.1.3軟體仿真介紹 82
3.2流水燈C語言的改進 89
3.2.1新流水燈C語言設計思路 90
3.2.2軟體仿真C語言項目 93
3.3外中斷控制概述 98
3.3.151單片機的中斷源 98
3.3.2外部中斷的執行方式 99
3.3.3外中斷控制電路 100
3.4彙編語言控制外中斷 101
3.4.1彙編知識介紹 101
3.4.2編寫中斷控制彙編語言 104
3.4.3在Proteus中仿真效果 106
3.5用C語言完成中斷控制 107
3.5.1C語言相關知識介紹 107
3.5.2編寫C語言外中斷程式 110
3.5.3軟體仿真C語言外中斷程式 112
3.6習題和實例演練 117
第4章51單片機對時間的控制(教學視頻:177分鐘) 119
4.151單片機的軟體定時 119
4.1.1彙編語言實現精確定時 119
4.1.2用C語言實現延時的方法 125
4.251單片機定時器概述 131
4.2.151單片機定時器的功能 131
4.2.2定時器/計數器相關暫存器 131
4.3定時工作方式0 134
4.3.1定時工作方式0概述 134
4.3.2用定時器方式0做方波信號發生器 135
4.3.3在工作方式0下,利用查詢方法實現方波信號發生器 137
4.3.4彙編語言實現定時器在工作方式0的中斷控制方法 142
4.3.5C語言實現定時器在工作方式0的中斷控制 147
4.3.6在Proteus中仿真中斷實例 148
4.4定時工作方式1 149
4.4.1定時器工作方式1概述 149
4.4.2實例設計方案 150
4.4.3彙編語言實現可程式定時 152
4.4.4C語言實現可程式定時 155
4.4.5Proteus仿真可程式定時 156
4.4.6軟體仿真可程式定時 157
4.5定時工作方式2 160
4.5.1定時工作方式2概述 160
4.5.2實例規劃 161
4.5.3用彙編語言實現目標 163
4.5.4用C語言實現編程 164
4.5.5在Proteus中進行仿真 166
4.6定時工作式3 168
4.6.1定時工作方式3概述 168
4.6.2實例規劃 169
4.6.3用彙編語言實現編程 171
4.6.4用C語言實現編程 173
4.6.5在Proteus中進行仿真 174
4.7習題和實例擴展 175
第5章數碼管顯示技術(教學視頻:92分鐘) 177
5.1數碼管靜態顯示 177
5.1.1數碼管介紹 177
5.1.2彙編語言對數據存儲器(RAM)的空間的攫取 180
5.1.3利用C語言實現對數據存儲器(RAM)的存取 189
5.1.4彙編語言對程式存儲器(ROM)的開拓 193
5.1.5C語言對程式存儲器的讀取 198
5.2數碼管動態顯示 199
5.2.1動態顯示思路 200
5.2.2用Proteus繪製數碼管動態顯示電路圖 200
5.2.3彙編語言實現動態顯示 203
5.2.4C語言實現動態顯示 206
5.3彙編語言實現數碼顯示計數器 209
5.3.1總體規劃 210
5.3.2彙編基礎知識擴展——算數運算指令 212
5.3.3分模組編寫程式 213
5.3.4在Proteus中仿真實例 219
5.3.5在Keil中仿真 220
5.4習題和實例擴展 223
第6章通信利器——串口(教學視頻:127分鐘) 225
6.1一個實例來說明串口通訊 225
6.1.1新式流水燈 225
6.1.2串列通信基本概述 227
6.1.3RS-232匯流排標準 228
6.1.451單片機串列口以及控制暫存器 229
6.1.551單片機串列通信工作方式 230
6.1.6串列工作方式0實例詳述 232
6.2雙機通信 237
6.2.1準備電路圖 237
6.2.2程式設計方案 239
6.2.3彙編語言實現雙機通信 241
6.2.4C語言實現雙機通信 244
6.2.5仿真觀察雙機通信 248
6.3單片機和電腦通信 248
6.3.1硬體電路的實現 248
6.3.2程式設計方案 251
6.3.3彙編語言編寫實例程式 252
6.3.4C語言實現編程 255
6.3.5實例在Proteus中的仿真 256
6.4習題和實例擴展 260
第7章數字電子時鐘的設計(教學視頻:157分鐘) 262
7.1電子時鐘總體規劃 262
7.1.1電子時鐘整機電路圖 262
7.1.2數碼管顯示 263
7.1.3串口修改數值 265
7.1.4時鐘工作單元 266
7.1.5鍵盤控制 266
7.2鍵盤分析 268
7.2.1鍵值獲取 269
7.2.2根據鍵值執行相應程式 273
7.2.3各按鍵子程式 274
7.3電子時鐘其他模組設計 277
7.3.1程式預定義變數 277
7.3.2主程式程式設計 279
7.3.3顯示子程式 281
7.3.4定時器控制單元 283
7.3.5串列修改單元 285
7.4C語言知識擴展 286
7.4.1函式定義的形式 286
7.4.2指針變數 288
7.4.3加1子程式的分析 292
7.5習題和實例擴展 293
第8章更先進的電子時鐘(教學視頻:191分鐘) 295
8.1字元和ASCII碼 295
8.1.1ASCII碼的概念 295
8.1.2彙編語言中運用字元 296
8.1.3C語言中表達字元 296
8.1.4串列口輸出字元 298
8.2字元型液晶1602 302
8.2.1字元液晶1602簡介 302
8.2.2在編程中學習液晶驅動 305
8.2.3液晶顯示其他接口函式 309
8.3時鐘模組研究 312
8.3.1DS1302介紹 312
8.3.2DS1302控制方式 313
8.3.3時鐘程式編寫 315
8.4檔案的分割管理 325
8.4.1C項目的分割方法 325
8.4.2彙編語言分割方式 328
8.5習題和實例擴展 335
第9章51單片機外設擴展(教學視頻:72分鐘) 337
9.1外部數據存儲器的擴展 337
9.1.1數據存儲晶片介紹 337
9.1.2外擴RAM分析 340
9.1.3外部設備數據傳送指令 342
9.1.4用實例驗證對外部RAM的存取過程 345
9.2LCD的擴展 347
9.2.1實現匯流排控制LCD的電路分析 347
9.2.2彙編語言實現編程方式 349
9.2.3C語言實現編程方法 351
9.3更多外設的擴展方法 352
9.3.1實現多個外設擴展的電路實現方法 352
9.3.2綜合運用外設實例 356
9.3.3彙編語言實現實例要求 358
9.3.4C語言實現實例目標 361
9.4習題和實例擴展 364
第10章點陣液晶LCD和矩陣鍵盤(教學視頻:84分鐘) 366
10.1點陣液晶12864 366
10.1.112864液晶概述 366
10.1.212864直接控制方式底層驅動程式 370
10.1.312864點陣液晶接口函式 373
10.1.4實例顯示成果 386
10.2矩陣鍵盤 392
10.2.1矩陣鍵盤的電路圖及實現原理 392
10.2.2矩陣鍵盤判鍵程式 394
10.2.3矩陣鍵盤在12864液晶上的演示 397
10.3習題和實例擴展 401
第11章計算器程式分析與設計(教學視頻:82分鐘) 403
11.1彙編語言知識補充 403
11.1.1彙編語言執行跳轉指令 403
11.1.2彙編語言偽指令擴充 404
11.2C語言庫函式介紹 407
11.2.1C51庫函式簡介 407
11.2.2典型庫函式介紹 409
11.3Proteus自帶計算器分析(彙編語言編寫) 413
11.3.1實例電路分析 414
11.3.2外設模組程式分析 416
11.3.3程式分配布局 419
11.3.4編譯信息觀察及程式總結 425
11.4C語言計算器分析和改進 425
11.4.1Proteus提供的計算器分析 426
11.4.2改造C51計算器 431
11.4.3項目設定和仿真效果 437
11.5習題和實例擴展 438
第12章ZLG/GUI在51單片機中的移植及運用(教學視頻:44分鐘) 440
12.1C語言基礎知識補充 440
12.1.1C51結構體 440
12.1.2C51枚舉類型 445
12.1.3C51共用體 446
12.1.4類型定義符typedef 448
12.2ZLG/GUI介紹 449
12.2.1ZLG/GUI的檔案瀏覽 449
12.2.2CONFIG.H檔案 454
12.2.3ZLG/GUI的配置 455
12.3移植ZLG/GUI 457
12.3.1LCD底層驅動 457
12.3.2ZLG/GUI的移植檔案 459
12.3.3底層程式編寫 462
12.3.4Keil配置 465
12.4ZLG/GUI的套用舉例 466
12.4.1實現基本畫圖函式 466
12.4.2字元繪製 468
12.4.3漢字顯示和圖形顯示 469
12.4.4視窗顯示 475
12.4.5選單功能和按鈕 477
12.5習題和實例擴展 480
附錄A51單片機彙編指令集 482
附錄BASCII碼錶 486
附錄CC語言運算符及其優先權 488
1.151單片機硬體簡述 1
1.1.151單片機的邏輯結構及信號引腳 2
1.1.251單片機的存儲器 4
1.1.351單片機的時鐘電路和時序 10
1.1.451單片機的復位電路 11
1.1.5增強型51單片機AT89C52的特點介紹 12
1.251單片機的程式設計語言和軟體編譯環境 13
1.2.1來看一段彙編語言吧 13
1.2.2看看更容易理解的C語言吧 13
1.2.3兩種程式程式語言的關係及相互的優缺點 14
1.2.451單片機的編譯開發環境介紹 15
1.351單片機開發環境Keil的介紹 15
1.3.1Keil開發環境的介紹 15
1.3.2項目建立的方法 16
1.451單片機學習的利器——仿真軟體Proteus 19
1.4.1Proteus簡介 20
1.4.2用Proteus建立一個51單片機最小系統的電路圖 25
1.5通過一個小實例了解51單片機開發 27
1.5.1在Keil中編譯一段程式 27
1.5.2在Proteus中演示程式 30
1.6習題及操作練習 32
第2章從I/O連線埠開始學51單片機(教學視頻:53分鐘) 35
2.1從一個漂亮的流水燈看I/O連線埠 35
2.1.1演示流水燈實例 35
2.1.2流水燈電路圖的繪製 37
2.1.3P1連線埠介紹 43
2.1.4流水燈程式設計流程圖 45
2.2用彙編語言實現流水燈 47
2.2.1用彙編語言小試牛刀 47
2.2.2測試流水燈彙編程式 48
2.2.351單片機彙編語言指令介紹——數據傳送指令 52
2.3用C語言實現流水燈 53
2.3.1根據流程圖來編寫程式 53
2.3.2當代最優秀的程式設計語言——C語言介紹 55
2.4I/O連線埠的輸入控制 62
2.4.1用開關控制流水燈 63
2.4.2程式設計流程 64
2.4.3彙編語言實現開關控制流水 64
2.4.4彙編語言知識擴充——專用暫存器介紹 66
2.4.5用C語言實現開關控制流水燈 69
2.4.6C語言知識擴展 71
2.5習題和擴展練習 73
第3章51單片機對中斷的控制(教學視頻:89分鐘) 76
3.1流水燈彙編程式的改進 76
3.1.1流水燈程式改進的思路 76
3.1.2改進後的彙編語言流水燈 78
3.1.3軟體仿真介紹 82
3.2流水燈C語言的改進 89
3.2.1新流水燈C語言設計思路 90
3.2.2軟體仿真C語言項目 93
3.3外中斷控制概述 98
3.3.151單片機的中斷源 98
3.3.2外部中斷的執行方式 99
3.3.3外中斷控制電路 100
3.4彙編語言控制外中斷 101
3.4.1彙編知識介紹 101
3.4.2編寫中斷控制彙編語言 104
3.4.3在Proteus中仿真效果 106
3.5用C語言完成中斷控制 107
3.5.1C語言相關知識介紹 107
3.5.2編寫C語言外中斷程式 110
3.5.3軟體仿真C語言外中斷程式 112
3.6習題和實例演練 117
第4章51單片機對時間的控制(教學視頻:177分鐘) 119
4.151單片機的軟體定時 119
4.1.1彙編語言實現精確定時 119
4.1.2用C語言實現延時的方法 125
4.251單片機定時器概述 131
4.2.151單片機定時器的功能 131
4.2.2定時器/計數器相關暫存器 131
4.3定時工作方式0 134
4.3.1定時工作方式0概述 134
4.3.2用定時器方式0做方波信號發生器 135
4.3.3在工作方式0下,利用查詢方法實現方波信號發生器 137
4.3.4彙編語言實現定時器在工作方式0的中斷控制方法 142
4.3.5C語言實現定時器在工作方式0的中斷控制 147
4.3.6在Proteus中仿真中斷實例 148
4.4定時工作方式1 149
4.4.1定時器工作方式1概述 149
4.4.2實例設計方案 150
4.4.3彙編語言實現可程式定時 152
4.4.4C語言實現可程式定時 155
4.4.5Proteus仿真可程式定時 156
4.4.6軟體仿真可程式定時 157
4.5定時工作方式2 160
4.5.1定時工作方式2概述 160
4.5.2實例規劃 161
4.5.3用彙編語言實現目標 163
4.5.4用C語言實現編程 164
4.5.5在Proteus中進行仿真 166
4.6定時工作式3 168
4.6.1定時工作方式3概述 168
4.6.2實例規劃 169
4.6.3用彙編語言實現編程 171
4.6.4用C語言實現編程 173
4.6.5在Proteus中進行仿真 174
4.7習題和實例擴展 175
第5章數碼管顯示技術(教學視頻:92分鐘) 177
5.1數碼管靜態顯示 177
5.1.1數碼管介紹 177
5.1.2彙編語言對數據存儲器(RAM)的空間的攫取 180
5.1.3利用C語言實現對數據存儲器(RAM)的存取 189
5.1.4彙編語言對程式存儲器(ROM)的開拓 193
5.1.5C語言對程式存儲器的讀取 198
5.2數碼管動態顯示 199
5.2.1動態顯示思路 200
5.2.2用Proteus繪製數碼管動態顯示電路圖 200
5.2.3彙編語言實現動態顯示 203
5.2.4C語言實現動態顯示 206
5.3彙編語言實現數碼顯示計數器 209
5.3.1總體規劃 210
5.3.2彙編基礎知識擴展——算數運算指令 212
5.3.3分模組編寫程式 213
5.3.4在Proteus中仿真實例 219
5.3.5在Keil中仿真 220
5.4習題和實例擴展 223
第6章通信利器——串口(教學視頻:127分鐘) 225
6.1一個實例來說明串口通訊 225
6.1.1新式流水燈 225
6.1.2串列通信基本概述 227
6.1.3RS-232匯流排標準 228
6.1.451單片機串列口以及控制暫存器 229
6.1.551單片機串列通信工作方式 230
6.1.6串列工作方式0實例詳述 232
6.2雙機通信 237
6.2.1準備電路圖 237
6.2.2程式設計方案 239
6.2.3彙編語言實現雙機通信 241
6.2.4C語言實現雙機通信 244
6.2.5仿真觀察雙機通信 248
6.3單片機和電腦通信 248
6.3.1硬體電路的實現 248
6.3.2程式設計方案 251
6.3.3彙編語言編寫實例程式 252
6.3.4C語言實現編程 255
6.3.5實例在Proteus中的仿真 256
6.4習題和實例擴展 260
第7章數字電子時鐘的設計(教學視頻:157分鐘) 262
7.1電子時鐘總體規劃 262
7.1.1電子時鐘整機電路圖 262
7.1.2數碼管顯示 263
7.1.3串口修改數值 265
7.1.4時鐘工作單元 266
7.1.5鍵盤控制 266
7.2鍵盤分析 268
7.2.1鍵值獲取 269
7.2.2根據鍵值執行相應程式 273
7.2.3各按鍵子程式 274
7.3電子時鐘其他模組設計 277
7.3.1程式預定義變數 277
7.3.2主程式程式設計 279
7.3.3顯示子程式 281
7.3.4定時器控制單元 283
7.3.5串列修改單元 285
7.4C語言知識擴展 286
7.4.1函式定義的形式 286
7.4.2指針變數 288
7.4.3加1子程式的分析 292
7.5習題和實例擴展 293
第8章更先進的電子時鐘(教學視頻:191分鐘) 295
8.1字元和ASCII碼 295
8.1.1ASCII碼的概念 295
8.1.2彙編語言中運用字元 296
8.1.3C語言中表達字元 296
8.1.4串列口輸出字元 298
8.2字元型液晶1602 302
8.2.1字元液晶1602簡介 302
8.2.2在編程中學習液晶驅動 305
8.2.3液晶顯示其他接口函式 309
8.3時鐘模組研究 312
8.3.1DS1302介紹 312
8.3.2DS1302控制方式 313
8.3.3時鐘程式編寫 315
8.4檔案的分割管理 325
8.4.1C項目的分割方法 325
8.4.2彙編語言分割方式 328
8.5習題和實例擴展 335
第9章51單片機外設擴展(教學視頻:72分鐘) 337
9.1外部數據存儲器的擴展 337
9.1.1數據存儲晶片介紹 337
9.1.2外擴RAM分析 340
9.1.3外部設備數據傳送指令 342
9.1.4用實例驗證對外部RAM的存取過程 345
9.2LCD的擴展 347
9.2.1實現匯流排控制LCD的電路分析 347
9.2.2彙編語言實現編程方式 349
9.2.3C語言實現編程方法 351
9.3更多外設的擴展方法 352
9.3.1實現多個外設擴展的電路實現方法 352
9.3.2綜合運用外設實例 356
9.3.3彙編語言實現實例要求 358
9.3.4C語言實現實例目標 361
9.4習題和實例擴展 364
第10章點陣液晶LCD和矩陣鍵盤(教學視頻:84分鐘) 366
10.1點陣液晶12864 366
10.1.112864液晶概述 366
10.1.212864直接控制方式底層驅動程式 370
10.1.312864點陣液晶接口函式 373
10.1.4實例顯示成果 386
10.2矩陣鍵盤 392
10.2.1矩陣鍵盤的電路圖及實現原理 392
10.2.2矩陣鍵盤判鍵程式 394
10.2.3矩陣鍵盤在12864液晶上的演示 397
10.3習題和實例擴展 401
第11章計算器程式分析與設計(教學視頻:82分鐘) 403
11.1彙編語言知識補充 403
11.1.1彙編語言執行跳轉指令 403
11.1.2彙編語言偽指令擴充 404
11.2C語言庫函式介紹 407
11.2.1C51庫函式簡介 407
11.2.2典型庫函式介紹 409
11.3Proteus自帶計算器分析(彙編語言編寫) 413
11.3.1實例電路分析 414
11.3.2外設模組程式分析 416
11.3.3程式分配布局 419
11.3.4編譯信息觀察及程式總結 425
11.4C語言計算器分析和改進 425
11.4.1Proteus提供的計算器分析 426
11.4.2改造C51計算器 431
11.4.3項目設定和仿真效果 437
11.5習題和實例擴展 438
第12章ZLG/GUI在51單片機中的移植及運用(教學視頻:44分鐘) 440
12.1C語言基礎知識補充 440
12.1.1C51結構體 440
12.1.2C51枚舉類型 445
12.1.3C51共用體 446
12.1.4類型定義符typedef 448
12.2ZLG/GUI介紹 449
12.2.1ZLG/GUI的檔案瀏覽 449
12.2.2CONFIG.H檔案 454
12.2.3ZLG/GUI的配置 455
12.3移植ZLG/GUI 457
12.3.1LCD底層驅動 457
12.3.2ZLG/GUI的移植檔案 459
12.3.3底層程式編寫 462
12.3.4Keil配置 465
12.4ZLG/GUI的套用舉例 466
12.4.1實現基本畫圖函式 466
12.4.2字元繪製 468
12.4.3漢字顯示和圖形顯示 469
12.4.4視窗顯示 475
12.4.5選單功能和按鈕 477
12.5習題和實例擴展 480
附錄A51單片機彙編指令集 482
附錄BASCII碼錶 486
附錄CC語言運算符及其優先權 488