在本書中,讀者將學習C語言的變數和常量、運算符和表達式、控制語句、指針和數組、存儲器類型、預處理指令、實時方法等等。
本書特點強調嵌入式系統編程,包括了大量的示例,本書通過這些示例來引導讀者入門,進而學習高級嵌入式C編程技術。本書第4章完整地介紹了CodeVision AVR C Compiler,該章提供了關於IDE安裝與操作以及Code Wizard Code Generator的使用的一個清晰的、循序漸進的指導。
基本介紹
- 書名:嵌入式C編程與Atmel AVR
- 作者:李萬紅
- ISBN:9787302069553
- 定價:54元
- 出版社:清華大學出版社
- 出版時間:2003.09.01
書籍信息,內容簡介,圖書目錄,
書籍信息
作者:李萬紅
定價:54元
印次:1-1
ISBN:9787302069553
出版日期:2003.09.01
印刷日期:2003.08.28
定價:54元
印次:1-1
ISBN:9787302069553
出版日期:2003.09.01
印刷日期:2003.08.28
內容簡介
歡迎進入嵌入式編程和微控制器套用的世界!使用日益流行且價格適宜的Atmel AVR入式控制器作為學習平台,本書是目前可以獲得的最佳書籍之一。對於初學者,本書將會是極好的選擇。隨著對Atmel AVR RISC處理器的介紹,讀者會立即進入嵌入式C語言教程之中。
圖書目錄
第1章 嵌入式C語言導論 1
1.1 本章目標 1
1.2 引言 1
1.3 基本概念 1
1.4 變數和常量 4
1.4.1 變數類型 4
1.4.2 變數的作用域 4
1.4.3 常量 5
1.4.4 枚舉和定義 7
1.4.5 存儲類型 8
1.4.6 類型轉換 8
1.5 輸入/輸出操作 9
1.6 運算符和表達式 10
1.6.1 賦值運算符和算術運算符 10
1.6.2 邏輯運算符與關係運算符 13
1.6.3 自增運算符、自減運算符和複合賦值運算符 14
1.6.4 條件表達式 15
1.6.5 運算符優先權 16
1.7 控制語句 17
1.7.1 while循環 17
1.7.2 do/while循環 18
1.7.3 for循環 19
1.7.4 if/else語句 20
1.7.5 switch/case語句 23
1.7.6 break、continue和goto語句 25
1.8 函式 29
1.8.1 原型和函式組織 30
1.8.2 函式返回值 32
1.8.3 遞歸函式 33
1.9 指針和數組 37
1.9.1 指針 37
1.9.2 數組 40
1.9.3 多維數組 42
1.9.4 指向函式的指針 44
1.10 結構與共用體 48
1.10.1 結構 48
1.10.2 結構數組 50
1.10.3 指向結構的指針 51
1.10.4 共用體 52
1.10.5 typedef運算符 54
1.10.6 位和位域 55
1.10.7 sizeof運算符 56
1.11 存儲器類型 57
1.11.1 常量和變數 57
1.11.2 指針 59
1.11.3 暫存器變數 59
1.12 實時方法 62
1.12.1 使用中斷 62
1.12.2 狀態機 65
1.13 本章小結 71
1.14 練習 71
1.15 上機實習 73
第2章 Atmel Risc處理器 75
2.1 本章目標 75
2.2 引言 75
2.3 體系結構概述 75
2.4 存儲器 76
2.4.1 FLASH代碼存儲器 77
2.4.2 數據存儲器 77
2.4.3 EEPROM存儲器 81
2.5 復位和中斷功能 82
2.5.1 中斷 83
2.5.2 復位 86
2.6 並行I/O連線埠 88
2.7 計時器/計數器 93
2.7.1 計時器/計數器預定標器和輸入選擇器 93
2.7.2 Timer 0 94
2.7.3 Timer 1 97
2.7.4 Timer 2 108
2.8 使用UART進行串列通信 112
2.9 模擬接口 118
2.9.1 模數轉換背景知識 118
2.9.2 模數轉換器外設 119
2.9.3 模擬比較器 122
2.10 利用SPI進行串列通信 127
2.11 AVR RISC彙編語言指令集 130
2.12 本章小結 132
2.13 練習 136
2.14 上機實習 137
第3章 標準I/O和預處理函式 139
3.1 本章目標 139
3.2 引言 139
3.3 字元輸入/輸出函式getchar()和putchar() 139
3.4 標準輸出函式 145
3.4.1 輸出字元串函式puts() 145
3.4.2 從FLASH輸出字元串函式PUTSF() 146
3.4.3 格式列印函式printf() 147
3.4.4 字元串格式列印函式sprintf() 149
3.5 標準輸入函式 150
3.5.1 獲得字元串函式gets() 150
3.5.2 格式掃描函式scanf() 151
3.5.3 字元串格式掃描函式sscanf() 152
3.6 預處理指令 153
3.6.1 #include指令 153
3.6.2 #define指令 154
3.6.3 #ifdef,#ifndef,#else和#endif指令 156
3.6.4 #pragma指令 162
3.6.5 其他宏和指令 165
3.7 本章小結 166
3.8 練習 166
3.9 上機實習 167
第4章 CodeVisionAVR C編譯器和集成開發環境 168
4.1 本章目標 168
4.2 引言 168
4.3 集成開發(IDE)環境操作 169
4.3.1 項目 169
4.3.2 源檔案 171
4.3.3 編輯檔案 175
4.3.4 列印檔案 176
4.3.5 檔案導航器 176
4.4 C編譯器選項 177
4.4.1 UART 178
4.4.2 存儲器模式 178
4.4.3 最佳化 179
4.4.4 程式類型 179
4.4.5 SRAM 179
4.4.6 編譯 179
4.5 編譯和生成項目 180
4.5.1 編譯項目 180
4.5.2 生成項目 182
4.6 對目標設備編程 183
4.6.1 晶片 183
4.6.2 FLASH和EEPROM 183
4.6.3 FLASH 鎖定位 185
4.6.4 保險位 185
4.6.5 Boot Lock Bit 0和Boot Lock Bit 1 185
4.6.6 簽名 185
4.6.7 晶片擦除 186
4.6.8 編程速度 186
4.6.9 Program | All 186
4.6.10 其他編程器 186
4.7 CodeWizardAVR代碼生成器 188
4.7.1 Chip選項卡 189
4.7.2 Ports選項卡 190
4.7.3 External IRQ選項卡 191
4.7.4 Timers選項卡 192
4.7.5 UART選項卡 193
4.7.6 ADC選項卡 194
4.7.7 Project Information選項卡 195
4.7.8 生成原始碼 196
4.8 終端工具 207
4.9 Atmel AVR Studio調試器 208
4.9.1 為AVR Studio新建一個COFF檔案 208
4.9.2 從CodeVisionAVR啟動AVR Studio 209
4.9.3 打開檔案進行調試 209
4.9.4 開始、中斷和跟蹤 209
4.9.5 設定和清除斷點 210
4.9.6 查看和修改暫存器和變數的值 210
4.9.7 查看和修改機器狀態 211
4.10 本章小結 211
4.11 練習 212
4.12 上機實習 213
第5章 項目開發 214
5.1 本章目標 214
5.2 引言 214
5.3 概念開發階段 214
5.4 項目開發過程的步驟 214
5.4.1 定義階段 214
5.4.2 設計階段 216
5.4.3 測試定義階段 217
5.4.4 建立和測試硬體原型階段 217
5.4.5 系統集成和開發階段 218
5.4.6 系統測試階段 218
5.4.7 慶祝階段 218
5.5 項目開發過程總結 218
5.6 示例項目:一個氣象監測器 219
5.6.1 構思階段 219
5.6.2 定義階段 219
5.6.3 測量方法在設計方面的考慮 224
5.6.4 室外裝置的硬體設計 235
5.6.5 室外裝置的軟體設計 237
5.6.6 室內裝置的硬體設計 239
5.6.7 室內裝置的軟體設計 241
5.6.8 測試定義階段 243
5.6.9 建立和測試原型硬體階段 244
5.6.10 系統集成和軟體開發階段——室外裝置 250
5.6.11 系統集成和軟體開發階段——室內裝置 258
5.6.12 系統測試階段 284
5.7 挑戰 288
5.8 本章小結 288
5.9 練習 288
5.10 上機實習 289
附錄A 庫函式參考 290
附錄B CodeVisionAVR和STK500入門 369
附錄C AVR微控制器編程 381
附錄D 安裝並使用TheCableAVR 384
附錄E MegAVR-DEV 開發板 394
附錄F ASCII字元表 397
附錄G AVR指令集匯總 401
附錄H 部分練習答案 409