本书以80C51为代表,系统、全面地阐述了51系列单片微型计算机的硬件组成及工作原理、汇编语言和C51语言体系及其程序设计方法、系统扩展的原理及方法、接口技术及其应用基础,并简要介绍了单片机应用系统设计、开发及调试的原则、步骤、方法及常用的开发工具。
目前,国内本科院校电气信息类、机械类、计算机类相关专业普遍开设了单片机原理及应用方面的课程,其中许多专业还将它列为重要的必修课程。本书是编者结合各开设专业的特点,将自身长期从事相关教学和科研的经验成果悉心总结、提炼而成的。
本书以经典的80C51为代表,介绍了51系列单片机的硬件结构及原理、编程语言及程序设计方法,进而阐述了单片机系统扩展、常用接口技术,后就单片机应用系统开发的相关知识进行了较深入的探讨。本书对各章节内容和编排顺序进行了精心地组织,全书包括以下8章:第1章单片机基础知识导论;第2章51单片机硬件基础;第3章汇编语言及其程序设计;第4章51单片机中断、定时/计数器及串行接口;第5章单片机系统扩展的原理及方法;第6章接口技术及其应用基础;第7章C51语言及其程序设计;第8章51单片机应用系统开发。为便于读者更好地理解本书内容的重点和难点,以及帮助读者检验学习的效果,书中每一章都附有思考题。
全书内容组织合理,深入浅出,循序渐进,层次分明;知识点阐述上力求用语精准、细致和全面,以期更好地为读者服务。主要特色有:①在第1章适当补充相关预备知识以满足初学者,尤其是非计算机专业学生的需求;②在第3章和第7章分别安排了汇编语言和C51语言及程序设计的内容,并阐述了将两者结合进行混合汇编的方法,从而较全面地涵盖了程序设计的知识;③在第8章中向读者简介了目前实用的51单片机开发软件Keil μVision及Proteus;④本书在例题及思考题的设计上,力求把握相关内容的重点和难点知识,注重题目的典型性、实用性和可拓展性。
本书配有精心制作的电子课件可供用书院校使用,如有需要请发邮件至cipedu@ 163.com索取。
本书由陈慧、刘举平等编著,参与本书编写和程序调试工作的还有李志刚、胡爱闽、罗智中、章海亮、余为清及吴至境,所有编写人员均长期从事单片机原理及应用相关的教学及研究工作。另外,陈浩参与了本书的文字核错工作。
由于编者水平有限,书中若有缺点或不妥之处,敬请读者批评指正,谢谢!
编者
2016年9月
第1章单片机基础知识导论1
1.1基本术语及定义1
1.2单片微型计算机概述2
1.2.1微型计算机及其系统组成2
1.2.2单片微型计算机及其应用4
1.3数制及数制间的转换7
1.3.1常用进位计数制8
1.3.2数制之间的转换9
1.3.3二进制数的运算11
1.4计算机中数的表示方法13
1.4.1真值与机器数13
1.4.2原码、反码与补码14
1.4.3溢出的判别15
1.4.4定点数与浮点数16
1.5计算机常用编码18
1.5.1字符的ASCII码及奇偶检验18
1.5.2BCD码及其十进制调整20
思考题21
第2章51单片机硬件基础22
2.180C51单片机概述22
2.1.180C51内部功能结构22
2.1.280C51引脚定义及总线结构23
2.2中央处理器CPU26
2.2.1运算部件27
2.2.2控制部件28
2.2.3CPU时序29
2.3存储器30
2.3.1程序存储器30
2.3.2内部数据存储器31
2.3.3外部数据存储器34
2.4并行I/O接口34
2.4.1P0接口34
2.4.2P1接口36
2.4.3P2接口36
2.4.4P3接口37
2.580C51的工作方式38
2.5.1程序运行方式38
2.5.2低功耗方式38
思考题39
第3章汇编语言及其程序设计41
3.1汇编语言概述41
3.1.1汇编语言源程序及其汇编41
3.1.2汇编语言指令类型与指令格式41
3.1.3汇编语言指令常用符号42
3.1.4操作数寻址方式43
3.251单片机汇编语言指令体系45
3.2.1数据传送类指令45
3.2.2算术运算类指令49
3.2.3逻辑运算及循环移位类指令52
3.2.4转移控制类指令54
3.2.5位操作类指令58
3.2.6伪指令59
3.3汇编语言程序设计61
3.3.1汇编语言程序设计步骤61
3.3.2程序基本结构及设计方法63
3.3.3数码转换程序设计67
3.3.4运算程序设计70
3.3.5查表程序设计74
3.3.6散转程序设计75
3.3.7延时程序设计76
思考题77
第4章51单片机中断、定时/计数器及串行接口79
4.1中断系统79
4.1.1中断系统概述79
4.1.2中断源及中断申请的建立80
4.1.3中断响应的条件81
4.1.4中断响应的过程83
4.1.5中断的应用84
4.2定时/计数器86
4.2.1定时/计数器结构及原理86
4.2.2定时/计数器的工作方式88
4.2.3定时/计数器的应用90
4.3串行通信及串行接口92
4.3.1串行通信概述92
4.3.280C51串行口结构及工作原理95
4.3.380C51串行口的应用98
思考题101
第5章单片机系统扩展的原理及方法103
5.1单片机系统扩展概述103
5.1.1系统扩展的内容及方法103
5.1.2常用扩展器件简介104
5.1.3存储单元及I/O端口的编址105
5.2存储器的扩展108
5.2.1程序存储器扩展109
5.2.2数据存储器扩展111
5.3I/O接口扩展114
5.3.1并行I/O接口扩展114
5.3.2串行I/O接口的扩展115
思考题117
第6章接口技术及其应用基础119
6.1常用并行I/O接口芯片119
6.1.1接口芯片8255A及其应用119
6.1.2接口芯片8155及其应用124
6.2键盘及其接口130
6.2.1键盘的结构及工作原理130
6.2.2键盘接口及其应用134
6.3LED数码显示器及其接口137
6.3.1LED数码显示器结构及原理137
6.3.2多位LED数码显示器接口及其应用139
6.4LCD显示器及其接口142
6.4.1LCD显示器结构及原理142
6.4.2LCD显示器的特点及分类143
6.4.3LCD显示器接口及其应用144
6.5D/A转换器及其接口150
6.5.1D/A转换器结构及原理150
6.5.2D/A转换芯片DAC0832及其应用152
6.6A/D转换器及其接口157
6.6.1A/D转换器结构及原理157
6.6.2A/D转换芯片ADC0809及其应用158
思考题162
第7章C51语言及其程序设计164
7.1C51语言及程序结构的特点164
7.1.1C51语言特点164
7.1.2C51程序结构特点164
7.1.3C51预处理命令166
7.2C51数据与运算168
7.2.1数据类型168
7.2.2常量与变量173
7.2.3运算符与表达式177
7.3C51流程控制语句与函数179
7.3.1流程控制语句179
7.3.2函数182
7.4C51程序设计举例186
7.4.1单片机基本I/O口应用186
7.4.2访问外部数据存储器空间187
7.4.3外部中断的应用188
7.4.4定时器/计数器的应用189
7.4.5串行口的应用190
7.5C51语言与汇编语言的混合编程192
7.5.1混合汇编的基本方式192
7.5.2C51与汇编之间的参数传递193
7.5.3混合汇编的实现方法194
思考题195
第8章51单片机应用系统开发197
8.1系统总体方案设计197
8.2硬件设计198
8.3软件设计200
8.4可靠性设计201
8.5系统调试204
8.651单片机应用系统设计实例208
8.6.1四相步进电机控制系统设计208
8.6.2十字路口交通信号控制系统设计212
思考题233
附录A51系列单片机指令表234
附录BC51库函数237
参考文献247