1 计算机基础知识 1
1.1 计算机硬件系统 1
1.1.1 计算机硬件体系结构 1
1.1.2 主要部件介绍 2
1.2 计算机软件系统 5
1.2.1 系统软件 5
1.2.2 应用软件 6
1.3 计算机中的数制与运算 7
1.3.1 计算机中的数制 7
1.3.2 数制间的转换 8
1.3.3 二进制数运算规则 9
1.4 计算机中的数据编码 10
1.4.1 真值与机器数 10
1.4.2 带符号数的机器数表示形式 10
1.4.3 8位二进制数补码的加减法运算 11
1.4.4 其他编码形式 12
1.5 单片机及其发展概况 13
1.5.1 什么是单片机 13
1.5.2 单片机的特点 13
1.5.3 单片机的应用领域 13
1.5.4 单片机的发展概况 14
1.5.5 MCS-51系列单片机介绍 15
习题一 15
2 MCS-51单片机的系统结构 17
2.1 单片机内部逻辑结构与引脚功能 17
2.1.1 8051单片机内部逻辑结构 17
2.1.2 8051单片机的引脚功能 18
2.2 存储器系统 21
2.2.1 片内数据存储器 21
2.2.2 特殊功能寄存器SFR(Special Function Register) 23
2.2.3 片内程序存储器 26
2.3 单片机的时钟电路与时序 27
2.3.1 时钟电路 27
2.3.2 时序的基本单位 28
2.3.3 典型时序分析 28
2.4 单片机系统的复位 29
2.4.1 单片机的复位电路 29
2.4.2 单片机的复位状态 30
习题二 31
3 MCS-51单片机指令系统 32
3.1 概述 32
3.1.1 指令格式 32
3.1.2 指令的三种表示形式 33
3.1.3 指令的字节数 34
3.1.4 指令的分类 35
3.1.5 指令中所用符号的说明 36
3.2 寻址方式 37
3.2.1 寄存器寻址 37
3.2.2 直接寻址 38
3.2.3 立即寻址 39
3.2.4 寄存器间接寻址 39
3.2.5 变址寻址 40
3.2.6 相对寻址 41
3.2.7 位寻址 42
3.3 数据传送指令 43
3.3.1 内部数据传送指令(15条) 43
3.3.2 外部数据传送指令(7条) 47
3.3.3 堆栈操作指令(2条) 49
3.3.4 数据交换指令(4条) 50
3.4 算术运算指令 51
3.4.1 加法指令(13条) 51
3.4.2 减法指令(8条) 54
3.4.3 十进制调整指令(1条) 55
3.4.4 乘法和除法指令(2条) 56
3.5 逻辑运算及移位指令 57
3.5.1 逻辑运算指令(20条) 58
3.5.2 移位指令(5条) 61
3.6 控制转移指令 63
3.6.1 无条件转移指令(4条) 63
3.6.2 条件转移指令(8条) 66
3.6.3 子程序调用和返回指令(4条) 69
3.6.4 空操作指令(1条) 71
3.7 位操作指令 72
3.7.1 位传送指令(2条) 72
3.7.2 位置位和位清零指令(4条) 72
3.7.3 位运算指令(6条) 73
3.7.4 位控制转移指令(5条) 73
习题三 75
4 汇编语言程序设计 81
4.1 概述 81
4.1.1 程序设计语言简介 81
4.1.2 汇编语言的特点 83
4.2 汇编语言的基本语法 83
4.2.1 汇编语言语句的格式 83
4.2.2 汇编语言语句的类型 85
4.2.3 MCS-51汇编语言的伪指令 86
4.3 汇编语言程序设计的方法 89
4.3.1 汇编语言源程序的设计步骤 90
4.3.2 结构化程序设计 90
4.3.3 汇编语言程序的基本结构 91
4.4 汇编语言源程序的汇编 92
4.4.1 手工汇编 93
4.4.2 机器汇编和交叉汇编 94
4.5 汇编语言程序设计举例 95
4.5.1 顺序程序设计 95
4.5.2 分支程序设计 96
4.5.3 循环程序设计 99
4.5.4 查表程序设计 103
4.5.5 子程序设计 106
习题四 110
5 中断系统、定时器/计数器与串行口 113
5.1 CPU与外设的通信方式 113
5.1.1 输入/输出方式 113
5.1.2 中断(Interrupt)的有关概念 114
5.2 中断系统 115
5.2.1 中断源和中断请求标志位 115
5.2.2 中断控制 117
5.2.3 中断的处理过程 119
5.3 定时器/计数器 121
5.3.1 定时器/计数器T0、T1的总体结构 122
5.3.2 定时器/计数器的工作方式 123
5.3.3 定时器/计数器的应用 128
5.4 串行口 130
5.4.1 串行通信的基本概念 131
5.4.2 8051串行口的结构 133
5.4.3 串行口的工作方式及应用 135
习题五 139
6 单片机系统的扩展与接口技术 141
6.1 概述 142
6.1.1 外部系统总线的构成 142
6.1.2 地址空间的分配 143
6.1.3 I/O接口电路 144
6.2 外部存储器的扩展 145
6.2.1 外部程序存储器的扩展 145
6.2.2 外部数据存储器的扩展 152
6.3 并行I/O口扩展 155
6.3.1 简单I/O口扩展电路 155
6.3.2 利用可编程并行接口芯片8255A扩展I/O口 157
6.3.3 利用可编程接口芯片8155扩展I/O口 163
6.4 键盘接口 168
6.4.1 键盘的工作原理 169
6.4.2 独立式键盘 170
6.4.3 矩阵式键盘 171
6.5 显示器接口 174
6.5.1 LED显示器与接口 174
6.5.2 液晶显示技术 179
6.6 A/D、D/A转换接口电路 181
6.6.1 A/D转换接口电路 181
6.6.2 D/A转换接口电路 185
6.7 功率驱动接口技术 189
6.7.1 光电耦合器输出接口电路 189
6.7.2 继电器输出接口电路 190
6.7.3 晶闸管接口电路 190
习题六 192
7 单片机应用系统设计 193
7.1 单片机应用系统开发过程 193
7.1.1 总体设计 193
7.1.2 硬件设计 194
7.1.3 软件设计 195
7.1.4 单片机应用系统的调试 197
7.2 单片机开发系统 198
7.2.1 单片机开发系统的组成 198
7.2.2 单片机开发系统的功能 199
7.3 单片机应用系统设计举例 201
习题七 203
8 实验 204
8.1 Keil C51软件使用说明 204
8.1.1 Keil C51软件的安装 204
8.1.2 Keil C51软件的使用 204
8.2 MCS-51单片机硬件结构实验 208
8.2.1 工作寄存器 208
8.2.2 位寻址单元 209
8.2.3 P1口循环灯控制 210
8.3 MCS-51单片机指令系统实验 211
8.3.1 数据传送指令 211
8.3.2 算术运算指令 211
8.3.3 逻辑运算指令 212
8.3.4 位操作指令 213
8.4 MCS-51单片机程序设计实验 214
8.4.1 顺序结构程序设计 214
8.4.2 分支结构程序设计 215
8.4.3 循环结构程序设计 215
8.4.4 子程序设计 216
8.5 中断系统和定时器/计数器实验 217
8.5.1 信号发生器 217
8.5.2 脉冲周期测量 218
8.5.3 脉冲计数测量 219
8.6 存储器扩展与I/O接口实验 219
8.6.1 片外RAM数据传送 220
8.6.2 简单I/O口扩展 220
8.6.3 8155键盘及接口显示程序 221
8.7 串行口通信实验 225
8.7.1 串行口通信 225
8.7.2 串行口扩展LED 226
8.8 A/D、D/A转换器接口实验 227
8.8.1 电压测量 227
8.8.2 电压输出 229
8.8.3 电压波形输出 229
附录 MCS-51单片机指令表 232
附表1 数据传送指令 232
附表2 算术运算指令 233
附表3 逻辑运算指令 233
附表4 控制转移指令 234
附表5 位操作指令 235
参考文献 236