0.1 学习单片机意义何在 1
第9章 定时器/计数器TMR 1
目 录 1
第0章 概 述 1
0.2单片机究竟是何物 4
0.3 单片机到底有何用 5
0.4单片机有何特点 6
0.5 PIC单片机有何优越之处 7
0.6 P1C16F87X单片机有何特色 12
思考题与练习题 13
第1章 PIC16F87X硬件系统概况 14
1.1 PIC16F87X内部结构简介 14
1.1.1 PIC16F87X的核心区 17
1.1.2 PIC16F87X的外围区 20
1.2 PIC16F87X封装形式和引脚功能 21
1.3程序存储器和堆栈 26
1.4 RAM数据存储器(文件寄存器) 27
1.4.1通用寄存器 32
1.4.2特殊功能寄存器 34
1.5 复位和时钟外接电路简介 36
1.6 输入/输出端口的基本功能 37
1.6.2输入/输出端口的基本结构 38
1.6.1 与输入/输出端口相关的2个寄存器 38
1.6.3基本输入/输出端口的工作原理 40
思考题与练习题 43
第2章 指令系统 45
2.1 指令时序 45
2.2指令系统概览 46
2.3面向字节 操作类指令 47
2.4面向位操作类指令 51
2.5 面向常数操作和控制操作类指令 52
2.6指令功能分类 55
2.7寻址方式 56
2.7.1 立即寻址 56
2.7.2 直接寻址 57
2.7.3 间接寻址 57
2.7.4位寻址 58
2.8数据传递关系 59
2.9“内核—寄存器—外围模块”相互关系 59
思考题与练习题 60
第3章 汇编器和汇编程序设计基础 63
3.1 汇编器MPASMTM简介 63
3.2汇编语言的语句格式 65
3.3常用伪指令 67
3.4程序格式和程序流程图 69
3.5 RAM数据存储器的体选寻址问题 71
3.6顺序程序结构 73
3.7分支程序结构 75
3.8循环程序结构 77
3.9子程序结构 78
3.10程序跨页跳转和跨页调用问题 80
3.11延时程序设计 83
3.12查表程序设计 85
思考题与练习题 88
第4章 定时器/计数器TMR 90
4.1 定时器/计数器模块的基本用途 90
4.2 PIC单片机中定时器/计数器TMR0模块的特性 91
4.3 与定时器/计数器TMR0相关的寄存器 92
4.4 定时器/计数器TMR0模块的电路结构和工作原理 93
4.4.1 分频器 95
4.4.2 TMR0累加计数寄存器 96
思考题与练习题 97
第5章 中断系统 98
5.1 中断的基本概念 98
5.2 PIC16F87X的中断源 100
5.3 PIC16F87X的中断硬件逻辑 101
5.4与中断相关的寄存器 104
5.5中断的处理 109
5.5.1 中断的延时响应和延时处理问题 109
5.5.2 中断的现场保护问题 111
5.5.3需要注意的问题 114
5.6 端口RB电平变化中断 116
5.6.1 端口RB的中断功能电路 117
5.6.2电路工作原理 117
5.6.3 端口RB中断的处理方法 118
5.7外部中断的扩充方法 123
5.7.1 用TMR0外部时钟源扩展法 123
5.7.2用RB端口扩展法 124
思考题与练习题 126
第6章 应用系统性能的优化设计 127
6.1 系统配置字以及特殊存储器单元 127
6.1.1 系统配置字 129
6.1.2用户识别码ID 131
6.1.3器件识别码 133
6.2时钟系统 133
6.2.1 外接晶体振荡器/陶瓷谐振器(LP/XT/HS) 134
6.2.2外接阻容器件(RC) 135
6.2.3 引入外来时钟源(LP/XT/HS) 136
6.3 复位系统 136
6.3.1 几种不同的复位方式 137
6.3.2单片机内部的复位操作处理 137
6.3.3复位系统硬件逻辑 141
6.3.4 内部上电延时复位(POR)功能 144
6.3.5外部上电延时复位电路 145
6.3.6外部人工复位开关电路 148
6.3.7 内部掉电锁定复位(BOR)功能 148
6.4 看门狗定时器WDT 151
6.4.1 程序失控的回复 152
6.4.2 WDT的电路结构 154
6.4.3 WDT的工作原理 155
6.4.4 WDT相关寄存器 156
6.4.5使用WDT的注意事项 156
6.5.1睡眠状态的进入 157
6.5睡眠与唤醒 157
6.5.2睡眠状态的唤醒 158
思考题与练习题 161
第7章 输入/输出端口的复合功能 163
7.1 与输入/输出端口相关的寄存器 163
7.2 RA端口 165
7.2.1 与RA端口相关的寄存器 165
7.2.2电路结构和工作原理 166
7.2.3编程方法 167
7.3 RB端口 168
7.3.1 与RB端口相关的寄存器 168
7.3.2 电路结构和工作原理 169
7.3.3编程方法 171
7.4 RC端口 171
7.4.2电路结构和工作原理 172
7.4.1 与RC端口相关的寄存器 172
7.4.3编程方法 174
7.5 RD端口 175
7.5.1 与RD端口相关的寄存器 175
7.5.2 电路结构和工作原理 176
7.5.3 编程方法 176
7.6 RE端口 177
7.6.1 与RE端口相关的寄存器 177
7.6.2 电路结构和工作原理 178
7.6.3 编程方法 178
7.7 PSP并行从动端口 178
7.7.1 与PSP端口相关的寄存器 179
7.7.2电路结构和工作原理 180
思考题与练习题 182
第8章 EEPROM数据存储器和Flash程序存储器 184
8.1 背景知识 184
8.1.1 通用型半导体存储器的种类和特点 184
8.1.2 PIC单片机内部的程序存储器 185
8.1.3 PIC单片机内部的EEPROM数据存储器 186
8.1.4 PIC16F87X内部EEPROM和Flash的操作方法 187
8.2 与EEPROM相关的寄存器 190
8.3 片内EEPROM数据存储器结构和操作原理 193
8.3.1 从EEPROM中读取数据 194
8.3.2 向EEPROM中烧写数据 194
8.4 与F1ash相关的寄存器 196
8.5 片内Flash程序存储器结构和操作原理 199
8.5.1 读取Flash程序存储器 199
8.5.2烧写Flash程序存储器 200
8.6.1写入校验方法 203
8.6写操作的安全保障措施 203
8.6.2预防意外写操作的保障措施 204
思考题与练习题 204
9.1 定时器/计数器TMR1模块的特性 207
9.2 与定时器/计数器TMR1模块相关的寄存器 208
9.3定时器/计数器TMR1模块的电路结构 209
9.4定时器/计数器TMR1模块的工作原理 211
9.4.1 禁止TMR1工作 213
9.4.2定时器工作方式 213
9.4.3计数器工作方式 213
9.4.4 TMR1寄存器的赋值与复位 217
思考题与练习题 218
第10章 定时器TMR 219
10.1 定时器TMR2模块的特性 219
10.2 与定时器TMR2模块相关的寄存器 220
10.3定时器TMR2模块的电路结构 221
10.4.1 禁止TMR2工作 223
10.4 定时器TMR2模块的工作原理 223
10.4.2定时器工作方式 224
10.4.3 寄存器TMR2和PR2以及分频器的复位 225
10.4.4 TMR2模块的初始化编程 226
思考题与练习题 226
第11章 输入捕捉/输出比较/脉宽调制CCP 228
11.1 输入捕捉工作模式 228
11.1.1 与输入捕捉模式相关的寄存器 229
11.1.2输入捕捉模式的电路结构 231
11.1.3输入捕捉模式的工作原理 232
11.2输出比较工作模式 233
11.2.1 与输出比较模式相关的寄存器 233
11.2.2输出比较模式的电路结构 234
11.2.3输出比较模式的工作原理 235
11.3.1 与脉宽调制模式相关的寄存器 236
11.3脉宽调制输出工作模式 236
11.3.2脉宽调制模式的电路结构 238
11.3.3脉宽调制模式的工作原理 240
11.4 两个CCP模块之间的相互关系 245
思考题与练习题 247
第12章 模/数转换器ADC 249
12.1 背景知识 249
12.1.1 ADC种类与特点 249
12.1.2 ADC器件的工作原理 250
12.2 PIC1 6F87X片内ADC模块 253
12.2.1 与ADC模块相关的寄存器 254
12.2.2 ADC模块结构和操作原理 257
12.2.3 ADC模块操作时间要求 260
12.2.4 特殊情况下的A/D转换 263
12.2.5 ADC模块的转换精度和分辨率 265
12.2.6 ADC模块的操作编程 265
思考题与练习题 267
第13章 通用同步/异步收发器USART 268
13.1 串行通信的基本概念 268
13.1.1 串行通信的两种基本方式 269
13.1.2 串行通信中的数据传送方向 271
13.1.3 串行通信中的控制方式 272
13.1.4 串行通信中的码型、编码方式和帧结构 272
13.1.5 串行通信中的检错和纠错方式 273
13.1.6 串行通信组网方式 274
13.1.7 串行通信接口电路和参数 276
13.2 PIC16F87X片内通用同步/异步收发器USART模块 278
13.2.1 与USART模块相关的寄存器 279
13.2.2 USART波特率发生器BRG 282
13.2.3 USART模块的异步工作方式 285
13.2.4 USART模块的同步主控工作方式 299
13.2.5 USART模块的同步从动工作方式 306
思考题与练习题 309
第14章 主控同步串行端口MSSP——SPI模式 311
14.1 SPI接口背景知识 311
14.1.1 SP1接口信号描述 311
14.1.2基于SPI的系统构成方式 313
14.1.3 SPI接口工作原理 315
14.1.4兼容的MicroWire接口 317
14.2 PIC16F87X的SPI接口 319
14.2.1 与SPI接口相关的寄存器 320
14.2.2 SPI接口的结构和操作原理 322
14.2.3 SPI接口的主控方式 325
14.2.4 SPI接口的从动方式 326
思考题与练习题 327
第15章 主控同步串行端口MSSP——I2C模式 328
15.1 关于I2C总线的背景知识 328
15.1.1名词术语 329
15.1.2 I2C总线的技术特点 332
15.1.3 I2C总线的基本工作原理 333
15.1.4 I2C总线信号时序分析 335
15.1.5信号传送格式 339
15.1.6 寻址约定 340
15.1.7技术参数 346
15.1.8 I2C器件与I2C总线的接线方式 348
15.1.9 相兼容的SMBus总线 350
15.2 与I2C总线相关的寄存器 351
15.3典型信号时序的产生方法 356
15.3.1波特率发生器 356
15.3.2启动信号 357
15.3.3重启动信号 358
15.3.4应答信号 359
15.3.5停止信号 360
15.4.1 硬件结构 361
15.4被控器通信方式 361
15.4.2被主控器寻址 362
15.4.3被控器接收——被控接收器 363
15.4.4被控器发送——被控发送器 364
15.4.5广播式寻址 365
15.5主控器通信方式 366
15.5.1 硬件结构 366
15.5.2主控器发送—— 主控发送器 369
15.5.3 主控器接收——主控接收器 370
15.6 多主通信方式下的总线冲突和总线仲裁 373
15.6.1 发送和应答过程中的总线冲突 374
15.6.2启动过程中的总线冲突 374
15.6.3重启动过程中的总线冲突 376
15.6.4停止过程中的总线冲突 377
思考题与练习题 379
附录A ASCII码表 380
附录B特殊功能寄存器及其复位值一览表 382