手把手教你學51單片機

手把手教你學51單片機

《手把手教你學51單片機》是2009年1月1日電子工業出版社出版的圖書,作者是惠仇。該書講述了單片機的基本結構和工作原理、主要開發語言以及項目開發中常用的工具等內容。

基本信息

編輯推薦

本書還簡述了單片機開發中的一些規範,如單片機原理圖、PCB圖和程式設計的設計規範。最後,本書通過一些設計實例,全面闡述了單片機項目設計中遇到的各種問題。

宣傳語

圈內資深單片機工程師精心編寫,包含豐富的實踐經驗和專業技術

精心設計大量的套用實例,與讀者分享51單片機套用開發過程中的經驗和心得

安排有“提示”、“注意”、“說明”小欄目,將實際工作中遇到的問題各個擊破

內 容 簡 介

本書語言簡潔,由淺入深、循序漸進,基礎知識與設計實踐緊密結合,邊講邊練,利於讀者舉一反三,鞏固所學的知識。隨書配套光碟內容超值豐富,不但提供了書中範例的代碼和電路圖,而且提供了多媒體視頻教學錄像,手把手引導讀者直觀深入地學習。

本書適合廣大51單片機使用者閱讀,也是從事單片機設計的科技工作者必備的首選寶典;同時也可作為大中專院校、高職計算機專業學生,以及社會相關培訓班學員的教材。

作者簡介

惠仇,1999年畢業於北方工業大學,長期從事單片機套用開發工作,曾經參與和獨立設計過的項目有條碼門禁機、可視對講系統、稅控加油機、稅控收款機、壓力測試系統等,其中可視對講項目獲得國家專利,這些項目均以單片機為核心來實現項目設計功能,並使用了許多最新流行的單片機種類和設計方法。

前 言

目前,51系列單片機在我國已得到大力推廣和廣泛套用,從工業控制系統到小型電子產品都可以見到51單片機的身影,它經典的結構使其成為單片機學習的入門首選,得到了廣大單片機使用者的一致推崇,關於51單片機學習和套用的書也五彩紛呈,本書也是其中的一本。

編寫本書的目的

筆者從事單片機設計工作已有多年,在這期間設計和參與設計了較多的單片機項目,取得了很多單片機實際設計經驗,對單片機設計有了一些較深的認識。所以希望能通過這本書對初步學習單片機的讀者有所幫助,並且也是自己對學習和套用單片機的一個總結。

通常在學校學習的單片機知識偏重於理論而不是技能,可是在工作中需要面對的是實際問題,而不是在紙上談兵;作為一名單片機工程師,筆者在工作中對此深有感觸。所以本書的著重點是想讓讀者了解一個完整的單片機設計過程所需的知識,而不僅僅只是講述單片機的原理。通過本書的學習,讀者可以獨立設計和完成一個簡單的單片機控制系統,即體驗從原理圖設計、製作電路板到單片機系統調試的整個過程。

本書的主要內容

本書概括地論述了單片機的基礎知識,包括單片機的基本結構和工作原理;並就實際單片機項目開發中會遇到的各種問題進行了闡述,列舉了單片機開發的流程和必須遵守的一些規範,說明了仿真器和編程器在開發中的作用以及基本的使用方法。具體內容如下。

 首先論述了單片機的基礎知識,包括單片機的基本結構和工作原理,闡述了目前單片機的發展情況,列舉了最新流行的單片機種類,總結了單片機的選擇方法。

 在了解單片機基本知識的基礎上,詳細講解了單片機的主要開發語言——彙編語言和C51語言;程式語言的使用是單片機和其他積體電路的重要區別,用它來賦給單片機命令,使單片機按照設計者的意志運行命令。

 本書也花了一定的篇幅講解了仿真器和編程器的原理和使用說明。編程器和仿真器是單片機項目開發中常用的工具,仿真器是單片機程式調試中很有用的輔助工具,可以逐步地觀察單片機的運行過程,以便發現程式中的錯誤;而編程器是用來將編寫好的程式寫入單片機的工具。除了傳統的仿真器和編程器外,還列舉了一些最新的單片機開發手段,如線上仿真和ISP(在系統編程),這些新的方法大大降低了單片機的開發費用,線上仿真使得設計者不需要去購買昂貴的仿真器,而ISP則替代了編程器,這進一步降低了學習單片機開發的門檻。

 在講解這些理論知識的過程中,本書還簡單講述了單片機開發中的一些規範,包括單片機原理圖、PCB圖以及程式設計的設計規範。這在實際工作中是必須了解和遵守的,也是一個單片機設計工程師必須具備的基本知識。

 完成了基本知識的學習後,本書由易至難列舉了一些設計實例,這些實例基本上概括了單片機項目設計中遇到的各種問題。

通常,一個單片機系統設計可以分為如下五大方面。

(1)單片機能夠運行的最小系統,包括振盪電路、復位電路以及電源電路。

(2)單片機I/O口的使用方法和定時器、中斷系統的使用。

(3)單片機的通信接口,單片機的通信在單片機設計中是經常遇到的功能,所以必須注意目前單片機系統常用的各種通信接口和協定。

(4)單片機的系統擴展,系統擴展通常可以分為程式存儲器的擴展、數據存儲器的擴展以及單片機I/O口的擴展三部分。

(5)信號轉換接口,主要是A/D、D/A轉換以及PWM的實現。這是單片機信號處理中經常遇到的問題。

前面兩部分是單片機最基本的功能,後面三部分則是單片機的擴展套用,掌握了這些基本知識,便可應對用單片機解決的各種項目。

本書的特點

 本書具有知識全面、實例豐富、操作性強的特點,力求以全面、系統的知識和豐富、簡短的實例指導初學者學習單片機各方面的知識。因此,本書適合於開始學習單片機設計和具有一定單片機基礎知識的讀者,目的是使讀者通過本書的學習可以初步掌握單片機的開發套用。

 本書安排有“提示”、“注意”、“說明”小欄目,通過這些小欄目可和讀者分享一些經驗和心得,同時也可為讀者清除學習過程中的難點和疑點。

 本光碟內容超值豐富,不但提供了書中全部範例的原始碼和電路圖,而且提供了多媒體視頻教學錄像,用以講解如何使用本書光碟中的原始碼,手把手引導讀者直觀深入地學習。

本書閱讀順序

本書章節的安排是依據讀者對單片機學習的過程、以循序漸進的方式建立的,建議初學者從前至後閱讀。

 首先閱讀第1章至第7章,這些章節是單片機設計的基礎知識,必須掌握。只有熟讀了這幾章的內容,才能閱讀後面的章節。其中,第3章可以放到完成基本知識的學習後閱讀。

 閱讀第8章至第12章,這幾章是講述單片機設計中的一些基本手段和方法,涉及單片機系統設計中的方方面面,掌握這些知識可以解決單片機設計中的大部分問題。

 閱讀第13章——綜合實例,它由淺入深、由簡入繁,將前面講解的一些知識套用到實際項目中,可以讓讀者對單片機設計項目有具體的認識。

致謝

經過緊張的策劃、寫作和編寫,本書才得已完稿。在寫作的過程中,得到了參與本書策劃的各位編輯的大力協助;在此,對所有參與該書編輯、出版的老師表示衷心的感謝。

惠 仇

2008.6.28

目 錄

第1章 MCS-51系列單片機的起源和發展 1

1.1 MCS-51系列單片機的起源 2

1.1.1 單片機的誕生 2

1.1.2 單片機的歷史 2

1.1.3 MCS-51單片機的歷史 3

1.1.4 MCS-51系列單片機的特點 4

1.2 MCS-51系列單片機的發展現況 5

1.2.1 概述 5

1.2.2 最新51系列單片機介紹 6

1.3 小結 12

第2章 開發一個51系列單片機項目需要的資源 14

2.1 基礎知識的學習 15

2.1.1 單片機基礎知識 15

2.1.2 彙編語言 15

2.1.3 C語言 16

2.1.4 模擬電路和數字電路 16

2.2 硬體資源 17

2.2.1 單片機試驗電路板 17

2.2.2 仿真器 17

2.2.3 仿真器的選擇和安裝 19

2.2.4 編程器(燒錄器) 20

2.3 軟體開發環境 21

2.3.1 軟體編輯環境 21

2.3.2 KEIL軟體的安裝 21

2.3.3 KEIL軟體的使用方法 22

2.4 單片機型號的選擇 22

2.5 51單片機下載線的製作 23

2.5.1 硬體調試 24

2.5.2 使用方法 24

2.6 MON51仿真器的製作 25

2.6.1 原理圖 25

2.6.2 Mon51硬體調試 26

2.6.3 軟體調試 27

2.7 小結 27

第3章 單片機項目的開發流程和需要遵守的規範 28

3.1 單片機項目開發流程介紹 29

3.2 原理圖設計規範 30

3.3 PCB圖設計規範 31

3.4 彙編語言設計規範 32

3.5 C51語言設計規範 34

3.6 小結 38

第4章 51單片機的基本結構 39

4.1 單片機的基本結構 40

4.1.1 中央處理器(CPU) 41

4.1.2 存儲器 43

4.1.3 定時器/計數器 45

4.1.4 中斷控制系統 45

4.1.5 串列口、並行口 46

4.1.6 匯流排(BUS) 46

4.1.7 時鐘電路 47

4.2 二進制、十進制、十六進制 47

4.3 哈佛結構與馮·諾伊曼結構 48

4.3.1 哈佛結構 48

4.3.2 馮·諾伊曼結構 49

4.4 單片機的指令系統 50

4.4.1 指令系統 50

4.4.2 定址方式 51

4.4.3 程式的執行過程 52

4.5 複雜指令集與精簡指令集 52

4.5.1 基本概念 52

4.5.2 複雜指令集與精簡指令集的特點 52

4.6 小結 53

第5章 51系列單片機指令系統 54

5.1 指令和指令格式 55

5.2 定址模式 56

5.2.1 直接定址 56

5.2.2 暫存器定址 57

5.2.3 暫存器間接定址 57

5.2.4 立即定址 57

5.2.5 變址定址 58

5.2.6 位定址 58

5.2.7 相對定址 58

5.3 數據傳送指令 58

5.4 算術運算指令 60

5.5 邏輯運算及移位指令 63

5.6 控制轉移指令 64

5.7 布爾變數操作指令 66

5.8 小結 67

第6章 彙編語言編程 68

6.1 什麼是宏彙編器(Macro Assembler) 69

6.2 彙編語言的開發環境 69

6.3 彙編語言的彙編過程 70

6.3.1 源檔案(.ASM) 70

6.3.2 目標代碼檔案(.HEX) 70

6.3.3 列表輸出檔案(.LST) 70

6.3.4 彙編處理過程 71

6.3.5 常見的編譯錯誤 72

6.4 51單片機彙編語言指令與偽指令 72

6.4.1 常用單位與術語 72

6.4.2 常量與數值運算 72

6.4.3 彙編語言指令 74

6.4.4 彙編語言偽指令 74

6.5 用彙編語言設計程式的步驟 79

6.5.1 彙編語言程式設計的步驟 79

6.5.2 編製程序流程圖 79

6.6 程式設計結構 80

6.6.1 主程式和子程式 80

6.6.2 順序程式設計 81

6.6.3 分支結構程式設計 82

6.6.4 循環結構程式設計 83

6.6.5 查表程式設計 86

6.6.6 子程式設計 88

6.7 程式設計舉例 90

6.7.1 多位元組算術運算程式 90

6.7.2 數制轉換程式 91

6.7.3 多分支程式 93

6.8 小結 95

第7章 單片機C51語言編程 96

7.1 單片機C51語言概述 97

7.1.1 單片機C51語言的起源和發展 97

7.1.2 C51語言編程的優點 97

7.2 C51關鍵字和標識符 98

7.3 C51語言的數據類型 99

7.3.1 基本數據類型 99

7.3.2 構造型數據類型 101

7.4 常量、變數和指針 105

7.4.1 常量 105

7.4.2 變數 106

7.4.3 指針 108

7.4.4 存儲類型和存儲模式 109

7.5 C51的基本運算 112

7.5.1 C51的賦值運算 112

7.5.2 C51的算術運算 113

7.5.3 關係運算符 114

7.5.4 邏輯運算符 115

7.5.5 位運算符 116

7.6 函式 116

C51的庫函式 121

7.7 程式結構 122

7.7.1 順序控制結構 123

7.7.2 選擇控制語句 123

7.7.3 循環語句 124

7.7.4 C51語言編程實例 127

7.8 C51語言與彙編語言混合編程 128

7.8.1 在C51語言函式中嵌入彙編語言 128

7.8.2 在C51項目中加入彙編語言檔案 129

7.9 一個簡單的C語言項目的實施 131

7.10 小結 135

第8章 一些簡單的實例 136

8.1 建立一個單片機小系統 137

8.1.1 原理圖設計 137

8.1.2 製作電路 139

8.1.3 調試 140

8.2 利用單片機的I/O口控制LED 140

8.2.1 原理圖設計 140

8.2.2 製作電路 141

8.2.3 設計程式 141

8.2.4 仿真和調試 143

8.3 利用定時器控制LED閃爍 143

8.3.1 原理圖設計 143

8.3.2 製作電路 143

8.3.3 設計程式 143

8.3.4 仿真和調試 145

8.4 控制蜂鳴器發聲 145

8.4.1 工作原理 145

8.4.2 原理圖設計 146

8.4.3 製作電路 146

8.4.4 程式設計 146

8.4.5 仿真調試 148

8.5 用一個按鍵控制LED閃爍 148

8.5.1 工作原理 148

8.5.2 原理圖設計 148

8.5.3 製作電路 149

8.5.4 程式設計 149

8.5.5 仿真調試 152

8.6 製作LED數碼管顯示 152

8.6.1 LED數碼管結構 152

8.6.2 工作原理 153

8.6.3 原理圖設計 153

8.6.4 製作電路 154

8.6.5 程式設計 155

8.6.6 仿真調試 157

8.7 設計一個鍵盤 158

8.7.1 鍵盤工作原理 158

8.7.2 原理圖設計 159

8.7.3 製作電路 161

8.7.4 程式設計 161

8.7.5 仿真調試 164

8.8 看門狗電路的設計 165

8.8.1 工作原理 165

8.8.2 原理圖設計 166

8.8.3 製作電路 168

8.8.4 程式設計 168

8.8.5 仿真調試 171

8.9 小結 172

第9章 51單片機電源系統的設計 173

9.1 開關穩壓電源和線性穩壓電源的基本知識 174

9.2 線性穩壓電源工作原理 174

9.2.1 串聯反饋型穩壓電源的工作過程 174

9.2.2 穩壓電路的保護環節 175

9.3 開關穩壓電源工作原理 176

9.3.1 開關電源的起源和發展趨勢 176

9.3.2 開關電源的分類 177

9.3.3 開關電源的工作原理 178

9.3.4 開關電源的選用 185

9.4 常用電源轉換晶片介紹 186

9.4.1 三端集成穩壓器 186

9.4.2 低壓差線性穩壓器(LDO)的原理與套用 188

9.4.3 常用DC/DC開關穩壓電源晶片的選擇 191

9.5 設計一個簡單的線性電源單片機供電系統 193

常用的三端集成穩壓電源 193

9.6 DC/DC開關電源單片機供電系統的設計 194

9.6.1 工作原理 194

9.6.2 基本套用設計 195

9.7 用MC34063設計開關電源 198

9.7.1 MC34063性能簡介 198

9.7.2 MC34063降壓變換器電路 199

9.7.3 MC34063升壓變換器電路 199

9.7.4 MC34063大電流降壓變換器電路 200

9.7.5 MC34063大電流升壓變換器電路 200

9.7.6 MC34063反向變換電路 201

9.8 小結 201

第10章 51單片機通信接口實例 202

10.1 單片機常用匯流排簡述 203

10.1.1 晶片級匯流排 203

10.1.2 設備級匯流排 204

10.2 單片機系統數據的並行傳送方式與串列傳送方式 207

10.3 單片機系統和計算機之間實現串列通信 207

10.3.1 RS232串列通信工作原理 207

10.3.2 MCS-51系列單片機的串列口和控制暫存器 209

10.3.3 原理圖設計 210

10.3.4 製作電路 212

10.3.5 程式設計 213

10.3.6 仿真調試 216

10.4 實現與其他器件間的I2C通信 216

10.4.1 I2C協定 216

10.4.2 原理圖設計 220

10.4.3 製作電路 221

10.4.4 程式設計 221

10.4.5 仿真調試 228

10.5 添加一個實時時鐘 229

10.5.1 工作原理 229

10.5.2 原理圖設計 231

10.5.3 製作電路 232

10.5.4 程式設計 233

10.6 液晶顯示模組接口實例 238

10.6.1 液晶顯示模組簡介 238

10.6.2 原理圖設計 243

10.6.3 製作電路 243

10.6.4 程式設計 243

10.6.5 仿真調試 251

10.7 小結 251

第11章 51系列單片機的系統擴展 252

11.1 單片機系統擴展原理 253

11.1.1 為什麼擴展系統 253

11.1.2 單片機系統擴展原理 253

11.1.3 程式存儲器晶片的選擇 257

11.1.4 數據存儲器晶片的選擇 259

11.1.5 擴展系統I/O接口 260

11.2 存儲器系統擴展系統實例 260

11.2.1 擴展系統程式存儲器 260

11.2.2 用SRAM擴展數據存儲器舉例 262

11.2.3 同時擴展數據存儲器和程式存儲器 264

11.2.4 並行接口Flash存儲器擴展實例 265

11.2.5 串列接口Flash存儲器擴展實例 274

11.3 系統擴展I/O口實例 278

11.3.1 利用解碼器擴展I/O口 278

11.3.2 利用並口擴展晶片8255擴展I/O口 280

11.3.3 8155擴展並行I/O接口 282

11.3.4 利用串並位移暫存器晶片擴展I/O口 286

11.3.5 利用I2C接口擴展I/O口 289

11.4 小結 291

第12章 信號轉換接口 292

12.1 單片機與A/D轉換接口 293

12.1.1 A/D轉換原理 293

12.1.2 A/D轉換器的主要技術指標 294

12.1.3 A/D轉換器的分類 295

12.1.4 A/D轉換器的選擇原則 298

12.2 A/D轉換設計實例 299

12.2.1 ADC0809介紹 299

12.2.2 原理圖設計 300

12.2.3 製作電路 301

12.2.4 程式設計 301

12.2.5 仿真調試 306

12.3 D/A轉換原理 306

12.3.1 D/A轉換原理 306

12.3.2 D/A轉換器的主要技術指標 307

12.3.3 D/A轉換器的分類 308

12.3.4 D/A轉換器的選擇 309

12.4 D/A轉換設計實例 310

12.4.1 DAC0832晶片介紹 310

12.4.2 原理圖設計 311

12.4.3 製作電路 312

12.4.4 程式設計 312

12.4.5 仿真調試 314

12.5 實現PWM控制 314

12.5.1 PWM原理 314

12.5.2 PWM的實現和套用 314

12.5.3 程式設計 315

12.6 小結 317

第13章 單片機綜合實例 318

13.1 用DS18B20實現的溫控加熱模組 319

13.1.1 DS18B20性能簡介 319

13.1.2 DSl8B20時序及工作過程 322

13.1.3 原理圖設計 324

13.1.4 程式設計 326

13.1.5 仿真調試 332

13.2 直流電動機控制 333

13.2.1 C8051F300簡介 333

13.2.2 原理圖設計 334

13.2.3 程式設計 335

13.2.4 仿真調試 340

13.3 數據採集儀設計實例 340

13.3.1 C8051F020介紹 340

13.3.2 CP2102簡介 342

13.3.3 原理圖設計 343

13.3.4 程式設計 345

13.4 小結 365

附錄A 80C51單片機 指令速查表 366

附錄B ASIIC碼錶 370

相關詞條

相關搜尋

熱門詞條

聯絡我們