第1章 单片机及其应用系统设计概述 1
1.1 单片机基本知识 2
1.1.1 单片机概述 2
1.1.2 单片机应用系统概述 2
1.1.3 单片机的分类 3
1.1.4 单片机系统设计的常用术语 4
1.2 单片机应用系统开发入门 6
1.2.1 单片机应用系统的开发方法概述 6
1.2.2 单片机的集成开发环境 7
1.2.3 仿真与仿真器 8
1.2.4 单片机应用程序开发快速入门 11
思考题与习题 18
第2章 MCS-51单片机系统结构 19
2.1 MCS-51系列单片机概述 20
2.2 MCS-51单片机的总体结构 20
2.3 MCS-51单片机的中央处理器 22
2.3.1 概述 22
2.3.2 时钟电路 23
2.3.3 复位电路 24
2.3.4 MCS-51单片机的指令长度与指令周期 26
2.4 MCS-51单片机的存储器组织 27
2.4.1 程序存储器 28
2.4.2 片内RAM数据存储器 29
2.4.3 特殊功能寄存器 31
2.4.4 扩展存储器 33
2.5 MCS-51单片机的端口结构与功能 33
2.5.1 P1口的结构与功能 35
2.5.2 P3口的结构与功能 35
2.5.3 P2口的结构与功能 35
2.5.4 P0口的结构与功能 36
2.5.5 端口实验举例 36
思考题与习题 38
第3章 MCS-51单片机指令系统及编程技术 39
3.1 MCS-51汇编指令概述 40
3.1.1 汇编指令格式及常用符号说明 40
3.1.2 寻址方式 41
3.1.3 指令类型 42
3.2 数据传送指令 42
3.2.1 内部数据传送指令 42
3.2.2 外部数据传送指令 44
3.2.3 查表指令 44
3.3 算术运算指令 45
3.3.1 加法指令 45
3.3.2 减法指令 47
3.3.3 乘法指令 47
3.3.4 除法指令 48
3.4 逻辑运算指令 48
3.4.1 累加器A的逻辑运算指令 48
3.4.2 两个操作数的逻辑运算指令 49
3.5 位操作指令 50
3.5.1 位变量传送指令 50
3.5.2 位变量修改指令 50
3.5.3 位变量逻辑操作指令 50
3.6 控制转移指令 51
3.6.1 无条件转移指令 51
3.6.2 条件转移指令 52
3.6.3 调用和返回指令 53
3.7 汇编程序设计举例 53
3.7.1 查表程序举例 53
3.7.2 子程序及调用举例 53
3.7.3 控制转移程序举例 54
3.7.4 算术运算程序举例 55
3.7.5 逻辑运算程序举例 56
3.8 单片机C语言程序开发及设计举例 56
3.8.1 单片机C语言程序设计概述 56
3.8.2 基于WAVE6000开发单片机的C语言程序 56
3.8.3 基于Keil uVision开发单片机C语言程序 57
3.8.4 MCS-51单片机的C语言编程举例 65
思考题与习题 70
第4章 MCS-51单片机的定时器、串口和中断系统 73
4.1 MCS-51单片机的定时器 74
4.1.1 定时器T0和T1 74
4.1.2 定时器T2 77
4.2 MCS-51单片机的串口 81
4.2.1 串口的一般概念 81
4.2.2 MCS-51单片机串口的结构 82
4.2.3 MCS-51单片机串口的工作方式 83
4.2.4 多机通信原理 84
4.2.5 MCS-51单片机串口的波特率 85
4.2.6 MCS-51单片机串口应用编程实例 86
4.3 MCS-51单片机的中断系统 87
4.3.1 MCS-51单片机的中断源 88
4.3.2 MCS-51单片机的中断控制 88
4.3.3 MCS-51单片机的中断响应过程 89
4.3.4 MCS-51单片机的中断编程举例 90
思考题与习题 93
第5章 MCS-51单片机系统的并行扩展技术 95
5.1 单片机并行扩展概述 96
5.1.1 单片机的外部扩展总线 96
5.1.2 系统扩展常用芯片 97
5.1.3 系统扩展的寻址方法 100
5.2 外部存储器的扩展 101
5.2.1 程序存储器扩展 101
5.2.2 数据存储器扩展 103
5.3 并行I/O接口的扩展 104
5.3.1 简单的I/O扩展 105
5.3.2 可编程I/O接口电路的扩展 106
5.4 键盘与显示器的接口技术 111
5.4.1 键盘接口技术 111
5.4.2 显示器接口技术 114
5.4.3 典型键盘/显示器接口实例 118
5.4.4 可编程键盘/显示器接口8279 118
5.5 并行A/D和D/A转换器接口 127
5.5.1 8位A/D转换器及其与单片机的接口 127
5.5.2 12位A/D转换器及其与单片机的接口 131
5.5.3 8位D/A转换器及其与单片机的接口 133
5.5.4 12位D/A转换器及其与单片机的接口 136
思考题与习题 138
第6章 单片机系统串行扩展技术 139
6.1 单片机串行扩展概述 140
6.2 I2C总线 140
6.2.1 I2C总线的基本原理 140
6.2.2 I2C总线数据传输格式 141
6.2.3 AT24系列串行E2PROM 143
6.3 SPI串行外设接口 146
6.3.1 SPI的基本原理 146
6.3.2 SPI数据传输格式 147
6.4 单总线(1-Wire Bus) 148
6.4.1 单总线的基本原理 148
6.4.2 单总线的数据传输格式 149
6.5 串行A/D和D/A转换接口 151
6.5.1 8位串行A/D转换器TLC0834 151
6.5.2 12位串行A/D转换器MAX1247 153
6.5.3 8位串行D/A转换器TLC5620C 156
6.5.4 12位串行D/A转换器MAX531 158
思考题与习题 160
第7章 PIC系列单片机原理与应用 161
7.1 PIC系列单片机简介 162
7.1.1 PIC系列单片机的主要特点 162
7.1.2 PIC系列单片机选型指南 162
7.2 PIC16C54单片机的硬件结构 166
7.2.1 PIC16C54单片机的主要资源及引脚功能 166
7.2.2 中央处理器 168
7.2.3 存储器结构 171
7.2.4 特殊功能寄存器 172
7.2.5 系统配置字 175
7.2.6 看门狗 175
7.3 PIC16C5X系列单片机的指令系统 175
7.3.1 指令格式 176
7.3.2 寻址方式 177
7.3.3 PIC16C5X的指令集 177
7.3.4 PIC16C5X指令详解 179
7.4 PIC单片机的开发环境 190
7.4.1 MPLAB简介 190
7.4.2 MPLAB IDE快速入门 191
7.5 PIC16C73单片机简介 200
7.5.1 PIC16C73单片机的内部结构和引脚功能 200
7.5.2 定时器 204
7.5.3 CCP模块 206
7.5.4 A/D转换器 207
7.5.5 中断系统 209
思考题与习题 211
第8章 ARM系列单片机原理与应用 213
8.1 ARM系列单片机概述 214
8.1.1 ARM核的结构特性 214
8.1.2 ARM7系列处理器核简介 215
8.1.3 常用ARM系列单片机选型指南 215
8.2 ARM处理器的编程模型 217
8.2.1 ARM的工作状态与运行模式 217
8.2.2 ARM的数据类型与存储器格式 217
8.2.3 内部寄存器组织 218
8.2.4 异常中断及响应机理 221
8.3 ARM系列单片机的硬件结构 222
8.3.1 LPC2212/2214单片机简介 222
8.3.2 S3C44BOX单片机简介 237
8.4 ARM系列单片机指令系统及编程 238
8.4.1 ARM的指令寻址方式 239
8.4.2 ARM指令集 241
8.4.3 Thumb指令集及其与ARM指令集的区别 255
8.4.4 ARM的编程 256
8.5 ARM系列单片机集成开发环境 259
8.5.1 IAR EWARM简介 259
8.5.2 Qt/Embedded简介 272
思考题与习题 276
第9章 单片机应用系统设计实例 279
9.1 基于AT89C52控制的磁悬浮球演示系统 280
9.1.1 磁悬浮球演示系统的组成与工作原理 280
9.1.2 磁悬浮球演示系统的硬件电路设计 282
9.1.3 磁悬浮球演示系统的软件程序设计 284
9.2 基于PIC16C54的光栅式定位系统 296
9.2.1 光栅式定位系统的组成及工作原理 296
9.2.2 光栅式定位系统的硬件电路设计 297
9.2.3 光栅式定位系统的软件程序设计 298
9.3 基于LPC2212的三关节机器人控制系统 306
9.3.1 三关节机器人控制系统的结构与功能 306
9.3.2 三关节机器人控制系统的硬件电路设计 307
9.3.3 三关节机器人控制系统的软件设计 315
第10章 单片机应用系统设计选题 329
10.1 基于单片机的温度检测系统设计 330
10.2 基于单片机控制的智能充电器设计 331
10.3 基于单片机的红外通信系统设计 333
10.4 基于MCS-51单片机的主从式多机通信系统设计 335
10.5 CAN总线站点设计与通信实验 337
10.6 利用单片机和GSM模块实现短消息通信 338
10.7 基于单片机的安全计算机结构设计与实验 340
10.8 基于单片机的步进电机控制系统设计 341
10.9 基于单片机的无刷直流电机调速器设计 342
10.10 简易MP3播放器设计 345