單片機語言C51程式設計

單片機語言C51程式設計

《單片機語言C51程式設計》是2005年10月人民郵電出版社出版的圖書,趙文博、劉文濤編著。

基本介紹

  • 書名:單片機語言C51程式設計
  • 作者:趙文博、劉文濤
  • 出版社:人民郵電出版社
  • 出版時間:2005年10月
  • ISBN:9787115138194
內容簡介,圖書目錄,

內容簡介

本書是《單片機語言C51典型套用設計》的配套圖書。本書首先詳細介紹了單片機C51語言的基礎知識,包括C51程式設計的基本語法、函式、數據結構等內容;然後介紹了單片機調試軟體Keil C51的套用及其調試、仿真技巧;最後本書給出大量的套用實例,通過這些實例的學習,讀者可以很容易掌握51單片機的程式設計。
本書適合進行51單片機開發的技術人員以及高等學校相關專業師生閱讀和參考。
本書的實例原始碼,附在隨書光碟中。

圖書目錄

第1章 C51程式設計概述 1
1.1 C51程式特點 1
1.2 Keil C51 2
1.2.1 安裝Keil C51軟體 2
1.2.2 使用Keil C51軟體 4
1.2.3 第1個程式“Hello C51” 7
1.3 C51編程規範以及本書約定 7
1.3.1 注釋 8
1.3.2 命名 8
1.3.3 風格 9
1.3.4 本書約定 9
第2章 C51程式設計基礎 11
2.1 C51的標識符 11
2.1.1 C51的標識符 11
2.1.2 C51的關鍵字 12
2.1.3 與ANSI C的差異 14
2.2 數據類型 15
2.2.1 變數與常量 16
2.2.2 整型(int) 16
2.2.3 浮點型(float) 18
2.2.4 字元型(char) 18
2.2.5 指針型(*) 20
2.2.6 無值型(void) 20
2.3 數據類型轉換 21
2.4 變數的作用域 21
2.4.1 塊結構 21
2.4.2 自動型變數 21
2.4.3 外部型變數 22
2.4.4 靜態型變數 23
2.4.5 暫存器型變數 24
2.5 C51的分隔設定 24
2.6 運算符 24
2.6.1 運算符 24
2.6.2 運算符的優先權 31
2.7 表達式 32
2.7.1 算術表達式 32
2.7.2 賦值表達式 32
2.7.3 逗號運算符與逗號表達式 33
2.7.4 關係表達式 34
2.7.5 邏輯表達式 34
第3章 C51語句 36
3.1 說明語句 36
3.2 表達式語句 36
3.3 複合語句 37
3.4 條件語句 37
3.5 開關與跳轉語句 41
3.5.1 開關語句 41
3.5.2 跳轉語句 43
3.6 循環語句 45
3.6.1 for循環 45
3.6.2 while循環 47
3.6.3 do-while 循環 49
3.7 函式調用語句 50
3.8 空語句 51
3.9 C51語句的流程與控制 51
3.9.1 順序結構(sequence) 51
3.9.2 選擇結構(selection) 52
3.9.3 循環結構(repetition) 52
3.9.4 限制使用GOTO語句 53
3.9.5 逐步求精的設計方法 55
第4章 C51函式 57
4.1 函式的定義 57
4.1.1 函式參數和堆疊 58
4.1.2 用暫存器傳遞參數 58
4.2 main函式 59
4.3 函式的調用和返回 60
4.3.1 函式的簡單調用 60
4.3.2 函式參數傳遞 60
4.3.3 函式的遞歸調用 64
4.3.4 重入函式 65
4.4 函式作用範圍 66
4.5 函式的變數作用域 66
4.6 C51中斷函式 67
4.6.1 中斷函式的定義 67
4.6.2 內部中斷函式的使用 68
4.6.3 外部中斷函式的使用 69
4.6.4 擴展外部中斷函式的使用 69
4.6.5 使用中斷函式要注意的問題 71
4.7 C51庫函式 71
4.8 實時任務函式 72
4.9 Keil C51常用功能模組使用說明 72
4.9.1 時鐘模組 72
4.9.2 通信模組 75
4.9.3 鍵盤掃描模組 78
第5章 C51數據結構 80
5.1 C51結構 80
5.1.1 結構說明和結構變數定義 80
5.1.2 結構變數的使用 81
5.1.3 結構變數的初始化 82
5.2 數組 84
5.2.1 一維數組 84
5.2.2 一維數組初始化 87
5.2.3 一維字元串數組 89
5.2.4 二維數組 90
5.2.5 結構數組 94
5.3 聯合與枚舉 94
5.3.1 聯合(union) 94
5.3.2 枚舉(enum) 96
5.4 類型說明 98
5.5 指針 99
5.5.1 指針和地址 100
5.5.2 地址運算 104
5.5.3 指向數組元素的指針 104
5.5.4 指向二維數組的指針 105
5.5.5 指向一個由n個元素所組成的數組指針 106
5.5.6 數組與指針的關係 107
5.5.7 字元指針 109
5.5.8 指針數組 110
5.5.9 避免使用浮點指針 111
第6章 C51存儲結構 113
6.1 8051存儲單元與C51存儲類型 113
6.1.1 8051存儲單元 113
6.1.2 特殊功能暫存器 117
6.1.3 存儲器模式 117
6.2 動態存儲分配 119
6.3 位操作與欄位結構 122
6.4 絕對地址定位 123
6.5 基於C51存儲器的指針 126
6.5.1 通用指針 126
6.5.2 指定存儲器指針 127
6.5.3 絕對指針 127
6.5.4 指針轉化 129
6.6 結構的記憶體分配 131
6.6.1 直接由結構定義一個結構指針變數實現記憶體分配 131
6.6.2 用typedef定義新結構類型 132
6.7 Keil C51程式開機執行代碼 132
第7章 預處理 133
7.1 預處理命令 133
7.1.1 檔案包含指令 134
7.1.2 宏定義指令#define 134
7.1.3 #if、#else、#endif指令 136
7.1.4 #undef指令 137
7.1.5 const修飾符 137
7.2 C51編譯的控制參數 138
7.3 C51頭檔案 140
7.3.1 C51常用的頭檔案 140
7.3.2 REG51.H 141
第8章 C51編譯 143
8.1 Keil的編譯環境mVision3 143
8.1.1 mVision3視窗與選單 145
8.1.2 編譯檢查工具PC-Lint 152
8.1.3 開發工具選項 152
8.1.4 調試工具選項 157
8.2 編譯過程 158
8.2.1 A51宏彙編器 159
8.2.2 映像檔案 160
8.2.3 LIB51庫管理器 161
8.2.4 OC51分段目標檔案轉換器 161
8.2.5 OH51目標代碼到HEX檔案的轉換器 161
8.3 Keil C51編譯器的控制指令 161
8.3.1 源檔案控制類 162
8.3.2 目標檔案(Object)控制類 162
8.3.3 列表檔案(listing)控制類 162
8.4 代碼最佳化 162
8.4.1 代碼最佳化 162
8.4.2 對8051的特殊最佳化 163
8.4.3 代碼生成選項 163
8.5 混合編譯 163
8.5.1 項目目標和檔案組 163
8.5.2 瀏覽項目視窗中的檔案和檔案組的屬性 164
8.5.3 用戶上電初始化程式STARTUP.A51簡介 164
8.5.4 與彙編語言的接口 167
8.5.5 和PL/M-51的接口 173
8.6 mVision3其他功能 174
8.6.1 多個檔案中查找 174
8.6.2 資源瀏覽器 174
8.7 出錯信息 175
第9章 Keil C51的調試與仿真 176
9.1 mVision3調試器的幾項功能 176
9.1.1 執行代碼 176
9.1.2 完備的分析器 177
9.1.3 代碼覆蓋分析 177
9.2 斷點 178
9.2.1 簡單斷點 178
9.2.2 複雜斷點 179
9.2.3 觀察斷點 179
9.3 仿真 180
9.3.1 A/D仿真 180
9.3.2 D/A仿真 182
9.3.3 FLASH/EEPROM仿真 183
9.3.4 中斷仿真 187
9.3.5 可程式計數器陣列PCA/CAPCOM仿真 188
9.3.6 I/O連線埠輸入/輸出仿真 188
9.3.7 低功耗模式仿真 189
9.3.8 串列口的輸入/輸出仿真 189
9.3.9 定時器/計數器仿真 190
9.3.10 看門狗仿真 191
9.4 mVision3調試命令 192
9.4.1 存儲器命令 192
9.4.2 程式命令 192
9.4.3 斷點命令 193
9.4.4 通用命令 193
9.5 RTX-51實時作業系統 193
9.5.1 概述 194
9.5.2 RTX-51 Tiny的例程TRAFFIC.C 198
第10章 高級編程技術 208
10.1 定製檔案 208
10.1.1 STARTUP.A51 208
10.1.2 INIT.A51 209
10.1.3 XBANKING.A51 210
10.1.4 基本的I/O函式 211
10.1.5 存儲區分配函式 211
10.2 最佳化器 212
10.2.1 8051特定最佳化 212
10.2.2 生成代碼選項 212
10.3 段名轉換 213
10.3.1 數據目標 213
10.3.2 程式目標 214
10.4 8051派生系列 215
10.4.1 模擬器件微轉換器B2系列 215
10.4.2 Atmel 89x8252和變種 215
10.4.3 Dallas 80C320、420、520和530 216
10.4.4 Dallas 80C390、80C400、5240和變種 216
10.4.5 算術累加器 217
10.4.6 Infineon C517、C517A、C509和變種 217
10.4.7 數據指針 217
10.4.8 高速運算 217
10.4.9 庫函式 217
10.4.10 Philips 8xC750、8xC751和8xC752 218
10.4.11 Philips 80C51MX結構 218
10.4.12 Philips 和Atmel WM 雙DPTR 218
第11章 C51資源檔案 220
11.1 固有程式 220
11.1.1 庫檔案 220
11.1.2 標準類型 221
11.1.3 絕對存儲區訪問宏 221
11.2 程式分類 223
11.2.1 緩衝區操作 223
11.2.2 字元轉換和分類 224
11.2.3 數據轉換 224
11.2.4 數學程式 225
11.2.5 存儲區分配程式 226
11.2.6 流輸入和輸出程式 226
11.2.7 字元串操作程式 227
11.2.8 可變長度參數列表程式 228
11.2.9 其他程式 229
11.3 包含檔案 229
11.3.1 8051特殊功能暫存器包含檔案 229
11.3.2 80C517.H 229
11.4 參考 231
第12章 使用Keil C51編程實例 288
12.1 鍵盤掃描程式 288
12.1.1 實例概述 288
12.1.2 程式框圖及代碼 288
12.1.3 用Keil C51編譯與調試 294
12.2 P1口控制直流電動機實例 297
12.2.1 實例概述 298
12.2.2 程式框圖及代碼 298
12.2.3 用Keil C51編譯與調試 300
12.3 A/D轉換實例 303
12.3.1 實例概述 303
12.3.2 程式框圖及代碼 303
12.3.3 用Keil C51編譯與調試 309
12.4 LCD顯示實例 311
12.4.1 實例概述 311
12.4.2 程式框圖及代碼 312
12.4.3 用Keil C51編譯與調試 322
12.5 主從機串口通信實例 325
12.5.1 實例概述 325
12.5.2 程式框圖及代碼 325
12.5.3 用Keil C51編譯與調試 333
附錄A 致命錯誤信息 336
附錄B 語法和語義錯誤信息 339
附錄C 警告信息 351
附錄D L51連線定位器使用錯誤提示 354
附錄E mVision3調試命令 362

相關詞條

熱門詞條

聯絡我們