第一章 PIC系列单片机概述 1
1.1 PIC单片机特点 1
1.2 PIC单片机一览 2
第二章 PIC16C5X单片机描述 4
2.1 PIC16C5X单片机简述 4
2.1.1 PIC16C5X单片机概况 4
2.1.2 主要性能 4
2.2.1 器件型号及引脚说明 6
2.2 PIC16C5X单片机系统结构 6
2.2.2 内部结构 7
2.2.3 程序存储器及堆栈 9
2.2.4 数据寄存器 10
2.2.5 通用寄存器和专用寄存器 16
2.2.6 预分频器 17
2.2.7 I/O口功能 19
2.3 CPU的特殊部件和功能 20
2.3.1 监视定时器WDT 20
2.3.2 振荡器电路 21
2.3.3 时钟/指令时序 23
2.3.4 复位状态 24
2.3.5 振荡器启动定时器OST和上电复位POR 24
2.3.6 省电方式SLEEP 27
2.3.7 配置位EPROM 28
2.4 PIC16C5X指令系统及设计 28
2.4.1 指令系统的分类及概述 28
2.4.3 面向字节操作类指令 30
2.4.2 PIC16C5X指令寻址方式 30
2.4.4 面向位操作类指令 35
2.4.5 控制和常数操作类指令 36
2.5 PIC16C5X系列单片机程序设计初步 38
2.5.1 软件编写注意事项 38
2.5.2 设置I/O口输入输出 41
2.5.3 检查寄存器是否为0 42
2.5.4 比较两个寄存器的大小 42
2.5.5 查表转换程序 42
2.5.6 N个连续存放数据的读取 43
2.5.7 延时 44
2.5.8 定时计数器的应用 45
2.6 常用算术运算程序设计方法 45
2.6.1 8×8位无符号二进制乘法 45
2.6.2 16×16位无符号二进制乘法 46
2.6.3 16/16位无符号二进制除法 47
2.6.4 BCD码转换成二进制数子程序 48
2.6.5 二进制数转换成BCD码子程序 50
2.6.6 无符号二位BCD码加法 51
2.6.7 无符号二位BCD码减法 52
2.6.8 无符号四位BCD码加法 53
第三章 PIC各系列单片机概述 56
3.1 PIC12CXXX单片机 56
3.1.1 PIC12C5XX单片机 56
3.1.2 PIC12CE5XX单片机 57
3.1.3 PIC12C6XX单片机 58
3.1.4 PIC12CE6XX单片机 60
3.2.1 PIC16C5X单片机 61
3.2 PIC16C5XX单片机 61
3.2.2 PIC16C505单片机 63
3.2.3 PIC16HV540单片机 64
3.3 PIC16CXXX单片机 66
3.3.1 PIC16C55X单片机 66
3.3.2 PIC16C6X单片机 67
3.3.3 PIC16C62X/64X/66X单片机 69
3.3.4 PIC16CE62X单片机 72
3.3.5 PIC16F62X单片机 73
3.3.6 PIC16C7XX单片机 75
3.3.7 PIC16F8X单片机 77
3.3.8 PIC16C9XX单片机 79
3.3.9 PIC14000单片机 82
3.4 PIC17CXXX单片机 84
3.4.1 PIC17C4X单片机 84
3.4.2 PIC17C7XX单片机 85
4.1.1 两线制E2PROM 24LCXX/IC卡的扩展和编程 88
第四章 PIC单片机常用功能扩展与编程 88
4.1 串行E2PROM的扩展和编程 88
4.1.2 具有可编程μP监控器的串行E2PROM X25043/45的应用 95
4.1.3 串行自动存储器NOVRAM X24C45的应用 101
4.2 人机对话接口与编程 106
4.2.1 数码显示的扩展与编程 107
4.2.2 串行液晶显示驱动器AY0438在PIC中的应用 124
4.2.3 按键接口及编程 128
4.3.1 串行通信基础 136
4.3 串行通信 136
4.3.2 RS232C/423/422/485及20mA电流环的接口电路 140
4.3.3 用PIC16C5X单片机模拟异步通信 147
4.3.4 PIC串口通信(SCI)模式的应用 149
4.4 模数转换器的扩展与应用 160
4.4.1 PIC16C5X实现廉价A/D转换 160
4.4.2 串行ADC在PIC中的应用 167
4.4.3 PIC单片机A/D模块及其应用 174
4.5.1 用PIC16C5X实现阶梯波产生器 190
4.5 数模转换器的扩展与应用 190
4.5.2 串行D/A转换器AD7543的应用 192
4.6 加密IC卡及其应用 194
4.6.1 IC卡概述 194
4.6.2 SLM4442工作原理 197
4.6.3 SLM4442与PIC单片机接口及编程 202
4.7 宽度固定的脉冲信号的识别 210
4.7.1 宽度固定的脉冲信号的识别方法 210
4.7.2 应用举例 211
4.8 实时时钟器件DS1302的扩展与应用 213
4.8.1 DS1302描述 213
4.8.2 DS1302的编程应用 217
第五章 PIC系列单片机应用实例 221
5.1 可编程逻辑阵列PLD的实现 221
5.1.1 实现一组合逻辑电路 221
5.1.2 实现小型PLA的表格查询方法 232
5.2.1 串行鼠标器工作原理 233
5.2 一种简单串行鼠标控制器的实现 233
5.2.2 软件设计 235
5.3 低电压/低成本的实时时钟 241
5.3.1 工作原理 241
5.3.2 软件实现 243
5.4 单相电子式预付费电度表 260
5.4.1 单相电子式预付费电度表工作过程 261
5.4.2 硬件电路及工作原理 262
5.4.3 软件编程 266
5.4.4 提高预付费电度表可靠性的措施 294
5.5 无线遥控健身摇摆机 296
5.5.1 遥控器(发射) 297
5.5.2 接收控制 315
第六章 PIC系列单片机开发工具 326
6.1 实时在线仿真器PICRICE 326
6.1.1 功能简介 326
6.1.2 系统功能 326
6.1.4 PICRICE仿真器硬件组成 329
6.1.3 系统结构 329
6.1.5 准备启动 333
6.1.6 主屏幕显示窗口和功能热键 333
6.1.7 调试命令 336
6.1.8 主菜单及其功能 339
6.1.9 错误信息 342
6.2 RASM交叉宏汇编 343
6.2.1 交叉宏汇编概论 344
6.2.2 RASM的启动及生成文件 344
6.2.3 源代码语句格式 345
6.2.4 伪指令 346
6.2.5 宏指令 349
6.2.6 错误信息 350
6.3 烧写器PICKIT 353
6.3.1 安装启动 353
6.3.2 使用说明 353
6.3.3 烧写器及窗口片使用注意事项 359
6.3.4 串行烧写器PICSTART-PLUS简述 360