第1章 单片机是能够执行程序的芯片 1
1.1 单片机是什么样子 1
1.2 单片机能够执行编写的程序 2
1.3 单片机辉煌的40年 2
1.4 单片机的标号信息及封装形式 3
1.5 为什么使用单片机 4
1.6 单片机加上外围电路形成控制系统 5
1.7 选择学习51系列单片机的原因 7
1.8 单片机系统的开发过程 7
1.9 如何学习好单片机 8
1.10 实验硬件准备 9
习题 10
第2章 单片机内部结构及最小系统 11
2.1 51单片机引脚定义及功能 11
2.2 单片机引脚的内部简化电路及驱动能力 13
2.3 51单片机的内部结构 15
2.4 单片机最小系统电路 16
2.5 时钟电路——推动单片机硬件电路动起来 17
2.6 复位电路——让程序从第一行开始执行 18
2.7 单片机存储结构及寄存器 19
2.8 单片机的工作过程 22
2.9 实训——组装与焊接单片机最小系统 23
2.10 将程序写入单片机 26
2.11 单片机编程其实很简单 28
习题 28
第3章 C51程序设计 29
3.1 C51程序结构 30
3.2 C51的数据类型 31
3.3 C51对特殊功能寄存器(SFR)的定义 33
3.4 Keil C51指针与函数 35
3.5 绝对地址访问 36
3.6 宏定义与C51中常用的头文件 36
3.7 硬件与软件编程的桥梁——C语言reg51.h头文件 37
3.8 C语言的数制与常用运算符 42
3.9 C51的流程控制语句 44
3.10 Keilu Vision2集成开发编程环境使用 45
3.11 实训——Keil C51编译器使用及程序下载 51
习题 53
第4章 I/O口的简单编程 54
4.1 单片机的I/O口编程语句介绍 54
4.2 简单控制单片机引脚输出 55
4.3 使用C语言高级语句控制引脚输出 61
4.4 单片机引脚信号的读出 62
4.5 LED数码管显示技术 69
4.6 根据LCD1602液晶的时序图进行编程 77
4.7 根据说明书对128×64汉字液晶进行编程 85
4.8 使用ADC0832接收模拟量数据 94
4.9 使用TLV5618输出模拟量数据 98
习题 102
第5章 中断函数——条件满足立即插入执行的代码 103
5.1 单片机中断的执行原理 103
5.2 能够引起中断的地方——单片机的中断源 104
5.3 与中断相关控制寄存器 105
5.4 中断编程的固定格式 108
5.5 有外部中断功能的按键系统 110
5.6 单片机中断编程进阶 112
习题 114
第6章 集成定时器——提供精确的运行时间 115
6.1 古代的沙漏计时装置与单片机的集成定时器 115
6.2 定时器/计数器相关的控制寄存器 116
6.3 定时器/计数器的工作方式 118
6.4 C语言对定时器/计数器的编程 121
6.5 定时器/计数器T0制作流水灯 128
6.6 定时器/计数器的计数方式编程 129
6.7 定时器/计数器的应用进阶 130
6.8 使用定时器中断对红外线遥控器解码 131
6.9 定时器应用——时间表方法开发系统 137
习题 142
第7章 利用集成串口联网通信 143
7.1 单片机的集成串口 144
7.2 串行口及其有关的寄存器 146
7.3 串行接口的工作方式 148
7.4 通信波特率的设定方法 150
7.5 串行通信的编程 151
7.6 串口编程实例 152
7.7 使用单片机串口与其他设备通信 157
习题 160
第8章 单片机与其他设备的总线技术 161
8.1 I2C总线接口 161
8.2 SPI接口 169
8.3 Microwire接口 173
8.4 1-Wire接口 178
8.5 USB接口 184
习题 186
第9章 单片机应用系统设计 187
9.1 单片机系统与传感器 187
9.2 光电隔离技术 188
9.3 单片机驱动低压电器 190
9.4 单片机的看门狗电路 191
9.5 单片机的低功耗工作方式 193
9.6 使用“积木”原理开发单片机应用系统 195
习题 204
第10章 单片机汇编指令系统及编程 205
10.1 单片机汇编指令系统概述 205
10.2 汇编语言的伪指令 206
10.3 51单片机的寻址方式 209
10.4 常用指令系统及应用举例 214
10.5 汇编语言程序设计举例 242
10.6 在C语言代码中加入汇编指令 249
习题 252
参考文献 255
附录1 单片机的软件模拟仿真调试 256
附录2 STC下载软件中串口助手的使用 262