|
-- 會員 / 註冊 --
|
|
|
|
嵌入式C編程:PIC單片機和C編程技術與應用 ( 簡體 字) |
作者:馬克·西格斯蒙德 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> PIC |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 46755 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:5/1/2017 |
頁數:280 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111564447 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書介紹PIC單片機的C語言程序設計方法,前半部分詳細講解C語言的基本概念,后半部分重點關注PIC及其外圍組件。全書風格簡潔清晰,知識點、代碼示例、編程練習都緊緊圍繞工程實踐需求。本書不要求讀者具備C語言或硬件接口的預備知識,初學者可邊學邊練逐步精進,而有一定基礎的程序員則可從作者分享的實戰經驗中獲益。 |
目錄:Embedded C Programming: Techniques and Applications of C and PIC MCUS 出版者的話 譯者序 前言 第1章 C語言概述和程序結構 1 1.1 C源代碼 1 1.2 注釋 1 1.3 程序結構 1 1.4 C預編譯指令 1 1.5 函數 2 1.6 聲明 2 1.7 語句和表達式 2 1.8 時間 3 1.9 輸入準確度 3 1.10 文本格式 4 1.11 兼容性 4 1.12 小結 4 1.13 練習 4 1.14 測驗 6 第2章 常量 8 2.1 位、字節等 8 2.1.1 位 8 2.1.2 半字節 8 2.1.3 字節 8 2.1.4 內存大小 8 2.2 C常量語法 9 2.2.1 二進制 9 2.2.2 十進制 10 2.2.3 有符號整數 10 2.2.4 十六進制 11 2.2.5 八進制 12 2.2.6 浮點數 13 2.2.7 定點數 13 2.2.8 字符 14 2.2.9 字符串 14 2.2.10 真和假 15 2.2.11 常量 15 2.3 三字母詞 15 2.4 兼容性 16 2.5 設計文檔 16 2.6 小結 17 2.7 練習 17 2.8 測驗 17 第3章 預編譯指令 20 3.1 標準預編譯指令 20 3.1.1 #def?ine id text 20 3.1.2#include 或#include “f?ilename” 21 3.1.3#ifdef、#ifndef、#else、#endif和#undef 21 3.1.4 #if、#else、#elif和#endif 22 3.1.5 #error 22 3.1.6 #nolist和#list 23 3.2 兼容性 23 3.3 非標準編譯指示 23 3.3.1 #warning 23 3.3.2 #use delay 23 3.3.3 關于頻率 24 3.3.4 #use rs232(options) 24 3.3.5 #fuses options 24 3.3.6 #locate id = address 25 3.3.7 #byte id=x和#word id=x 25 3.3.8 #bit id=x.y 26 3.3.9 #reserve address 26 3.3.10 引導加載程序 26 3.3.11 #rom address={data} 26 3.3.12 #id data 27 3.3.13 其他編譯指示 27 3.4 小結 27 3.5 練習 28 3.6 測驗 28 第4章 變量和數據類型 31 4.1 數據類型 31 4.1.1 字符 31 4.1.2 整數 31 4.1.3 兼容性 32 4.1.4 整數格式 32 4.1.5 枚舉類型 33 4.1.6 定點數 33 4.1.7 浮點數 33 4.1.8 幫助 34 4.1.9 浮點格式 34 4.1.10 空類型 35 4.1.11 類型定義 35 4.2 變量聲明 35 4.2.1 標識符 36 4.2.2 變量作用域 36 4.2.3 變量生命周期 37 4.2.4 附加限定詞 38 4.3 設計資料 38 4.4 RAM 39 4.5 小結 39 4.6 練習 40 4.7 測驗 40 第5章 表達式和運算符 43 5.1 數學運算符 43 5.2 兼容性 43 5.3 運算符優先級 43 5.4 表達式類型和類型轉換 44 5.5 關系運算符 45 5.6 位運算符 46 5.7 兼容性 46 5.8 賦值運算符 47 5.9 自增/自減運算符 47 5.10 其他運算符 48 5.11 序列點 49 5.12 表達式示例 49 5.13 小結 50 5.14 練習 50 5.15 測驗 50 第6章 語句 53 6.1 語句定義 54 6.1.1 if語句 54 6.1.2 while循環 56 6.1.3 for循環 58 6.1.4 跳轉語句 59 6.1.5 switch/case語句 60 6.2 副作用 61 6.3 嵌套、縮進和括號的使用 62 6.4 設計文檔 62 6.5 程序復雜度 63 6.6 小結 64 6.7 練習 64 6.8 測驗 65 第7章 函數 68 7.1 main()函數 68 7.2 函數定義 69 7.3 函數參數 70 7.4 高級特性 71 7.4.1 兼容性 71 7.4.2 引用參數 71 7.4.3 默認參數 71 7.4.4 重載函數 71 7.5 返回值 72 7.6 內聯函數 72 7.7 嵌套函數 73 7.8 遞歸函數 73 7.9 序列點進階 73 7.10 結構良好的程序 73 7.11 設計文檔 75 7.12 實現細節 75 7.13 小結 76 7.14 練習 76 7.15 測驗 76 第8章 數組 80 8.1 數組初始化 80 8.2 常量數組 80 8.3 字符串變量 81 8.4 無下標數組 81 8.5 多維數組 81 8.6 索引范圍 82 8.7 數組使用示例 82 8.8 查找表 83 8.9 數組搜索 84 8.10 數組排序 85 8.11 小結 86 8.12 練習 86 8.13 測驗 87 第9章 結構體 90 9.1 結構體嵌套和結構體數組 91 9.2 結構體在內存中的存儲 91 9.3 位字段 92 9.4 聯合體 92 9.5 程序中的結構體示例 93 9.6 小結 94 9.7 練習 94 9.8 測驗 95 第10章 內存和指針 98 10.1 內存 98 10.2 取地址運算符 99 10.3 間接運算符 99 10.4 強制指定變量地址 99 10.5 指針類型 100 10.6 指針運算 100 10.7 下標 100 10.8 函數參數 101 10.9 結構體 101 10.10 函數指針 102 10.11 指針的其他用途 102 10.12 錯誤行為 103 10.13 常見錯誤 103 10.14 ROM指針 104 10.15 用戶定義內存 104 10.16 兼容性 105 10.17 通關之后 105 10.18 小結 105 10.19 練習 106 10.20 測驗 106 第11章 內置函數 109 11.1 數學 109 11.2 內存 110 11.3 動態內存 110 11.4 一些更有趣的函數 111 11.5 可變參數列表 112 11.6 文本輸入/輸出 112 11.7 實現常量 115 11.8 兼容性 116 11.9 位和字節操作 116 11.10 非易失性內存 117 11.11 看門狗 119 11.12 延時 119 11.13 多個時鐘頻率 120 11.14 更多標準函數 120 11.15 小結 121 11.16 練習 121 11.17 測驗 122 第12章 字符串 125 12.1 字符串復制和字符串長度 125 12.2 字符串查找 126 12.3 字符串比較 127 12.4 字符串操作 127 12.5 字符串輸入/輸出 128 12.6 字符串和數字相互轉換 128 12.7 字符操作 129 12.8 統一字符編碼 129 12.9 常量字符串管理 130 12.10 小結 130 12.11 練習 131 12.12 測驗 131 第13章 函數式宏定義 135 13.1 參數 135 13.2 宏名字 136 13.3 串聯運算符 136 13.4 字符串化運算符 136 13.5 可變參數宏 138 13.6 函數式宏定義與內聯函數 138 13.7 可讀性 138 13.8 高級示例 139 13.9 宏調試 140 13.10 小結 140 13.11 練習 140 13.12 測驗 141 第14章 條件編譯 144 14.1 基本指令 145 14.2 關系表達式 146 14.3 特殊宏 146 14.4 特殊定義 146 14.5 全局定義 147 14.6 奇怪的錯誤 147 14.7 條件編譯示例 147 14.8 小結 148 14.9 練習 148 14.10 測驗 148 第15章 PIC微控制器 152 15.1 PIC架構 152 15.1.1 CPU 153 15.1.2 棧 153 15.1.3 工作寄存器 153 15.1.4 特殊功能寄存器 153 15.1.5 程序存儲器 154 15.1.6 指令 154 15.1.7 時鐘 154 15.1.8 復位 155 15.1.9 睡眠 155 15.1.10 中斷 155 15.1.11 配置位 156 15.1.12 外圍組件 156 15.2 最小系統 157 15.3 設備編程 158 15.4 hex文件 159 15.5 上電過程 159 15.6 時鐘配置 160 15.7 調試 160 15.8 引導加載 160 15.9 小結 161 15.10 練習 161 15.11 測驗 161 第16章 離散輸入和輸出 164 16.1 輸入電壓 164 16.2 驅動電流 165 16.3 驅動更大的電流 166 16.4 集電極開路輸出 166 16.5 方向 166 16.6 按鈕輸入 167 16.7 上拉電阻 167 16.8 消抖 168 16.9 濾波 168 16.10 內存映射端口 169 16.11 小結 170 16.12 練習 170 16.13 測驗 171 第17章 中斷 174 17.1 簡單中斷示例 174 17.2 時間都去哪兒了 175 17.3 再議消抖 175 17.4 中斷發生的時刻 176 17.5 為什么需要中斷 177 17.6 中斷詳解 178 17.6.1 中斷標志位(IF) 178 17.6.2 中斷使能標志位(IE) 178 17.6.3 全局中斷使能標志位(GIE) 178 17.6.4 中斷處理 178 17.7 正確處理中斷 179 17.8 多個中斷同時發生 179 17.8.1 12位字長 179 17.8.2 14位字長 180 17.8.3 16位字長 180 17.8.4 24位字長 180 17.9 延遲 181 17.10 重入 182 17.11 兼容性 182 17.12 小結 182 17.13 練習 182 17.14 測驗 183 第18章 定時器/計數器 186 18.1 定時器組件 186 18.1.1 計數器核心 186 18.1.2 計數器周期 186 18.1.3 后分頻器 187 18.1.4 預分頻器 187 18.1.5 門 187 18.1.6 多路轉換器 187 18.2 PIC特性 187 18.3 C代碼 188 18.4 用定時器實現延遲 189 18.5 精度循環 189 18.6 中斷 190 18.6.1 以特定頻率產生中斷 190 18.6.2 在特定時間產生中斷 191 18.7 虛擬定時器 192 18.8 小結 193 18.9 練習 193 18.10 測驗 194 第19章 高級定時器 197 19.1 PWM 197 19.2 使用PWM庫 199 19.3 捕捉 199 19.4 對比 201 19.5 兼容性 201 19.6 小結 202 19.7 練習 202 19.8 測驗 203 第20章 模擬技術 205 20.1 數/模轉換 205 20.2 模/數轉換 206 20.2.1 電壓高于5V 208 20.2.2 過濾 208 20.2.3 波形分析 210 20.2.4 混疊現象 211 20.2.5 在睡眠時工作 211 20.2.6 參考電壓 212 20.3 比較器 213 20.4 電壓檢測 214 20.5 兼容性 214 20.6 小結 214 20.7 練習 215 20.8 測驗 216 第21章 內部串行總線 218 21.1 串行外圍接口 218 21.1.1 SPI模式 220 21.1.2 硬件SPI 220 21.1.3 多點SPI 220 21.1.4 減少連線 220 21.1.5 噪聲 221 21.1.6 幀信號 221 21.1.7 PIC從設備 221 21.2 I2C 222 21.2.1 多個主設備 224 21.2.2 特殊地址 225 21.2.3 10位地址 225 21.2.4 I2C從設備 225 21.2.5 SMBus 226 21.3 小結 226 21.4 練習 227 21.5 測驗 227 第22章 外部串行總線 230 22.1 RS-232 230 22.2 源代碼 231 22.3 UART 232 22.4 輸入數據中斷 233 22.5 輸出數據中斷 235 22.6 調制解調器控制信號 236 22.7 硬件流控制 236 22.8 軟件流控制 236 22.9 協議 237 22.10 RS-232的未來 238 22.11 RS-422 238 22.12 RS-485 238 22.13 文檔 239 22.14 小結 239 20.15 練習 240 22.16 測驗 240 第23章 多任務 243 23.1 搶占式調度 243 23.2 調度器調度 243 23.3 確定性調度 244 23.4 信號量 245 23.5 消息傳遞 246 23.6 await( ) 246 23.7 任務管理 246 23.8 小結 247 23.9 練習 247 23.10 測驗 247 第24章 內聯匯編 250 24.1 C代碼中的匯編代碼 250 24.2 內聯匯編代碼 250 24.3 PIC16/PIC18數據傳送指令 251 24.4 在匯編代碼中訪問C變量 251 24.5 PIC16/PIC18數學指令 252 24.6 PIC16/PIC18位操作類指令 253 24.7 PIC16/PIC18控制操作類指令 253 24.8 PIC16/PIC18立即數操作指令 253 24.9 編譯器對匯編代碼的修改 253 24.10 訪問SFR 254 24.11 關于FSR 254 24.12 哪些不能做 255 24.13 優化匯編代碼 255 24.14 PIC24指令 256 24.15 dsPIC指令 257 24.16 小結 257 24.17 練習 257 24.18 測驗 258 第25章 調試 260 25.1 概述 260 25.2 ICSP 260 25.3 ICSP插座 261 25.4 斷點 262 25.5 查看內存 263 25.6 單步 264 25.7 增強調試 264 25.8 監控 265 25.9 數據流 265 25.10 實時性問題 266 25.11 使用示波器 266 25.12 診斷接口 268 25.13 記錄/回放 268 25.14 性能分析工具 268 25.15 代碼性能分析 269 25.16 設計驗證 269 25.17 小結 271 25.18 練習 271 25.19 測驗 273 附錄A 275 附錄B 276 附錄C 277 參考資料 280 |
序: |
|