第1章 单片机系统 1
1.1 单片机的发展、应用及常用系列简介 1
1.1.1 单片机的发展 1
1.1.2 单片机的应用 2
1.1.3 单片机常用系列简介 3
1.2 单片机的结构与原理 4
1.2.1 单片机的内部结构与引脚 4
1.2.2 单片机的存储器结构 8
1.2.3 单片机最小系统 15
1.2.4 单片机的工作过程 19
1.3 本章小结 19
1.4 习题 20
第2章 单片机开发系统 21
2.1 单片机开发系统简介 21
2.1.1 单片机开发系统的配置 21
2.1.2 Keil-C51软件的使用 21
2.2 系统调试 25
2.2.1 软件调试方法 25
2.2.2 硬件调试方法 26
2.3 仿真软件Proteus的使用 27
2.3.1 Proteus的主要功能特点 27
2.3.2 Proteus的界面与操作介绍 28
2.4 项目 实现一位LED灯控制系统 29
2.4.1 硬件电路的设计 29
2.4.2 控制程序的设计 29
2.4.3 调试并运行程序 30
2.5 基于Proteus的单片机实例仿真演示 30
2.6 实训 认识系统 31
2.7 本章小结 32
2.8 习题 32
第3章 指令系统 33
3.1 指令分类、指令和语句格式及其指令描述符号 33
3.1.1 MCS-51系列单片机的指令分类 33
3.1.2 MCS-51系列单片机的指令和语句格式 33
3.1.3 MCS-51系列单片机指令的描述符号 34
3.2 寻址方式 35
3.2.1 寄存器寻址 35
3.2.2 直接寻址 35
3.2.3 立即寻址 36
3.2.4 寄存器间接寻址 36
3.2.5 基址加变址寻址 36
3.2.6 相对寻址 37
3.2.7 位寻址 37
3.3 指令系统的5大类功能性指令和伪指令 37
3.3.1 数据传送指令 37
3.3.2 算术操作指令 40
3.3.3 逻辑运算指令 45
3.3.4 控制转移指令 47
3.3.5 位操作指令 49
3.3.6 伪指令 50
3.4 项目 实现汽车转向灯控制系统 52
3.4.1 硬件电路的设计 52
3.4.2 控制程序的设计 53
3.4.3 调试并运行程序 53
3.5 基于Proteus的单片机实例仿真演示 53
3.6 实训 拼字/拆字 54
3.7 本章小结 55
3.8 习题 56
第4章 汇编语言结构化程序设计 57
4.1 概述 57
4.2 汇编语言的基本结构 58
4.2.1 顺序结构 58
4.2.2 分支结构 60
4.2.3 循环结构 61
4.3 子程序设计 63
4.3.1 子程序的结构 63
4.3.2 子程序的设计实例 64
4.4 查表程序设计 67
4.5 散转程序设计 68
4.6 项目 实现花样彩灯控制系统 69
4.6.1 硬件电路的设计 69
4.6.2 控制程序的设计 69
4.6.3 调试并运行程序 70
4.7 基于Proteus的单片机实例仿真演示 70
4.8 实训 排序 72
4.9 本章小结 73
4.1 0习题 74
第5章 中断系统 76
5.1 概述 76
5.1.1 中断的概念 76
5.1.2 中断的类型 77
5.2 单片机中断系统 78
5.2.1 中断的组成 78
5.2.2 中断的控制 78
5.2.3 中断的处理过程 83
5.3 中断系统应用实例 86
5.4 项目 设计报警器 89
5.4.1 硬件电路的设计 89
5.4.2 控制程序的设计 89
5.4.3 调试并运行程序 90
5.5 基于Proteus的单片机实例仿真演示 91
5.6 实训外部中断 92
5.7 本章小结 94
5.8 习题 94
第6章 定时器/计数器 96
6.1 定时器/计数器的用途、结构和工作原理 96
6.1.1 定时器/计数器的用途 96
6.1.2 定时器/计数器的结构 96
6.1.3 定时器/计数器的工作原理 97
6.2 控制方法 98
6.2.1 工作模式控制寄存器 98
6.2.2 定时器/计数器控制寄存器 99
6.3 工作方式 99
6.3.1 工作方式0 99
6.3.2 工作方式1 100
6.3.3 工作方式2 101
6.3.4 工作方式3 101
6.4 编程方法及应用实例 102
6.5 项目 实现十字路口交通信号灯控制系统 107
6.5.1 硬件电路的设计 107
6.5.2 控制程序的设计 108
6.5.3 调试并运行程序 109
6.6 基于Proteus的单片机实例仿真演示 110
6.7 实训 定时器/计数器 111
6.8 本章小结 113
6.9 习题 113
第7章 串行通信技术 115
7.1 串行通信基础 115
7.1.1 通信的分类 115
7.1.2 串行通信的制式 116
7.1.3 串行通信的分类 117
7.2 串行通信总线标准及其接口 118
7.2.1 RS-232C接口 119
7.2.2 RS-422接口 122
7.2.3 RS-485接口 124
7.3 串行接口控制 125
7.3.1 串行接口的结构 125
7.3.2 串行接口的波特率设置 128
7.3.3 串行接口的工作方式 129
7.4 串行口的应用实例 131
7.4.1 采用查询方式串行通信的基本流程 131
7.4.2 采用中断方式串行通信程序的编写 132
7.5 项目 实现双机通信 136
7.5.1 硬件电路的设计 136
7.5.2 通信程序的设计 137
7.5.3 调试并运行程序 139
7.6 基于Proteus的单片机实例仿真演示 139
7.7 实训 串口通信 142
7.8 本章小结 145
7.9 习题 145
第8章 单片机系统的扩展 147
8.1 存储器的扩展 147
8.1.1 程序存储器的扩展 147
8.1.2 数据存储器的扩展 151
8.2 I/O口的扩展 155
8.2.1 简单I/O口的扩展 155
8.2.2 可编程I/O口的扩展 156
8.3 项目 可编程I/O口的扩展 164
8.3.1 硬件电路的设计 164
8.3.2 控制程序的设计 165
8.3.3 调试并运行程序 166
8.4 基于Proteus的单片机实例仿真演示 166
8.5 实训 存储器的扩展 168
8.6 本章小结 169
8.7 习题 169
第9章 单片机接口技术 171
9.1 键盘接口技术 171
9.1.1 键盘的结构及其原理 171
9.1.2 独立式键盘 172
9.1.3 行列式键盘 175
9.2 显示接口技术 178
9.2.1 LED显示 178
9.2.2 LCD显示 184
9.3 转换接口技术 192
9.3.1 A/D转换 192
9.3.2 D/A转换 197
9.4 项目 实现简易数字电压表 204
9.4.1 硬件电路的设计 204
9.4.2 软件程序的设计 205
9.4.3 调试并运行程序 207
9.5 基于Proteus的单片机实例仿真演示 207
9.6 实训 简易正弦波形发生器 209
9.7 本章小结 212
9.8 习题 212
第10章 C语言与单片机 214
10.1 概述 214
10.1.1 单片机C语言的特点 214
10.1.2 C51程序结构 215
10.2 C51的基本语法要素 217
10.2.1 C51的基本数据类型 217
10.2.2 C51的运算符和表达式 220
10.3 C51程序的基本结构 225
10.3.1 顺序结构 225
10.3.2 循环结构 226
10.3.3 选择结构 228
10.4 函数 231
10.4.1 函数的定义 231
10.4.2 函数的调用 231
10.4.3 函数的嵌套与递归 232
10.5 项目 实现锯齿波电压信号 233
10.5.1 硬件电路的设计 233
10.5.2 软件程序的设计 234
10.5.3 调试并运行程序 235
10.6 实训 设计数字温度计 235
10.7 本章小结 238
10.8 习题 239
参考文献 240