第1章 单片机概论 1
1.1 微处理器、微型计算机与单片机 1
1.2 单片机的结构与组成 2
1.3 单片机的分类和指标 3
1.4 常用的单片机系列 4
1.5 单片机的特点 6
1.6 单片机应用系统 6
1.7 单片机的应用领域 6
本章小结 8
习题1 8
第2章 单片机系统电路基础 9
2.1 数制与编码 9
2.1.1 进位计数制 9
2.1.2 进位计数制的相互转换 10
2.1.3 数码和字符的代码表示 11
2.2 单片机系统常用数字集成电路 13
2.2.1 常用的逻辑门电路 13
2.2.2 集电极开路门输出电路 16
2.2.3 常用组合逻辑电路 17
2.2.4 常用时序逻辑电路 22
2.3 单片机系统中的常用存储器电路 24
2.3.1 RAM存储器 25
2.3.2 ROM存储器 29
本章小结 31
习题2 32
第3章 单片机应用系统的研制与开发环境 34
3.1 单片机应用系统的研制步骤和方法 34
3.1.1 总体设计 35
3.1.2 硬件系统 35
3.1.3 软件系统 36
3.2 单片机应用系统开发的软、硬件环境 38
3.2.1 单片机应用系统开发的软、硬件环境构成 38
3.2.2 单片机应用系统开发工具选择原则 39
3.2.3 使用JTAG界面单片机仿真开发环境 39
3.2.4 单片机的在线编程 40
3.3 Keil C5 1高级语言集成开发环境——μVision3 IDE 40
3.3.1 μVision3 IDE主要特性 41
3.3.2 μVision3 IDE集成开发环境 42
3.3.3 μVision3 IDE的使用 45
3.3.4 Keil C51中printf库函数 54
3.4 基于Proteus的单片机系统仿真 54
3.4.1 Proteus 7Professional界面介绍 55
3.4.2 绘制电路原理图 57
3.4.3 ProteusVSM与μVision3的联调 61
3.4.4 Proteus VSM中的电源、复位与时钟 64
本章小结 64
习题3 65
第4章 80C51单片机硬件基础知识 66
4.1 MCS-51系列及80C51系列单片机简介 66
4.1.1 MCS-51系列和80C51系列单片机 66
4.1.2 80C5 1系列单片机的三次技术飞跃 67
4.1.3 高性能80C51单片机的特点 68
4.2 80C51系列单片机外引脚功能 68
4.3 80C51单片机内部结构 72
4.3.1 中央处理器(CPU) 72
4.3.2 存储器组织 75
4.3.3 并行输入/输出端口结构 85
4.3.4 时钟电路 90
4.3.5 复位电路 92
4.4 低功耗运行方式 94
4.4.1 电源控制寄存器PCON 95
4.4.2 待机方式 95
4.4.3 掉电方式 95
4.5 80C5 1单片机最小系统 96
本章小结 97
习题4 98
第5章 80C51单片机软件基础知识 99
5.1 80C51单片机指令系统概述 99
5.1.1 指令的概念 99
5.1.2 指令系统说明 100
5.1.3 80C51指令系统助记符 100
5.1.4 指令系统中的特殊符号 102
5.2 80C51单片机寻址方式 102
5.2.1 寄存器寻址方式 103
5.2.2 直接寻址方式 103
5.2.3 寄存器间接寻址方式 103
5.2.4 立即寻址方式 104
5.2.5 变址间接寻址方式 105
5.2.6 相对寻址方式 105
5.2.7 位寻址方式 105
5.3 80C51单片机指令系统 107
5.3.1 数据传送类指令 107
5.3.2 算术运算类指令 111
5.3.3 逻辑运算类指令 114
5.3.4 控制转移类指令 116
5.3.5 位操作指令 119
5.4 80C51汇编语言程序设计 123
5.4.1 伪指令 124
5.4.2 汇编语言程序设计举例 124
5.5 80C51单片机C51程序设计语言 126
5.5.1 C51的标识符和关键字 127
5.5.2 C51编译器能识别的数据类型 129
5.5.3 变量的存储种类和存储器类型 132
5.5.4 绝对地址的访问 137
5.5.5 中断服务程序 139
5.6 C51的运算符和表达式 140
5.6.1 赋值运算符 140
5.6.2 算术运算符 141
5.6.3 关系运算符 141
5.6.4 逻辑运算符 142
5.6.5 位运算符 142
5.6.6 复合运算符 143
5.6.7 指针和地址运算符 143
5.7 C51的库函数 143
5.7.1 本征库函数和非本征库函数 143
5.7.2 几类重要的库函数 144
5.8 C51的应用技巧 148
本章小结 151
习题5 153
第6章 80C51单片机内部资源及应用 156
6.1 中断系统和外中断 156
6.1.1 中断技术概述 156
6.1.2 80C51单片机中断系统 158
6.1.3 C51 中断服务函数 164
6.1.4 外部中断的应用实例 165
6.2 定时器/计数器 167
6.2.1 定时器/计数器0、1的结构及工作原理 168
6.2.2 定时器/计数器0、1的4种工作方式 170
6.2.3 定时器/计数器对输入信号的要求 175
6.2.4 定时器/计数器0、1的编程和应用实例 176
6.2.5 定时器/计数器2 181
6.3 串行通信 183
6.3.1 串行通信基础知识 183
6.3.2 80C51串行接口 186
6.3.3 应用实例 194
本章小结 199
习题6 201
第7章 单片机外部扩展资源及应用 203
7.1 单片机外部扩展资源和扩展编址技术概述 203
7.1.1 单片机外部扩展资源分类 203
7.1.2 单片机系统扩展结构与编址技术 204
7.1.3 单片机系统存储器扩展方法 206
7.2 并行I/O接口扩展 207
7.2.1 8255可编程并行I/O接口芯片 207
7.2.2 用74HC系列芯片扩展I/O接口 213
7.3 大容量闪速存储器的扩展 215
7.3.1 SuperFlash 39SF040简介 215
7.3.2 89C52单片机和39SF040接口方法 216
7.4 单片机系统中的键盘接口技术 218
7.4.1 键盘工作原理及消抖 218
7.4.2 独立式键盘及其工作原理 219
7.4.3 行列式键盘及其工作原理 221
7.4.4 键盘扫描的控制程序 222
7.5 单片机系统中的LED数码显示器 222
7.5.1 LED显示器的结构与原理 222
7.5.2 LED静态显示接口 223
7.5.3 LED动态扫描显示接口 225
7.6 单片机系统中的LCD液晶显示器 227
7.6.1 字符型液晶显示模块的组成和基本特点 227
7.6.2 LCD1602模块接口引脚功能 228
7.6.3 LCD1602模块的操作命令 229
7.6.4 LCD1602与89C52单片机接口与编程 233
7.6.5 点阵式图形LCD显示器的组成和基本特点 237
7.7 日历时钟接口芯片及应用 241
7.7.1 并行接口日历时钟芯片DS12887 241
7.7.2 串行接口日历时钟芯片DS1302 245
7.8 单片机数据采集系统 248
7.8.1 并行A/D转换器ADC0809 249
7.8.2 串行A/D转换器TLC2543 251
7.9 I2C总线接口电路E2PROM及其应用 253
7.9.1 串行E2PROM电路CAT24WCXX概述 254
7.9.2 串行E2PROM芯片的操作 255
7.9.3 串行E2PROM芯片与89C52的接口与编程 257
7.10 RS-232C和RS485/422通信接口 258
7.10.1 RS-232C接口的物理结构、电气特性、信号内容 258
7.10.2 RS-485/422接口 265
本章小结 267
习题7 268
第8章 单片机应用系统设计实例 269
8.1 设计要求 269
8.2 总体方案 269
8.3 硬件电路设计 270
8.4 软件设计 272
8.4.1 主程序模块 273
8.4.2 每到一层的状态控制 274
8.4.3 内部按键扫描 274
8.4.4 外部按键扫描 274
8.5 仿真测试 275
8.5.1 测试正常功能 275
8.5.2 测试异常功能 276
本章小结 276
第9章 多任务实时操作系统RTX-51 277
9.1 RTX-51实时多任务操作系统简介 277
9.1.1 单任务程序与多任务程序的比较 277
9.1.2 使用RTX-51 Tiny的软硬件要求 279
9.1.3 使用RTX-51 Tiny的注意事项 280
9.2 RTX-51 Tiny的任务管理 281
9.2.1 定时器滴答中断 281
9.2.2 任务 282
9.2.3 任务状态 282
9.2.4 事件 282
9.2.5 任务调度 283
9.2.6 任务切换 283
9.3 如何使用RTX-51 Tiny 286
9.3.1 编写程序 286
9.3.2 编译和连接 287
9.3.3 调试 287
9.3.4 实例1——os wait函数的使用 288
9.4 RTX-51 Tiny提供的系统函数 290
9.5 RTX-51 Tiny的配置 297
9.5.1 配置 297
9.5.2 库文件 299
9.5.3 优化 299
9.6 基于Proteus的RTX-51应用实例——交通信号灯控制器 299
9.6.1 交通信号灯控制器设计要求 299
9.6.2 总体方案 300
9.6.3 硬件电路 300
9.6.4 软件设计 302
9.6.5 功能使用说明 304
9.6.6 程序运行与测试 304
本章小结 305
习题9 306
附录A 指令速查表 307
参考文献 312