本书系统地介绍了MCS51系列单片机的结构、指令系统、程序设计、中断系统、定时器/计数器、串行口、系统扩展及实用I/O接口技术等基本原理及初步应用; 还介绍了基于单片机的嵌入式系统开发流程; 重点介绍了几种常用单片机开发应用软件(Keil、Altium Designer、Proteus),以利于读者边学习边实践; 而且,对目前常用的几种单片机进行了简单介绍。
本书含有丰富的实例详解及习题,特别适合作为大中专院校单片机原理及应用课程的教材,还可作为单片机爱好者的自学用书,也可作为单片机应用开发技术人员、智能仪表开发技术人员及研究生的设计参考用书。
单片机原理及应用教程(第2版是教育部高等学校机械类专业教学指导委员会规划教材之一。
《单片机原理及应用教程》第1版出版以来,受到了广大读者的好评。通过第1版的教学实践,第2版做了如下修订:
①配套有高质量的PPT课件、习题答案、应用实例的源程序,读者可通过扫描书上印的二维码从网上下载;
②增加一节C51语言内容介绍,引导读者用C语言编程;
③增加计算机中数的表示方法介绍;
④增加一章常用单片机简介及应用举例,使读者了解单片机的最新发展,引导读者在实际应用中采用最适合的、性价比最高的单片机;
⑤在单片机开发流程一章中,增加Keil C51软件应用简介;
⑥在应用实例中加入由作者课题组最新承担的实际工程应用课题实例。
全书共15章。第1章概述了单片机的有关基础知识,介绍了计算机数的表示方法。第2章介绍了MCS51系列单片机的内部结构、时序及单片机的最小系统。第3章介绍了MCS51系列单片机的指令系统,每一类型指令系统介绍结束后都有实例解析,帮助学生加深对51系列单片机程序指令的理解;
同时介绍了单片机C语言结构与编程方法。第4章通过实例介绍了单片机汇编语言程序设计的流程和方法。第5~7章分别介绍了单片机中断系统、定时器/计数器及串行口的结构与工作原理,在介绍中断系统、定时器/计数器以及串行口的章节后,都有非常简单、实用、完整的实例解析。详细解析电路原理图的设计、程序的编写以及仿真软件的应用。学生可以实际操作一遍,就相当于完成了一个完整的工程实际设计的仿真调试,从而了解单片机实际开发流程。第8章通过实例介绍了单片机系统扩展及实用接口技术。第9章系统地介绍了单片机开发流程,并简单明了地介绍了Keil、Proteus、Altium Designer等单片机系统常用设计和调试软件工具的使用和调试方法。第10章向读者推荐了几个常用单片机系列,并通过非常简单的实例解释其应用方法。第11~15章介绍了5个完整的工程实例。
本书前几章的实例是非常简单的LED或数码管驱动电路和程序,后几章的实例是为学有余力的学生准备的。学生们可以用仿真软件Keil检查自己的作业,也可以对书中介绍的实例进行仿真调试。Protues软件可以对书中介绍的实例或学生自己的小设计进行软、硬件综合仿真。书中的实例多选用AT89C51或AT89S51,这两种单片机都是MCS51系列兼容机,引脚和指令系统完全兼容,因内部有Flash存储器而得到广泛应用。
本书内容丰富,深入浅出,适合作为单片机原理及应用课程的教材,也可以帮助自学者解决在设计和应用单片机时所遇到的实际问题。
本书主要由张元良(大连理工大学)、吕艳(大连工业大学)、周志民(大连测控技术研究所)、李涛(大连理工大学)、刘淑杰(大连理工大学)、刘伟嵬(大连理工大学)等编写,参加编写工作的还有刘全利、李乾坤、沈毅鸿、王若飞、勾万强、王金龙、张浩、郭俊飞、何希平、关泽明、张敏、赵清晨、姜辉、李瑞品等,在此表示感谢!
限于作者的水平和经验,书中难免存在错误和不足之处,欢迎广大读者给予指正。
作者
2016年6月
第1章微型计算机基础知识
1.1微型计算机的组成
1.2计算机中数据的表示方法
1.2.1进位计数制
1.2.2数制间的相互转换
1.2.3二进制数的运算
1.2.4数值数据的表示
1.2.5非数值数据的表示
1.3单片机概述
1.3.1单片机的基本结构
1.3.2单片机的发展
1.3.3单片机的特点及应用
习题
第2章MCS51系列单片机的硬件结构
2.1单片机的内部结构
2.1.1内部结构框图
2.1.2引脚与功能
2.2单片机的存储器结构
2.2.1程序存储器
2.2.2数据存储器
2.2.3特殊功能寄存器
2.3单片机的并行I/O口
2.3.1I/O口的特点
2.3.2I/O口的内部结构
2.3.3I/O口的功能
2.3.4I/O口的负载能力
2.4单片机的时钟与时序
2.4.1时钟电路
2.4.2CPU时序
2.5单片机的复位
2.6单片机最小系统
习题
第3章MCS51系列单片机的指令系统
3.1指令系统简介
3.1.1指令格式
3.1.2指令分类
3.2单片机寻址方式及实例解析
3.2.1直接寻址
3.2.2立即寻址
3.2.3寄存器寻址
3.2.4寄存器间接寻址
3.2.5变址寻址
3.2.6相对寻址
3.2.7位寻址
单片机原理及应用教程(第2版)
目录
3.3单片机指令系统及实例解析
3.3.1数据传送指令
3.3.2算术指令
3.3.3逻辑指令
3.3.4转移指令
3.3.5位操作指令
3.3.6伪指令
3.4MCS51单片机C51语言
3.4.1C51语言概述
3.4.2C51语言的程序结构、数据与存储类型
3.4.3C51语言的头文件与库函数
3.4.4C51语言中绝对地址的访问
3.4.5C51语言编程方法
习题
第4章汇编语言程序设计
4.1汇编语言源程序汇编
4.2程序设计的基本步骤
4.3顺序程序的设计
4.4分支程序设计
4.4.1单分支程序
4.4.2多分支程序
4.5循环程序设计
4.5.1单循环
4.5.2多重循环
4.5.3按条件转移控制的循环
4.6查表程序设计
4.7子程序设计和调用
4.8应用控制流程设计
习题
第5章MCS51系列单片机的中断系统
5.1中断的概念
5.2中断源
5.3中断控制寄存器
5.4中断的优先级
5.5中断的响应
5.6由中断模块程序认知中断处理过程
5.6.1外部中断模块代码
5.6.2定时器中断模块代码
5.7通过实例掌握外部中断
习题
第6章MCS51系列单片机的定时器/计数器
6.1定时器/计数器的结构
6.1.1计数功能
6.1.2定时功能
6.2定时器/计数器的相关寄存器
6.2.1定时器/计数器的方式寄存器TMOD
6.2.2定时器/计数器的控制寄存器TCON
6.2.3中断允许寄存器IE
6.2.4中断优先级寄存器IP
6.3定时器/计数器的工作方式
6.4定时器/计数器的知识扩展
6.4.1定时器的溢出同步问题
6.4.2运行中读取定时器/计数器
6.4.3由定时器/计数器模块程序认知定时器/计数器处理过程
6.5通过实例掌握定时器(例程: 定时器与LED)
6.5.1采用中断处理方式的程序
6.5.2采用查询方式处理的程序
6.6通过实例掌握计数器(例程: 计数器与LED)
习题
第7章MCS51系列单片机的串行口
7.1串行通信的概念
7.2MCS51系列单片机串行口的结构
7.2.1串行口的结构
7.2.2串行口控制寄存器
7.2.3串行口的工作方式
7.2.4串行通信的波特率
7.3串行口通信
7.3.1双机通信
7.3.2多机通信
7.4通过实例掌握串行口通信(例程: PC控制数码管)
7.4.1硬件设计
7.4.2软件设计
7.4.3PC与单片机串行通信的实现
习题
第8章MCS51系列单片机系统扩展及实用I/O接口技术
8.1常用缓冲/驱动接口芯片介绍
8.1.1SN7407缓冲/驱动芯片
8.1.2达林顿晶体管阵列ULN2003A
8.1.3光电耦合器
8.1.4串行通信接口RS485
8.2开关量输入接口设计
8.2.1键盘接口
8.2.244矩阵键盘扫描实例
8.2.3继电器输入接口
8.2.4行程开关输入接口
8.2.5光电编码器输入接口
8.3开关量输出接口设计
8.3.1蜂鸣器输出接口
8.3.2继电器输出接口
8.3.3固态继电器输出接口
8.4液晶显示模块接口设计
8.4.1LCD的基本结构与驱动原理
8.4.2段式LCD
8.4.3点阵LCD
8.5常用A/D转换接口设计
8.5.1TLC2543与单片机接口实例
8.5.2ADC0832与单片机接口实例
8.5.3A/D转换器(TLC2543)应用实例
8.6常用D/A转换接口设计
8.6.1TLC5618与单片机接口实例
8.6.2MAX518与单片机接口实例
习题
第9章MCS51系列单片机开发流程
9.1总体方案设计
9.1.1系统功能要求
9.1.2硬件总体方案
9.1.3软件总体方案
9.2硬件和软件细分设计
9.2.1硬件设计
9.2.2软件设计及调试
9.3系统的仿真与调试
9.3.1Keil软件简介
9.3.2利用Keil进行程序调试
9.3.3Proteus软件使用简介
9.3.4利用Proteus绘制电路原理图
9.3.5在Proteus中调试程序
9.3.6Altium Designer简介
9.3.7利用Altium Designer设计电路板
9.4系统调试
9.4.1单片机应用系统的一般调试方法
9.4.2数码管显示系统调试
第10章常用单片机简介及应用举例
10.1STC15系列单片机
10.1.1STC15系列单片机简介
10.1.2STC15W4K32S4应用举例
10.2AVR系列单片机
10.2.1AVR系列单片机简介
10.2.2ATmega64单片机应用举例
10.3MSP430系列单片机
10.3.1MSP430系列单片机简介
10.3.2MSP430F149单片机应用举例
10.4Kinetis K60系列单片机
10.4.1Kinetis K60系列单片机简介
10.4.2MK60DN512ZVLQ10单片机应用举例
10.5STM32系列单片机
10.5.1STM32系列单片机简介
10.5.2STM32F103VET6单片机应用举例
第11章数字电子钟设计实例
11.1设计要求
11.2硬件设计
11.2.1按键电路设计
11.2.2时钟芯片DS1302的性能特点和工作原理
11.2.3时钟芯片DS1302与单片机的连接
11.2.4总体电路原理图
11.3软件设计
11.3.1显示子程序流程图
11.3.2显示子程序的代码
11.3.3主函数程序流程图
11.3.4总的汇编语言源程序代码
第12章LED阵列动态显示设计实例
12.1设计要求
12.2硬件设计
12.2.174HC595简介
12.2.2点阵LED简介
12.2.3总体电路原理图
12.3软件设计
12.3.1程序流程图
12.3.2源程序代码
第13章数字温度计设计实例
13.1设计要求
13.2硬件设计
13.2.1温度芯片DS18B20简介
13.2.2一线式总线的概念
13.2.3总体电路原理图
13.3软件设计
13.3.1DS18B20子程序流程图
13.3.2DS18B20子程序代码
13.3.3数码管串行方式显示子程序流程图
13.3.4数码管串行方式显示子程序代码
13.3.5主程序流程图
13.3.6整体源程序代码
第14章小型直流电动机驱动设计实例
14.1设计要求
14.2硬件设计
14.2.1L298N双H桥电动机驱动芯片
14.2.2L298N与单片机接口设计
14.2.3总体电路原理图
14.3软件设计
14.3.1单片机产生脉宽调制信号
14.3.2源程序代码
第15章步进电机驱动设计实例
15.1设计要求
15.2硬件设计
15.2.1步进电机概述
15.2.2TA8435步进电机专用驱动芯片
15.2.3TA8435细分驱动原理
15.2.4总体电路原理图
15.3软件设计
15.3.1程序流程图
15.3.2源程序代码
附录AASCII码字符表(常规字符集)
附录BMCS51系列单片机汇编指令表
参考文献