第1章 PIC16F87X简介 1
1.1 PICmicroTM系列单片机介绍 2
1.1.1 PIC12CXXX系列 3
1.1.2 PIC16C5X系列 4
1.1.3 PIC16CXXX系列 5
1.1.4 PIC17CXXX系列 6
1.1.5 PIC18CXXX系列 7
1.2 Why PIC16F87X? 7
1.3 PIC16F87X介绍 8
1.4 PIC16F87X摘要说明 10
1.4.1 PIC16F87X微处理器的核心特点 10
1.4.2 PIC16F87X处围特点 11
1.5 PIC16F87X与PIC16C7X的差异 11
1.6注解说明 12
1.7 PIC单片机PART NUMBER说明 13
1.8 Microchip CD ROM 13
第2章 PIC16F87X单片机结构 15
2.1 PIC16F87X核心结构 16
2.2单片机的振荡时钟 17
2.3指令周期与指令流程 20
2.4 PIC16F87X内部功能结构 21
2.5引脚功能描述 24
第3章 存储器结构 29
3.1前言 30
3.2 PIC16F87X的程序存储器 30
3.3 PIC16F87X的数据存储器 32
3.4.1 EEPROM简介 38
3.4 Data EEPROM和Flash ROM 38
3.4.2 Data EEPROM和Flash ROM简介 39
3.4.3 EEPROM的读取 42
3.4.4 EEPROM的写入 43
3.4.5 Flash ROM的读取 44
3.4.6 Flash ROM的写入 45
3.4.7 EEPROM 和Flash ROM的保护机制 47
第4章 单片机核心探讨 49
4.1算术逻辑单元与工作寄存器 50
4.2状态寄存器 50
4.3程序计数器 52
4.4堆栈 56
4.5直接寻址与间接寻址 57
4.6选择寄存器 58
4.7中断 59
4.7.1 PIC16F87X的中断 60
4.7.2中断程序的开始与结束 61
4.7.3中断相关寄存器 63
4.8看门狗定时器 68
4.9电源控制寄存器 69
4.10单片机的复位 70
4.10.1上电复位 71
4.10.2内部掉电复位 72
4.10.3 WDT与外部引脚低电平复位 73
4.10.4单片机开启程序 73
4.10.5复位后的寄存器状态 75
4.11休眠模式 77
4.12配置字以及单片机的标示与保护 79
第5章 输入输出端口 81
5.1输入输出端口简介 82
5.2 PORTA端口 83
5.3 PORTB端口 85
5.4 PORTC端口 87
5.5 PORTD端口 89
5.6 PORTE端口 90
5.7并行从动端口 92
第6章 定时器模块与CCP模块 95
6.1定时器模块介绍 96
6.1.1 TIMER0 97
6.1.2 TIMER1 99
6.1.3 TIMER2 102
6.2 CCP模块介绍 104
6.2.1捕捉功能 106
6.2.2比较功能 107
6.2.3 PWM功能 108
第7章 模拟数字转换器模块 113
7.1 A/D转换器模块 114
7.2 A/D转换模块的使用 118
7.3 A/D转换原理 119
7.3.1 A/D转换采样 120
7.3.2 A/D时钟选取 121
7.3.3 A/D分辨率与速度的选择 122
7.3.4 A/D转换流程 123
7.4 A/D转换模块的特性 125
7.4.1休眠模式下的A/D转换 125
7.4.2 CCP模块与A/D转换的搭配 125
7.4.3 A/D转换模块的复位 125
7.4.4 A/D转换的传递函数 126
第8章 同步串行端口模块 127
8.1 PIC16F87X的串行通信模块 128
8.2 SPI串行通信模块 128
8.2.1 SPI工作方式下的相关寄存器 129
8.2.2 SPI方式工作原理 133
8.2.3 SPI主控方式 134
8.2.4 SPI从动方式 135
8.3 I2C串行通信方式 136
8.3.1 I2C串行通信方式简介 136
8.3.2 I2C总线的通信协议 137
8.3.3 I2C方式下相关寄存器 140
8.3.4 I2C从动方式 143
8.3.5 I2C的通用地址寻址 145
8.3.6 I2C主控方式简介 146
8.3.7 I2C主控发送方式 148
8.3.8 I2C主控接收方式 150
8.3.9 I2C主控方式启动位的时序 151
8.3.10 I2C主控方式重启动位的时序 153
8.3.11 I2C主控方式停止位的时序 155
8.3.12 I2C主控方式应答信号位的时序 156
8.3.13 多主机方式下应考虑的因素 158
第9章 通用同步异步接收发送器模块 159
9.1 USART串行通信模块 160
9.2 USART模块相关寄存器 160
9.3 USART中的波特率发生器 163
9.4 USART的异步工作方式 164
9.4.1 USART的异步发送方式 165
9.4.2 USART的异步接收方式 168
9.4.3 USART异步接收方式的寻址应用 170
9.5 USART的同步工作方式 172
9.5.1 USART的同步主控发送方式 172
9.5.2 USART的同步主控接收方式 174
9.5.3 USART的同步从动发送方式 175
9.5.4 USART的同步从动接收方式 177
第10章 PIC16F87X指令集 179
10.1 PIC16F87X的指令 180
10.1.3立即数操作与控制操作指令 183
10.1.2位操作指令 183
10.1.1字节操作指令 183
10.2 PIC16F87X指令集说明 184
第11章 MPASM汇编语言 201
11.1 C语言与汇编语言 202
11.2 汇编语言编译器 202
11.3 MPASM的环境与使用 203
11.4 MPASM的伪指令 205
11.5头文件 208
11.6 MPASM的宏指令 215
第12章 MPLAB-ICD 219
12.1 MPLAB-ICD简介 220
12.2 MPLAB-ICD开发工具套件 221
12.2.1 MPLAB-ICD硬件 222
12.2.2 MPLAB-ICD软件 224
12.3 MPLAB-IDE简介 225
12.4 MPLAB-IDE的安装 226
12.5开始使用MPLAB 227
12.5.1工作环境的设定 228
12.5.2 MPLAB-ICD的设置 229
12.6.1项目文件的建立 233
12.6 MPLAB项目文件 233
12.6.2项目文件的编译 235
12.6.3 MPLAB环境设定 237
12.7在MPLAB中进行程序调试 239
12.7.1 MPLAB的程序仿真环境 240
12.7.2 MPLAB的程序调试 242
12.7.3简单的测试程序 244
12.7.4 MPLAB的程序调试 246
12.7.5 MPLAB的其他选项 247