第1讲 单片机基础知识 1
1.1单片机的历史 1
1.2几款单片机的特点 2
1.2.1 PIC单片机的特点 2
1.2.2其他类型单片机的特点 4
1.3数制与编码 4
1.3.1数制 4
1.3.2数制的转换 5
1.3.3编码 7
1.3.4二进制的逻辑运算 7
1.4习题 8
第2讲 PIC单片机的结构 10
2.1 PIC单片机总体架构 10
2.1.1 PIC单片机内部结构框架 10
2.1.2 PIC单片机引脚及功能 13
2.2 PIC单片机的存储器 16
2.2.1程序存储器 16
2.2.2数据存储器 18
2.2.3 E2PROM数据存储器 22
2.3 PIC 16F877A的最小系统 23
2.4习题 25
第3讲 PIC单片机的开发流程及工具 26
3.1实例·模仿——点亮LED 26
3.2单片机的开发流程 31
3.3 MPLAB IDE软件介绍 32
3.3.1 MPLAB IDE的安装 32
3.3.2 MPLAB IDE功能介绍 34
3.4程序的运行及调试 38
3.5实例·操作——PICKit 2在线仿真 39
3.6实例·练习——MPLAB IDE仿真 42
3.7习题 44
第4讲 PIC单片机的指令系统 45
4.1实例·模仿——立即数的相加 45
4.2数据传送类指令 47
4.3逻辑运算类指令 48
4.4控制转移类指令 52
4.5算术运算类指令 55
4.6寄存器的寻址方式 57
4.7程序的跳转 59
4.8实例·操作——寄存器操作及运算 63
4.9实例·练习——寄存器连续操作及除法运算 64
4.10习题 66
第5讲 汇编语言程序设计 67
5.1实例·模仿——寄存器数据的交换 67
5.2汇编语言指令格式 68
5.3常用伪指令 69
5.4汇编程序的结构及常用子程序设计 73
5.4.1顺序结构 73
5.4.2选择结构 74
5.4.3循环结构 75
5.4.4子程序结构 77
5.4.5查表程序 78
5.4.6延时程序 79
5.5实例·操作——数据排列及计数 80
5.6实例·练习——乘法运算 83
5.7习题 85
第6讲 PIC单片机的C语言程序设计 86
6.1实例·模仿——数值的循环累加 86
6.2在MPLAB中使用PICC编译器 88
6.3 PICC基本语法 94
6.3.1基本数据类型 94
6.3.2常量与变量 95
6.3.3表达式 97
6.4指针和数组 99
6.4.1指针 99
6.4.2数组 100
6.5 PICC常用编程控制语句 102
6.5.1选择控制语句 102
6.5.2循环控制语句 106
6.6函数 108
6.7实例·操作——多种结构类型程序设计 110
6.8实例·练习——数值判断及数学运算 114
6.9习题 116
第7讲 通用I/O口 118
7.1实例·模仿——点亮一个LED灯 118
7.2通用I/O口的基本结构及工作原理 124
7.3相关寄存器及操作 125
7.4实例·操作——跑马灯及LED设计 128
7.4.1跑马灯程序设计 128
7.4.2按键控制LED灯程序设计 131
7.5实例·练习——数码管显示及键盘输入 134
7.5.1多位共阳数码管显示的程序设计 134
7.5.2 3×3矩阵键盘输入的程序设计 138
7.6习题 144
第8讲 中断系统 145
8.1实例·模仿——按键控制LED程序 145
8.2中断的概念及中断源 148
8.3中断系统结构及控制 148
8.4相关寄存器及操作 150
8.5中断的响应过程 154
8.6实例·操作——外部触发中断 155
8.7实例·练习——LED的循环控制 157
8.8习题 162
第9讲 定时器/计数器 165
9.1实例·模仿——LED的闪烁控制 165
9.2定时器与计数器 168
9.3定时器/计数器TMRO 168
9.3.1工作原理 168
9.3.2相关寄存器及操作 170
9.4定时器/计数器TMR1 172
9.4.1工作原理 172
9.4.2相关寄存器及操作 174
9.5定时器/计数器TMR2 176
9.5.1工作原理 176
9.5.2相关寄存器及操作 177
9.6实例·操作——端口计数及LED控制 179
9.7实例·练习——输出频率可变的方波 184
9.8习题 189
第10讲 CCP模块 190
10.1实例·模仿——输出调制信号 190
10.2输入捕捉工作模式 192
10.2.1输入捕捉的工作原理 193
10.2.2输入捕捉相关的寄存器 193
10.3输出比较工作模式 195
10.3.1工作原理 195
10.3.2输出比较相关的寄存器 196
10.4脉宽调制PWM工作模式 198
10.4.1 PWM的工作原理 198
10.4.2脉宽调制相关的寄存器 199
10.5实例·操作——CCP模块的多种应用 200
10.6实例·练习——以按键调节输出信号 208
10.7习题 212
第11讲 A/D转换器 214
11.1实例·模仿——采集直流电压信号 214
11.2 A/D转换器的基本结构及工作原理 217
11.2.1工作原理 217
11.2.2技术指标 218
11.3相关寄存器及控制方法 219
11.4实例·操作——直流信号的测量及输出 222
11.5实例·练习——直流信号的测量及显示 224
11.6习题 231
第12讲 串行通信 232
12.1实例·模仿——单片机向计算机端发送数据 232
12.2基本概念 236
12.3通用同步/异步串行接口USART 238
12.3.1通用同步/异步串行通信接口USART简介 238
12.3.2相关寄存器及操作 241
12.4同步串行接口SPI 243
12.4.1同步串行接口SPI介绍 243
12.4.2相关寄存器及操作 246
12.5同步串行接口I2C 249
12.5.1同步串行接口I2C简介 249
12.5.2相关寄存器及操作 252
12.6实例·操作——与计算机PC建立实时通信 256
12.7实例·练习——通信功能的进一步应用 258
12.8习题 269
第13讲 综合实例 270
13.1综合实例1:步进电机控制 270
13.1.1步进电机的工作原理 270
13.1.2利用PIC16F877A控制步进电机 271
13.2综合实例2: LCD1602液晶屏的应用 278
13.2.1 LCD 1602液晶屏简介 279
13.2.2 LCD1602液晶屏的使用 282
13.3习题 291
附录A PIC汇编语言指令表 292
附录B 习题答案 294