1 绪论 1
1.1 单片机及其特点 1
1.2 单片机的应用 2
1.3 单片机的历史及发展概况 2
1.4 8位单片机的主要生产厂商和机型 3
1.5 单片机的发展趋势 4
1.6 常用数制及转换 5
1.6.1 常用数制 5
1.6.2 数制转换 7
1.7 数的表示方法 8
1.7.1 机器数与真值 9
1.7.2 数的原码、反码和补码表示法 9
1.8 编码 11
1. 8.1 ASCII码(字符编码) 11
1.8.2 二—十进制编码(BCD码) 11
1.8.3 汉字的编码 12
1.8.4 校验码编码 13
思考题及习题1 14
2 MCS-51单片机结构及原理 15
2.1 MCS-51系列单片机 15
2.2 MCS-51单片机的硬件结构 16
2.3 MCS-51单片机引脚及功能 17
2.3.1 电源及时钟引脚 18
2.3.2 控制引脚 18
2.3.3 I/O口引脚 19
2.4 MCS-51的微处理器 19
2.4.1 控制器 20
2.4.2 运算器 21
2.5 MCS-51存储器的结构 22
2.5.1 存储器概述 22
2.5.2 程序存储器 25
2.5.3 内部数据存储器 26
2.5.4 特殊功能寄存器 28
2.6 并行I/O端口 30
2.6.1 P0口结构 30
2.6.2 P1口结构 32
2.6.3 P2口结构 32
2.6.4 P3口结构 33
2.6.5 P0~P3口小结 34
2.7 时钟电路和CPU时序 34
2.7.1 时钟电路 34
2.7.2 时序 35
2.8 复位电路 39
2.8.1 复位操作 39
2.8.2 复位电路 40
2.9 单片机低功耗工作方式 40
思考题及习题2 41
3 MCS-51指令系统及程序设计 43
3.1 指令系统简介 43
3.1.1 MCS-51指令系统概述 43
3.1.2 指令格式 43
3.1.3 指令分类及符号说明 44
3.2 MCS-51的寻址方式 45
3.2.1 直接寻址 46
3.2.2 立即寻址方式 46
3.2.3 寄存器寻址 46
3.2.4 寄存器间接寻址方式 47
3.2.5 基址寄存器加变址寄存器间址寻址方式 47
3.2.6 相对寻址方式 48
3.2.7 位寻址方式 48
3.3 数据传送类指令 49
3.4 算术运算指令 54
3.5 逻辑运算类指令 59
3.6 控制程序转移类指令 62
3.7 位操作命令 68
3.8 MCS-51汇编语言的伪指令 69
3.9 汇编语言程序设计实例 72
3.9.1 汇编语言程序设计的基本步骤 72
3.9.2 汇编语言程序的基本结构 73
3.9.3 顺序程序 73
3.9.4 分支程序设计 74
3.9.5 循环程序设计 76
3.9.6 子程序调用 79
3.9.7 查表程序 81
思考题及习题3 82
实验1 拆字程序 84
4 MCS-51的中断系统 86
4.1 中断概述 86
4.1.1 中断的概念 86
4.1.2 中断的作用 87
4.2 MCS-51中断系统的结构 88
4.2.1 MCS-51中断请求源 88
4.2.2 中断允许寄存器IE 90
4.2.3 中断优先级控制及嵌套 90
4.2.4 中断响应 92
4.2.5 中断处理 93
4.3 中断服务程序的设计 94
思考题及习题4 96
实验2 外部中断实验 97
5 MCS-51的定时/计数器 98
5.1 定时/计数器的结构与工作原理 98
5.2 定时/计数器的控制 99
5.2.1 工作模式寄存器TMOD 99
5.2.2 控制寄存器TCON 100
5.3 定时/计数器的工作模式及应用 100
5.3.1 模式0及其应用 100
5.3.2 模式1及其应用 102
5.3.3 模式2及其应用 103
5.3.4 模式3及其应用 105
5.4 定时/计数器的综合应用举例 105
思考题及习题5 107
实验3定时/计数器实验 108
6 MCS-51串行口及应用 109
6.1 串行通信的基础知识 109
6.1.1 串行通信的两种基本方式 109
6.1.2 串行通信的数据传送方式 111
6.1.3 串行通信总线标准及其接口 111
6.2 MCS-51的串行口的结构 113
6.2.1 电源和波特率控制寄存器PCON 115
6.2.2 串行口控制寄存器SCON 116
6.3 串行口的工作方式 117
6.3.1 串行口方式0 117
6.3.2 串行口方式1 119
6.3.3 串行口方式2、方式3 124
6.4 多机通信 128
思考题及习题6 132
实验4 串口/并口转换实验 132
7 MCS-51人机通信接口 134
7.1 键盘接口技术 134
7.1.1 键盘输入应解决的问题 134
7.1.2 键盘接口的工作原理 135
7.1.3 键盘工作方式 140
7.2 MCS-51单片机与BCD码拨盘的接口设计 141
7.3 蜂鸣器接口技术 143
7.4 LED接口技术 144
7.4.1 LED显示器结构与原理 144
7.4.2 LED显示器接口及显示程序 145
7.4.3 LED显示器驱动技术 149
7.5 MCS-51与液晶显示器(LCD)的接口 152
7.5.1 LCD的分类 152
7.5.2 点阵式液晶显示模块 153
7.5.3 HD44780模块与MCS-51的接口 157
思考题及习题7 158
实验5 LED数码显示实验 159
8 MCS-51的功率接口 160
8.1 MCS-51与功率晶体管的接口 160
8.2 MCS-51与集成电路驱动器的接口 160
8.3 MCS-51与光电耦合器的接口 161
8.4 MCS-51与直流电磁式继电器的接口 163
8.5 MCS-51与固态继电器(SSR)的接口 164
思考题及习题8 165
9 MCS-51单片机的模拟量接口 166
9.1 D/A转换接口技术 166
9.1.1 D/A转换器概述 166
9.1.2 MCS-51与DAC0832的接口 167
9.2 A/D转换接口技术 170
9.2.1 A/D转换器概述 170
9.2.2 MCS-51与ADC0809原理的接口 171
9.3 MCS-51与V/F转换器的接口 174
9.3.1 LMX31系列V/F转换器 175
思考题及习题9 176
实验6 模拟量输出接口实训 177
10 MCS-51的C51程序设计 178
10.1 C51语言的特点 178
10.1.1 C51的基本程序结构 178
10.1.2 C51程序开发过程 179
10.2 C51语言扩展 180
10.2.1 数据类型 180
10.2.2 存储器类型 182
10.2.3 存储器模型 182
10.2.4 指针 183
10.2.5 C51与汇编的接口 183
10.2.6 函数属性 184
10.2.7 优化程序 186
10.3 C51编程实例 186
实验7 C51程序设计实训 188
思考题及习题10 190
11 MCS-51单片机应用系统设计 191
11.1 MCS-51应用系统设计 191
11.2 应用系统的硬件设计 192
11.2.1 单片机系统扩展部分 192
11.2.2 单片机前向通道设计 195
11.2.3 单片机后向通道 197
11.2.4 单片机人机对话通道 197
11.2.5 单片机相互通信通道 197
11.3 单片机应用系统的软件设计 198
11.4 单片机应用系统的抗干扰设计 198
11.4.1 供电系统的抗干扰设计 199
11.4.2 空间干扰及抗干扰措施 200
11.4.3 过程通道干扰及抗干扰措施 201
11.5 软件抗干扰措施 201
11.5.1 软件滤波 201
11.5.2 开关量输入/输出软件抗干扰设计 202
11.5.3 指令冗余及软件陷阱 203
11.5.4 看门狗技术 204
11.6 单片机应用系统的低功耗技术 206
11.6.1 硬件低功耗设计 206
11.6.2 软件低功耗设计 207
11.7 单片机应用系统的开发与调试 207
11.7.1 通用型单片机开发系统 207
11.7.2 用户样机调试 208
思考题及习题11 209
12 MCS-51单片机应用举例 210
12.1 实用子程序 210
12.2 多功能灯光控制器 215
12.2.1 多功能灯光控制器硬件设计 215
12.2.2 多功能灯光控制器软件设计 215
12.3 步进电机控制 221
12.3.1 步进电机控制原理 221
12.3.2 步进电机接口技术与软件设计 223
12.4 简单温控器 226
12.4.1 简单温控器的硬件设计 226
12.4.2 简单温控器的软件设计 227
附录 235
附录A ASCII码表 235
附录B MCS-51系列单片机指令系统表 236
附录C 常用芯片引脚 241
参考文献 244