目录 1
第1章 单片机新手上路 1
1.1 什么是单片机 2
1.2 单片机的结构与原理 2
1.2.1 单片机的生存要素 2
1.2.2 存储器 3
1.2.3 数据的运算和传送 4
1.2.4 输入输出端口 4
1.2.5 简单的外围 5
1.2.6 其他的特点 7
1.3 Microchip的PIC单片机 8
1.4 PIC系列单片机介绍 10
1.4.1 PIC12CXXX系列 11
1.4.2 PIC16C5X系列 12
1.4.3 PIC16CXXX系列 13
1.4.4 PIC17CXXX系列 14
1.4.5 PIC18CXXX系列 15
1.5 PIC单片机PART NUMBER说明 15
第2章 如何选用单片机 17
2.1 如何开始 18
2.2 PIC开发工具的选择 19
2.2.1 仿真器与仿真软件 19
2.2.2 烧写器 20
2.2.3 紫外线擦除器 21
2.3 学习板与电路设计 21
2.4 建立工作环境 22
2.5 Microchip CD-ROM 23
第3章 PIC16C7X单片机介绍 25
3.1 前言 26
3.2 PIC16C7X摘要说明 27
3.2.1 PIC16C7X微处理器核心特点 28
3.2.2 PIC16C7X外设特点 29
3.3 PIC16C7X概论 30
3.3.1 PIC16C72 30
3.3.2 PIC16C73/73A/76 30
3.3.3 PIC16C74/74A/77 31
3.4 注解说明 31
第4章 PIC16C7X单片机结构 33
4.1 PIC16C7X核心结构 34
4.2 单片机的振荡时钟 35
4.3 指令周期与指令流程 37
4.4 PIC16C7X内部功能结构 39
4.5 引脚功能描述 42
第5章 存储器结构 47
5.1 前言 48
5.2 PIC16C7X的程序存储器 48
5.3 PIC16C7X的数据存储器 50
第6章 单片机核心探讨 61
6.1 算术逻辑单元与工作寄存器 62
6.2 状态寄存器 63
6.3 程序计数器 64
6.4 直接寻址与间接寻址 69
6.5 选择寄存器 70
6.6 中断 71
6.6.1 PIC16C7X的中断 71
6.6.2 中断程序的开始与结束 73
6.6.3 中断相关寄存器 74
6.7 看门狗定时器 81
6.8 电源控制寄存器 83
6.9 单片机的复位 83
6.9.1 上电复位 85
6.9.2 掉电复位 85
6.9.3 WDT与外部引脚复位 86
6.9.4 单片机开启程序 86
6.9.5 复位后的寄存器状态 88
6.10 休眠模式 90
6.11 配置字以及单片机的标识与保护 91
第7章 输入输出端口 95
7.1 输入输出端口概念 96
7.2 PIC输入输出端口介绍 97
7.2.1 PORTA 97
7.2.2 PORTB 99
7.2.3 PORTC 101
7.2.4 PORTD 102
7.2.5 PORTE 103
7.3 并行从动端口 106
第8章 定时器模块与CCP模块 109
8.1 定时器模块介绍 110
8.1.1 TIMER0 111
8.1.2 TIMER1 113
8.1.3 TIMER2 116
8.2 CCP模块介绍 117
8.2.1 捕捉功能 119
8.2.2 比较功能 120
8.2.3 PWM功能 121
第9章 模拟数字转换器模块 125
9.1 A/D转换器模块 126
9.2 A/D转换模块的使用 129
9.3 A/D转换原理 130
9.3.1 A/D转换采样 130
9.3.2 A/D时钟选取 131
9.3.3 A/D分辨率与速度的选择 131
9.4 A/D转换模块的特性 132
第10章 同步串行端口模块 135
10.1 PIC16C7X的串行通信模块 136
10.2 SPI串行通信模块 136
10.2.1 SPI模式下相关寄存器 137
10.2.2 SPI模式工作原理 137
10.2.3 PIC16C76/77在SPI模式的差异 142
10.3.1 I2C串行通信模式简介 144
10.3 I2C串行通信模式 144
10.3.2 I2C的通信协议 145
10.3.3 I2C模式下相关寄存器 148
10.3.4 PIC16C7X中I2C工作原理——从动模式 150
10.3.5 PIC16C7X中I2C工作原理——主控模式 151
第11章 通用同步异步接收发送器模块 153
11.1 USART串行通信模块 154
11.2 USART模块相关寄存器 154
11.3 USART中的波特率发生器 156
11.4 USART的异步模式 158
11.4.1 USART的异步发送模式 158
11.4.2 USART的异步接收模式 161
11.5 USART的同步模式 164
11.5.1 USART的同步主控发送模式 164
11.5.2 USART的同步主控接收模式 165
11.5.3 USART的同步从动发送模式 167
11.5.4 USART的同步从动接收模式 168
第12章 PIC16C7X指令集 171
12.1 PIC16C7X的指令 172
12.1.1 字节运算指令 174
12.1.2 位运算指令 175
12.1.3 文字与控制指令 175
12.2 PIC16C7X指令集说明 175
第13章 MPASM汇编语言 191
13.1 C语言与汇编语言 192
13.2 汇编语言编译器 192
13.3 MPASM的环境与使用 193
13.4 MPASM的伪指令 195
13.5 头文件 198
13.6 MPASM的宏指令 202
第14章 I/O应用范例 207
14.1 PIC16C7X I/O接口应用 208
14.2 LED输出 208
14.2.1 电路解析 208
14.2.2 软件设计 210
14.2.3 程序代码 210
14.2.4 程序注解 212
14.3 按键输入与LED输出(一) 212
14.3.1 电路解析 212
14.3.2 软件设计 213
14.3.3 程序代码 214
14.3.4 程序注解 216
14.4.1 电路解析 217
14.4.2 软件设计 217
14.4 按键输入与LED输出(二) 217
14.4.3 程序代码 218
14.4.4 程序注解 221
14.5 四位数码管应用 221
14.5.1 电路解析 222
14.5.2 软件设计 222
14.5.3 程序代码 223
14.5.4 程序注解 226
14.6 按键输入与数码管应用 227
14.6.1 电路解析 227
14.6.2 软件设计 227
14.6.3 程序代码 228
14.6.4 程序注解 236
14.7.1 电路解析 237
14.7 I/O扫描 237
14.7.2 软件设计 238
14.7.3 程序代码 239
14.7.4 程序注解 248
第15章 定时器与CCP模块范例 251
15.1 PIC16C7X的定时器与CCP模块 252
15.2 计时显示 252
15.2.1 电路解析 252
15.2.2 软件设计 253
15.2.3 程序代码 253
15.2.4 程序注解 258
15.3 比较模块的使用——定时器 259
15.3.1 电路解析 259
15.3.2 软件设计 259
15.3.3 程序代码 260
15.3.4 程序注解 262
15.4 捕捉输入——捕捉值显示 263
15.4.1 电路解析 263
15.4.2 软件设计 264
15.4.3 程序代码 265
15.4.4 程序注解 270
15.5 正弦波信号产生 270
15.5.1 电路解析 271
15.5.2 软件设计 271
15.5.3 程序代码 274
15.5.4 程序注解 278
第16章 A/D转换模块范例 281
16.1 PIC16C7X的A/D转换模块 282
16.2 市电电压读取 282
16.2.1 电路解析 283
16.2.2 软件设计 284
16.2.3 程序代码 285
16.2.4 程序注解 288
16.3 A/D按键与LCD显示模块 289
16.3.1 A/D按键 289
16.3.2 LCD显示模块 290
16.3.3 软件流程图 295
16.3.4 程序代码 296
16.3.5 程序注解 309
第17章 串行通信模块范例 313
17.1 PIC16C7X的串行通信 314
17.2 EEPROM-93C46的使用 314
17.2.1 电路解析 314
17.2.2 93C46简介 315
17.2.3 软件设计 317
17.2.4 程序代码 319
17.2.5 程序注解 326
17.3 EPROM-24LC02B的使用 327
17.3.1 电路解析 327
17.3.2 24LC02B简介 328
17.3.3 软件设计 331
17.3.4 程序代码 332
17.3.5 程序注解 337
17.4 RS232的应用 338
17.4.1 电路解析 339
17.4.2 软件设计 339
17.4.3 程序代码 340
17.4.4 程序注解 342
第18章 MPLAB的介绍与使用 343
18.1 MPLAB简介 344
18.2 MPLAB的安装 345
18.3 在MPLAB中程序文件的建立 346
18.3.1 工作窗口介绍 346
18.3.2 工作环境的设定 346
18.3.3 项目文件的建立 347
18.3.4 项目文件的编译 349
18.3.5 MPLAB环境设定 350
18.4 在MPLAB中进行程序调试 352
18.4.1 程序代码调试的概念 352
18.4.2 MPLAB的程序模拟环境 352
18.4.3 MPLAB的程序调试 354
18.4.4 MPLAB的程序调试测试 356
18.5 MPLAB中的其他选项 357