內容簡介
單片機C51語言是目前最流行的單片機程序設計語言。本書由淺入深,循序漸進地講解瞭C51語言的方方麵麵。本書知識點覆蓋全麵、結構安排緊湊、講解詳細、言簡意賅、通俗易懂、實例豐富。內容包括51係列單片機開發環境和流程、程序設計基礎以及編程指南,並給齣瞭一些常用的典型案例。全書分為四篇,共21章,全麵詳細地講述瞭單片機的程序設計基礎、編程指南及應用案例。首先介紹瞭51係列單片機的基本結構以及單片機的開發概述,其次詳細介紹瞭單片機程序設計的C51語言,然後結閤單片機的硬件資源細緻講解瞭如何應用C51語言進行編程操作,最後結閤實際應用,重點分析瞭在各個領域中常用到的一些典型案例,使讀者更加融會貫通地掌握C51語言,以供讀者在學習和工作中進行參考。在第21章中還介紹瞭部分常見的麵試題及解答,方便讀者做好入職前的準備工作。
目錄
目 錄
前言
第一篇 單片機C51概述
第1章 單片機開發概述 1
1.1 單片機介紹 1
1.1.1 單片機簡介 1
1.1.2 單片機的主要組成部分 2
1.1.3 單片機引腳及功能 3
1.1.4 單片機的應用領域 4
1.2 單片機開發流程 5
1.2.1 係統分析 5
1.2.2 單片機選型 5
1.2.3 程序設計 8
1.2.4 仿真測試 9
1.2.5 程序下載 9
1.3 單片機開發語言概述 9
1.3.1 單片機匯編語言 9
1.3.2 單片機C51語言 10
1.4 小結 11
1.5 習題與上機實踐 11
第2章 構建C51集成開發環境 12
2.1 51係列單片機的最小硬件係統 12
2.1.1 時鍾振蕩電路 13
2.1.2 單片機的復位電路 14
2.2 Keil μ Vision3集成開發環境 15
2.2.1 Keil μ Vision3簡介 16
2.2.2 Keil μ Vision3安裝 16
2.2.3 Keil μ Vision3界麵概覽 17
2.2.4 Keil μ Vision3的各種常用窗口 18
2.3 Keil μ Vision3中C51的開發流程 22
2.3.1 創建項目 22
2.3.2 創建源文件 22
2.3.3 編譯項目 24
2.3.4 仿真調試 24
2.3.5 程序下載 25
2.4 小結 25
2.5 習題與上機實踐 26
第二篇 C51語言程序設計指南
第3章 C51語言程序設計基礎 27
3.1 C51程序的基本結構 27
3.2 C51編程規範及注意事項 28
3.2.1 注釋 28
3.2.2 命名 29
3.2.3 格式 29
3.3 C51的標識符與關鍵字 30
3.3.1 標識符 30
3.3.2 關鍵字 30
3.4 C51的變量類型 32
3.4.1 C51的數據類型 32
3.4.2 整型變量 33
3.4.3 浮點型變量 34
3.4.4 字符型變量 35
3.4.5 指針型變量 36
3.4.6 無值型變量 37
3.5 C51的常量類型 37
3.5.1 整型常量 37
3.5.2 浮點型常量 38
3.5.3 字符型常量 39
3.5.4 轉義字符 40
3.6 變量作用域 40
3.6.1 變量作用域的基本規則 41
3.6.2 自動變量 42
3.6.3 全局變量 43
3.6.4 靜態變量 44
3.6.5 寄存器變量 45
3.7 分隔符與const修飾符 45
3.7.1 C51分隔符 45
3.7.2 const修飾符 45
3.8 C51的運算符 47
3.8.1 算術運算符 47
3.8.2 邏輯運算符 49
3.8.3 關係運算符 50
3.8.4 位運算符 50
3.8.5 “,”運算符 53
3.8.6 “?”運算符 54
3.8.7 “sizeof”運算符 54
3.8.8 地址操作運算符 55
3.8.9 聯閤操作運算符 55
3.8.10 強製類型轉換運算符 56
3.8.11 運算符優先級和結閤性 57
3.9 C51的錶達式 58
3.9.1 算術錶達式 58
3.9.2 賦值錶達式 59
3.9.3 逗號錶達式 60
3.9.4 關係錶達式 61
3.9.5 邏輯錶達式 62
3.10 小結 63
3.11 上機實踐 63
第4章 C51語句和流程 65
4.1 C51語句 65
4.1.1 變量聲明語句 65
4.1.2 錶達式語句 66
4.1.3 復閤語句 66
4.1.4 循環語句 67
4.1.5 條件語句 70
4.1.6 開關語句 74
4.1.7 程序跳轉語句 76
4.1.8 函數調用語句 78
4.1.9 函數返迴語句 79
4.1.10 空語句 80
4.2 C51的流程控製結構及程序示例 80
4.2.1 順序結構 80
4.2.2 選擇結構 80
4.2.3 循環結構 81
4.2.4 流程控製結構程序示例 81
4.3 小結 82
4.4 上機實踐 83
第5章 C51的數據結構 85
5.1 C51的數組 85
5.1.1 數組定義及數組元素 85
5.1.2 一維數組 87
5.1.3 一維字符串數組 90
5.1.4 二維數組 92
5.1.5 二維字符串數組 95
5.1.6 多維數組 96
5.2 C51的指針 96
5.2.1 指針及相關概念 97
5.2.2 指針變量的定義及賦值 97
5.2.3 取址運算符和取值運算符 100
5.2.4 指針變量的運算 102
5.2.5 C51的字符指針 103
5.2.6 C51的數組指針 104
5.2.7 C51的指針數組 109
5.3 C51的結構 110
5.3.1 結構的聲明 110
5.3.2 結構變量的聲明 111
5.3.3 結構變量的初始化 113
5.3.4 結構變量的使用 114
5.3.5 C51的結構數組 115
5.3.6 C51的結構指針 116
5.3.7 C51的嵌套式結構 119
5.3.8 C51的位結構 121
5.4 C51的聯閤 122
5.4.1 聯閤的聲明和使用 122
5.4.2 結構和聯閤的區彆 126
5.5 C51的枚舉 127
5.5.1 枚舉和枚舉變量的聲明 128
5.5.2 枚舉變量的賦值和使用 129
5.6 C51的位域 131
5.6.1 位域和位域變量的聲明 131
5.6.2 位域變量的使用 133
5.7 C51的類型聲明 134
5.7.1 類型聲明的定義 134
5.7.2 類型聲明的使用 135
5.8 小結 135
5.9 上機實踐 135
第6章 C51的函數 137
6.1 函數 137
6.1.1 函數的概述 137
6.1.2 函數的分類 138
6.1.3 函數的定義 139
6.1.4 函數的參數 141
6.1.5 函數的返迴值 146
6.2 函數的作用域 146
6.2.1 函數的作用範圍 146
6.2.2 函數代碼的作用域 147
6.2.3 函數變量的作用域 147
6.3 函數的調用 148
6.3.1 賦值調用 149
6.3.2 引用調用 149
6.3.3 遞歸調用 150
6.3.4 嵌套調用 151
6.4 C51的main函數 153
6.4.1 無參main函數 153
6.4.2 有參main函數 153
6.5 C51的庫函數 154
6.5.1 I/O函數庫 154
6.5.2 標準函數庫 166
6.5.3 字符函數庫 173
6.5.4 字符串函數庫 184
6.5.5 內部函數庫 199
6.5.6 數學函數庫 201
6.5.7 絕對地址訪問函數庫 207
6.5.8 變量參數錶函數庫 210
6.5.9 全程跳轉函數庫 211
6.5.10 偏移量函數庫 212
6.6 小結 213
6.7 上機實踐 213
第7章 C51的存儲結構 215
7.1 單片機的存儲器結構 215
7.1.1 51係列單片機的存儲區域 215
7.1.2 片內RAM的存儲器結構 216
7.2 C51的存儲類型 216
7.2.1 code存儲類型 217
7.2.2 data存儲類型 217
7.2.3 bdata存儲類型 218
7.2.4 idata存儲類型 218
7.2.5 pdata存儲類型 219
7.2.6 xdata存儲類型 219
7.3 C51的擴展數據類型 219
7.3.1 sfr和sfr16型變量 220
7.3.2 sbit型變量 220
7.3.3 bit型變量 221
7.3.4 51單片機寄存器的定義 221
7.4 C51變量的存儲模式 223
7.4.1 Small模式 224
7.4.2 Compact模式 224
7.4.3 Large模式 224
7.5 C51的存儲器指針 225
7.5.1 一般指針 225
7.5.2 存儲器指針 226
7.6 小結 228
7.7 上機實踐 228
第8章 C51的預處理命令和用戶配置文件 229
8.1 C51的預處理命令概述 229
8.2 文件包含指令 230
8.2.1 #include命令 230
8.2.2 C51常用的頭文件 231
8.3 宏定義指令 232
8.3.1 #define命令 232
8.3.2 #undef命令 234
8.4 條件編譯指令 235
8.4.1 #if、#else和#endif命令 235
8.4.2 #elif命令 236
8.4.3 #ifdef、#ifndef命令 237
8.5 其他編譯指令 238
8.5.1 #line命令 238
8.5.2 #error命令 238
8.5.3 #pragma命令 239
8.6 C51的用戶配置文件 240
8.6.1 C51的啓動代碼詳解 240
8.6.2 C51的變量初始化文件 246
8.6.3 C51的基本I/O函數文件 246
8.6.4 C51的分組配置文件 246
8.7 小結 247
8.8 上機實踐 247
第三篇 C51單片機編程指南
第9章 C51定時器/計數器程序設計 249
9.1 定時器/計數器簡介 249
9.1.1 定時器/計數器的結構 249
9.1.2 方式控製寄存器TMOD 250
9.1.3 中斷控製寄存器TCON 251
9.1.4 定時器/計數器的初值 253
9.1.5 定時器/計數器的初始化 253
9.2 定時器/計數器工作模式0的C51程序設計 253
9.2.1 定時器/計數器工作模式0 254
9.2.2 定時器/計數器模式0的程序設計 254
9.3 定時器/計數器工作模式1的C51程序設計 255
9.3.1 定時器/計數器工作模式1 255
9.3.2 定時器/計數器模式1的程序設計 256
9.4 定時器/計數器工作模式2的C51程序設計 257
9.4.1 定時器/計數器工作模式2 257
9.4.2 定時器/計數器模式2的程序設計 258
9.5 定時器/計數器工作模式3的C51程序設計 259
9.5.1 定時器/計數器工作模式3 259
9.5.2 定時器/計數器模式3的程序設計 259
9.6 小結 261
9.7 上機實踐 261
第10章 C51中斷程序設計 263
10.1 單片機的中斷係統 263
10.1.1 單片機中斷的典型概念 263
10.1.2 單片機的中斷類型 264
10.1.3 中斷請求標誌及其C51訪問 265
10.1.4 中斷允許標誌及其C51訪問 268
10.1.5 中斷優先級標誌及其C51訪問 269
10.1.6 中斷的C51處理過程 269
10.2 外部中斷源的C51程序設計 273
10.3 定時中斷源的C51程序設計 274
10.4 串行中斷源的C51程序設計 275
10.5 小結 276
10.6 上機實踐 276
第11章 C51串行接口程序設計 277
11.1 51係列單片機的串行接口 277
11.1.1 單片機串行通信概述 277
11.1.2 單片機串行接口的內部結構 278
11.1.3 串行接口控製寄存器SCON 279
11.1.4 特殊功能寄存器PCON 282
11.2 串行口工作模式0的C51程序設計 282
11.2.1 模式0的波特率 283
11.2.2 模式0的數據發送及C51程序設計 283
11.2.3 模式0的數據接收及C51程序設計 285
11.3 串行口工作模式1的C51程序設計 287
11.3.1 模式1的波特率 287
11.3.2 模式1的數據發送及C51程序設計 289
11.3.3 模式1的數據接收及C51程序設計 291
11.4 串行口工作模式2的C51程序設計 293
11.4.1 模式2的波特率 293
11.4.2 模式2的數據發送及C51程序設計 293
11.4.3 模式2的數據接收及C51程序設計 295
11.5 串行口工作模式3的C51程序設計 297
11.5.1 模式3的波特率 297
11.5.2 模式3的數據發送及C51程序設計 299
11.5.3 模式3的數據接收及C51程序設計 300
11.6 小結 303
11.7 上機實踐 303
第12章 C51下的RTX-51實時多任務操作係統 304
12.1 RTX-51實時多任務操作係統簡介 304
12.1.1 單任務程序與多任務程序的比較 304
12.1.2 RTX-51實時多任務操作係統種類 306
12.2 RTX-51的係統函數 308
12.2.1 中斷調用的發送信號函數 308
12.2.2 清除信號標誌函數 308
12.2.3 啓動任務函數 309
12.2.4 刪除任務函數 309
12.2.5 獲取當前任務號函數 310
12.2.6 任務調用的發送信號函數 310
12.2.7 等待函數 311
12.3 RTX-51的任務調度 313
12.3.1 循環任務調度 314
12.3.2 事件任務調度 315
12.3.3 信號任務調度 316
12.3.4 優先級及搶先任務切換 316
12.3.5 RTX-51的主要概念和特性 318
12.4 RTX-51 Tiny的任務管理 318
12.4.1 RTX-51 Tiny的任務狀態 319
12.4.2 RTX-51 Tiny的事件 319
12.4.3 RTX-51 Tiny的任務切換 319
12.5 RTX-51 Tiny的係統配置 320
12.5.1 RTX-51 Tiny係統配置文件 320
12.5.2 RTX-51 Tiny係統參數 322
12.6 RTX-51 Tiny的要求及注意事項 323
12.6.1 RTX-51 Tiny的要求及技術參數 323
12.6.2 RTX-51 Tiny的注意事項 324
12.7 RTX-51 FULL實時多任務操作係統簡介 325
12.7.1 RTX-51 FULL函數一覽 325
12.7.2 RTX-51的技術參數 327
12.8 小結 328
12.9 上機實踐 328
第13章 Keil μ Vision3的調試和仿真 329
13.1 Keil μ Vision3的程序調試 329
13.1.1 Keil μ Vision3的程序調試模式 329
13.1.2 斷點 331
13.1.3 性能分析器 332
13.1.4 代碼覆蓋分析器 334
13.1.5 調試命令 335
13.2 係統資源仿真 336
13.2.1 並行I/O端口仿真 337
13.2.2 寄存器仿真 338
13.2.3 中斷仿真 341
13.2.4 串行接口仿真 344
13.2.5 定時器/計數器仿真 348
13.2.6 看門狗定時器的仿真 354
13.2.7 低功耗仿真 356
13.3 小結 357
13.4 上機實踐 357
第四篇 C51程序設計典型案例
第14章 C51矩陣式鍵盤程序設計 359
14.1 鍵盤接口概述 359
14.1.1 獨立式按鍵和矩陣式鍵盤 359
14.1.2 鍵盤設計注意事項 360
14.2 矩陣式鍵盤C51程序設計 361
14.2.1 掃描法及C51程序設計 361
14.2.2 綫反轉法及C51程序設計 364
14.2.3 中斷法及C51程序設計 365
14.3 C51矩陣式鍵盤設計實例 367
14.3.1 電路圖 367
14.3.2 程序設計 368
14.4 小結 371
14.5 上機實踐 371
第15章 C51液晶顯示模塊 372
15.1 液晶顯示模塊概述 372
15.1.1 液晶顯示模塊的分類 372
15.1.2 液晶顯示模塊的特點 373
15.2 液晶顯示控製驅動器 374
15.2.1 液晶顯示控製驅動器概述 374
15.2.2 液晶顯示控製驅動器功能說明 374
15.3 液晶顯示控製器指令集 378
15.3.1 基本指令集 378
15.3.2 擴充指令集 380
15.3.3 控製器指令操作方式 382
15.4 點陣圖形型液晶操作子函數 384
15.4.1 指令操作子函數 384
15.4.2 數據操作子函數 384
15.4.3 初始化子函數 385
15.4.4 清屏子函數 386
15.4.5 漢字顯示子函數 386
15.4.6 圖形顯示子函數 387
15.5 液晶漢字顯示實例 388
15.5.1 電路設計 388
15.5.2 程序設計 390
15.6 液晶圖形顯示實例 392
15.6.1 圖形數組的提取 392
15.6.2
零基礎學單片機C語言程序設計(第3版) 下載 mobi epub pdf txt 電子書