第1章 基于51内核的单片机 1
1.1 8051单片机 1
1.1.1 MCS-51单片机资源特性 1
1.1.2 8051单片机内部结构 2
1.1.3 MCS-51工作方式 9
1.2 基于51内核的增强型单片机 10
1.2.1 Silicon Laboratories C8051F系列 10
1.2.2 Atmel 16
1.2.3 Philips 23
第2章 单片机高效软件开发 27
2.1 C语言基础 27
2.1.1 C语言中的数据 27
2.1.2 C语言中的函数 28
2.1.3 C语言中的运算操作 29
2.1.4 基本的程序设计结构 30
2.1.5 C语言关键字 32
2.2 C语言高级应用 34
2.2.1 类型定义typedef 34
2.2.2 结构 36
2.2.3 联合 39
2.2.4 枚举 40
2.2.5 位段 40
2.2.6 预处理命令 41
2.3 PC-lint代码检查 43
2.3.1 PC-lint使用介绍 43
2.3.2 PC-lint的代码检查功能 44
2.3.3 PC-lint与环境集成 46
2.4 C软件开发及版本控制 49
2.4.1 软件开发思想 49
2.4.2 版本控制 50
第3章 SoC常用模块及协议 53
3.1 模/数及数/模转换 53
3.1.1 A/D转换器 53
3.1.2 D/A转换器 56
3.1.3 比较器 57
3.2 定时器、PCA及PWM波形产生模块 59
3.2.1 定时器 59
3.2.2 可编程计数器阵列PCA 63
3.2.3 PWM波形发生器 65
3.3 串行通信接口UART 65
3.3.1 串行通信 66
3.3.2 串口结构介绍 67
3.3.3 MCS-51串口工作方式 69
3.3.4 串行通信接口标准 72
3.4 SPI 74
3.4.1 SPI总线 74
3.4.2 SPI传输方式 74
3.4.3 多设备连接 75
3.5 I2C 75
3.6 CAN 76
3.7 SMBus 77
3.8 TWI 78
3.8.1 ATMEL TWI总线特点 78
3.8.2 协议 78
3.9 LIN 79
第4章 OLED显示系统设计 81
4.1 显示设备 81
4.1.1 LED显示 81
4.1.2 LCD 82
4.1.3 OLED 83
4.2 串行LED显示 83
4.2.1 需求分析 83
4.2.2 原理图设计 85
4.2.3 软件设计 88
4.3 串行OLED显示 92
4.3.1 SSD1303 OLED显示模块 92
4.3.2 原理图设计 93
4.3.3 软件系统设计 96
4.4 并行OLED显示 101
4.4.1 并行显示原理 101
4.4.2 原理图设计 102
4.4.3 软件系统开发 103
第5章 云台解码器系统设计 107
5.1 摄像机云台系统 107
5.1.1 云台系统 107
5.1.2 云台总体设计 107
5.2 云台解码器硬件系统 108
5.2.1 驱动电路的设计思路 108
5.2.2 驱动电路设计 109
5.2.3 状况检测电路 111
5.2.4 原理图的设计 112
5.3 云台软件控制 115
5.3.1 云台转动控制 115
5.3.2 云台状态检测 117
第6章 电动机控制系统设计 125
6.1 电动机种类 125
6.1.1 步进电动机 125
6.1.2 舵机 125
6.2 单片机PWM模块 127
6.3 机器人电动机控制 128
6.3.1 系统性能需求 128
6.3.2 原理图设计 129
6.3.3 软件系统设计 132
6.4 三相电动机控制系统 139
6.4.1 三相伺服电动机 139
6.4.2 自适应控制器硬件 139
6.4.3 自适应软件实现 144
第7章 无线数据传输系统设计 149
7.1 无线数传模块 149
7.1.1 无线收发芯片nRF401 149
7.1.2 TR100S数传模块 152
7.2 数传系统硬件设计 154
7.2.1 单片机最小系统 154
7.2.2 无线数传模块的接口 156
7.2.3 GAL16V8电子开关 157
7.2.4 CPLD高速数据传输模块 160
7.3 数传系统软件设计 161
7.3.1 软件流程图 161
7.3.2 调试程序 161
7.4 无线系统抗干扰技术 165
7.4.1 无线干扰 165
7.4.2 无线数据传输模块的发送和接收 165
7.4.3 多点采样抗干扰方案 166
7.4.4 系统性能测试 170
第8章 车灯控制系统设计 171
8.1 车灯控制方案 172
8.1.1 汽车车灯控制系统 172
8.1.2 项目需求 173
8.1.3 设计方案 173
8.2 单片机及CAN模块介绍 175
8.2.1 CAN介绍 175
8.2.2 C8051F040 CAN模块 176
8.2.3 CAN模块程序控制 178
8.3 主模块 179
8.3.1 功能需求 179
8.3.2 系统设计 179
8.3.3 软件实现 182
8.4 从模块 197
8.4.1 硬件差异 197
8.4.2 软件实现 198
8.5 时钟部分 199
8.5.1 时钟芯片PCF8563 199
8.5.2 系统连接 200
8.5.3 程序控制 200
8.6 显示部分 204
8.6.1 128×64 LCD显示 204
8.6.2 连接方式 206
8.6.3 显示的编程控制 206
8.6.4 3个按键设置系统时间 208
第9章 IC卡读卡器系统设计 213
9.1 IC卡系统 213
9.1.1 MIFARE技术 213
9.1.2 IC卡介绍 214
9.1.3 MF RC500读卡器IC 215
9.2 读卡器系统硬件设计 219
9.2.1 系统总体架构 219
9.2.2 系统硬件设计 219
9.3 软件系统 223
9.3.1 系统的工作方式 223
9.3.2 MF RC500编程方法 224
9.3.3 程序讲解 229
参考文献 236