注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)組織與體系結(jié)構(gòu)PIC嵌入式系統(tǒng)開發(fā)

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

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

定 價(jià):¥69.00

作 者: (英)威爾姆舍斯特 著;陳小文 等譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈電子與電氣工程叢書
標(biāo) 簽: 計(jì)算機(jī)體系結(jié)構(gòu)

ISBN: 9787115182654 出版時(shí)間: 2008-09-01 包裝: 平裝
開本: 16開 頁數(shù): 532 字?jǐn)?shù):  

內(nèi)容簡介

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

作者簡介

  Tim Wilmshurst,英國德比大學(xué)教授,并長期任教于劍橋大學(xué)。lET(英國工程技術(shù)學(xué)會(huì),前身為IEE)會(huì)士。著名的嵌入式系統(tǒng)專家。主要研究方向?yàn)殡娮蛹夹g(shù)和嵌入式系統(tǒng),在PIC微控制器的應(yīng)用開發(fā)上有很深的造詣。他在本書中作為實(shí)例設(shè)計(jì)的自動(dòng)導(dǎo)向車——Derbot AGV已經(jīng)廣泛應(yīng)用于嵌入式系統(tǒng)教學(xué),獲得了巨大成功。

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)