第1章 单片机基础知识概述 1
1.1 单片机概述 1
1.1.1 单片机的概念 1
1.1.2 单片机的发展历史 1
1.2 单片机的特点及应用领域 2
1.2.1 单片机的特点 2
1.2.2 单片机的应用领域 2
1.2.3 单片机的发展趋势 3
1.2.4 MCS-51单片机的学习 4
1.3 单片机学习的预备知识 5
1.3.1 数制及其转换 5
1.3.2 有符号数的表示方法 6
1.3.3 位、字节和字 8
1.3.4 BCD码 8
1.3.5 ASCII码 9
思考题与习题 9
第2章 MCS-51单片机基本结构 11
2.1 MCS-51单片机的基本结构与类型 11
2.1.1 MCS-51单片机的基本结构 11
2.1.2 MCS-51单片机的基本类型 12
2.2 引脚及封装 13
2.2.1 引脚 13
2.2.2 封装 14
2.3 MCS-51存储器组织 15
2.3.1 MCS-51存储器组织简介 16
2.3.2 程序存储器 16
2.3.3 内部数据存储器 17
2.3.4 特殊功能寄存器 19
2.3.5 外部数据存储器 21
2.4 复位电路 21
2.4.1 复位后各寄存器的状态 21
2.4.2 复位电路 22
2.5 时钟电路 22
2.5.1 晶振电路 22
2.5.2 单片机的时序单位 23
思考题与习题 23
第3章 MCS-51单片机指令系统 24
3.1 基本概念 24
3.1.1 汇编语言格式 24
3.1.2 指令中常用符号 25
3.1.3 寻址方式 25
3.2 MCS-51指令系统 27
3.2.1 数据传送与交换指令 27
3.2.2 算术运算指令 33
3.2.3 逻辑运算与移位指令 36
3.2.4 子程序调用与转移指令 38
3.2.5 位操作指令 40
思考题与习题 42
第4章 MCS-51汇编语言程序设计 44
4.1 汇编语言程序格式及伪指令 44
4.1.1 汇编指令格式 44
4.1.2 伪指令 45
4.2 基本程序设计方法 47
4.2.1 顺序程序设计 47
4.2.2 分支程序设计 48
4.2.3 循环程序设计 51
4.2.4 查表程序设计 54
4.2.5 子程序设计 55
思考题与习题 56
第5章 I/O接口及简单应用 58
5.1 I/O端口的输入/输出特性 58
5.1.1 P1口 58
5.1.2 P3口 59
5.1.3 P0口 60
5.1.4 P2口 62
5.2 I/O端口的应用 62
5.2.1 I/O的简单控制 62
5.2.2 LED数码管显示 65
5.2.3 键盘 68
思考题与习题 71
第6章 中断系统 72
6.1 中断的概念 72
6.2 中断系统的结构 73
6.3 中断控制系统 74
6.3.1 中断请求标志寄存器(TCON、SCON) 74
6.3.2 中断允许寄存器(IE) 75
6.3.3 中断优先寄存器(IP)及中断嵌套 76
64 中断处理过程 78
6.4.1 中断响应条件 78
6.4.2 中断响应过程 78
6.4.3 中断的撤销 79
6.4.4 外部中断响应的时间 80
6.5 外部中断触发方式的选择 81
6.6 中断的编程 81
6.7 中断的扩展 82
思考题与习题 84
第7章 定时/计数器 85
7.1 定时/计数器的结构与工作原理 85
7.1.1 定时/计数器的实质 85
7.1.2 定时/计数器的结构与工作原理 86
7.2 定时/计数器的控制 86
7.2.1 方式控制寄存器(TMOD) 87
7.2.2 控制寄存器(TCON) 87
7.3 定时/计数器的工作方式 88
7.3.1 方式0 88
7.3.2 方式1 88
7.3.3 方式2 89
7.3.4 方式3 90
7.4 定时/计数器的编程和应用举例 91
7.4.1 定时/计数器初值的计算 91
7.4.2 定时/计数器应用举例 92
思考题与习题 94
第8章 串行通信接口 97
8.1 串行通信基本知识 97
8.1.1 概述 97
8.1.2 串行通信的制式 98
8.2 MCS-51串口控制器 99
8.2.1 串口控制寄存器(SCON) 99
8.2.2 特殊功能寄存器(PCON) 100
8.3 串行口的工作方式 101
8.3.1 方式0 101
8.3.2 方式1 101
8.3.3 方式2 102
8.3.4 方式3 103
8.4 波特率的制定方法 103
8.5 串行通信的接口电路 105
8.5.1 RS-232C接口 105
8.5.2 RS-485接口 106
8.6 串口的编程与应用 108
8.6.1 用串行口扩展并行I/O口 108
8.6.2 单片机与单片机通信 110
8.6.3 多机通信 114
8.6.4 单片机与PC机的串行通信 115
思考题与习题 120
第9章 存储器和并行口的扩展 121
9.1 系统扩展概述 121
9.1.1 单片机最小系统 121
9.1.2 总线概念 122
9.2 数据存储器的扩展 123
9.2.1 SRAM芯片 123
9.2.2 典型外部数据存储器的连接 124
9.2.3 地址锁存器和外扩RAM的操作时序 125
9.2.4 确定扩展芯片地址的方法 127
9.3 程序存储器的扩展 130
9.3.1 ROM芯片 130
9.3.2 程序存储器的扩展 131
9.4 EPROM和RAM的综合扩展 132
9.5 并行接口的扩展 133
9.5.1 总线驱动器 133
9.5.2 用74LS系列TTL电路扩展并行I/O口 135
9.5.3 并行可编程芯片8255A 136
思考题与习题 140
第10章 单片机测控接口 141
10.1 A/D转换器及与单片机的接口 141
10.1.1 A/D转换概述 141
10.1.2 ADC0809性能及基本结构 144
10.1.3 ADC0809与单片机的接口与编程 146
10.2 D/A转换器及其与单片机的接口 148
10.2.1 D/A转换器概述 148
10.2.2 DAC0832的性能特性及基本结构 149
10.2.3 DAC0832与单片机的接口与编程 150
10.3 开关量功率接口技术 152
10.3.1 单片机I/O口的输出驱动 153
10.3.2 光电耦合器 155
10.3.3 继电器驱动接口 156
10.3.4 可控硅驱动接口 157
10.3.5 固态继电器驱动接口 159
10.4 开关量输入接口 161
思考题与习题 162
第11章 C51程序设计入门 163
11.1 C51的数据与运算 163
11.1.1 C51的数据类型 163
11.1.2 C51的数据存储类型 164
11.1.3 C51的数据存储模式 165
11.1.4 C51的运算符 165
11.2 数组、指针和结构 166
11.2.1 数组 166
11.2.2 指针 167
11.2.3 结构 168
11.3 C51的程序设计 169
11.3.1 C51的程序结构 169
11.3.2 C51流程控制语句 170
11.3.3 函数的定义与调用 172
11.3.4 C51中调用汇编程序 173
11.4 51单片机内部资源的C51编程 175
11.4.1 中断的C51编程 175
11.4.2 定时/计数器的C51编程 175
11.4.3 串口的C51编程 177
11.4.4 对位和外接I/O口的C51编程 178
11.5 Keil C51程序开发基本步骤 183
思考题与习题 185
第12章 串行总线扩展技术 186
12.1 I2C总线扩展技术 186
12.1.1 I2C总线概述 186
12.1.2 I2C总线的寻址方式 188
12.1.3 I2C总线时序 189
12.1.4 主从系统I2C总线虚拟程序(汇编语言) 189
12.1.5 I2C总线应用 194
12.1.6 I2C总线C语言的虚拟程序 198
12.2 SPI总线扩展技术 203
12.2.1 SPI总线原理 203
12.2.2 SPI总线在MCS-51单片机中的实现 204
思考题与习题 209
附录A MCS-51单片机实验 210
A.1 单片机实验板 210
A.2 编译软件的使用 213
A.3 IST下载软件的使用 213
A.4 单片机实验 214
实验1 红黄绿灯控制 214
实验2 LED、LCD显示 217
实验3 键盘实验 220
实验4 定时器中断实验 222
实验5 计数器实验 225
实验6 A/D转换器实验 227
实验7 PC机与单片机的串行通信实验 233
实验8 温度测量实验 235
附录B Proteus使用入门 245
B.1 窗口界面 245
B.2 51单片机仿真操作实例 246
B.3 在Proteus中画总线 251
B.4 Proteus的其它问题 253
B.5 Proteus与Keil联机 255
附录C MCS-51指令表 256
参考文献 260