第1章 单片机概述 1
1.1 单片机的概念 1
1.1.1 单片机的基本概念 1
1.1.2 单片机的组成 2
1.1.3 单片机的特点 5
1.2 单片机的历史与发展 6
1.2.1 单片机发展概况 6
1.2.2 单片机发展趋势 7
1.3 常用单片机简介 9
1.3.1 MCS-51系列单片机 9
1.3.2 AT89系列单片机 11
1.3.3 PIC系列单片机 12
1.3.4 M68HC11系列单片机 13
1.3.5 MCS-96系列单片机 15
1.3.6 8XC196KX系列单片机 16
1.3.7 M68300系列单片机 18
1.3.8 SH系列单片机 18
1.4 单片机的应用领域 19
1.4.1 工业过程控制 19
1.4.2 智能仪表 20
1.4.3 机电一体化产品 20
1.4.4 智能化接口 20
1.4.5 家用电器设备 20
1.5 习题 21
第2章 MCS-51单片机的结构 22
2.1 MCS-51单片机的基本组成 22
2.1.1 MCS-51系列单片机的硬件结构特点 22
2.1.2 MCS-51片内总体结构 24
2.2 MCS-51系列单片机的外部结构 25
2.2.1 MCS-51单片机的引脚功能 25
2.2.2 MCS-51单片机的外部总线结构 28
2.3 中央处理器、时钟及时序 28
2.3.1 运算部件 28
2.3.2 专用寄存器组 29
2.3.3 控制部件、时钟和时钟电路 30
2.3.4 CPU时序 32
2.4 复位与复位电路 34
2.4.1 上电自动复位 35
2.4.2 手动按键复位 35
2.4.3 常用复位芯片 36
2.5 存储器组织 36
2.5.1 存储器空间 36
2.5.2 程序存储器 37
2.5.3 数据存储器 38
2.5.4 外部数据存储器 44
2.6 CHMOS型单片机的节电工作方式 44
2.6.1 空闲工作方式 45
2.6.2 掉电工作方式 46
2.7 习题 46
第3章 MCS-51单片机指令系统 48
3.1 指令格式 48
3.1.1 数据操作 48
3.1.2 程序状态字 48
3.1.3 指令类型 49
3.2 寻址方式 49
3.2.1 寄存器寻址 50
3.2.2 直接寻址 50
3.2.3 寄存器间接寻址 51
3.2.4 立即寻址 52
3.2.5 基寄存器加变址寄存器间接寻址 52
3.3 数据传送指令 53
3.3.1 内部数据的传送指令 53
3.3.2 累加器A与外部数据的传送指令 56
3.3.3 查表指令 57
3.4 算术运算指令 58
3.4.1 加法指令 58
3.4.2 减法指令 60
3.4.3 乘法指令 61
3.4.4 除法指令 62
3.5 逻辑运算指令 62
3.5.1 累加器A的逻辑运算指令 62
3.5.2 两个操作数的逻辑运算指令 62
3.6 位操作指令 64
3.6.1 位变量传送指令 65
3.6.2 位变量修改指令 65
3.6.3 位变量逻辑操作指令 65
3.7 控制转移指令 66
3.7.1 无条件转移指令 66
3.7.2 条件转移指令 68
3.7.3 调用与返回指令 69
3.8 习题 72
第4章 MCS-51汇编语言程序设计 75
4.1 程序设计方法 75
4.1.1 程序设计步骤 75
4.1.2 伪指令 75
4.1.3 汇编语言源程序的编程和汇编 77
4.2 汇编语言程序设计方法 77
4.2.1 顺序程序 77
4.2.2 分支程序 78
4.2.3 循环程序 78
4.3 单片机汇编程序结构 81
4.3.1 程序总体结构 81
4.3.2 主程序 83
4.3.3 子程序 84
4.3.4 中断服务程序 84
4.4 综合编程举例 85
4.4.1 运算程序 85
4.4.2 查表程序 99
4.4.3 代码转换程序 104
4.4.4 输入输出程序 115
4.5 习题 119
第5章 MCS-51单片机的功能模块 122
5.1 MCS-51单片机并行输入输出接口 122
5.1.1 P0口 122
5.1.2 P1口 123
5.1.3 P2口 124
5.1.4 P3口 124
5.1.5 接口的使用原则 125
5.2 MCS-51单片机定时器/计数器 126
5.2.1 定时器/计数器T0、T1的结构 127
5.2.2 定时器/计数器T0、T1的4种工作方式 128
5.2.3 定时器/计数器应用举例 132
5.3 MCS-51单片机串行接口 135
5.3.1 MCS-51单片机的串行接口 136
5.3.2 串行接口的工作方式 139
5.3.3 波特率的设置 143
5.3.4 多机通信 144
5.3.5 串行接口的应用与编程 145
5.4 MCS-51单片机中断系统 150
5.4.1 中断的基本概念 150
5.4.2 中断源和中断请求标志 151
5.4.3 中断系统控制 153
5.4.4 中断响应 155
5.4.5 中断的应用及编程 157
5.5 习题 158
第6章 MCS-51系统扩展技术 160
6.1 MCS-51系统扩展原理 160
6.1.1 线选法 161
6.1.2 全译码法 163
6.1.3 部分译码法 164
6.1.4 扩展存储器时应考虑的几个问题 166
6.2 程序存储器的扩展 166
6.2.1 常用的程序存储器 166
6.2.2 常用的译码器、锁存器 169
6.2.3 MCS-51程序存储器的扩展 171
6.3 数据存储器的扩展 173
6.3.1 常用的数据存储器 174
6.3.2 MCS-51数据存储器扩展 175
6.4 并行接口的扩展 177
6.4.1 8255A可编程接口并行I/O扩展 177
6.4.2 8155/8156可编程接口并行I/O扩展 181
6.4.3 用串行接口扩展并行I/O接口 182
6.4.4 用74系列器件扩展并行I/O接口 184
6.5 串行接口的扩展 185
6.5.1 8251与单片机的接口方法 185
6.5.2 RS-232C串行通信标准及应用 189
6.5.3 RS-422/485标准总线及应用 192
6.6 定时器/计数器的扩展 193
6.6.1 8253/8254与单片机的接口方法 193
6.6.2 定时器/计数器的应用 194
6.7 习题 196
第7章 MCS-51单片机常用接口技术 198
7.1 键盘接口 198
7.1.1 键盘工作原理 198
7.1.2 键盘按键识别方法 199
7.1.3 键盘的接口电路 200
7.1.4 键盘的编码 202
7.1.5 常用的专用键盘芯片 202
7.1.6 单片机对键盘的控制方式 202
7.2 显示接口 202
7.2.1 LED显示器的原理 203
7.2.2 LED显示器的接口及显示方式 204
7.2.3 专用芯片BC7281键盘显示器接口实例 205
7.2.4 字段式液晶显示器 214
7.2.5 点阵式液晶显示 220
7.3 打印机接口技术 228
7.3.1 RD-D型热敏打印机的主要技术性能 229
7.3.2 RD-D型打印机的并行接口 229
7.3.3 RD-D型打印机的串行接口 230
7.3.4 接口信号时序 230
7.3.5 字符代码及打印命令 231
7.3.6 RD系列打印机与MCS-51单片机接口 231
7.3.7 示例程序 232
7.4 D/A转换器 232
7.4.1 D/A转换器的原理 233
7.4.2 常用D/A转换器 235
7.4.3 MCS-51与D/A转换器的接口 237
7.5 A/D转换 240
7.5.1 A/D转换器的原理 241
7.5.2 常用A/D转换器 243
7.5.3 MCS-51与A/D转换器的接口 249
7.6 单片机常用总线 253
7.6.1 I2C总线 253
7.6.2 SPI总线 258
7.6.3 CAN总线 258
7.7 习题 260
第8章 单片机系统的可靠性与抗干扰技术 262
8.1 可靠性与抗干扰技术概述 262
8.1.1 干扰窜入单片机系统的主要途径 262
8.1.2 干扰的耦合方式 264
8.1.3 抗干扰原则 265
8.2 单片机系统的硬件抗干扰技术 266
8.2.1 过程通道干扰的抑制 266
8.2.2 反射波干扰的抑制 270
8.2.3 空间干扰的抑制 273
8.2.4 单片机系统的接地技术 274
8.2.5 单片机系统的掉电保护技术 275
8.3 单片机系统的软件抗干扰技术 277
8.3.1 指令冗余技术 277
8.3.2 软件陷阱技术 278
8.3.3 数字滤波技术 281
8.3.4 故障自动恢复处理程序 286
8.4 Watchdog技术 289
8.4.1 硬件Watchdog电路 289
8.4.2 软件Watchdog技术 292
8.4.3 软硬件结合的Watchdog技术 294
8.5 习题 295
第9章 单片机应用系统的设计与实例 297
9.1 单片机应用系统的设计方法 297
9.1.1 系统总体方案的确定 298
9.1.2 应用系统的硬件设计 299
9.1.3 应用系统的软件设计 302
9.1.4 应用系统的抗干扰设计 303
9.2 单片机应用系统的开发过程 305
9.2.1 单片机的开发与开发工具 305
9.2.2 单片机开发系统的功能 306
9.2.3 单片机应用系统的调试、运行与维护 307
9.3 单片机系统应用实例 311
9.3.1 电阻炉温度控制系统 311
9.3.2 步进电机控制 320
9.3.3 小车自动寻线控制系统 326
9.4 习题 331
附录A MCS-51系列单片机指令系统表 333
附录B C51编程语言简介 338
B.1 C51的程序结构 338
B.2 C51的数据类型 339
B.2.1 C51变量的类型 339
B.2.2 指针型数据 340
B.3 数据的存储器类型和存储器模式 340
B.3.1 数据的存储器类型 340
B.3.2 存储器模式 341
B.4 C51对SFR、可寻址位、存储器和I/O接口的定义 341
B.4.1 特殊功能寄存器的定义 341
B.4.2 位变量的定义 341
B.4.3 对存储器和外接I/O接口地址的访问 342
B.5 C51的运算符 343
B.6 函数 343
B.6.1 函数的分类及定义 344
B.6.2 函数的定义 344
B.6.3 函数的调用 344
B.7 汇编语言与C51的混合编程 344
B.7.1 C51中调用汇编语言程序的几点注意事项 345
B.7.2 C51与汇编程序之间的参数传递 345
附录C 单片机常用网站 346
参考文献 347