本书结合当前zui新的职业教育教学改革要求,以任务驱动为导向,主要介绍MSC-51系列单片机的硬件系统、汇编语言指令、定时与中断系统、独立按键以及矩阵按键控制技术、显示接口技术、A/D与D/A转换接口、串行口通信技术、单片机系统扩展、应用系统设计及开发等内容。
本书较全面地涵盖了MCS-51系列单片机的基本知识,特别是介绍了一种有规律、移植性好的汇编编程方法,使读者能很快将其应用于解决大型汇编编程问题上。
本书适合作为高等职业院校电子信息类和自动化类工科专业的教材,也可作为爱好单片机技术的广大读者的参考书。
本书较全面地涵盖了 MCS-51 系列单片机的基本知识,特别是介绍了一种有规律、移植性好的汇编编程方法,使读者能很快将其应用于解决大型汇编编程问题上。本书以项目为载体,每个项目都体现了基于工作过程的特点;从通用性的角度来考虑教材的编写,选取单片机控制的电子广告牌、温度测控、数控电源这 3 类典型的应用项目作为载体。在教材所传递的知识和技能内容编写上,将 3 个项目设计成递进关系。
本书以项目为载体,每个项目都体现了基于工作过程的特点;从通用性的角度来考虑教材的编写,选取单片机控制的电子广告牌、温度测控、数控电源这3类典型的应用项目作为载体。在教材所传递的知识和技能内容编写上,将3个项目设计成递进关系,即第1章、第2章、第3章、第4章和第10章构成电子广告牌学习情境,形成单片机汇编编程的入门学习(学习单片机zui小应用系统);在电子广告牌学习情境的基础上加上第5章和第6章构成数控电源学习情境,以及在电子广告牌学习情境的基础上加上第5章和第7章构成温度测控学习情境,形成单片机汇编编程的提高学习(学习单片机包含键盘、显示、D/A和A/D转换的应用系统);在电子广告牌、温度测控、数控电源等学习情境的基础上加上第8章、第9章和第11章形成单片机汇编编程的高级学习(学习单片机包含键盘、显示、D/A转换、A/D转换、扩展和通信的应用系统及单片机应用系统设计)。 通过这些内容的学习将单片机的基本知识、汇编编程知识及应用中的各种能力融合在一起。读者在学习中可根据这3种项目设计自己的学习情境。为了体现课程与工程的紧密联系,在每章的开头都插有一幅与该章内容相关的电路实物图,其目的就是让学生在学习时能够将自己所学的知识与知识应用的目标对象相联系,从而提高学生的学习兴趣。每章都包括数量不等的小知识、小问答、小训练、小建议模块。为了突出技能这一内容,在部分章节穿插了小技能模块和任务训练模块。书中大量电路图为软件的截屏图,其图形符号与国家标准中相关符号不一致,二者对照关系参见附录B。 众所周知,汇编语言在编程上非常灵活,没有统一的模式,移植性差,初学者难以在短时间内掌握,为此,本书在介绍汇编编程知识时,从汇编程序结构标准化、子程序模型标准化方面入手,给出一种有规律、移植性好的汇编编程方法,使读者能很快掌握汇编编程知识并能将其应用于解决大型汇编编程问题上。 本书与第二版相比,在以下3个方面做了修改: (1)更新了部分例题。 (2)对第二版中发现的错漏和不合理的内容进行了修改和调整,使之更加完善。 (3)对部分章节的难点、重点增加了视频、Flash动画、PPT等内容,学生可通过扫描二维码进行学习。 本书共分为11章:第1章为MCS-51系列单片机的基本知识;?第2章为MCS-51系列单片机的组成;第3章为MCS-51系列单片机汇编语言及程序设计;第4章为MCS-51系列单片机的中断系统及计数定时器;第5章为MCS-51系列单片机的键盘和显示的汇编编程;第6章为MCS-51系列单片机的数-模(D/A)转换的汇编编程;第7章为MCS-51系列单片机的模-数(A/D)转换的汇编编程;第8章为MCS-51系列单片机资源扩展的汇编编程;第9章为MCS-51系列单片机串行通信的汇编编程;第10章为MCS-51系列单片机实用开发工具;第11章为MCS-51系列单片机应用系统设计及开发。 本书由广西工业职业技术学院王彰云、凌艺春任主编;北滘职业技术学校王彰凡,广西工业职业技术学院孙洪民、黄飞任副主编。具体编写分工如下:第1章由黄飞编写,第2章和第6章由王彰凡编写、第7章由孙洪民编写,第8章由凌艺春编写,第3章至第5章、第9章至第11章由王彰云编写,全书由王彰云负责总体策划及全书统稿。 由于时间仓促,加之编者水平有限,书中难免存在疏漏及不足之处,殷切希望广大读者批评指正。 编 者 2018年8月
王彰云,凌艺春,广西工业职业技术学院
第1章 MCS-51系列单片机的基本知识 1
1.1 单片机的历史与应用 2
1.1.1 单片机的历史 2
1.1.2 单片机的应用 3
1.2 不同类型的单片机介绍 4
习题 4
第2章 MCS-51系列单片机的组成 5
2.1 MCS-51系列单片机外部结构 6
2.2 MCS-51系列单片机内部结构 11
2.3 MCS-51系列单片机的时序和工作方式 20
习题 22
第3章 MCS-51系列单片机汇编语言及程序设计 24
3.1 项目引入:单片机zui小应用系统的使用 24
3.2 单片机汇编语言及程序设计的相关知识 28
3.2.1 MCS-51系列单片机汇编语言基础 28
3.2.2 数据传送类指令 32
3.2.3 算术运算类指令 35
3.2.4 逻辑运算类指令 37
3.2.5 控制转移类指令 39
3.2.6 位操作类指令 42
3.2.7 伪指令 43
任务训练:32盏流水灯的编程 45
习题 49
第4章 MCS-51系列单片机的中断系统及计数定时器 53
4.1 项目引入:LED点阵屏的动态显示 54
4.2 单片机中断系统的相关知识 57
4.2.1 中断系统 57
4.2.2 中断控制应用举例 63
4.2.3 MCS-51系列单片机定时器/计数器 65
4.2.4 定时器/计数器应用举例 70
4.2.5 中断、定时器/计数器综合应用举例LED点阵广告屏 72
任务训练:用88 LED点阵屏动态显示人名 77
习题 78
第5章 MCS-51系列单片机的键盘和显示的汇编编程 81
5.1 项目引入1:独立键盘与静态数码管显示 82
5.2 项目引入2:矩阵键盘加独立键盘与液晶显示 84
5.3 键盘和显示的相关知识 86
5.3.1 独立键盘与静态数码管显示的相关知识 86
5.3.2 矩阵键盘加独立键盘与液晶显示的相关知识 93
任务训练:编写简易时钟程序 113
习题 113
第6章 MCS-51系列单片机的数-模(D/A)转换的汇编编程 116
6.1 项目引入:简易数控电源 117
6.2 D/A转换的相关知识 121
6.2.1 D/A转换器的主要技术指标 122
6.2.2 典型的D/A转换器及接口 122
6.2.3 简易数控电源项目编程说明 125
6.2.4 DAC0832应用举例 126
任务训练:构造高精度简易数控电源 128
习题 128
第7章 MCS-51系列单片机的模-数(A/D)转换的汇编编程 130
7.1 项目引入:温度检测 131
7.2 A/D转换的相关知识 137
7.2.1 A/D转换器的主要技术指标 138
7.2.2 逐次逼近型A/D转换器及接口 138
7.2.3 温度检测项目编程说明 141
7.2.4 ADC0809应用举例 141
任务训练:设计数字电压表 142
习题 143
第8章 MCS-51系列单片机资源扩展的汇编编程 145
8.1 项目引入:单片机8级中断扩展电路使用 146
8.2 单片机资源扩展的相关知识 150
8.2.1 片外三总线的扩展 150
8.2.2 程序存储器的扩展 151
8.2.3 数据存储器的扩展 154
8.2.4 定时器/计数器的扩展 157
8.2.5 I/O端口的扩展 159
任务训练:8255输入/输出的应用 166
习题 166
第9章 MCS-51系列单片机串行通信的汇编编程 168
9.1 项目引入:AT89C51与PC串行通信 168
9.2 单片机串行通信的相关知识 171
9.2.1 异步通信和同步通信 171
9.2.2 波特率和接收/发送时钟 173
9.2.3 单工、半双工、全双工通信方式 174
9.2.4 异步串行通信的信号形式 175
9.2.5 MCS-51系列单片机串行接口的结构 175
9.2.6 串行接口特殊功能寄存器 176
9.2.7 单片机的工作方式 177
9.2.8 串行接口应用举例 180
任务训练:并/串行数据转换的实现 184
习题 184
第10章 MCS-51系列单片机实用开发工具 186
10.1 Keil仿真软件使用介绍 187
10.1.1 Keil uVision2仿真软件 188
10.1.2 使用Keil uVision2仿真软件编写和调试程序 192
10.2 Proteus仿真软件使用介绍 198
10.2.1 Proteus 6.9仿真软件 198
10.2.2 Proteus元件库常用元件的中英文对照表 204
习题 207
第11章 MCS-51系列单片机应用系统设计及开发 208
11.1 单片机应用系统设计的一般步骤和方法 209
11.1.1 设计步骤 209
11.1.2 硬件设计与调试 210
11.1.3 软件设计与调试 211
11.1.4 单片机应用系统的调试 212
11.2 单片机抗干扰设计 212
11.2.1 特别要注意抗电磁干扰的系统 212
11.2.2 增加系统的抗电磁干扰能力可采取的措施 212
习题 213
附录A 项目应用程序 214
附录B 书中所用图形符号说明 231
参考文献 232