第一章 绪论 1
第一节 单片机的发展 1
第二节 单片机的类别 4
第三节 PIC系列单片机的种类与特点 6
第二章 PIC16F87X系列微控器系统硬件结构 10
第一节 概述 10
第二节 PIC16F87X系列微控器的内部功能及时序 11
一 内部组成 11
二 指令周期和时序图 14
三 指令流 14
第三节 PIC16F87X系列微控器的引脚功能 15
第四节 PIC16F87X系列微控器存储器组织 19
一 程序存储器组织 19
二 数据存储器组织 19
第五节 PIC16F87X系列微控器的I/O端口 34
一 端口A(PORTA)和它的方向寄存器(TRISA) 34
二 端口B(PORTB)和它的方向寄存器(TTRISB) 36
三 端口C(PORTC)和它的方向寄存器(TRISC) 37
四 端口D(PORTD)和它的方向寄存器(TRISD) 38
五 端口E(PORTE)和它的方向寄存器(TRISE) 38
六 并行从动端口 41
第六节 PIC16F87X系列微控器数据存储器E2PROM和闪存组织 42
一 寄存器EECON1和EECON2 43
二 E2PROM数据存储器的读和写操作 44
三 FLASH程序存储器的读和写操作 46
四 写校验与写保护 48
第七节 PIC16F87X系列微控器定时/计数器组织 49
一 定时/计数器0(TIMER0) 49
二 定时/计数器1(TIMER1) 51
三 定时/计数器2(TIMER2) 54
第八节 PIC16F87X系列微控器CCP 56
一 捕捉(Capture)工作方式 58
二 比较(Compare)工作方式 59
三 脉宽调制(PWM)工作方式 59
第九节 PIC16F87X系列微控器A/D转换模块 61
一 概述 61
二 A/D采集要求 65
三 A/D转换时钟选择 65
四 模拟输入引脚设置 66
五 正常A/D转换 66
六 睡眠A/D转换 67
七 复位对A/D转换的影响 67
八 A/D精度和误差 67
第十节 PIC16F87X系列微控器MSSP 68
一 概述 68
二 SPI工作方式 70
三 I2C工作方式 73
第十一节 PIC16F87X系列微控器USART 89
一 USATR波特率发生器(BRG) 90
二 USATR异步工作方式 91
三 USATR同步主控模式 96
四 USATR同步从动模式 99
第十二节 PIC16F87X系列微控器看门狗电路 101
第十三节 PIC16F87X系列微控器振荡电路 102
一 振荡方式 102
二 晶体振荡器/陶瓷振荡器 102
三 外部晶体振荡器电路 103
四 PC振荡电路 103
第十四节 PIC16F87X系列微控器中断组织 104
一 中断源 104
二 中断的控制 105
三 中断现场的保护 105
第十五节 PIC16F87X系列微控器复位与复位状态 106
第十六节 PIC16F87X系列微控器低功耗设备(休眠模式) 110
一 进入休眠(SLEEP)省电方式 110
二 CPU从休眠状态唤醒 111
三 中断唤醒状态 111
第十七节 PIC16F87X系列微控器在线串行编程与调试 112
一 在线调试 112
二 在线串行编程 112
思考题 113
第三章 PIC16F87X系列单片机端口功能与扩展 114
第一节 I/O端口的功能与应用 114
一 端口A的功能与应用 114
二 端口B的功能与应用 115
三 端口C的功能与应用 116
四 端口D的功能与应用 116
五 端口E的功能与应用 117
第二节 数据存储器的扩展 117
一 概述 117
二 并行总线数据存储器的扩展 118
三 I2C总线数据存储器的扩展 119
四 SPI总线数据存储器的扩展 121
第三节 异步串行通信接口的扩展 122
一 概述 122
二 RS-232-C标准 123
三 硬件实现方法与电路 124
四 通信程序的设计 126
第四节 外中断功能 127
一 PIC单片机中断的“级” 127
二 RB0/INT外中断 128
三 端口B 状态变化的中断 128
思考题 129
第四章 PIC系列单片机指令系统 130
第一节 PIC系列单片机指令系统的分类及说明 130
一 指令系统分类 130
二 指令描述符号说明 131
三 指令速查表 132
第二节 数据传送类指令 132
第三节 算术操作类指令 141
第四节 逻辑操作类指令 147
第五节 控制转移类指令 155
第六节 位操作类指令 161
思考题 163
第五章 PIC系列单片机汇编语言程序设计 164
第一节 汇编语言程序的基本格式 164
一 标号 164
二 操作码 164
三 操作数 165
四 注释 166
第二节 汇编程序MPASM的伪指令 166
第三节 宏定义与宏调用 174
第四节 一个汇编语言程序设计例子 176
一 程序清单及说明 176
二 汇编与调试 188
第五节 汇编语言程序结构化设计 189
一 顺序结构 189
二 循环结构 193
三 分支结构 194
思考题 195
第六章 实用程序及其设计方法 196
第一节 实用宏的定义 196
一 带进位的加法宏ADDWFC 196
二 置溢出标志的带进位加法宏ADDWFCV 197
三 带错位的减法宏SUBWFB 199
四 置溢出标志的带错位减法宏SUBWFBV 200
五 乘法宏MUL 202
六 除法宏DIV 202
七 寄存器内容为某常数跳转宏观JFZK 204
第二节 定点整数的算术运算子程序 205
一 无符号双精度数的定点算术运算子程序 205
二 有符号双精度数的定点算术运算子程序 208
第三节 浮点数的算术运算子程序 212
一 浮点数的表示及其规格子程序 215
二 浮点数加/减法子程序 216
三 浮点数乘法子程序 216
第四节 BCD码程序 217
一 二进制数转换为BCD码回法程序 219
二 无符号2位BCD码加法子程序 219
三 无符号2位BCD码减法子程序 220
思考题 222
第七章 PIC单片机的应用 223
第一节 LED显示控制 223
一 LED显示器 223
二 PIC单片机直接驱动LED显示接口方法 224
三 硬件译码驱动显示接口方法 226
第二节 异步串行通信 228
一 异步串行通信及接口概念 228
二 异步串行通信的软件模拟 229
第三节 串行通信(SCI)模式的应用 232
第四节 PIC16F877中A/D转换模块的应用 239
思考题 241
后记 242
参考文献 243