第1章 什么是PIC单片机1
1.1 PIC单片机的概念及其特点1
1.1.1什么是PIC单片机1
1.1.2 PIC单片机有什么优势2
1.2 单片机能够做哪些具体应用3
1.3 PIC单片机学习的软、硬件实验设备7
1.3.1 增强型PIC实验板7
1.3.2 PIC Pro编程器9
1.3.3 ICD2 PIC仿真烧写器10
1.3.4 PIC实验附件10
1.4 单片机学习的有效方法与途径12
第2章 PIC系列单片机系统的结构和工作原理13
2.1 PIC单片机概述13
2.2 PIC16F877硬件系统概况13
2.2.1内部结构15
2.2.2指令系统18
2.3 I/O端口的结构及工作原理21
2.3.1 I/O端口基本特征21
2.3.2 PORTA端口的特点22
2.3.3 PORTB端口的特点25
2.3.4 PORTC端口的特点27
2.3.5 PORTD端口的特点28
2.3.6 PORTE端口的特点29
2.3.7 PSP并行从动端口31
2.4 中断系统33
2.4.1 中断概述33
2.4.2 PIC16F877中断源33
2.4.3 中断寄存器34
2.4.4 中断处理38
2.5 定时器/计数器38
2.5.1 TMR0主要特征38
2.5.2 TMR1主要特征39
2.5.3 TMR2主要特征42
2.6 输入捕捉/输出比较/脉宽调制CCP45
2.6.1 输入捕捉模式45
2.6.2 输出比较工作模式48
2.6.3 脉宽调制输出工作模式50
2.7 片内EEPROM数据存储器53
2.7.1 片内EEPROM数据存储器概述53
2.7.2 片内EEPROM数据存储器寄存器54
2.7.3 片内EEPROM数据存储器结构和操作原理56
2.8 片内模/数转换器58
2.8.1 PIC16F877的片内ADC模块58
2.8.2 片内ADC模块相关寄存器58
2.8.3 片内ADC模块结构和操作原理61
2.8.4 片内ADC模块的转换过程62
2.8.5 片内ADC模块时钟与参考电压的选择62
2.9 USART通信模块及其使用63
2.9.1 USART通信模块简介64
2.9.2 USART通信模块寄存器65
2.9.3 USART波特率设定68
2.9.4 USART模块的异步通信69
2.9.5 USART模块的同步通信73
2.10 主控同步串口端口MSSP及其应用75
2.10.1 同步串行接口简介75
2.10.2 同步串行端口的SPI模式76
2.10.3 同步串行端口的I2C模式82
第3章 软件集成开发环境MPLABIDE88
3.1 MPLABIDE的组成88
3.2 MPLABIDE软件的获取89
3.3 MPLABIDE软件的安装与卸载89
3.4 PICC编译器的安装与使用方法93
3.5 初次使用PICC的设置96
第4章 C语言概论、数据类型、运算符与表达式98
4.1 C语言概论98
4.1.1 C语言的发展过程98
4.1.2 C语言的特点98
4.1.3 C源程序的结构特点98
4.1.4 C语言的字符集100
4.1.5 C语言词汇100
4.2 数据类型、运算符与表达式101
4.2.1 C语言的数据类型101
4.2.2 算术运算符和算术表达式110
4.2.3 关系运算符和表达式113
4.2.4 逻辑运算符和表达式115
第5章 分支与循环控制118
5.1 if语句118
5.1.1程序的三种基本结构118
5.1.2 if语句的三种形式119
5.1.3 if语句的嵌套123
5.2 条件运算符和条件表达式125
5.3 switch语句126
5.4 循环控制129
5.4.1概述129
5.4.2 goto语句和if语句构成循环129
5.4.3 while语句130
5.4.4 dowhile语句131
5.4.5 for语句133
5.4.6 循环的嵌套135
5.4.7 break和continue语句136
第6章 编译预处理与位运算预处理命令139
6.1 概述139
6.2 宏定义139
6.2.1 不带参数的宏定义139
6.2.2 带参数的宏定义141
6.3 文件包含143
6.4 条件编译143
6.5 位操作运算符145
第7章 数组与函数148
7.1 一维数组的定义和引用148
7.1.1 一维数组的定义148
7.1.2 一维数组元素的引用150
7.1.3 一维数组的初始化151
7.1.4 一维数组程序举例152
7.2 二维数组的定义和引用153
7.2.1 二维数组的定义153
7.2.2 二维数组元素的引用153
7.2.3 二维数组的初始化155
7.3 字符数组155
7.3.1 字符数组的定义155
7.3.2 字符数组的初始化156
7.3.3 字符数组的引用156
7.3.4 字符串和字符串结束标志157
7.4 函数概述157
7.4.1 函数定义的一般形式157
7.4.2 函数的参数和函数的值158
7.4.3 函数的返回值159
7.4.4 函数的调用160
7.4.5 被调用函数的声明和函数原型160
7.4.6 函数的嵌套调用161
7.4.7 函数的递归调用162
7.4.8 数组作为函数参数163
7.5 局部变量和全局变量165
7.5.1 局部变量166
7.5.2 全局变量167
第8章 指针、结构体与共用体169
8.1 指针和地址169
8.2 指针变量和指针运算符169
8.3 指针与函数参数173
8.4 指针、数组和字符串指针175
8.5 指针数组178
8.6 多级指针179
8.7 返回指针的函数181
8.8 函数指针181
8.9 结构与联合182
8.9.1 结构的定义182
8.9.2 结构数组184
8.9.3 结构与函数185
8.9.4 结构的初始化187
8.9.5 联合187
第9章 PIC开发套件快速入门189
9.1 PIC开发套件入门说明189
9.1.1 增强型PIC实验板189
9.1.2 增强型PIC实验板各模块说明192
9.1.3 PIC Pro编程器203
9.1.4 ICD2 PIC仿真烧写器207
9.2 如何建立第一个工程项目208
9.2.1 开发环境和烧写软件的安装208
9.2.2 实验电路原理分析208
9.2.3 程序代码编写与工程创建209
9.2.4 烧写芯片与程序验证211
9.3 如何使用ICD2测试程序212
9.3.1 通过ICD2仿真程序方式执行程序212
9.3.2 通过ICD2烧写程序方式执行程序216
9.4 PIC开发套件常见问题解答219
第10章 单片机基础实例223
10.1发光二极管闪动实验223
10.1.1 实例功能223
10.1.2 器件和原理223
10.1.3 硬件电路224
10.1.4 程序设计225
10.2 流水灯实验226
10.2.1 实例功能226
10.2.2 器件和原理227
10.2.3 硬件电路228
10.2.4 程序设计229
10.3 按键实验229
10.3.1 实例功能229
10.3.2 器件和原理230
10.3.3 硬件电路231
10.3.4 程序设计231
10.4 蜂鸣器实验232
10.4.1 实例功能232
10.4.2 器件和原理233
10.4.3 硬件电路233
10.4.4 程序设计234
10.5 继电器实验234
10.5.1 实例功能234
10.5.2 器件和原理235
10.5.3 硬件电路236
10.5.4 程序设计237
10.6 数码管实验237
10.6.1 实例功能238
10.6.2 器件和原理238
10.6.3 硬件电路240
10.6.4 程序设计240
10.7 串行口实验242
10.7.1 实例功能242
10.7.2 器件和原理244
10.7.3 硬件电路246
10.7.4 程序设计246
第11章 单片机高级应用实例248
11.1 步进电机应用实例248
11.1.1 步进电机简介248
11.1.2 步进电机的控制256
11.1.3 步进电机的软、硬件设计258
11.2 单总线数字温度传感器DS18B20应用实例260
11.2.1 单总线技术简介260
11.2.2 单总线温度传感器DS18B20简介261
11.3 24CXX系列存储器应用实例276
11.3.1 I2C总线简介276
11.3.2 I2C总线器件工作原理及时序278
11.3.3 AT24C系列存储器的软、硬件设计282
11.4 93CXX系列存储器应用实例290
11.4.1 SPI总线简介291
11.4.2 93C46存储器的软、硬件设计293
11.5 DS1302时钟芯片应用实例304
11.5.1 实时时钟简介304
11.5.2 DS1302时钟芯片简介305
11.5.3 DS1302的软、硬件设计308
11.6 A/D转换应用实例314
11.7 1602字符型LCD应用实例319
11.7.1 液晶显示简介320
11.7.2 1602字符型LCD简介321
11.7.3 1602字符型LCD的软、硬件设计326
11.8 12864点阵型LCD应用实例331
11.8.1 点阵LCD的显示原理331
11.8.2 12864点阵型LCD简介332
11.8.3 12864点阵型LCD软、硬件设计338
11.9 红外遥控软件解码应用实例348
11.9.1 红外遥控概述348
11.9.2 6121红外接收的软件解码应用实例354
11.10 无线通信模块应用363
11.10.1 无线通信概述363
11.10.2 PT2262/2272无线模块简介364
11.10.3 无线模块的软、硬件设计369
参考文献374