21天學通51單片機開發(第2版)

21天學通51單片機開發(第2版)

《21天學通51單片機開發(第2版)》是2011年出版的圖書,作者是陸彬。本書知識點覆蓋全面、結構安排緊湊、講解詳細、實例豐富。51系列單片機的初學者通過本書可以快速掌握單片機的程式設計技術。本書對具有一定開發經驗的設計人員,也有很高的參考價值。

圖書信息

21天學編程系列 21天學通51單片機開發(第2版)(含DVD光碟1張) 陸彬 編著

ISBN 978-7-121-14160-7

2011年9月出版

定價:49.80元(含DVD光碟1張)

16開

416頁

內 容 簡 介

本書系統地介紹了51系列單片機的基本概念、程式設計語言及硬體編程,並給出了一些常用的典型案例。本書言簡意賅、通俗易懂,知識點覆蓋全面,詳細講述了每個指令及功能的編程指南和實例,使讀者能夠更好地掌握51系列單片機的知識。

本書分25章,全面詳細地講述了單片機的原理、程式設計方法、編程指南及套用案例。首先介紹了51系列單片機的基礎知識及基本結構,接著介紹了單片機的程式設計語言,包括彙編語言和單片機C51語言,其中C51語言是重點內容。然後結合單片機的各個功能部件詳細講解了單片機的硬體編程方法。最後還給出了在各個領域中常用到的一些典型案例,供讀者在學習和工作中參考。

本書附贈DVD光碟1張,內容包括超大容量手把手教學視頻、電子教案(PPT)。

前 言

為什麼要寫這樣一本書

單片機憑藉其強大的可程式能力及高性價比,在現代電子設計領域中具有重要的地位。在越來越多的產品中可以看到單片機的身影。其中,51系列單片機是市場上套用最廣泛、性價比最高的單片機之一,使用51系列單片機進行設計的項目和開發人員都非常多。目前市面上關於單片機開發的書籍非常多,但是這些書有些過於技術化,入門者根本無法入手,有些書籍內容不全,無法讓初學者對該技術得到全面的認識。

為了能讓初次接觸51系列單片機開發的愛好者快速而又輕鬆地學會單片機及其程式開發,筆者總結了自己學習單片機程式設計的經驗,並結合多年實際開發的經驗,編寫了這本51系列單片機的基礎教程。在本書中,筆者從最基礎的概念入手,循序漸進地將51系列單片機開發和程式設計中的每個技術點展現在讀者面前,力求讓讀者在最短的時間內高效地掌握51系列單片機開發的基礎概念及技術要點。

本書有何特色

1.細緻體貼的講解

為了讓讀者更快地上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念用直觀的圖示演示過程用詳細的注釋解釋代碼用形象的比方幫助記憶。效果如下:

知識點介紹 準確、清晰是其顯著特點,一般放在每一節開始位置,讓零基礎的讀者了解相關概念,順利入門。

範例 書中出現的完整實例,以章節順序編號,便於檢索和循序漸進地學習、實踐,放在每節知識點介紹之後。

範例代碼 與範例編號對應,層次清楚、語句簡潔、注釋豐富,體現了代碼優美的原則,有利於讀者養成良好的代碼編寫習慣。對於大段程式,均在每行代碼前設定編號,便於學習。

運行結果 對範例給出運行結果和對應圖示,幫助讀者更直觀地理解範例代碼。

代碼解析 將範例代碼中的關鍵代碼行逐一解釋,有助於讀者掌握相關概念和知識。

綜合練習 為了便於讀者鞏固所學內容,本書每章中均提供了綜合練習,並給出了操作提示和結果,配合讀者自己動手實踐。

習題 每章最後提供專門的測試習題,供讀者檢驗所學知識是否牢固掌握,題目的提示或答案放在光碟中。

貼心的提示 為了便於讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下:

 提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者解決問題的方法。

 注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。

 警告:對操作不當或理解偏差將會造成的災難性後果做警示,以加深讀者印象。

經作者多年的培訓和授課證明,以上講解方式是最適合初學者學習的方式,讀者按照這種方式,會非常輕鬆、順利地掌握本書知識。

2.實用超值的DVD光碟

為了幫助讀者比較直觀地學習,本書附贈DVD光碟,內容包括多媒體視頻、電子教案(PPT)、各章習題答案和實例原始碼等。

 多媒體視頻

配有長達16小時手把手教學視頻,講解關鍵知識點界面操作和書中的一些綜合練習題。作者親自配音、演示,手把手教會讀者使用。

 電子教案(PPT)

本書可以作為高校相關課程的教材或課外輔導書,所以筆者特別為本書製作了電子教案(PPT),以方便老師教學使用。

推薦的學習計畫

本書作者在長期從事相關培訓或教學實踐過程中,歸納了最適合初學者的學習模式,並參考了多位專家的意見,為讀者總結了合理的學習時間分配方式,列表如下:

推薦時間安排 自學目標(框內打鉤表示已掌握) 難度指數

第1周 第1天 了解單片機發展歷史、套用領域和發展方向

熟悉典型的51系列單片機引腳結構和功能

掌握51系列單片機的內部結構

了解51系列單片機的中央處理器結構

熟悉51系列單片機的存儲器結構

掌握51系列單片機的指令時序

了解51系列單片機的掉電保護和低功耗模式

第2天 能夠根據自己的需要進行單片機的選型

能夠順利地搭建一個51單片機的硬體最小電路

能夠順利地搭建一個Keil C51軟體開發環境

熟悉Keil C51軟體的集成開發環境



第3天 熟悉和掌握彙編語言偽指令

掌握單片機彙編語言程式的格式

了解典型的彙編程式結構

能夠在Keil μVision3集成開發環境中使用彙編語言



第4天 了解單片機C51語言的標識符和關鍵字

熟悉單片機C51語言的數據類型和變數作用域

掌握各種常用的運算符和表達式



第5天 熟練掌握C51語言中的各種語句結構

熟悉C51不同語句的程式設計方法和功能用途

了解C51語言中常用的控制流程結構



續表

推薦時間安排 自學目標(框內打鉤表示已掌握) 難度指數

第1周 第6天 了解數組的聲明和表示

掌握數組元素的初始化方法

掌握和熟練運用一維數組和二位數組的使用

掌握和熟練運用字元串數組的使用

熟悉多維數組的使用



第7天 了解地址和指針的基本概念

掌握和熟悉指針變數的使用

掌握和熟悉數組指針和指針數組的區別及使用

掌握和熟練運用字元指針的使用



第2周 第8天 了解結構的聲明和初始化

掌握和熟練運用結構數組的使用

掌握和熟練運用結構指針的使用

掌握嵌套結構的使用

掌握位結構的使用



第9天 掌握和熟悉聯合類型的使用及其與結構的區別

掌握枚舉類型的使用

了解類型聲明的使用

了解位域的使用



第10天 了解函式的概念及函式的聲明

了解函式的參數、返回值

掌握函式的調用方法

了解函式的作用域



第11天 掌握和熟練運用各種常用的庫函式 □ 

第12天 了解和掌握宏定義指令

掌握和熟悉檔案包含指令

了解條件編譯指令



第13天 了解51單片機的存儲結構

掌握和熟練C51的各種存儲類型

了解存儲模式

掌握C51的存儲器指針



第14天 了解單片機定時器/計數器的結構

掌握定時器/計數器的功能及控制暫存器

掌握和熟練運用定時器/計數器的各種工作模式及程式設計



第3周 第15天 了解單片機的中斷系統

掌握中斷的類型、程式訪問和回響過程



掌握和熟練運用外部中斷源及其程式設計

掌握和熟練運用定時中斷源及其程式設計

掌握和熟練運用串列中斷源及其程式設計



續表

推薦時間安排 自學目標(框內打鉤表示已掌握) 難度指數

第3周 第16天 了解基本的串列通信概念

掌握51系列單片機串列接口的程式控制

掌握和熟練運用各種串口工作模式的原理

掌握和熟練運用各種串口工作模式的程式設計思路



第17天 了解鍵盤的種類

掌握鍵盤的基本原理

掌握和熟練運用陣列式鍵盤的使用



第18天 掌握LED數碼管的基本原理

掌握和熟練運用單個LED數碼管的直接驅動

掌握和熟練運用靜態驅動多個LED數碼管的方法

掌握和熟練運用LED驅動器的使用方法



第19天 了解I2C匯流排的工作原理

掌握I2C匯流排的定址方式

掌握和熟練運用I2C匯流排的協定

掌握I2C匯流排接口的EEPROM

掌握和熟練運用I2C匯流排的程式設計方法



第20天 了解各種常用的串列通信接口

掌握串列通信接口晶片的使用

掌握和熟練運用單片機與PC之間的串列通信方法



第21天 了解RTX-51實時多任務作業系統

了解RTX-51 Tiny的任務管理

掌握和熟練運用RTX-51 Tiny的系統函式

掌握RTX-51多任務程式與單任務程式的區別

掌握和熟練運用RTX-51 Tiny的程式設計



本書適合哪些讀者閱讀

本書非常適合以下人員閱讀:

 從未接觸過51單片機開發技術的人員;

 有一定硬體開發技術基礎,但還需要進一步學習的人員;

 想學習單片機C51語言的開發人員;

 其他編程愛好者。

目 錄

第1章 51系列單片機基礎知識

( 教學視頻:33分鐘) 15

1.1 51系列單片機概述 15

1.1.1 單片機的發展歷史 15

1.1.2 51系列單片機簡介 16

1.1.3 51系列單片機的套用領域 16

1.1.4 51系列單片機的發展方向 17

1.2 典型引腳結構 17

1.2.1 電源引腳 18

1.2.2 時鐘引腳 18

1.2.3 並行I/O引腳 19

1.2.4 復位引腳 22

1.2.5 ALE/ 引腳 23

1.2.6 引腳 23

1.2.7 /VPP引腳 23

1.3 51系列單片機內部結構 24

1.4 中央處理器結構 26

1.4.1 算術邏輯部件(ALU) 26

1.4.2 控制器 26

1.4.3 通用暫存器 26

1.4.4 專用暫存器 27

1.4.5 特殊功能暫存器 29

1.5 存儲器結構 30

1.5.1 程式存儲器 30

1.5.2 擴展外部程式存儲器 31

1.5.3 數據存儲器 31

1.5.4 擴展外部數據存儲器 33

1.6 單片機指令時序 34

1.6.1 幾個基本概念 34

1.6.2 指令執行的時序 35

1.6.3 訪問外部ROM的操作時序 37

1.6.4 訪問外部RAM的操作時序 38

1.7 掉電保護 38

1.8 低功耗模式 39

1.8.1 省電保持模式 39

1.8.2 休眠運行模式 39

1.9 小結 40

1.10 習題 40

第2章 搭建51單片機開發環境

( 教學視頻:29分鐘) 42

2.1 搭建51單片機硬體開發系統 42

2.1.1 單片機選型 42

2.1.2 一個單片機最小開發系統 43

2.2 搭建Keil C51軟體開發環境 44

2.2.1 Keil μ Vision3簡介 44

2.2.2 Keil μ Vision3系統安裝需求 45

2.2.3 Keil μ Vision 3的安裝 45

2.2.4 Keil μ Vision3集成開發環境

總攬 46

2.2.5 Keil μ Vision3的選單欄 47

2.2.6 Keil μ Vision3的工具列 50

2.2.7 Keil μ Vision3的快捷鍵 53

2.3 小結 53

2.4 習題 54

第3章 單片機彙編語言

( 教學視頻:46分鐘) 56

3.1 單片機彙編語言概述 56

3.1.1 單片機彙編語言簡介 56

3.1.2 簡單的單片機彙編語言程式 57

3.2 偽指令 57

3.2.1 起始偽指令ORG 57

3.2.2 結束偽指令END 58

3.2.3 等值偽指令EQU 58

3.2.4 地址賦值偽指令DATA 58

3.2.5 位元組保存偽指令DB 58

3.2.6 字保存偽指令DW 59

3.2.7 空間預留偽指令DS 59

3.2.8 位變數偽指令BIT 59

3.3 單片機的指令 60

3.3.1 單片機指令系統簡介 60

3.3.2 單片機指令格式 60

3.3.3 單片機指令的定址方式 61

3.3.4 51系列單片機指令集 64

3.5 單片機彙編語言的程式結構 69

3.5.1 順序結構 69

3.5.2 分支結構 70

3.5.3 循環結構 71

3.5.4 子程式結構 72

3.5.5 查表程式結構 73

3.6 Keil μVision3使用單片機彙編

程式 74

3.6.1 創建項目 74

3.6.2 編輯源檔案 76

3.6.3 編譯項目 76

3.6.4 仿真調試 77

3.7 綜合練習 77

3.8 小結 79

3.9 習題 79

第4章 單片機C51語言基礎

( 教學視頻:69分鐘) 82

4.1 單片機C51語言概述 82

4.1.1 單片機C51語言的主要特點 82

4.1.2 “Hello world”程式 82

4.1.3 良好的編程規範 83

4.2 標識符和關鍵字 84

4.2.1 標識符 84

4.2.2 關鍵字 84

4.3 數據類型 86

4.3.1 變數和常量 86

4.3.2 整型數據 87

4.3.3 字元型數據 88

4.3.4 浮點型數據 90

4.4 分隔設定 91

4.5 const修飾符 91

4.6 變數作用域 92

4.6.1 一般規則 92

4.6.2 不同存儲類型變數的作用域 93

4.7 運算符 95

4.7.1 算術運算符 95

4.7.2 邏輯運算符 97

4.7.3 關係運算符 98

4.7.4 位運算符 99

4.7.5 特殊運算符 102

4.7.6 運算符的優先權 106

4.7.7 運算符的結合性 106

4.8 表達式 106

4.8.1 算術表達式 107

4.8.2 賦值表達式 107

4.8.3 逗號表達式 108

4.8.4 關係和邏輯表達式 108

4.9 綜合練習 109

4.10 小結 110

4.11 習題 110

第5章 C51的語句

( 教學視頻:32分鐘) 112

5.1 聲明語句 112

5.2 表達式語句 112

5.3 複合語句 113

5.4 循環語句 114

5.4.1 for語句 114

5.4.2 while語句 115

5.4.3 do-while語句 116

5.5 條件語句 117

5.5.1 單分支if語句 117

5.5.2 雙分支if語句 118

5.5.3 多分支if語句 119

5.6 開關語句 120

5.7 跳轉語句 121

5.7.1 goto語句 121

5.7.2 break語句 122

5.7.3 continue語句 123

5.8 函式調用語句 123

5.9 空語句 124

5.10 返回語句 124

5.11 綜合練習 125

5.12 小結 126

5.13 習題 126

第6章 C51的數組

( 教學視頻:48分鐘) 129

6.1 數組的聲明和表示 129

6.2 初始化數組元素 131

6.2.1 在聲明數組時初始化 131

6.2.2 動態初始化 132

6.3 一維數組 132

6.3.1 一維數組的記憶體分配 132

6.3.2 一維數組的引用 133

6.3.3 一維字元串數組 134

6.4 二維數組 135

6.4.1 二維數組的聲明 135

6.4.2 二維數組的初始化 136

6.4.3 二維數組的記憶體分配 137

6.4.4 二維字元串數組 138

6.5 多維數組 139

6.6 綜合練習 140

6.7 小結 141

6.8 習題 141

第7章 C51的指針

( 教學視頻:71分鐘) 143

7.1 地址和指針概述 143

7.2 指針變數的聲明 143

7.3 指針變數的賦值 144

7.3.1 在聲明時賦值 144

7.3.2 動態賦值 144

7.3.3 指針變數之間傳遞 145

7.3.4 特殊的指針變數賦值——

數組 145

7.3.5 特殊的指針變數賦值——

字元串 145

7.3.6 特殊的指針變數賦值——

函式入口 146

7.4 指針變數的運算符 146

7.4.1 取地址運算符& 146

7.4.2 取值運算符* 146

7.4.3 指針變數的運算 147

7.5 特殊的指針類型——數組

指針 148

7.5.1 指向一維數組的指針 149

7.5.2 指向二維數組的指針 150

7.5.3 指向一個由n個元素所

組成的數組指針 151

7.5.4 指針和數組的關係總結 152

7.5.5 數組指針和指針數組 153

7.6 特殊的指針類型——字元

指針 154

7.7 綜合練習 155

7.8 小結 156

7.9 習題 156

第8章 C51的結構

( 教學視頻:35分鐘) 158

8.1 結構的聲明 158

8.1.1 定義結構 158

8.1.2 聲明結構變數 159

8.2 結構變數的初始化 160

8.3 結構變數的使用 162

8.4 結構數組 163

8.4.1 定義結構數組 163

8.4.2 初始化結構數組 164

8.5 結構指針 165

8.5.1 定義結構指針 165

8.5.2 使用結構指針 166

8.5.3 指向結構數組的結構指針 167

8.6 嵌套結構 168

8.7 位結構 169

8.8 綜合練習 170

8.9 小結 171

8.10 習題 172

第9章 C51的聚合類型

( 教學視頻:46分鐘) 173

9.1 聯合類型 173

9.1.1 聯合的定義 173

9.1.2 聯合變數的聲明 173

9.1.3 聯合變數成員的引用 175

9.1.4 聯合變數數組 175

9.1.5 聯合變數指針 176

9.1.6 聯合和結構的嵌套與區別 177

9.2 枚舉類型 178

9.2.1 定義枚舉類型 179

9.2.2 聲明枚舉變數 179

9.2.3 枚舉變數的賦值和引用 180

9.3 類型聲明 181

9.4 位域 182

9.4.1 定義位域 183

9.4.2 聲明位域變數 184

9.4.3 位域變數的引用 184

9.4.4 位域指針 185

9.5 綜合練習 186

9.6 小結 187

9.7 習題 187

第10章 C51的函式

( 教學視頻:56分鐘) 189

10.1 函式 189

10.1.1 函式概述 189

10.1.2 函式的分類 189

10.1.3 main函式 191

10.2 函式的聲明 191

10.2.1 函式聲明一 191

10.2.2 函式聲明二 192

10.2.3 函式聲明三 193

10.3 函式的參數和返回值 194

10.3.1 形參和實參 194

10.3.2 數組元素作為函式參數 195

10.3.3 數組名作為函式參數 196

10.3.4 二維數組作為函式參數 196

10.3.5 指針變數作為函式參數 197

10.3.6 函式的返回值 198

10.4 函式的調用 198

10.4.1 函式調用的方式 198

10.4.2 賦值調用 199

10.4.3 引用調用 199

10.4.4 遞歸調用 200

10.4.5 嵌套調用 201

10.5 作用域 202

10.5.1 函式的作用域 202

10.5.2 函式代碼的作用域 203

10.5.3 函式內部變數的作用域 203

10.6 C51常用庫函式 203

10.6.1 字元函式館 204

10.6.2 字元串函式館 216

10.6.3 輸入/輸出函式館 231

10.6.4 數學函式館 241

10.6.5 標準函式館 246

10.6.6 內部函式館 253

10.7 綜合練習 256

10.8 小結 257

10.9 習題 257

第11章 C51的預處理

( 教學視頻:36分鐘) 260

11.1 預處理命令概述 260

11.2 宏定義指令 261

11.2.1 #define指令 261

11.2.2 帶參數的#define指令 262

11.2.3 #undef指令 263

11.3 檔案包含指令 264

11.3.1 #include指令 264

11.3.2 常用的頭檔案 265

11.4 條件編譯指令 266

11.4.1 雙分支條件編譯指令 266

11.4.2 多分支條件編譯指令 267

11.4.3 宏名判斷指令 267

11.5 其他預處理指令 268

11.5.1 #line指令 269

11.5.2 #error指令 269

11.5.3 #pragma指令 270

11.6 綜合練習 270

11.7 小結 271

11.8 習題 271

第12章 C51的存儲結構

( 教學視頻:40分鐘) 273

12.1 單片機存儲結構 273

12.1.1 51系列單片機的存儲區域 273

12.1.2 片內低128位元組RAM區 273

12.1.3 特殊功能暫存器區(SFR) 274

12.2 存儲類型 274

12.2.1 data存儲類型 274

12.2.2 bdata存儲類型 275

12.2.3 idata存儲類型 275

12.2.4 pdata存儲類型 276

12.2.5 xdata存儲類型 276

12.2.6 code存儲類型 276

12.2.7 sfr存儲類型 277

12.2.8 sfr16存儲類型 277

12.2.9 sbit存儲類型 277

12.2.10 bit型變數 278

12.3 存儲模式 278

12.3.1 Small模式 279

12.3.2 Compact模式 279

12.3.3 Large模式 279

12.3.4 存儲模式的選擇 279

12.4 存儲器指針 280

12.4.1 指針存儲類型 280

12.4.2 存儲器指針 281

12.5 綜合練習 282

12.6 小結 283

12.7 習題 284

第13章 51系列單片機的定時器/計數器

( 教學視頻:53分鐘) 286

13.1 單片機的定時器/計數器 286

13.1.1 定時器/計數器的概述 286

13.1.2 定時器/計數器的控制

暫存器 287

13.1.3 定時器/計數器的初始化 290

13.2 定時器/計數器工作模式0及其

程式設計 290

13.3 定時器/計數器工作模式1及其

程式設計 292

13.4 定時器/計數器工作模式2及其

程式設計 294

13.5 定時器/計數器工作模式3及其

程式設計 295

13.6 綜合練習 297

13.7 小結 299

13.8 習題 299

第14章 51系列單片機的中斷系統

( 教學視頻:62分鐘) 302

14.1 中斷系統概述 302

14.1.1 中斷概述 302

14.1.2 中斷的典型概念 303

14.2 單片機中斷的類型 304

14.2.1 外部中斷源 304

14.2.2 定時中斷源 304

14.2.3 串列中斷源 304

14.3 中斷系統的程式訪問 305

14.3.1 中斷標誌控制暫存器

TCON 305

14.3.2 中斷標誌控制暫存器

SCON 306

14.3.3 中斷允許標誌暫存器IE 306

14.3.4 中斷優先權標誌暫存器IP 307

14.4 中斷的回響過程 308

14.4.1 中斷識別 308

14.4.2 中斷回響 309

14.4.3 中斷處理 310

14.4.4 中斷撤離 310

14.5 外部中斷源及其程式設計 310

14.6 定時中斷源及其程式設計 311

14.7 串列中斷源及其程式設計 312

14.8 綜合練習 313

14.9 小結 314

14.10 習題 315

第15章 51系列單片機的串列接口

( 教學視頻:66分鐘) 317

15.1 串列通信概述 317

15.1.1 串列通信與並行通信 317

15.1.2 異步串列通信與同步

串列通信 318

15.1.3 異步串列通信的波特率 319

15.1.4 串列通信的數據傳送方式 319

15.2 51系列單片機的串列接口 320

15.2.1 單片機串列接口的內部結構 320

15.2.2 串列接口控制暫存器SCON 321

15.2.3 波特率選擇暫存器PCON 323

15.2.4 波特率的程式設計 324

15.3 串列接口工作模式0及其程式

設計 326

15.4 串列接口工作模式1及其程式

設計 327

15.5 串列接口工作模式2及其程式

設計 329

15.6 串列接口工作模式3及其程式

設計 330

15.7 綜合練習 331

15.8 小結 332

15.9 習題 332

第16章 51系列單片機擴展鍵盤

( 教學視頻:41分鐘) 335

16.1 鍵盤的種類 335

16.1.1 直接式按鍵鍵盤 335

16.1.2 陣列式按鍵鍵盤 336

16.2 鍵盤的基本原理 337

16.2.1 按鍵編碼 337

16.2.2 按鍵確認 337

16.2.3 按鍵消抖 338

16.2.4 讀取鍵值 340

16.2.5 避免重複回響 340

16.2.6 多按鍵回響 340

16.3 鍵盤程式設計 340

16.3.1 直接式按鍵鍵盤的查詢方式 340

16.3.2 陣列式按鍵鍵盤的掃描方式 341

16.3.3 陣列式按鍵鍵盤的線反轉

方式 344

16.3.4 陣列式按鍵鍵盤的中斷

方式 346

16.4 單片機擴展鍵盤實例 348

16.4.1 電路原理圖 348

16.4.2 程式設計 349

16.5 綜合練習 351

16.6 小結 352

16.7 習題 353

第17章 51系列單片機的顯示接口

( 教學視頻:45分鐘) 354

17.1 LED數碼管的基本原理 354

17.2 單個LED數碼管的直接驅動

實例 356

17.3 靜態驅動多個LED數碼管

實例 358

17.4 使用LED驅動器驅動多個LED

數碼管實例 360

17.4.1 LED驅動器功能簡介 360

17.4.2 LED驅動器的數據傳輸

方式 361

17.4.3 LED驅動器的控制暫存器 361

17.4.4 使用LED驅動器的電路圖 364

17.4.5 程式設計 365

17.5 綜合練習 368

17.6 小結 368

17.7 習題 369

第18章 51系列單片機擴展I2C接口

( 教學視頻:46分鐘) 371

18.1 I2C匯流排的工作原理 371

18.2 I2C匯流排的定址方式 372

18.3 I2C匯流排的協定 372

18.3.1 起始信號 373

18.3.2 終止信號 373

18.3.3 應答信號 373

18.3.4 非應答信號 373

18.3.5 匯流排數據位 373

18.3.6 數據寫入 374

18.3.7 數據讀出 374

18.4 I2C匯流排接口的EEPROM 375

18.5 I2C匯流排擴展實例——硬體

加密 375

18.6 綜合練習 379

18.7 小結 382

18.8 習題 382

第19章 51系列單片機與PC的

串列通信

( 教學視頻:44分鐘) 384

19.1 串列通信接口概述 384

19.1.1 RS-232C串列通信接口

標準 384

19.1.2 RS-449串列通信接口標準 387

19.1.3 RS-423A串列通信接口

標準 388

19.1.4 RS-422A串列通信接口

標準 388

19.1.5 RS-485串列通信接口標準 389

19.1.6 20mA電流環串列通信

接口 389

19.2 串列通信接口晶片 390

19.3 單片機與PC的串列通信實例 391

19.3.1 電路圖 391

19.3.2 程式設計 392

19.4 綜合練習 394

19.5 小結 396

19.6 習題 396

第20章 51系列單片機的多任務

作業系統

( 教學視頻:62分鐘) 398

20.1 RTX-51實時多任務作業系統

簡介 398

20.1.1 多任務系統簡介 398

20.1.2 RTX-51實時多任務系統 399

20.1.3 RTX-51實時多任務系統

特點 399

20.2 RTX-51 Tiny的任務管理 400

20.3 RTX-51 Tiny的系統函式 401

20.3.1 信號傳送函式isr_send_

signal 401

20.3.2 信號標誌清除函式

os_clear_signal 402

20.3.3 任務啟動函式os_create_

task 402

20.3.4 任務刪除函式os_delete_

task 403

20.3.5 當前任務號函式

os_running_task_id 403

20.3.6 信號傳送函式

os_send_signal 403

20.3.7 等待函式os_wait 404

20.3.8 等待函式os_wait1 405

20.3.9 等待函式os_wait2 405

20.4 RTX-51與單任務程式的比較 406

20.4.1 簡單的單任務C51程式 406

20.4.2 多任務循環C51程式 407

20.4.3 多任務RTX-51程式 408

20.5 RTX-51循環任務調度程式

設計 409

20.6 RTX-51事件任務調度程式

設計 410

20.7 RTX-51信號任務調度程式

設計 411

20.8 RTX-51優先權及搶先任務

切換程式設計 412

20.9 綜合練習 414

20.10 小結 414

20.11 習題 415

相關詞條

熱門詞條

聯絡我們