
本书以国内广泛使用的MCS-51系列单片机中的8051为对象,介绍了它的基本结构、工作原理、指令系统和基本的程序设计方法,以及MCS-51内部的主要资源,包括定时/计数器、中断系统、内部接口、串行通信接口的使用方法,重点介绍了MCS-51单片机的常用接口及控制技术和单片机应用系统开发及应用技术。针对单片机原理及应用,本着理论必须够用的原则,突出实用性、操作性,在编排上由浅入深,循序渐进,精选内容,突出重点,适当增加一些当今流行的新器件和新技术;对于接口技术和应用系统提供了详细的原理说明、电路图、完整的程序代码及程序流程图。 本书可作为高职高专院校自动化、电子信息、机电、电力和计算机等专业的教材,也可以作为工程技术人员的参考书。
前 言
单片机作为嵌入式微控制器在工业测控系统、智能仪器和家用电器中得到了广泛的应用。虽然单片机的种类很多,但MCS-51系列单片机仍然是单片机中的主流机型。
本书以MCS-51系列单片机为主介绍单片机的原理与应用,内容系统、全面,论述深入浅出、循序渐进,注重接口技术和应用。
本书由从事教学工作的一线教师编写,在编写过程中,融入了编者多年教学、科研的经验与应用实例。从应用的角度出发,对单片机的硬件结构、工作原理、指令系统进行了简明扼要的介绍;对程序设计方法、接口电路设计、应用系统等进行了详细的介绍。并提供了详细的原理、电路图、完整的程序代码及程序流程图。
本书以单片机应用能力培养为主线,从应用的角度出发,按照“知识为技能服务,技能为综合能力和素质服务”的思想精心组织内容。在教学中,采用“学、练、用”相结合的构架,使学生能够循序渐进地学习和使用单片机,实现学习基础知识与开展课题训练的巧妙融合——在学中做,在做中学,为综合应用打基础;在必要的学习和训练环节结束后,综合运用所学知识完成工程性实习项目的设计和调试。
本书在编写过程中,承蒙青岛伟立精工塑胶有限公司副总经理王明伟、经理田野给予帮助和指导,在此特别致谢。
本书共分9章,主要内容包括绪论、单片机系统开发、MCS-51单片机的体系结构、MCS-51指令系统、汇编程序设计、MCS-51中断系统及定时/计数器、MCS-51单片机的串口通信、单片机接口及控制技术、MCS-51单片机应用系统的设计。
本书由河南农业职业学院的姚国林老师任主编,由河南农业职业学院的苏闯老师和新乡学院的张同光老师任副主编,河南农业职业学院的张剑锋、陈慕君、王海娜、郑传琴、史兴燕以及南阳幼儿师范学校的刘海申老师也参加了编写。
具体编写分工为:郑传琴编写第1章、附录1及附录2,张剑锋编写第2章,张同光编写第3章,陈慕君编写第4章,王海娜编写第5章,刘海申编写第6章,苏闯编写第7章,姚国林编写第8章,史兴燕编写第9章,最后由姚国林统稿。
本书由河南农业职业学院卢宇清副教授主审,在审稿过程中提出了许多建设性的建议和意见。在编写过程中得到了许多专家和同行的大力支持和热情帮助,同时,我们也参考了有关教材、论文和著作,在此一并表示衷心的感谢。
鉴于一线教师教科研工作繁重,加之新的单片机芯片不断涌现,其应用技术也在不断发展,书中难免会有错误或不妥之处,恳请广大同行及读者不吝指正。
? 编 者
目 录
第1章 绪论 1
1.1 数制与编码的简单回顾 1
1.1.1 计算机中的数制及相互转换 1
1.1.2 二进制数的运算 4
1.1.3 带符号数的表示 6
1.1.4 带符号数运算时的溢出问题 8
1.1.5 定点数和浮点数 8
1.1.6 BCD码和ASCII码 9
1.2 单片机概述 10
1.2.1 电子计算机的问世及其
经典结构 10
1.2.2 微型计算机的组成及其
应用形态 11
1.2.3 单片机的发展过程 12
1.2.4 单片机的特点 13
1.2.5 单片机的应用领域 13
1.2.6 单片机的产品近况 14
习题1 15
第2章 MCS-51单片机的体系结构 16
2.1 MCS-51单片机的基本组成 16
2.1.1 80C51单片机的基本结构 16
2.1.2 MCS-51单片机的内部组成
及信号引脚 18
2.1.3 存储器结构 21
2.1.4 80C51单片机的特殊
功能寄存器 24
2.2 并行输入/输出口结构 26
2.2.1 P0口 27
2.2.2 P1口 28
2.2.3 P2口 29
2.2.4 P3口 30
2.2.5 并行接口的负载能力 31
2.3 时钟及复位电路 31
2.3.1 时钟电路及时序 31
2.3.2 单片机的复位电路 34
2.4 MCS-51单片机的最小系统 35
2.4.1 单片机最小应用系统举例 35
2.4.2 最小应用系统设计 35
习题2 36
第3章 MCS-51指令系统 38
3.1 指令系统概述 38
3.1.1 机器指令编码格式 38
3.1.2 符号指令格式 39
3.1.3 符号指令格式及注释中的
常用符号 40
3.2 寻址方式 40
3.2.1 寄存器寻址 41
3.2.2 直接寻址 41
3.2.3 寄存器间接寻址 42
3.2.4 立即寻址 43
3.2.5 变址寻址 43
3.2.6 相对寻址 44
3.2.7 位寻址 45
3.3 数据传送类指令 45
3.3.1 一般传送类指令 45
3.3.2 特殊传送类指令 47
3.4 算术运算类指令 49
3.4.1 加法 50
3.4.2 减法 52
3.4.3 乘法 53
3.4.4 除法 53
3.5 逻辑运算与循环类指令 53
3.5.1 逻辑与 53
3.5.2 逻辑或 54
3.5.3 逻辑异或 54
3.5.4 累加器清0和取反 55
3.5.5 累加器循环移位 55
3.6 控制转移类指令 56
3.6.1 无条件转移 56
3.6.2 条件转移 57
3.6.3 调用与返回 58
3.6.4 空操作 59
3.7 位操作类指令 59
3.7.1 位传送 60
3.7.2 位状态设置 60
3.7.3 位逻辑运算 60
3.7.4 位判跳(条件转移) 61
习题3 61
第4章 汇编程序设计 64
4.1 汇编程序设计概述 64
4.1.1 程序编制的方法和技巧 64
4.1.2 伪指令 67
4.2 顺序程序设计 69
4.2.1 数据传送 69
4.2.2 查表程序 70
4.2.3 简单运算 71
4.3 分支程序设计 71
4.3.1 分支程序实例 72
4.3.2 分支程序结构 75
4.4 循环程序设计 76
4.4.1 循环程序实例 76
4.4.2 循环程序结构 81
4.5 子程序及其调用 83
4.5.1 子程序的调用 83
4.5.2 现场的保护和恢复 83
4.5.3 参数传递 84
4.6 常用汇编子程序 86
4.6.1 代码转换程序 86
4.6.2 算术运算程序 89
4.6.3 查找、排序程序 91
习题4 94
第5章 MCS-51中断系统及
定时/计数器 96
5.1 MCS-51的中断系统 96
5.1.1 MCS-51的中断系统结构 96
5.1.2 MCS-51的中断源 97
5.1.3 MCS-51中断的控制 99
5.2 MCS-51单片机中断处理过程 101
5.2.1 中断响应条件和时间 101
5.2.2 中断响应过程 102
5.2.3 中断返回 102
5.2.4 中断程序举例 103
5.3 MCS-51的定时/计数器 107
5.3.1 定时/计数器的结构和
工作原理 107
5.3.2 定时/计数器的控制 108
5.3.3 定时/计数器的工作方式 109
5.3.4 定时/计数器用于外部
中断扩展 111
5.3.5 定时/计数器应用举例 111
习题5 114
第6章 MCS-51单片机的串口通信 115
6.1 串口通信的基本知识 115
6.1.1 通信的基本概念 115
6.1.2 串行通信的分类 115
6.1.3 串行通信的制式 116
6.1.4 串行通信接口标准 117
6.2 MCS-51单片机的串口及控制
寄存器 119
6.2.1 MCS-51串行口结构 119
6.2.2 MCS-51串行控制寄存器 120
6.3 串口的工作方式 121
6.3.1 方式0 121
6.3.2 方式1 122
6.3.3 方式2和方式3 123
6.3.4 波特率的计算 124
6.4 串口的应用 125
6.4.1 双机通信 125
6.4.2 多机通信 129
习题6 135
第7章 单片机接口及控制技术 136
7.1 简单I/O口控制 136
7.1.1 原理及流水灯电路 136
7.1.2 控制程序及流程图 137
7.2 数码管显示 138
7.2.1 原理及控制电路 138
7.2.2 控制程序及流程图 141
7.3 键盘及接口 145
7.3.1 键盘原理及控制电路 145
7.3.2 控制程序及流程图 147
7.4 键盘及显示综合实例——秒表 150
7.4.1 功能说明 150
7.4.2 关键技术及控制电路 150
7.4.3 控制程序及流程图 151
7.5 LCD点阵字符型液晶显示器 158
7.5.1 TC1602A简介 158
7.5.2 控制电路 162
7.5.3 控制程序及流程图 162
7.6 DS1302实时时钟 165
7.6.1 实时时钟DS1302 165
7.6.2 控制电路 168
7.6.3 控制程序及流程图 169
7.7 ADC0809电压检测电路 177
7.7.1 A/D转换器概述 177
7.7.2 典型A/D转换器芯片
ADC0809 178
7.7.3 ADC0809电压测量电路 181
7.7.4 控制程序 182
习题7 187
第8章 MCS-51单片机应用系统的
设计 188
8.1 单片机应用系统概述 188
8.1.1 单片机应用系统的特点 188
8.1.2 MCS-51单片机应用系统
设计方法 188
8.2 课程设计——16×16 LED显示 191
8.2.1 设计要求 191
8.2.2 16×16 LED显示总体
设计方案 191
8.2.3 硬件设计 193
8.2.4 编程要点及软件设计 193
8.3 课程设计——电脑钟 199
8.3.1 设计要求 199
8.3.2 电脑钟总体设计方案 200
8.3.3 硬件设计 200
8.3.4 软件设计及流程图 201
习题8 216
第9章 MCS-51单片机的C51
程序设计 217
9.1 C51语言概述和程序结构 217
9.1.1 C51语言的特点 217
9.1.2 程序结构 218
9.2 标识符和关键字 221
9.3 C51语言数据类型和运算符 223
9.3.1 C51语言的数据类型 223
9.3.2 C51语言的运算符 231
9.4 C51程序的基本结构 235
9.4.1 if语句 235
9.4.2 switch case语句 236
9.4.3 循环语句 237
9.5 C51函数和预处理命令 238
9.5.1 函数的分类和定义 238
9.5.2 中断服务函数 240
9.5.3 C51的库函数 241
9.5.4 编译预处理命令 243
9.6 C51程序设计举例 244
习题9 245
附录1 MCS-51指令表 246
附录2 ASCII表 250
参考文献 251