第1章 单片机的基本概念 1
1.1 学习单片机有什么必要性 1
1.2 单片机究竟是什么 6
1.3 单片机有哪些应用 7
1.4 单片机有哪些特点 9
1.5 单片机的发展状况 9
1.6 PIC系列单片机有哪些优越之处 12
1.7 可在线调试和在线编程的PIC16F87X 17
第2章 PIC16F87X硬件系统概况 19
2.1 PIC16F87X封装形式和引脚功能 19
2.2 PIC16F87X内部结构方框图简介 27
2.2.1 PIC16F87X的核心区域 33
2.2.2 PIC16F87X的外围模块区域 35
2.3 程序存储器和堆栈 38
2.4 RAM数据存储器(文件寄存器) 40
2.4.1 通用寄存器 46
2.4.2 特殊功能寄存器 47
2.5 复位功能简介 50
2.6 系统时钟简介 51
第3章 指令系统 54
3.1 指令时序 54
3.2 指令系统概览 55
3.3 面向字节操作类指令 56
3.4 面向位操作类指令 59
3.5 面向常数操作和控制操作类指令 60
3.6 寻址方式 62
3.6.1 立即寻址 62
3.6.2 直接寻址 62
3.6.3 间接寻址 63
3.6.4 位寻址 64
3.7 数据传递关系 65
3.8 “内核-寄存器-外围模块”相互关系 65
第4章 PIC汇编语言程序设计基础 69
4.1 MPASM汇编器简介 69
4.2 汇编语言的语句格式 71
4.3 常用伪指令 73
4.4 程序格式和程序流程图 74
4.5 RAM数据存储器的体选寻址问题 76
4.6 顺序程序结构 80
4.7 分支程序结构 81
4.8 循环程序结构 82
4.9 子程序结构 84
4.10 程序跨页跳转和跨页调用问题 86
4.11 延时程序设计 89
4.12 查表程序设计 91
第5章 MPLAB集成开发环境软件包 96
5.1 MPLAB的组成 96
5.2 MPLAB的安装 97
5.3 MPLAB的简单应用 101
5.3.1 启动MPLAB 101
5.3.2 MPLAB的设置 103
5.3.3 创建简单的项目 103
5.3.4 新建和汇编一个简单的源文件 107
5.3.5 程序调试 110
第6章 MPLAB-ICD在线调试工具套件及其应用 116
6.1 概述 116
6.1.1 MPLAB-ICD的功能特点 116
6.1.2 MPLAB-ICD的局限性 117
6.2 MPLAB-ICD工具套件的构成 118
6.2.1 MPLAB-ICD仿真头 119
6.2.2 MPLAB-ICD模块 119
6.2.3 MPLAB-ICD演示板 120
6.2.4 六芯电缆 121
6.2.5 连接插针 121
6.2.6 MPLAB集成开发环境软件包 121
6.2.7 直流电源适配器 121
6.3 MPLAB-ICD在线调试工具的安装 122
6.3.1 硬件安装方法之一 122
6.3.2 硬件安装方法之二 123
6.3.3 软件安装 124
6.4 MPLAB-ICD在线调试工具的启用 124
6.4.1 微机与MPLAB-ICD建立通信 124
6.4.2 MPLAB-ICD的设置 125
6.5 用MPLAB-ICD统调用户程序和用户电路 130
第7章 输入/输出端口的基本功能 137
7.1 与输入/输出端口相关的寄存器 137
7.2 基本输入/输出端口的内部结构和工作原理 139
7.2.1 输入/输出端口的基本结构 139
7.2.2 基本输入/输出端口的工作原理 141
7.3 输入/输出端口基本功能的应用举例 143
7.3.1 硬件电路规划 143
7.3.2 程序设计思路 144
7.3.3 程序调试方法 147
第8章 定时器/计数器TMRO 151
8.1 定时器/计数器模块的基本用途 151
8.2 PIC系列单片机中定时器/计数器TMRO模块的特性 152
8.3 与定时器/计数器TMRO模块相关的寄存器 153
8.4 定时器/计数器TMRO模块的电路结构和工作原理 155
8.4.1 分频器 157
8.4.2 TMRO累加计数寄存器 158
8.5 定时器/计数器TMRO模块的应用举例 159
8.5.1 TMRO用作硬件定时器 159
8.5.2 TMRO多次被引用 164
8.5.3 TMRO用作硬件计数器 169
第9章 中断系统 179
9.1 中断的基本概念 179
9.2 PIC16F87X的中断源 181
9.3 PIC16F87X的中断硬件逻辑 182
9.4 中断相关的寄存器 185
9.5 中断的处理 190
9.5.1 中断的延时响应和延时处理问题 191
9.5.2 中断的现场保护问题 192
9.5.3 需要注意的一些问题 196
9.6 中断功能的应用举例 198
9.6.1 TMRO溢出中断 198
9.6.2 INT外部中断 206
9.6.3 端口RB电平变化中断 213
9.7 外部中断的扩充方法 233
9.7.1 用TMRO外部时钟源扩展法 233
9.7.2 用RB端口扩展法 234
第10章 安全生产、可靠运行措施和降耗设计 237
10.1 系统配置字以及特殊存储器单元 237
10.1.1 系统配置字 239
10.1.2 用户识别码ID 241
10.1.3 器件识别码 242
10.2 时钟系统 243
10.2.1 外接晶体振荡器/陶瓷谐振器(LP/XT/HS) 244
10.2.2 外接阻容器件(RC) 245
10.2.3 引入外来时钟源(LP/XT/HS) 247
10.3 复位系统 248
10.3.1 几种不同的复位方式 248
10.3.2 单片机内部的复位操作处理 249
10.3.3 复位系统硬件逻辑 255
10.3.4 内部上电延时复位(POR)功能 258
10.3.5 外部上电延时复位电路 260
10.3.6 外部人工复位开关电路 262
10.3.7 内部掉电锁定复位(BOR)功能 264
10.3.8 外接电压检测复位电路举例 265
10.4 监视定时器WDT 270
10.4.1 程序失控的回复 271
10.4.2 WDT的电路结构 273
10.4.3 WDT的工作原理 275
10.4.4 WDT相关寄存器 276
10.4.5 使用WDT的注意事项 278
10.4.6 WDT的应用举例 278
10.5 睡眠(sleep)与唤醒(wake-up) 283
10.5.1 睡眠状态的进入 283
10.5.2 睡眠状态的唤醒 284
附录 288
附录A 英文指令系统概览 288
附录B 特殊指令助记符 292
附录C 宏汇编器MPASM 294
附录D MPLAB-ICD套件电路原理图 304
附录E 电压检测器HT70XX系列专用芯片 315
附录F 带延时复位功能的电源监控器IMP809/810 322
附录G 带延时和人工复位的电源监控器IMP811/812 327
附录H 带延时、人工复位及电源故障检测的电压监测器MAX707/708 333
附录I ASCⅡ码表 339
附录J 特殊功能寄存器及其复位值一览表 341
附录K 6种普及型8位单片机性能对比 345
附录L PIC全系列单片机 356
附录M PIC单片机软件模拟仿真时输入信号的激励方式 360
附录N 巧用MPLAB-ICD调试PIC全系列单片机 366