第1章 数字电路基础 1
1.1 逻辑代数 1
1.1.1 逻辑变量 1
1.1.2 逻辑运算 1
1.1.3 逻辑代数的运算规则 3
1.1.4 逻辑函数的简化 4
1.2 数字电路 5
1.2.1 数字电路概述 5
1.2.2 组合逻辑电路 6
1.2.3 时序逻辑电路 13
1.3 数字集成电路 18
1.3.1 数字电路元器件 18
1.3.2 TTL数字集成电路 20
1.3.3 CMOS数字集成电路 21
1.3.4 数字集成电路举例 23
1.4 思考题与习题 24
第2章 微机工作原理 26
2.1 计算机系统的组成 26
2.2 计算机的硬件组成 27
2.2.1 运算器 27
2.2.2 控制器 28
2.2.3 存储器 30
2.2.4 输入/输出设备和接口 34
2.3 计算机的软件 39
2.3.1 软件的分类 39
2.3.2 操作系统 39
2.3.3 编程语言 41
2.3.4 其他系统程序 42
2.4 单片机 42
2.4.1 单片机的概念 42
2.4.2 单片机的应用 42
2.4.3 单片机的发展 43
2.5 思考题与习题 45
第3章 89C51单片机的硬件结构和原理 46
3.1 89C51单片机的基本组成 46
3.1.1 MCS-51系列单片机 46
3.1.2 89C51单片机的基本组成 47
3.2 89C51单片机的引脚 48
3.3 89C51单片机中的CPU结构 51
3.3.1 运算器 51
3.3.2 控制器 53
3.4 89C51单片机的存储器 53
3.4.1 哈佛结构 53
3.4.2 程序存储器 54
3.4.3 片内数据存储器 55
3.4.4 片外数据存储器 59
3.5 89C51单片机的I/O接口 59
3.5.1 并行I/O端口P0~P3 59
3.5.2 串行端口UART 63
3.5.3 定时器/计数器T0、T1 65
3.6 89C51单片机的时钟电路和时序 66
3.6.1 时钟电路 66
3.6.2 时序 67
3.7 89C51单片机的工作方式 68
3.7.1 复位方式 68
3.7.2 程序执行方式 71
3.7.3 节电工作方式 72
3.8 思考题与习题 73
第4章 89C51单片机指令系统 74
4.1 指令系统概述 74
4.1.1 指令和指令系统 74
4.1.2 指令格式 75
4.1.3 指令中常用符号 75
4.2 89C51单片机的寻址方式 76
4.2.1 立即寻址 76
4.2.2 寄存器寻址 77
4.2.3 直接寻址 77
4.2.4 寄存器间接寻址 77
4.2.5 变址寻址 78
4.2.6 相对寻址 79
4.2.7 位寻址 79
4.3 89C51单片机的指令 80
4.3.1 数据传送指令 80
4.3.2 算术运算指令 87
4.3.3 逻辑运算及移位指令 93
4.3.4 控制转移指令 97
4.3.5 位操作指令 104
4.4 思考题与习题 107
第5章 89C51单片机汇编语言程序设计 110
5.1 汇编语言语句的类型和组成 110
5.1.1 汇编语言 110
5.1.2 指令语句的组成 111
5.1.3 指示性语句的组成 112
5.2 伪指令 113
5.3 汇编语言程序设计过程 115
5.4 汇编语言程序的基本结构 117
5.4.1 顺序结构程序设计 117
5.4.2 分支结构程序设计 117
5.4.3 循环结构程序设计 119
5.4.4 子程序结构程序设计 121
5.5 汇编语言实用程序设计 123
5.5.1 数码转换程序 123
5.5.2 运算类程序 125
5.5.3 数据处理程序 131
5.5.4 软件延时程序 133
5.6 思考题与习题 134
第6章 软件调试工具——Keil C51集成开发软件 136
6.1 Keil C51集成开发软件概述 136
6.2 Keil C51开发环境 137
6.2.1 标题栏 137
6.2.2 菜单栏 137
6.2.3 工具栏 139
6.2.4 项目窗口 141
6.2.5 源程序窗口 141
6.2.6 输出窗口 141
6.3 程序的开发调试 142
6.3.1 程序调试的过程 142
6.3.2 创建项目和设置环境参数 143
6.3.3 源程序的编译和调试 150
6.4 程序开发调试实例 155
6.4.1 软件模拟仿真 155
6.4.2 硬件实时在线仿真 157
6.5 思考题与习题 159
第7章 89C51单片机的中断系统和定时器 161
7.1 计算机的中断处理过程 161
7.1.1 中断处理 161
7.1.2 中断的概念 162
7.2 89C51单片机的中断处理 162
7.2.1 89C51的中断源和中断标志 162
7.2.2 89C51的中断允许控制 164
7.2.3 89C51的中断优先级管理 165
7.2.4 89C51的中断响应 166
7.2.5 89C51的中断处理 167
7.2.6 89C51的中断返回 168
7.2.7 89C51单片机的中断处理实例 168
7.3 89C51单片机中的定时器 169
7.3.1 定时器/计数器概述 169
7.3.2 定时器的工作模式寄存器TMOD 170
7.3.3 定时器的控制寄存器TCON 171
7.4 89C51单片机中定时器/计数器的应用 172
7.4.1 定时器工作方式的设置和计数初值的计算 172
7.4.2 定时器的启动和计数溢出的处理 177
7.4.3 定时器/计数器应用实例 179
7.5 思考题与习题 186
第8章 89C51单片机的并行输入/输出 188
8.1 89C51单片机的并行输入/输出接口 188
8.1.1 输入/输出接口信息传送方式 188
8.1.2 89C51单片机的并行输入/输出接口简介 189
8.2 并行输入/输出接口P0、P1、P2和P3 189
8.2.1 P0端口 189
8.2.2 P1端口 191
8.2.3 P2端口 192
8.2.4 P3端口 193
8.2.5 并行输入/输出接口应用举例 195
8.3 89C51单片机的扩展接口 196
8.3.1 89C51片外系统总线的产生 196
8.3.2 外部程序存储器的扩展 197
8.3.3 外部数据存储器的扩展 199
8.3.4 外部I/O接口的扩展 201
8.4 89C51输入/输出接口应用实例——LED显示器 209
8.4.1 LED数码管显示器 209
8.4.2 8255A连接的LED数码管显示器实例 212
8.5 思考题与习题 216
第9章 89C51单片机的串行输入/输出 217
9.1 串行通信的概念 217
9.1.1 串行通信的传输制式 217
9.1.2 异步通信与同步通信 218
9.1.3 波特率 219
9.1.4 串行通信协议 219
9.2 89C51的串行通信接口 223
9.2.1 89C51串行接口的基本结构 223
9.2.2 串行接口的有关寄存器 224
9.2.3 串行接口通信工作方式 227
9.2.4 多机通信 239
9.3 89C51片外扩展串行总线技术 240
9.4 思考题与习题 244
第10章 89C51应用系统的设计和开发 245
10.1 单片机应用系统 245
10.2 单片机应用系统的设计过程 246
10.2.1 总体方案设计 247
10.2.2 硬件系统设计 248
10.2.3 软件系统设计 250
10.2.4 系统仿真调试 250
10.2.5 系统运行与维护 251
10.3 基于89C51单片机的数据采集系统 252
10.3.1 单片机数据采集系统的总体设计 252
10.3.2 单片机数据采集系统主程序的设计 253
10.3.3 模拟量输入接口的设计 254
10.3.4 看门狗定时器X5045的设计 258
10.3.5 实时时钟DS1307的设计 266
10.3.6 人机对话通道的设计 272
10.3.7 异步串行通信RS-485接口的设计 275
10.4 思考题与习题 283
第11章 嵌入式系统 284
11.1 嵌入式系统概述 284
11.1.1 嵌入式系统的定义 285
11.1.2 嵌入式系统的特点 285
11.1.3 嵌入式系统的应用 286
11.2 嵌入式系统的硬件 288
11.2.1 嵌入式系统的构成 288
11.2.2 嵌入式系统的硬件 288
11.2.3 微控制器MCU 289
11.2.4 嵌入式微处理器 289
11.2.5 嵌入式数字信号处理器 292
11.2.6 嵌入式片上系统 292
11.3 嵌入式系统的软件 293
11.3.1 硬件抽象层 293
11.3.2 嵌入式操作系统 294
11.3.3 应用程序 299
11.4 嵌入式系统的设计过程 299
11.5 思考题与习题 302
附录A 89C51指令表 303
参考文献 307