第1章 EEPROM数据存储器和FLASH程序存储器 1
1.1 背景知识 1
1.1.1 通用型半导体存储器的种类和特点 1
1.1.2 PIC单片机内部的程序存储器 2
1.1.3 PIC单片机内部的EEPROM数据存储器 3
1.1.4 PIC16F87X内部EEPROM和FLASH操作方法 4
1.2 与EEPROM相关的寄存器 7
1.3 片内EEPROM数据存储器结构和操作原理 10
1.3.1 从EEPROM中读取数据 11
1.3.2 向EEPROM中烧写数据 12
1.4 与FLASH相关的寄存器 14
1.5 片内FLASH程序存储器结构和操作原理 15
1.5.1 读取FLASH程序存储器 16
1.5.2 烧写FLASH程序存储器 17
1.6 写操作的安全保障措施 20
1.6.1 写入校验方法 20
1.6.2 预防意外写操作的保障措施 20
1.7 EEPROM和FLASH应用举例 21
1.7.1 EEPROM的应用 21
1.7.2 FLASH的应用 33
思考题与练习题 39
2.1 RA端口 42
第2章 输入/输出端口的复合功能 42
2.1.1 与RA端口相关的寄存器 43
2.1.2 电路结构和工作原理 44
2.1.3 编程方法 46
2.2 RB端口 47
2.2.1 与RB端口相关的寄存器 47
2.2.2 电路结构和工作原理 48
2.3 RC端口 52
2.3.1 与RC端口相关的寄存器 52
2.2.3 编程方法 52
2.3.2 电路结构和工作原理 53
2.3.3 编程方法 56
2.4 RD端口 56
2.4.1 与RD端口相关的寄存器 56
2.4.2 电路结构和工作原理 57
2.4.3 编程方法 58
2.5 RE端口 58
2.5.1 与RE端口相关的寄存器 58
2.5.2 电路结构和工作原理 59
2.6 PSP并行从动端口 60
2.5.3 编程方法 60
2.6.1 与PSP端口相关的寄存器 61
2.6.2 电路结构和工作原理 62
2.7 应用举例 64
思考题与练习题 80
第3章 定时器/计数器TMR1 82
3.1 定时器/计数器TMR1模块的特性 82
3.2 定时器/计数器TMR1模块相关的寄存器 83
3.3 定时器/计数器TMR1模块的电路结构 84
3.4 定时器/计数器TMR1模块的工作原理 86
3.4.3 计数器工作方式 88
3.4.1 禁止TMR1工作 88
3.4.2 定时器工作方式 88
3.4.4 TMR1寄存器的赋值与复位 92
3.5 定时器/计数器TMR1模块的应用举例 92
思考题与练习题 101
第4章 定时器TMR2 102
4.1 定时器TMR2模块的特性 102
4.2 定时器TMR2模块相关的寄存器 103
4.3 定时器TMR2模块的电路结构 104
4.4.1 禁止TMR2工作 106
4.4 定时器TMR2模块的工作原理 106
4.4.2 定时器工作方式 107
4.4.3 寄存器TMR2和PR2以及分频器的复位 108
4.4.4 TMR2模块的初始化编程 109
4.5 定时器TMR2模块的应用举例 109
思考题与练习题 119
第5章 输入捕捉/输出比较/脉宽调制CCP 120
5.1 输入捕捉工作模式 120
5.1.1 输入捕捉模式相关的寄存器 121
5.1.2 输入捕捉模式的电路结构 122
5.1.3 输入捕捉模式的工作原理 123
5.1.4 输入捕捉模式的应用举例 124
5.2 输出比较工作模式 131
5.2.1 输出比较模式相关的寄存器 131
5.2.2 输出比较模式的电路结构 132
5.2.3 输出比较模式的工作原理 133
5.2.4 输出比较模式的应用举例 135
5.3 脉宽调制输出工作模式 143
5.3.1 脉宽调制模式相关的寄存器 143
5.3.2 脉宽调制模式的电路结构 145
5.3.3 脉宽调制模式的工作原理 147
5.3.4 脉宽调制模式的应用举例 151
5.4 两个CCP模块之间相互关系 156
思考题与练习题 158
第6章 模/数转换器ADC 160
6.1 背景知识 160
6.1.1 ADC种类与特点 160
6.1.2 ADC器件的工作原理 161
6.2 PIC16F87X片内ADC模块 164
6.2.1 ADC模块相关的寄存器 165
6.2.2 ADC模块结构和操作原理 168
6.2.3 ADC模块操作时间要求 171
6.2.4 特殊情况下的A/D转换 174
6.2.5 ADC模块的转换精度和分辨率 175
6.2.6 ADC模块的内部动作流程和传递函数 176
6.2.7 ADC模块的操作编程 177
6.3 PIC16F87X片内ADC模块的应用举例 178
思考题与练习题 188
第7章 通用同步/异步收发器USART 190
7.1 串行通信的基本概念 190
7.1.1 串行通信的两种基本方式 191
7.1.3 串行通信中的控制方式 193
7.1.2 串行通信中数据传送方向 193
7.1.4 串行通信中的码型、编码方式和帧结构 194
7.1.5 串行通信中的检错和纠错方式 195
7.1.6 串行通信组网方式 198
7.1.7 串行通信接口电路和参数 200
7.1.8 串行通信的传输速率 201
7.2 PIC16F87X片内通用同步/异步收发器USART模块 203
7.2.1 与USART模块相关的寄存器 204
7.2.2 USART波特率发生器BRG 207
7.2.3 USART模块的异步工作方式 209
7.2.4 USART模块的同步主控工作方式 223
7.2.5 USART模块的同步从动工作方式 229
7.3 通用同步/异步收发器USART的应用举例 231
思考题与练习题 251
第8章 主控同步串行端口MSSP——SPI模式 253
8.1 SPI接口的背景知识 253
8.1.1 SPI接口信号描述 253
8.1.2 基于SPI的系统构成方式 254
8.1.3 SPI接口工作原理 256
8.1.4 兼容的MicroWire接口 258
8.2 PIC16F87X的SPI接口 260
8.2.1 SPI接口相关的寄存器 261
8.2.2 SPI接口的结构和操作原理 263
8.2.3 SPI接口的主控方式 266
8.2.4 SPI接口的从动方式 267
8.3 SPI接口的应用举例 269
思考题与练习题 285
第9章 主控同步串行端口MSSP——I2C模式 286
9.1 I2C总线的背景知识 286
9.1.1 名词术语 288
9.1.2 I2C总线的技术特点 290
9.1.3 I2C总线的基本工作原理 291
9.1.4 I2C总线信号时序分析 293
9.1.5 信号传送格式 297
9.1.6 寻址约定 298
9.1.7 技术参数 303
9.1.8 I2C器件与I2C总线的接线方式 305
9.1.9 相兼容的SMBus总线 307
9.2 与I2C总线相关的寄存器 309
9.3 典型信号时序的产生方法 313
9.3.1 波特率发生器 313
9.3.2 启动信号 314
9.3.3 重启动信号 316
9.3.4 应答信号 318
9.3.5 停止信号 319
9.4 被控器通信方式 320
9.4.1 硬件结构 320
9.4.2 被主控器寻址 321
9.4.3 被控器接收——被控接收器 322
9.4.4 被控器发送——被控发送器 323
9.4.5 广播式寻址 324
9.5 主控器通信方式 325
9.5.1 硬件结构 326
9.5.2 主控器发送——主控发送器 329
9.5.3 主控器接收——主控接收器 331
9.6 多主通信方式下的总线冲突和总线仲裁 334
9.6.1 发送和应答过程中的总线冲突 335
9.6.2 启动过程中的总线冲突 335
9.6.3 重启动过程中的总线冲突 337
9.6.4 停止过程中的总线冲突 338
9.7 I2C总线的应用举例 339
思考题与练习题 349