注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡計算機組織與體系結構PIC嵌入式系統(tǒng)開發(fā)

PIC嵌入式系統(tǒng)開發(fā)

PIC嵌入式系統(tǒng)開發(fā)

定 價:¥69.00

作 者: (英)威爾姆舍斯特 著;陳小文 等譯
出版社: 人民郵電出版社
叢編項: 圖靈電子與電氣工程叢書
標 簽: 計算機體系結構

購買這本書可以去


ISBN: 9787115182654 出版時間: 2008-09-01 包裝: 平裝
開本: 16開 頁數: 532 字數:  

內容簡介

  本書系統(tǒng)而全面地介紹了嵌入式系統(tǒng)設計的原理及其應用,包括嵌入式系統(tǒng)的指令集系統(tǒng)結構、流水線、存儲設備、定時器、中斷、時鐘、并行串行通信、互連網絡、開發(fā)環(huán)境和開發(fā)語言等重要內容。書中對嵌入式系統(tǒng)設計的講解主要以Microchip公司的3款PIC微控制器(16F84A、16F873A和18F242)為基礎,并輔以大量的設計實例。全書編排合理,敘述由淺入深,生動活潑。本書適合嵌入式系統(tǒng)開發(fā)工程師閱讀,也可作為高等院校電子、機電和計算機工程相關專業(yè)嵌入式系統(tǒng)課程的教材或參考書。

作者簡介

  Tim Wilmshurst,英國德比大學教授,并長期任教于劍橋大學。lET(英國工程技術學會,前身為IEE)會士。著名的嵌入式系統(tǒng)專家。主要研究方向為電子技術和嵌入式系統(tǒng),在PIC微控制器的應用開發(fā)上有很深的造詣。他在本書中作為實例設計的自動導向車——Derbot AGV已經廣泛應用于嵌入式系統(tǒng)教學,獲得了巨大成功。

圖書目錄

第一部分 嵌入式系統(tǒng)入門
第1章 微小的計算機,隱藏的控制 2
1.1 當今嵌入式系統(tǒng)概述 2
1.2 一些嵌入式系統(tǒng)例子 3
1.2.1 家用電冰箱 3
1.2.2 汽車車門機械裝置 4
1.2.3 電子乒乓球 5
1.2.4 Derbot自主導向車 5
1.3 一些必備的計算機知識 7
1.3.1 計算機的組成元素 7
1.3.2 指令集——CISC和RISC 8
1.3.3 存儲器類型 8
1.3.4 存儲器組織結構 9
1.4 微處理器和微控制器 10
1.4.1 微處理器 10
1.4.2 微控制器 10
1.4.3 微控制器系列產品 11
1.4.4 微控制器的封裝和外觀 12
1.5 Microchip公司和PIC微控制器 13
1.5.1 背景 13
1.5.2 今天的PIC微控制器 14
1.6 以12系列為例介紹PIC微控制器 16
1.7 其他微控制器——Freescale微控制器 18
小結 20
參考文獻 20
第二部分 最小的系統(tǒng)和PIC 16F84A
第2章 PIC 16系列和16F84A 22
2.1 PIC 16系列 22
2.1.1 PIC 16系列概述 22
2.1.2 16F84A 24
2.1.3 謹慎升級 24
2.2 16F84A體系結構概述 24
2.3 存儲器技術回顧 27
2.3.1 靜態(tài)RAM 27
2.3.2 EPROM 28
2.3.3 EEPROM 28
2.3.4 Flash 29
2.4 16F84A的存儲器 29
2.4.1 16F84A程序存儲器 29
2.4.2 16F84A數據和特殊功能寄存器存儲器(RAM) 30
2.4.3 配置字 32
2.4.4 EEPROM 33
2.5 一些有關時序的問題 34
2.5.1 時鐘振蕩器和指令周期 34
2.5.2 流水線操作 35
2.6 上電和復位 36
2.7 其他微控制器——AtmelAT89C2051微控制器 37
2.8 更多細節(jié)——16F84A片上復位電路 38
小結 40
參考文獻 41
第3章 并行端口、電源和時鐘振蕩器 42
3.1 并行輸入/輸出概述 42
3.2 并行輸入/輸出的技術挑戰(zhàn) 43
3.2.1 設計并行端口 43
3.2.2 端口的電學特性 46
3.2.3 一些特殊的端口特性 47
3.3 與并行端口連接的設備 48
3.3.1 開關 48
3.3.2 發(fā)光二極管 49
3.4 PIC 16F84A并行端口 51
3.4.1 16F84A端口B 52
3.4.2 16F84A端口A 53
3.4.3 端口的輸出特性 53
3.5 時鐘振蕩器 55
3.5.1 時鐘振蕩器類型 55
3.5.2 實際使用振蕩器時要考慮的問題 56
3.5.3 16F84A的時鐘振蕩器 56
3.6 電源 58
3.6.1 對電源的要求 58
3.6.2 16F84A的工作條件 58
3.7 電子乒乓球游戲的硬件設計 60
小結 60
參考文獻 61
第4章 編程伊始——匯編介紹 62
4.1 程序功能與開發(fā)流程 63
4.1.1 編程問題和匯編折中方案 63
4.1.2 采用匯編語言編寫程序的流程 64
4.1.3 程序開發(fā)流程 65
4.2 PIC 16系列指令集和ALU 66
4.2.1 PIC 16系列ALU 66
4.2.2 PIC 16系列指令集 67
4.3 匯編器和匯編格式 68
4.3.1 匯編器及Microchip MPASMTM匯編器簡介 68
4.3.2 匯編格式 68
4.3.3 匯編偽指令 69
4.3.4 數的表示 69
4.4 編寫簡單的程序 70
4.5 使用開發(fā)環(huán)境編程 72
4.5.1 MPLAB介紹 72
4.5.2 MPLAB的組成部分 73
4.5.3 MPLAB文件結構 74
4.6 MPLAB指南 74
4.6.1 創(chuàng)建項目 75
4.6.2 編寫源代碼 75
4.6.3 對項目進行匯編 76
4.7 程序仿真簡介 77
4.7.1 開始仿真 77
4.7.2 產生端口輸入 78
4.7.3 觀察微控制器各部分狀態(tài) 78
4.7.4 程序復位和運行 79
4.8 下載程序到微控制器 80
4.9 CISC指令集和RISC指令集比較 82
4.10 更多的了解——16系列指令集格式 83
小結 84
參考文獻 84
第5章 創(chuàng)建匯編程序 85
5.1 創(chuàng)建結構化程序概述 85
5.1.1 流程圖 85
5.1.2 狀態(tài)圖 86
5.2 流程控制——分支和子例程 88
5.2.1 條件分支和位操作 88
5.2.2 子例程和?!?9
5.3 產生延時和時間間隔 91
5.4 數據處理 92
5.4.1 直接尋址和文件選擇寄存器 93
5.4.2 查找表 93
5.4.3 包含延時循環(huán)和查找表的程序例子 95
5.5 邏輯指令 97
5.6 算術指令和進位標志 97
5.6.1 加法指令 98
5.6.2 減法指令 98
5.6.3 一個算術程序例子 98
5.6.4 通過間接尋址來保存斐波那契數列 100
5.7 更復雜的匯編程序 102
5.7.1 包含文件 102
5.7.2 宏指令(Macro) 103
5.7.3 MPLAB特殊指令 104
5.8 MPLAB仿真器的更多用處 105
5.8.1 斷點 105
5.8.2 跑表 106
5.8.3 跟蹤 107
5.9 電子乒乓球游戲程序 108
5.9.1 程序結構 108
5.9.2 程序代碼分析 110
5.10 電子乒乓球游戲程序仿真 111
5.10.1 設置輸入激勵 111
5.10.2 設置Watch窗口 111
5.10.3 單步運行 111
5.10.4 連續(xù)單步運行 112
5.10.5 運行 112
5.10.6 斷點 112
5.10.7 跑表 112
5.10.8 跟蹤 113
5.10.9 調試整個程序 113
5.11 其他仿真器介紹——圖形化的傳真器 114
小結 114
參考文獻 114
第6章 與計時相關的設備:中斷、計數器和定時器 115
6.1 中斷 115
6.1.1 中斷結構 116
6.1.2 16F84A中斷結構 117
6.1.3 CPU對中斷的響應 118
6.2 編寫含有中斷的程序 119
6.2.1 編寫僅含一個中斷的程序 119
6.2.2 編寫含有多個中斷的程序——識別中斷源 121
6.2.3 阻止中斷對程序的破壞——保存上下文 122
6.2.4 阻止中斷對程序的破壞——臨界區(qū)域和中斷屏蔽 124
6.3 計數器和定時器概述 126
6.3.1 數字計數器回顧 126
6.3.2 將計數器用作定時器 127
6.3.3 16F84A Timer 0模塊 128
6.4 16F84A Timer 0的使用——以電子乒乓球游戲為例 130
6.4.1 對目標或事件計數 130
6.4.2 硬件產生的延時 131
6.5 看門狗定時器 133
6.6 休眠模式 133
6.7 其他中斷 134
6.8 更多的了解——中斷響應延時 135
小結 136
第三部分 較大的系統(tǒng)和PIC 16F873A
第7章 較大的系統(tǒng)和PIC 16F873A 138
7.1 PIC16F87XA概述 139
7.2 16F873A的結構圖和CPU 140
7.2.1 CPU和核 141
7.2.2 存儲器 141
7.2.3 外圍設備 142
7.3 16F873A的存儲器和存儲器映射 142
7.3.1 16F873A的程序存儲器 142
7.3.2 16F873A的數據存儲器和特殊功能寄存器 144
7.3.3 配置字 146
7.4 “特殊”的存儲器操作 146
7.4.1 存取EEPROM和程序存儲器 147
7.4.2 電路內串行編程(ICSPTM) 149
7.5 16F873A的中斷 149
7.5.1 中斷結構 149
7.5.2 中斷寄存器 150
7.5.3 中斷識別和上下文保存 152
7.6 16F873A的振蕩器、復位和電源 152
7.6.1 時鐘振蕩器 152
7.6.2 復位和電源 152
7.7 16F873A的并行端口 153
7.7.1 16F873A的端口A 153
7.7.2 16F873A的端口B 155
7.7.3 16F873A的端口C 155
7.8 測試、調試、診斷工具 156
7.8.1 測試嵌入式系統(tǒng)的挑戰(zhàn) 156
7.8.2 示波器和邏輯分析儀 158
7.8.3 電路內仿真器 160
7.8.4 片上調試器 161
7.9 Microchip公司的電路內調試器(ICD 2) 162
7.10 應用16F873A:Derbot AGV 163
7.10.1 電源、振蕩器和復位 163
7.10.2 并行端口的使用 164
7.10.3 硬件集成 165
7.11 使用ICD 2下載、測試和運行一個簡單的程序 166
7.11.1 第一個AGV程序 166
7.11.2 應用電路內調試器ICD 2 168
7.11.3 在程序中設置配置字 169
7.12 深入了解16F874A/16F877A的端口D和端口E 171
小結 173
參考文獻 173
第8章 人機接口和物理接口 174
8.1 人機接口概述 174
8.2 從開關到鍵盤 176
8.2.1 鍵盤 177
8.2.2 設計實例:Derbot手動控制器中鍵盤的使用 178
8.3 LED顯示 182
8.3.1 LED陣列:七段LED顯示 182
8.3.2 設計實例:在Derbot手動控制器中使用七段LED顯示 184
8.4 LCD 188
8.4.1 HD44780驅動和它的衍生電路 188
8.4.2 設計實例:在Derbot手動控制器中使用LCD顯示器 190
8.5 與物理世界交互 192
8.6 一些簡單的傳感器 193
8.6.1 微開關 193
8.6.2 光敏電阻 194
8.6.3 光學方式的物體感知 194
8.6.4 光學傳感器用于軸角編碼器 195
8.6.5 超聲波方式的物體感知 196
8.7 深入學習數字信號輸入 196
8.7.1 16F873A的輸入特性 197
8.7.2 確保正常的電壓幅度和輸入保護 198
8.7.3 消除開關反彈 201
8.8 執(zhí)行器:電機和伺服 202
8.8.1 直流電機和步進電機 202
8.8.2 角度定位:伺服傳動裝置 203
8.9 與執(zhí)行器進行交互 204
8.9.1 簡單的直流轉換 204
8.9.2 AGV中簡單的開關電路 206
8.9.3 雙向開關:H-橋 207
8.9.4 AGV中的電機開關 209
8.10 AGV硬件集成 209
8.11 應用傳感器和執(zhí)行器——AGV“盲目”導航程序 210
小結 212
參考文獻 212
第9章 深入學習計時 213
9.1 深入學習計數和計時 213
9.2 16F87XA Timer 0和Timer 1 214
9.2.1 Timer 0 214
9.2.2 Timer 1 214
9.2.3 使用Timer 0和 Timer 1作為AGV里程表的計數器 216
9.2.4 使用Timer 0和Timer 1產生重復性中斷 219
9.3 16F87XA的Timer 2、比較器和PR 2寄存器 220
9.3.1 Timer 2 220
9.3.2 PR2寄存器、比較器和后分頻比器 221
9.4 捕捉/比較/PWM(CCP)模塊 222
9.4.1 捕捉/比較/PWM概論 222
9.4.2 捕捉模式 223
9.4.3 比較模式 224
9.5 脈寬調制 225
9.5.1 PWM的原理 225
9.5.2 在硬件中產生PWM信號——16F87XA的PWM模塊 226
9.5.3 將PWM應用于AGV中電機的控制 228
9.6 軟件產生PWM 231
9.6.1 一個軟件產生PWM的例子 231
9.6.2 與存儲器定義和跳轉相關的匯編偽指令 235
9.7 使用PWM進行數模轉換 236
9.8 頻率測量 239
9.8.1 頻率測量的原理 239
9.8.2 AGV中的頻率(速度)測量 239
9.9 在AGV中應用速度控制 242
9.10 當沒有可用定時器時 245
9.11 休眠模式 247
9.12 后面我們將學習什么 248
9.13 AGV硬件集成 248
小結 248
參考文獻 249
第10章 串行端口通信 250
10.1 串行端口簡介 250
10.2 簡單串行連接——同步數據通信 252
10.2.1 同步通信基礎 252
10.2.2 在微控制器中實現同步串行I/O 253
10.2.3 Microwire和SPI 254
10.2.4 引入多個節(jié)點 254
10.3 16F87XA主同步串行端口(MSSP)模塊的SPI模式 255
10.3.1 端口概述 255
10.3.2 端口配置 256
10.3.3 時鐘設置 257
10.3.4 管理數據傳輸 258
10.4 SPI的簡單例子 259
10.5 Microwire和SPI以及簡單同步串行傳輸的局限性 261
10.6 增強的同步串行通信及芯片間總線 261
10.6.1 I2C的主要特性與物理連接 261
10.6.2 上拉電阻 262
10.6.3 I2C信號特性 262
10.7 配置為I2C的MSSP 263
10.7.1 MSSP中的I2C寄存器及其基本應用 263
10.7.2 I2C從動模式下的MSSP 267
10.7.3 I2C主控模式下的MSSP 269
10.8 在Derbot AGV中應用I2C 270
10.8.1 將Derbot手動控制器用作串行節(jié)點 270
10.8.2 將AGV用作I2C主控器 271
10.8.3 將手動控制器用作I2C從動器 275
10.8.4 Derbot I2C程序驗證 277
10.9 對同步串行數據通信的評價及對異步通信方式的介紹 278
10.9.1 異步原理 278
10.9.2 在不接收時鐘信號時如何對串行數據進行同步 279
10.10 16F87XA可尋址通用同步異步收發(fā)器(USART) 280
10.10.1 端口概述 280
10.10.2 USART異步發(fā)送器 280
10.10.3 USART波特率發(fā)生器 282
10.10.4 USART異步接收器 283
10.10.5 異步通信示例 284
10.10.6 在USART接收模式下使用地址檢測 286
10.10.7 USART的同步模式 287
10.11 不借助串行端口實現串行通信——“bit banging” 287
10.12 構建Derbot手動控制器 287
小結 287
參考文獻 288
第11章 數據采集與處理 289
11.1 模擬量和數字量的采集與使用概述 289
11.2 數據采集系統(tǒng) 290
11.2.1 模數轉換器 290
11.2.2 信號調理——放大與濾波 293
11.2.3 模擬多路選擇器 293
11.2.4 采樣與保持以及采集時間 293
11.2.5 時序及微處理器控制 295
11.2.6 微控制器環(huán)境下的數據采集 296
11.3 PIC16F87XA中的ADC模塊 296
11.3.1 概述與框圖 296
11.3.2 控制ADC 297
11.3.3 模擬輸入模型 300
11.3.4 計算采集時間 301
11.3.5 重復轉換 302
11.3.6 綜合權衡轉換速率與轉換精度 302
11.4 在Derbot測光程序中應用ADC 303
11.4.1 ADC的配置 304
11.4.2 采集時間 304
11.4.3 數據轉換 304
11.5 一些簡單的數據處理技術 305
11.5.1 定點與浮點算術 305
11.5.2 二進制數向BCD碼的轉換 306
11.5.3 乘法 307
11.5.4 比例縮放與Derbot測光示例 307
11.5.5 使用參考電壓實現比例縮放 308
11.6 Derbot尋光程序 309
11.7 比較器模塊 311
11.7.1 比較器動作概述 311
11.7.2 16F87XA的比較器與參考電壓 311
11.8 將Derbot電路用于其他測量 312
11.8.1 電子測距儀 312
11.8.2 測光儀 313
11.8.3 電壓計 314
11.8.4 其他測量系統(tǒng) 314
11.9 將Derbot配置為尋光機器人 314
小結 314
參考文獻 315
第四部分 更靈巧的系統(tǒng)與PIC 18FXX2
第12章 更靈巧的系統(tǒng)與PIC 18FXX2 318
12.1 PIC 18系列及18FXX2概述 319
12.2 18F2X2結構圖與狀態(tài)寄存器 320
12.3 18系列指令集 324
12.3.1 未變化的指令 327
12.3.2 經過升級的指令 328
12.3.3 變化而來的新指令 328
12.3.4 全新指令 328
12.4 數據存儲器與特殊功能寄存器 329
12.4.1 數據存儲器映射 329
12.4.2 存取RAM 329
12.4.3 間接尋址以及在數據存儲器中訪問表格 329
12.5 程序存儲器 332
12.5.1 程序存儲器映射 332
12.5.2 程序計數器 332
12.5.3 在16系列基礎上增強的計算goto指令 333
12.5.4 配置寄存器 334
12.6 棧 335
12.6.1 自動棧操作 335
12.6.2 程序員對棧的訪問 336
12.6.3 快速寄存器?!?36
12.7 中斷 336
12.7.1 中斷結構概覽 337
12.7.2 中斷源的啟用與優(yōu)先級劃分 337
12.7.3 總體中斷優(yōu)先級啟用 338
12.7.4 全局啟用 338
12.7.5 中斷邏輯的其他方面 338
12.7.6 中斷寄存器 339
12.7.7 中斷的上下文保護 343
12.8 電源與復位 343
12.8.1 電源 343
12.8.2 上電與復位 343
12.9 振蕩源 345
12.9.1 LP、XT、HS和RC振蕩器模式 345
12.9.2 EC、ECIO和RCIO振蕩器模式 345
12.9.3 HS+PLL振蕩器模式 346
12.9.4 時鐘源切換 346
12.10 18F242編程入門 346
12.10.1 使用18系列MPLAB IDE 347
12.10.2 斐波那契程序 347
小結 349
參考文獻 349
第13章 PIC 18FXX2外圍設備 350
13.1 18FXX2外圍設備概述 350
13.2 并行端口 351
13.2.1 18FXX2的端口A 351
13.2.2 18FXX2的端口B 352
13.2.3 18FXX2的端口C 353
13.2.4 并行從動端口 353
13.3 定時器 353
13.3.1 Timer 0 353
13.3.2 Timer 1 355
13.3.3 Timer 2 356
13.3.4 Timer 3 356
13.3.5 看門狗定時器 357
13.4 比較/捕捉/PWM(CCP)模塊 358
13.4.1 控制寄存器 358
13.4.2 捕捉模式 359
13.4.3 比較模式 359
13.4.4 脈寬調制 360
13.5 串行端口 360
13.5.1 SPI模式下的MSSP 360
13.5.2 I2C模式下的MSSP 361
13.5.3 USART 361
13.6 模數轉換器(ADC) 361
13.7 低壓檢測 361
13.8 在Derbot-18中應用18系列 363
13.9 18F2420與擴展指令集 363
13.9.1 納瓦技術 364
13.9.2 擴展指令集 364
13.9.3 增強型外圍設備 365
小結 365
參考文獻 365
第14章 C語言入門 366
14.1 為何選擇C語言 366
14.2 C語言簡介 367
14.2.1 簡史 367
14.2.2
第一個C程序 367
14.2.3 程序結構——聲明、語句、注釋和空格 368
14.2.4 C語言關鍵字 370
14.2.5 C語言函數 370
14.2.6 數據類型與存儲 371
14.2.7 C運算符 372
14.2.8 程序流的控制以及while關鍵字 372
14.2.9 C預處理器及其偽指令 373
14.2.10 使用庫和標準庫 373
14.3 編譯C程序 373
14.4 MPLAB C18編譯器 374
14.4.1 數制規(guī)范 375
14.4.2 算術運算 375
14.5 C18指南 375
14.5.1 連接器和連接器腳本 375
14.5.2 連接頭文件和庫文件 376
14.5.3 構建項目 377
14.5.4 項目文件 378
14.6 仿真C程序 378
14.7 第2個C例程——斐波那契程序 380
14.7.1 程序初步——進一步認識變量聲明 381
14.7.2 do-while結構 381
14.7.3 標號和goto關鍵字 381
14.7.4 仿真斐波那契程序 381
14.8 MPLAB C18庫 382
14.8.1 硬件外圍設備函數 382
14.8.2 軟件外圍設備庫 382
14.8.3 通用軟件庫 383
14.8.4 數學庫 384
14.9 深度閱讀 385
小結 385
參考文獻 385
第15章 C語言與嵌入式環(huán)境 387
15.1 使C語言適用于嵌入式環(huán)境 387
15.2 位值的控制與分支 387
15.2.1 控制各個位 389
15.2.2 if與if-else條件分支結構 389
15.2.3 設置配置位 390
15.2.4 仿真并運行例程 390
15.3 進一步認識函數 391
15.3.1 函數原型 391
15.3.2 函數定義 392
15.3.3 函數調用與數據傳遞 392
15.3.4 延時庫函數和Delay10KTCYx() 393
15.4 更多的分支與循環(huán)指令 393
15.4.1 使用break關鍵字 393
15.4.2 使用for關鍵字 394
15.5 使用定時器與PWM外圍設備 395
15.5.1 使用定時器外圍設備 397
15.5.2 使用PWM 398
15.5.3 主程序循環(huán) 399
小結 399
第16章 使用C語言實現數據的采集與使用 400
16.1 用C語言實現數據處理 400
16.2 使用18FXX2 ADC 400
16.2.1 尋光程序的結構 404
16.2.2 使用ADC 405
16.2.3 if-else的更多應用 406
16.2.4 尋光程序的仿真 406
16.3 指針、數組與字符串 408
16.3.1 指針 408
16.3.2 數組 408
16.3.3 對數組使用指針 409
16.3.4 字符串 409
16.3.5 指針、數組和字符串的應用例程 409
16.3.6 對while條件的補充說明 411
16.3.7 仿真例程 411
16.4 使用I2C外圍設備 413
16.4.1 I2C例程 413
16.4.2 使用++和——運算符 415
16.5 格式化顯示數據 416
16.5.1 例程概覽 419
16.5.2 使用庫函數實現數據的格式化 418
16.5.3 程序分析 418
小結419
第17章 深入學習C語言編程和更豐富的C語言編程環(huán)境 420
17.1 深入學習C語言編程和更豐富的C語言編程環(huán)境 420
17.2 插入匯編 421
17.3 控制存儲器分配 422
17.3.1 存儲器分配偽指令pragma 422
17.3.2 設置配置字 423
17.4 中斷 424
17.4.1 中斷服務程序 424
17.4.2 定位和識別中斷服務程序 424
17.5 使用溢出中斷的例子——閃爍AGV上的LED 425
17.5.1 使用Timer 0 426
17.5.2 中斷的使用和中斷服務程序的動作 427
17.5.3 仿真閃爍LED程序 427
17.6 變量的存儲類型及其應用 429
17.6.1 存儲類型 429
17.6.2 可見性 430
17.6.3 生存期 430
17.6.4 連接 430
17.6.5 18系列中指定變量的存儲器類型 431
17.6.6 存儲類型舉例 431
17.7 啟動文件:c018i.c 432
17.7.1 C18啟動文件 432
17.7.2 c018i.c文件的結構 433
17.7.3 仿真c018i.c文件 433
17.8 結構體、聯合體和位域 435
17.9 處理器相關的頭文件 436
17.9.1 SFR定義 436
17.9.2 頭文件中匯編相關的定義 437
17.10 深入學習——MPLAB連接器和.map文件 437
17.10.1 連接器的功能 737
17.10.2 連接器腳本 738
17.10.3 .map文件 439
小結 440
參考文獻 441
第18章 多任務實時操作系統(tǒng) 442
18.1 由多任務和實時引發(fā)的挑戰(zhàn) 442
18.1.1 多任務——任務、優(yōu)先權、截止時間 443
18.1.2 “實時”的含義 444
18.2 通過順序編程來實現多任務 444
18.2.1 分析超循環(huán) 445
18.2.2 時間觸發(fā)和事件觸發(fā)的任務 445
18.2.3 使用中斷來區(qū)分優(yōu)先級——前臺/后臺結構 445
18.2.4 引入“時鐘滴答”來同步程序活動 446
18.2.5 一個通用的“操作系統(tǒng)” 446
18.2.6 順序編程實現多任務的限制 448
18.3 實時操作系統(tǒng) 448
18.4 調度策略和調度器 448
18.4.1 循環(huán)調度 449
18.4.2 時間片輪轉調度和上下文切換 449
18.4.3 任務狀態(tài) 450
18.4.4 搶占式優(yōu)先級調度 451
18.4.5 協(xié)作式調度 452
18.4.6 中斷在任務調度中的作用 452
18.5 任務開發(fā) 453
18.5.1 任務定義 453
18.5.2 編寫任務以及設置任務優(yōu)先級 453
18.6 數據和資源保護——信號量 454
18.7 后面我們將學習什么 454
小結 455
參考文獻 455
第19章 SalvoTM實時操作系統(tǒng) 456
19.1 Salvo實時操作系統(tǒng)概述 456
19.1.1 Salvo的基本特性 456
19.1.2 Salvo版本和相關的參考文獻 457
19.2 配置Salvo應用程序 458
19.2.1 構建Salvo應用程序——構建庫 458
19.2.2 Salvo庫 458
19.2.3 C18和Salvo版本 459
19.3 編寫Salvo程序 460
19.3.1 初始化和調度 460
19.3.2 編寫Salvo任務 461
19.4 第一個Salvo例程 461
19.4.1 程序的總體結構和main函數 463
19.4.2 任務和調度 464
19.4.3 創(chuàng)建一個Salvo/C18項目 464
19.4.4 配置文件的設置 465
19.4.5 構建Salvo例子 465
19.4.6 仿真Salvo程序 466
19.5 在Salvo程序中使用中斷、延遲和信號量 467
19.5.1 一個使用中斷驅動的時鐘滴答的例程 468
19.5.2 選擇庫和配置 470
19.5.3 使用中斷和產生時鐘滴答 470
19.5.4 使用延遲 472
19.5.5 使用一個二元信號量 472
19.5.6 程序仿真 474
19.5.7 運行程序 475
19.6 使用Salvo消息和增加RTOS復雜度 475
19.7 一個使用消息的例程 476
19.7.1 選擇庫和配置 481
19.7.2 任務:USnd_Task 481
19.7.3 任務:Motor_Task 481
19.7.4 消息的用法 482
19.7.5 中斷的使用和ISR 483
19.7.6 仿真或者運行程序 485
19.8 RTOS開銷 485
小結 485
參考文獻 486
第五部分 網絡互連技術
第20章 互連與網絡 488
20.1 網絡互連概述 488
20.2 紅外線連接 490
20.3 無線電連接 491
20.3.1 藍牙 491
20.3.2 紫蜂 492
20.3.3 紫峰和PIC微控制器 492
20.4 控制器局域網和局域互聯網 493
20.4.1 控制器局域網 493
20.4.2 CAN和PIC微控制器 494
20.4.3 局域互聯網 495
20.4.4 LIN和PIC微控制器 496
20.5 嵌入式系統(tǒng)和互聯網 497
20.6 總結 498
小結 498
參考文獻 499
附錄1 PIC 16系列指令集 500
附錄2 電子乒乓球游戲 502
附錄3 Derbot AGV硬件設計細節(jié) 507
附錄4 自主導向車的一些基本知識 511
附錄5 PIC 18系列指令集(非擴展) 515
附錄6 C語言要點 519
索引 523

本目錄推薦

掃描二維碼
Copyright ? 讀書網 ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號