本书主要介绍单片机的硬件结构及工作原理、基于C语言的程序设计、单片机系统扩展技术、中断技术、接口技术、信息转换与传输技术、单片机技术的系统应用等内容。本书以工程实际实训为主线,将8051单片机的传统理论贯穿到实训实操过程中。为便于教学组织,特意引入了单片机硬件仿真软件Proteus 7 Professional作为实训实操的主要载体,可以使单片机的日常教学摆脱硬件条件的束缚而直接在普通的微机室进行。本书适合作为高等职业院校机电类专业的教材,也可作为部分中职类相关专业教材或参考书,同时还可作为从事电气类专业工作的工程技术人员的自学或参考书。
本书以单片机系统的工程应用为出发点,将传统单片机系统原理进行了整合,并以实训的形式体现出来,引导学生通过实训实操,主动学习相关原理知识,即按需学习,从而提高学生学习的主观能动性。本书内容组织以突出实践操作技能为主线,实训实操以单片机设计工作现场为背景,教学现场以学生自己操作为主、教师教授为辅,更好地体现了对学生实践技能的培养。本书实训内容录制了仿真过程视频,可以扫描二维码观看。
单片机技术在工业控制中有着极其广泛的应用,而单片机作为电类的一门专业基础课程,在电类专业课程体系构建中也起着至关重要的作用。在学习本课程之前,先期所要学习的课程主要包括电工基础、模拟电子技术、数字电子技术、自动检测与传感器技术、C语言程序设计等。
本书以单片机系统的工程应用为出发点,将传统单片机系统原理进行了整合,并以实训的形式体现出来,引导学生通过实训实操,主动学习相关原理知识,即按需学习,从而提高学生学习的主观能动性。书中内容组织以突出实践操作技能为主线,实训实操以单片机设计工作现场为背景,教学现场以学生自己操作为主、教师讲授为辅,更好地体现了对学生实践技能的培养。
书中将8051单片机的理论体系重新整合,分解成数制与编码、8051单片机的硬件配置、单片机C语言程序设计基础、存储器系统、中断技术、定时/计数器、I/O设备与接口、串行通信、A/D及D/A转换接口、综合实训等10章,且在每章后面(除第10章)都配备了技能实训。全书共安排了18个基础实训和4个综合实训。为使学习更贴近单片机系统实际开发现场,特意安排了C语言程序设计的内容,并介绍了Keil C51开发工具的操作技能。另外,考虑到单片机实验实训环节在具体实施过程中,总会由于诸多硬件方面的问题而使实训案例项目无法实现,从而影响教学效果,故本书特意引入了优秀的单片机硬件仿真软件Proteus 7 Professional作为实训实操的主要载体,可以使单片机实践教学的实施直接在普通的微机室即可进行。(书中由该软件绘制的电路图的图形符号与国家标准画法不一致,二者对照关系参见附录B。)
本书内容组织原则是以如何吸引学生主动学习作为出发点,为此,每个实训的组织均遵循是什么为什么做什么这样一条主线,层层递进,即先给出所实现任务的所有软件、硬件资源及实施方案,使得学生可以直接利用这些资源得到正确结果,即首先知道结果是什么;然后再利用原理解析的形式告诉学生产生这个结果的原因,即为什么;在掌握了原理后,再布置一个和原实训相仿的任务,使学生进行创新设计,进一步进行单片机系统应用任务的开发,即做什么。
本书于2017年被立项为安徽省高等学校省级质量工程规划教材。本次改版也是结合规划教材建设目标,在第一版基础上做了整合处理,以够用为度,对原理性知识做了进一步精简,适当增加了实践性内容。书中还引用了一些STC、STM32、ARM等类型单片机工程应用方面的案例,使其内容更加符合高职教学特点,尤其是实训环节的操作性更强。全书由安徽职业技术学院宋国富任主编,并负责统稿。在本书的编写过程中,得到了有关院校同行及领导的大力支持,在此深表感谢。特别感谢安徽职业技术学院洪应、黄有金、谢军等老师的支持与帮助。
由于编者水平有限,书中难免存在疏漏与不足之处,恳请各位专家、同行和读者批评指正。
编者
2019年3月
宋国富,安徽职业技术学院
第1章数制与编码1
11不同进位计数制及其转换1
111进位计数制1
112数制的转换2
12计算机中数的表示方法及运算3
121机器数的特点3
122原码、反码和补码4
13BCD码及ASCII码5
1318421BCD编码5
132ASCII编码6
14技能实训7
【实训1】Keil C51的使用方法7
习题16
第2章8051单片机的硬件配置18
21单片机硬件系统的组成18
211单片机概述18
212微型计算机硬件系统的组成19
213单片微型计算机系统的组成20
228051单片机的引脚功能20
221MCS51系列单片机简介20
2228051单片机的内部组成及信号引脚21
238051单片机内部资源分配25
2318051单片机的存储器空间25
2328051单片机片内程序存储器29
24技能实训30
【实训2】并行接口特性30
习题32
第3章单片机C语言程序设计基础34
31单片机C语言程序设计的一般格式34
311单片机C语言程序设计的步骤34
312单片机C语言程序的几个基本概念34
313单片机C语言程序的基本结构36
32单片机开发C语言程序的数据类型37
321常量和符号常量37
322变量38
33单片机C语言程序的运算符和表达式40
331赋值运算符41
332算术运算符41
333关系运算符42
334逻辑运算符43
335其他运算符43
34单片机C语言程序的一般语法结构44
341顺序结构44
342分支结构44
343循环结构46
358051单片机的C语言程序47
351存储类型及存储区47
352特殊功能寄存器50
353中断标识符51
36C语言程序在单片机典型系统中的应用52
36188 LED点阵显示原理及应用举例52
362大屏幕LED点阵显示屏工作原理及典型应用55
37技能实训56
【实训3】Proteus 7 Professional软件入门56
【实训4】跑马灯62
习题65
第4章存储器系统67
418051单片机外部总线的扩展67
4118051单片机的三总线结构67
412典型8位地址总线锁存芯片68
42存储器概述69
421存储器的分类69
422随机存储器69
423只读存储器71
43存储器扩展的基本方法73
431存储器扩展需要解决的基本问题73
432单片机存储器的片选技术73
44技能实训76
【实训5】单片机存储器的综合扩展76
【实训6】I2总线串行EEPROM 24C02实训77
习题80
第5章中断技术82
51中断概述82
511中断的概念82
512中断的功能及特性83
513计算机的中断源83
528051单片机的中断系统84
5218051单片机的中断系统的结构84
522中断源和中断控制85
523中断处理过程88
524外部中断源的扩展88
53技能实训89
【实训7】多信号彩灯的中断实现89
习题92
第6章定时/计数器94
618051单片机定时/计数器的构成94
6118051单片机定时/计数器的结构与工作原理94
612定时/计数器的相关寄存器96
628051单片机定时/计数器的工作方式及应用97
621定时/计数器的工作方式97
622定时/计数器的应用100
63技能实训103
【实训8】方波信号发生器的中断实现103
习题105
第7章I/O设备与接口107
71计算机I/O接口技术概述107
711I/O设备及I/O接口107
712CPU与外围设备之间的数据传送方式108
72 8051单片机并行I/O接口110
721P0口(80H)的结构和功能110
722P1口(90H)的结构和功能112
723P2口(0A0H)的结构和功能113
724P3口(0B0H)的结构和功能113
738051单片机并行I/O接口的应用115
731并行I/O接口的基本输入/输出原理115
732并行I/O接口的驱动能力115
748051单片机并行I/O接口的扩展116
741简单I/O接口的扩展117
742通用可编程并行接口8255A的结构117
7438051单片机和8255A的接口方法122
758段LED数码显示技术123
751LED数码管工作原理123
752LED数码管的典型应用124
76键盘接口技术125
761键盘接口技术及原理125
762独立式按键和矩阵式键盘126
77技能实训128
【实训9】多个灯的智能控制128
【实训10】8255A扩展的彩灯控制130
【实训11】8段LED数码管的显示控制132
【实训12】6位显示电子钟135
【实训13】LED数码管动态显示的串行驱动138
【实训14】矩阵式键盘的按键识别142
习题146
第8章串行通信147
81串行通信的基本概念147
811并行通信和串行通信147
813串行通信的工作方式149
814串行通