PIC微控制器技术及应用PDF电子书下载
- 电子书积分:18 积分如何计算积分?
- 作 者:(美)加西奥(Jasio,D)等著
- 出 版 社:北京:电子工业出版社
- 出版年份:2009
- ISBN:9787121083730
- 页数:616 页
第1部分 PIC微控制器引言第1章 PIC微控制器族 2
1.1 12位指令字长微控制器 4
1.2 14位指令字长微控制器 5
1.3 16位指令字长微控制器 8
1.4 PIC微控制器内部结构 9
1.4.1 程序存储器(闪存) 9
1.4.2 数据存储器(RAM) 9
1.4.3 寄存器文件映射和特殊功能寄存器 9
1.4.4 振荡器电路 19
1.4.5 复位电路 21
1.4.6 中断 22
1.4.7 配置字 23
1.4.8 I/O接口 23
第2章 16系列PIC微控制器和16F84A介绍 27
2.1 PIC16系列概述 27
2.1.1 引言 27
2.1.2 16F84A 28
2.1.3 升级注意 29
2.2 16F84A架构概览 29
2.2.1 状态寄存器 30
2.3 存储器技术回顾 31
2.3.1 静态RAM(SRAM) 31
2.3.2 EPROM(可擦除可编程只读存储器) 32
2.3.3 EEPROM(电可擦除可编程只读存储器) 32
2.3.4 闪存(Flash) 32
2.4 16F84A的存储器 32
2.4.1 16F84A的程序存储器 33
2.4.2 16F84A数据和特殊功能寄存器存储器(“RAM”) 34
2.4.3 配置字 35
2.4.4 EEPROM 35
2.5 时序相关的概念 36
2.5.1 时钟振荡器和指令周期 36
2.5.2 流水线 37
2.6 上电和复位 38
2.7 与Atmel AT89C2051比较 39
2.8 16F84A片内复位电路详述 40
2.9 小结 41
参考文献 41
第3章 并行端口、供电电源和时钟振荡器 42
3.1 并行输入/输出的目的 42
3.2 并行输入/输出的技术挑战 43
3.2.1 构建并行端口 43
3.2.2 端口电气特性 44
3.2.3 一些典型实例 45
3.3 连接到并行端口 46
3.3.1 开关 46
3.3.2 发光二极管LED 47
3.4 PIC16F84A的并行端口 48
3.4.1 16F84A的端口B 49
3.4.2 16F84A的端口A 49
3.4.3 端口输出特性 50
3.5 时钟振荡器 51
3.5.1 时钟振荡器种类 51
3.5.2 实际振荡器考虑 52
3.5.3 16F84A的时钟振荡器 52
3.6 供电 53
3.6.1 供电需求和供电源 53
3.6.2 16F84A工作条件 53
3.7 电子“Ping-Pong”游戏的硬件设计 54
3.8 小结 55
参考文献 55
第2部分 使用汇编语言对PIC微控制器编程第4章 汇编语言引言 58
4.1 计算机程序能做什么、如何开发程序 58
4.1.1 编程的问题和汇编程序折中方案 59
4.1.2 汇编语言的编程过程 60
4.1.3 程序开发过程 60
4.2 PIC16系列指令集 61
4.2.1 PIC16系列ALU 61
4.2.2 PIC16系列指令集简介 61
4.3 汇编编译器和汇编程序格式 62
4.3.1 汇编编译器和Microchip公司的MPASMTM编译器介绍 62
4.3.2 汇编程序格式 62
4.3.3 汇编程序的伪指令 63
4.3.4 数制 64
4.4 创建简单的程序 64
4.4.1 一个简单的数据传输程序 64
4.5 选择开发环境 66
4.5.1 MPLAB介绍 66
4.5.2 MPLAB的组件 67
4.5.3 MPLAB文件结构 67
4.6 MPLAB开发环境介绍 67
4.6.1 创建一个项目 68
4.6.2 输入源代码 69
4.6.3 编译项目 69
4.7 仿真技术介绍 70
4.7.1 开始 70
4.7.2 生成端口输入信号 70
4.7.3 观察微控制器的特征 71
4.7.4 程序复位和运行 71
4.8 下载程序到微控制器 72
4.9 简单比较CISC指令集和RISC指令集 73
4.10 16系列指令集格式详述 74
4.11 小结 75
参考文献 75
第5章 构建汇编语言程序 76
5.1 结构化程序设计的主要概念 76
5.1.1 流程图 76
5.1.2 状态图 77
5.2 流程控制——分支和子程序 78
5.2.1 条件分支和位操作 78
5.2.2 子程序和堆栈 79
5.3 产生时延和间隔 80
5.4 数据处理 82
5.4.1 间接寻址和文件选择寄存器(File Select Register) 82
5.4.2 查找表(Look-Up Table) 82
5.4.3 有延时和查找表的程序示例 84
5.5 逻辑运算指令 86
5.6 算术运算指令和进位标志 86
5.6.1 使用add指令 86
5.6.2 使用subtract指令 86
5.6.3 一个算术运算程序例子 86
5.6.4 用间接寻址来保存斐波纳契数列 88
5.7 降低汇编程序的复杂度 90
5.7.1 包含文件 90
5.7.2 宏 91
5.7.3 MPLAB特殊指令 92
5.8 MPLAB仿真器的进一步使用 92
5.8.1 断点 92
5.8.2 跑表(Stopwatch) 93
5.8.3 跟踪(Trace) 94
5.9 “Ping-Pong”游戏程序 94
5.9.1 “Ping-Pong”游戏程序的结构 95
5.9.2 探索“Ping-Pong”游戏程序代码 96
5.10 “Ping-Pong”游戏程序的仿真运行 97
5.10.1 定义输入触发 97
5.10.2 设置一个Watch窗口 97
5.10.3 单步执行 98
5.10.4 模拟(Animate)模式 98
5.10.5 执行(Run) 98
5.10.6 断点 98
5.10.7 跑表(Stopwatch) 98
5.10.8 跟踪(Trace) 99
5.10.9 调试整个程序 99
5.11 其他图形化仿真器 99
5.12 小结 100
参考文献 100
第6章 编程技术进阶 101
6.1 程序时序 101
6.1.1 流水线技术 101
6.1.2 执行时间 101
6.2 硬件计数器/定时器 102
6.2.1 使用TMR0 103
6.2.2 计数器模式 103
6.2.3 定时器模式 104
6.2.4 TIM1定时器程序示例 104
6.2.5 时序问题 105
6.2.6 定时器进阶 106
6.3 中断 106
6.3.1 设置中断 106
6.3.2 中断执行 106
6.3.3 INT1中断程序 107
6.3.4 中断进阶 110
6.4 寄存器操作进阶 110
6.4.1 数据目的地 110
6.4.2 寄存器组的选择 111
6.4.3 文件寄存器间接寻址 112
6.4.4 EEPROM存储器 113
6.4.5 程序计数器高位寄存器,PCLATH 114
6.5 特殊功能 114
6.5.1 振荡器类型 114
6.5.2 上电定时器 115
6.5.3 看门狗定时器(WDT) 115
6.5.4 休眠模式 115
6.5.5 在线编程和调试 116
6.5.6 代码保护 116
6.5.7 配置字 116
6.6 程序数据表 117
6.7 汇编语言伪指令 119
6.7.1 控制处理器的伪指令 120
6.7.2 条件伪指令 121
6.7.3 列表伪指令 121
6.7.4 数据伪指令 121
6.7.5 宏指令 121
6.8 特殊指令 122
6.9 数字类型 122
6.10 小结 123
第7章 硬件原型 124
7.1 硬件设计 124
7.2 硬件构建 125
7.2.1 印制电路板PCB 125
7.2.2 无焊面包板(Breadboard) 126
7.2.3 条状铜箔面包板(Stripboard) 127
7.3 演示试验板 128
7.3.1 硬件规格说明 128
7.3.2 硬件实现 128
7.3.3 实现 129
7.4 试验板上的应用程序 131
7.4.1 程序BUZZ1 131
7.4.2 程序DICE1 133
7.4.3 SCALE1程序 136
7.4.4 DIZI应用程序概述 138
7.5 小结 139
第8章 更多PIC应用和芯片 140
8.1 16F877应用 141
8.1.1 温度控制器系统 141
8.1.2 I/O分配 142
8.1.3 温度控制器电路图说明 143
8.1.4 硬件开发 146
8.1.5 温度控制器测试程序 148
8.1.6 修改应用 155
8.2 16F818应用 155
8.3 12F675应用 156
8.4 18F452应用 156
8.4.1 PICC语言编程 158
8.4.2 C语言编程的优点 160
8.5 小结 160
第9章 PIC12F50X系列(8引脚PIC微控制器) 161
9.1 与PIC16F54的差异 161
9.1.1 STATUS寄存器 161
9.1.2 OSCCAL寄存器 162
9.1.3 输入和输出 162
9.1.4 OPTION寄存器 163
9.1.5 TRIS寄存器 163
9.1.6 通用目的文件寄存器 163
9.1.7 ? 163
9.1.8 配置位 163
9.2 项目案例——PIC骰子 163
9.2.1 随机数漫谈 165
第10章 以PIC12F675示例中级操作 168
10.1 内在差异 168
10.1.1 OPTION和WPU寄存器 170
10.1.2 TRISIO寄存器 170
10.1.3 校准内部振荡器 170
10.1.4 PCLATH——程序计数器的高位 171
10.1.5 其他的差异 171
10.2 中断 172
10.2.1 INTCON 172
10.2.2 中断服务程序 173
10.2.3 休眠状态下的中断 174
10.2.4 维护STATUS现场 175
10.2.5 新的程序模板 175
10.2.6 项目案例——问答比赛控制器 177
10.3 EEPROM 179
10.3.1 EECON1 179
10.3.2 从EEPROM中读取数据 179
10.3.3 向EEPROM中写入数据 180
10.3.4 项目案例——电话卡 180
10.3.5 深入的EEPROM例子——音乐制造器 182
10.3.6 电源监视器 182
10.4 模拟-数字转换 183
10.4.1 ADCON0 183
10.4.2 模拟选择寄存器ANSEL 184
10.4.3 A/D转换中断 184
10.4.4 项目案例——浴室监控 184
10.5 比较器模块 187
10.5.1 参考电压 187
10.5.2 比较器中断 188
10.5.3 比较器案例——太阳跟踪器 188
10.5.4 比较器案例——从一个引脚读多个按钮 189
10.6 本章案例——智能花园灯 191
第11章 输入端口的使用 193
11.1 开关流程图 194
11.2 程序开发 195
11.2.1 程序是怎样执行的 196
11.2.2 程序执行的解释 198
11.3 扫描(多个输入端口) 198
11.4 开关扫描 198
11.5 控制应用——热电吹风控制器 200
第12章 键盘扫描 204
12.1 键盘处理案例 205
12.1.1 程序执行过程分析 207
12.1.2 扫描子程序 207
12.1.3 安全码 209
12.1.4 程序执行分析 213
12.1.5 消除抖动程序 213
12.1.6 扫描子程序 213
12.1.7 存储安全码 214
12.1.8 校验安全码 214
第13章 案例程序集 215
13.1 事件计数 215
13.1.1 计数电路的程序 216
13.1.2 执行过程分析 217
13.2 查找表 218
13.3 7段显示器 218
13.3.1 查找表工作原理 220
13.3.2 程序流程分析 221
13.3.3 测试 222
13.3.4 程序执行解释 224
13.4 数字大于255的处理 224
13.4.1 流程图说明 226
13.4.2 程序代码 226
13.4.3 程序执行分析 228
13.5 长时间间隔 229
13.5.1 流程图说明 229
13.5.2 5min延时代码 229
13.6 1小时的时延 231
13.6.1 延时1小时程序代码 231
第3部分 使用PicBasic对PIC微控制器编程第14章 PicBasic和PicBasic Pro程序设计 234
14.1 PicBasic语言 234
14.1.1 PicBasic变量 235
14.1.2 PicBasic算术运算和逻辑运算 237
14.1.3 PicBasic程序流程控制命令 238
14.1.4 其他PicBasic命令 241
14.1.5 推荐的PicBasic程序结构 248
14.2 PicBasic Pro语言 249
14.2.1 PicBasic Pro变量 249
14.2.2 常量 250
14.2.3 注释 250
14.2.4 多语句行 250
14.2.5 包含Include 250
14.2.6 定义Define 250
14.2.7 行扩展 250
14.2.8 在PicBasic Pro语言中访问端口和其他寄存器 250
14.2.9 算术运算符 251
14.2.10 PicBasic Pro命令 253
14.3 液晶显示器(LCD)接口和命令 257
14.3.1 并行接口LCD模块 258
14.3.2 串行接口LCD模块 262
14.4 中断 264
14.5 推荐的PicBasic Pro程序结构 265
14.6 步进电机的应用 266
14.7 伺服电机的应用 267
第15章 简单的PIC项目 268
15.1 项目1——使一个LED闪烁 268
15.1.1 PBC代码 269
15.1.2 PBPro代码 270
15.1.3 小结 271
15.2 项目2——滚动点亮多个LED 271
15.2.1 PBC代码 271
15.2.2 PBPro代码 274
15.2.3 小结 276
15.3 项目3——驱动一个7段LED显示器 276
15.3.1 PBC代码 277
15.3.2 PBPro代码 278
15.3.3 小结 280
第16章 基于16F876的项目 281
16.1 项目4——访问PORTA(I/O) 281
16.1.1 PBC代码 282
16.1.2 PBPro代码 284
16.1.3 小结 286
16.2 项目5——模拟-数字转换 286
16.2.1 PBC代码 287
16.2.2 PBPro代码 291
16.2.3 小结 293
16.3 项目6——驱动一个伺服电机 293
16.3.1 PBC代码 294
16.3.2 PBPro代码 296
16.3.3 小结 298
第17章 通信 299
17.1 项目7——驱动LCD模块 299
17.1.1 PBC代码 300
17.1.2 PBPro代码 305
17.1.3 小结 307
17.2 项目8——串口通信 307
17.2.1 PBPro代码 310
17.2.2 小结 313
17.3 项目9——通过串口驱动LCD 313
17.3.1 PBC代码 315
17.3.2 PBPro代码 320
17.3.3 小结 324
第4部分 使用MBasic对PIC微控制器编程第18章 MBasic编译器和开发试验板 326
18.1 编译器软件包 326
18.1.1 编译器版本介绍 326
18.1.2 MBasic编译器 326
18.2 BASIC及其要点 327
18.3 开发用的试验板 329
18.4 程序设计风格 331
18.4.1 标准程序设计风格 331
18.4.2 常量、变量和子程序名称 332
18.5 电路的搭建及标准配置 333
18.5.1 PIC的选择 334
18.6 引脚、端口和I/O 334
18.6.1 输出模式 336
18.6.2 输入模式 337
18.6.3 引脚变量和地址 337
18.6.4 运行时和编程时的引脚定义 338
18.6.5 LVP编程引脚选择 340
18.6.6 弱上拉 340
18.7 伪代码和程序规划 340
18.8 编译器内部架构 342
18.8.1 编译器与解释器 343
参考文献 345
第19章 PIC引脚输出电气特性 346
19.1 PIC引脚内部架构 346
19.2 LED指示器 349
19.3 电感负载的开/关 353
19.4 低端开关 354
19.4.1 小型NPN开关 354
19.4.2 小型N-沟道MOSFET开关 357
19.4.3 大功率双极低端开关 358
19.4.4 大功率MOSFET低端开关 360
19.4.5 高端开关 363
19.4.6 大功率高端开关 364
19.5 隔离开关 368
19.5.1 继电器开关 368
19.5.2 4N25光隔离NPN开关 372
19.5.3 PS710A-1A AD/DC光隔离MOSFET管开关 373
19.6 高速开关——由PIC产生声音信号 374
参考文献 376
第20章 PIC引脚输入电气特性 379
20.1 引言 379
20.2 开关抖动和保持电流 385
20.3 硬件方法消除抖动 386
20.4 软件方法消除抖动 388
20.5 隔离开关 391
20.6 键盘矩阵信号读取 392
参考文献 395
第21章 步进电机 396
21.1 步进电机基础知识 396
21.1.1 简介 396
21.1.2 操作 397
21.1.3 单极与双极 398
21.1.4 步进电机的分类 400
21.1.5 识别步进电机 401
21.1.6 阅读一个步进电机的规格说明 402
21.1.7 运行模式 406
21.2 程序 411
参考文献 431
第22章 数字温度传感器和实时时钟 432
22.1 DS18B20温度传感器 432
22.1.1 “1-Wire”协议 432
22.1.2 读取一个“1-Wire”芯片的序列号 435
22.1.3 读取温度 437
22.2 读取同一“1-Wire”总线上多个传感器信号 442
22.3 DS1302实时时钟 446
22.4 日期、时间和温度控制的综合应用 456
22.4.1 上升沿还是下降沿 458
22.4.2 数据位的顺序 459
22.4.3 阅读数据手册 459
22.5 修改程序及电路的思考 462
参考文献 463
第23章 红外远程控制 464
23.1 通用编码标准 465
23.2 IR接收器 466
23.3 宽/窄脉冲的特性 469
23.4 REC-80控制器的解码 481
23.5 修改程序及电路的思考 492
参考文献 493
第5部分 使用C语言对PIC微控制器编程第24章 准备知识 496
24.1 内容计划 496
24.2 开发环境准备 496
24.3 编码 497
24.3.1 编译和链接 498
24.3.2 生成第一个项目 499
24.3.3 端口初始化 500
24.3.4 重新测试PORTA 501
24.3.5 测试PORTB 501
24.4 回顾 503
24.4.1 给汇编专家的提示 503
24.4.2 给PIC MCU专家的提示 504
24.4.3 给C语言专家的提示 504
24.4.4 提示和技巧 504
参考书 504
参考资料链接 504
第25章 程序循环 505
25.1 内容计划 505
25.2 开发环境准备 505
25.3 编码 506
25.3.1 while循环 506
25.3.2 动态仿真 508
25.4 使用逻辑分析仪 510
25.5 项目评审 511
25.5.1 给汇编专家的提示 512
25.5.2 给PIC微控制器专家的提示 512
25.5.3 给C语言专家的提示 512
25.5.4 提示和技巧 512
参考书 513
参考资料链接 513
第26章 更多模式、更多程序循环技术 514
26.1 内容计划 514
26.2 开发环境准备 514
26.3 编码 514
26.3.1 do循环 514
26.3.2 变量声明 515
26.3.3 for循环 515
26.3.4 更多的循环示例 516
26.3.5 数组 517
26.3.6 一个新的示例 517
26.4 利用仿真逻辑分析仪进行测试 519
26.5 使用Explorer 16试验板 520
26.6 项目评审 520
26.6.1 给汇编专家的提示 520
26.6.2 给C语言专家的提示 521
26.6.3 提示和技巧 521
参考书 522
参考资料链接 522
第27章 "NUMB3RS" 523
27.1 内容计划 523
27.2 开发环境准备 523
27.3 编码 523
27.3.1 优化 524
27.3.2 测试 525
27.3.3 分析long型数据 525
27.3.4 long整型数乘法注意事项 526
27.3.5 long long类型数乘法 526
27.3.6 浮点型 526
27.4 给C语言编程专家的提示 527
27.5 性能分析 527
27.6 项目评审 529
27.6.1 给汇编专家的提示 529
27.6.2 给PIC微控制器专家的提示 530
27.6.3 提示和技巧 530
参考资料链接 531
第28章 中断 532
28.1 内容计划 532
28.2 开发环境准备 532
28.3 编码 532
28.3.1 中断嵌套 535
28.3.2 陷阱 535
28.3.3 一个中断程序模板与一个Timer1中断的子例程 535
28.3.4 一个使用Timer1的实际例子 537
28.3.5 测试Timer1中断 538
28.3.6 第二振荡器 540
28.3.7 实时时钟日历(RTCC) 540
28.4 多个中断源的管理 541
28.5 项目评审 541
28.5.1 给C语言专家的提示 541
28.5.2 给汇编语言专家的提示 542
28.5.3 给PIC微控制器专家的提示 542
28.5.4 技巧与提示 542
参考书 543
参考资料链接 543
第29章 浏览技术内幕 544
29.1 内容计划 544
29.2 开发环境准备 544
29.3 编码 544
29.3.1 内存空间分配 545
29.3.2 程序空间可见性 546
29.3.3 研究存储空间分配 547
29.3.4 查看MAP文件 549
29.3.5 指针 551
29.3.6 堆 552
29.3.7 MPLAB C30存储器模型 552
29.4 回顾 553
29.4.1 给C语言专家的提示 553
29.4.2 给汇编语言专家的提示 553
29.4.3 给PIC微控制器专家的提示 553
29.4.4 提示和技巧 553
参考书 554
参考资料链接 554
第6部分 附录 556
附录A PIC16系列微控制器指令集 556
附录B 电子“Ping-Pong”游戏的源代码 557
附录C DIZI-2试验板和“LOCK”应用程序 562
附录D 程序M代码 580
附录E 程序N代码 584
附录F 程序O代码 586
附录G 程序P代码 589
附录H 程序Q代码 592
附录I PIC参考数据 597
附录J 缩略字与词汇表 608
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《Prometheus技术秘笈》百里燊 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《林下养蜂技术》罗文华,黄勇,刘佳霖主编 2017
- 《脱硝运行技术1000问》朱国宇编 2019
- 《催化剂制备过程技术》韩勇责任编辑;(中国)张继光 2019
- 《断陷湖盆比较沉积学与油气储层》赵永胜等著 1996
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017