本书是三大内容整合之作,包括单片机基本原理,从底层做起的原创应用构思和实践,相关元器件选用导引和工程经验。内容结构以起提纲挈领作用的定时器/计数器、中断系统、串行品通信三大核心功能来贯穿单片机原理的学习和实践过程,着重应用思维的启发,重视相关元器件的选择和运用,实施资料完备,体现技术发展和传承并图文并茂。
学与用之道的启示学以致用是单片机技术课程学习的终极目的。时代需要培养这方面的电子技术人才,社会的呼唤和期待无疑是一种集思广益、学与用之道的有益启示,听听以下来自社会的声音。
* 现在从大学毕业的学生学到了什么东西呢?一些理论,跟实际脱钩的理论。有没有用呢?有点用。但是,在企业中,需要的是干点事情出来,解决实际问题。
* 电子工程师就是将一堆器件搭在一起,注入思想(程序),完成原来的这些器件分离时无法完成的功能,做成一个成品。所需要的技能越高、功能越复杂、成本越低、市场对相应的东西的需求越大,就越成功。这就是电子工程师的自身价值。
* 做一个电子工程师,先从51系列学起,这是得到公认的。
* 对于初学者来说,应该从51系列着手,一方面,51系列还是入门级的芯片,作为初学者练手还是比较好的,可以将原理和概念学一遍;很多特殊的单片机也是在51系列的核的基础上增加了一些I/O和A-D、D-A;也为今后学习更高级的单片机和ARM打下基础。
* 对于初学者,全面掌握这些知识是很有必要的,因为你不知道今后需要使用哪些知识,而这些知识,80%以上你会在今后的工作中使用到,因为这都是最基本的。
* 学习单片机最有效的方法是理论与实践并重。学习与实践结合,边学习、边演练,循序渐进,举一反三,就能将用到的指令理解、吃透、扎根于脑海,甚至“根深蒂固”。
* 有心人就是这样,在什么样的情况下,都能慢慢积蓄知识和力量。毕竟,完成一个产品,不是只会单片机就可以了,还需要很多的外围电路。
* 有一些所谓的单片机高手只停留于编程,以为买了一块高级学习板,练习完了里面所有的程序就行了,殊不知,他们中的很多人到最后连单片机系统中的LED限流电阻加多大都不清楚,更不用说单片机的引脚分布了。
* 单片机这门课是一项非常重视动手实践的科目,而且单片机也是一门集计算机编程与电子技术为一身的学科。如果你是单片机高手,那么说明你也是计算机编程和电子技术高手。
* 建议想成为单片机高手的初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短、占用内存少、执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。
* 如果你想成为单片机的程序高级设计师,那么汇编语言是非掌握不可的。很多高级单片机如ARM都是以汇编语言作为引导代码的,还有很多新出品的单片机,也是先有汇编语言编译器,之后才有C语言编译器。所以,学习单片机,要先从汇编语言入门,再学C语言精通,再学汇编语言进一步精通。
* 技术这个东西就是这样,需要勤奋勤奋再勤奋,突破了门槛,就是坦途。有一天这个日子来了,你就苦尽甘来了。
作者前言单片机课程是高校电类学科的热门课。本书针对应用型本科院校的教学特点,结合工程实践,介绍了应用最广、最适合初学者入门的51系列单片机的原理与实践应用。
本书结构独特,共8章内容,分为三个层次。第1~6章为基本原理部分,以应用为侧重点,介绍了单片机的内部硬件结构、指令系统、三大内部功能、外部系统扩展、常见外围接口、应用系统构建与调试;第7章为相关的常用电子元器件应用导引部分,从工程应用的角度纵览元件的性能和考虑元件的选择, 对单片机的灵活运用、应用电路的合理构思和性能的提高均有重要作用;第8章为单片机原理的运用实践部分,分别展示以定时器/计数器、中断系统、串行口通信三大内部功能为主线的运用示例,并以此为基础进一步展示与单片机基础原理紧密结合的相关综合应用示例和构思方法,这些示例是基于作者的原创应用或实用装置,撰写方式不是沿袭把整个复杂电路装置和盘托出的做法,而是去掉电路冗余只精简演绎其中对运用单片机基本原理最有启示性的部分,并着重把电路设计思想和工程经验融入在文字陈述之中,用以拓宽应用视野,培养工程意识和实践能力,启发创新思维,提高对单片机技术的实际运用能力。
本书融入了作者长期的研究实践和工程经验,基础原理从源头引证,各元器件配图经针对性精选,提供的运用实例均属原创并全部经过实施和验证,体现了本书重运用、重器件、重实践和学以致用的特点,书中丰富的工程实用资料可供读者使用参考。
本书可作为应用型工科院校本科和高职高专单片机课程的教材,内容可根据不同层次的需求选择使用,也可供相关工程技术人员阅读参考。
本书第1、3、4、5章由林土胜编写,第2、6章由林上港编写,第7、8章及其程序和实验由两人共同完成。
本书参考或引用了所列相关文献中的一些内容,在此向文献作者表示感谢。对书中存在的不足和错误之处,敬请读者批评指正(电子邮箱:eetshlin@scuteducn)。
作者
前言
第1章 单片机内部硬件结构
1.1 单片机概述
1.1.1 单片机发展概况
1.1.2 51系列单片机类型
1.1.3 主要特点和应用选择
1.2 51系列单片机芯片结构
1.2.1 51系列单片机基本组成
1.2.2 51系列单片机引脚及功能
1.2.3 CPU的工作时序
1.3 51系列单片机的存储器
1.3.1 程序存储器
1.3.2 内部数据存储器
1.3.3 外部数据存储器
1.4 51系列单片机的并行接口
1.4.1 地址/数据分时复用口
1.4.2 数据通用输入/输出口
1.5 51系列单片机的工作方式
1.5.1 复位方式
1.5.2 待机方式
练习与思考
第2章 指令系统
2.1 指令系统概述
2.1.1 指令分类
2.1.2 格式和符号说明
2.2 寻址方式
2.2.1 立即寻址
2.2.2 直接寻址
2.2.3 寄存器寻址
2.2.4 寄存器间接寻址
2.2.5 基址加变址间接寻址
2.2.6 相对寻址
2.2.7 位寻址
2.3 指令系统及应用
2.3.1 数据传输类指令
2.3.2 算术运算类指令
2.3.3 逻辑运算类指令
2.3.4 控制转移类指令
2.3.5 位操作类指令
2.4 伪指令
练习与思考
第3章 单片机内部功能
3.1 定时器/计数器功能
3.1.1 定时器/计数器的组成结构
3.1.2 定时器/计数器的工作模式
3.1.3 定时器/计数器的初始化
3.1.4 应用示例
3.2 中断系统功能
3.2.1 中断源和中断入口地址
3.2.2 中断控制
3.2.3 中断处理过程
3.2.4 中断系统的初始化
3.2.5 应用示例
3.3 串行口通信功能
3.3.1 串行通信基本知识
3.3.2 串行口控制器
3.3.3 串行口的工作方式
3.3.4 串行口的多机通信
3.3.5 串行通信的波特率
3.3.6 应用示例
练习与思考
第4章 单片机外部系统扩展
4.1 存储器扩展
4.1.1 程序存储器扩展
4.1.2 并行总线的地址译码
4.1.3 数据存储器扩展
4.2 并行I/O口扩展
4.2.1 输出口扩展
4.2.2 输入口扩展
4.2.3 输入输出口扩展
4.3 串行总线扩展
4.3.1 I2C总线扩展
4.3.2 单总线扩展
练习与思考
第5章 单片机外围接口
5.1 键盘接口
5.1.1 矩阵键盘扫描法
5.1.2 矩阵键盘反极法
5.1.3 矩阵键盘位操作法
5.1.4 键盘接口工作方式
5.2 LED显示器接口
5.2.1 LED显示器结构
5.2.2 LED静态显示接口
5.2.3 LED动态显示接口
5.3 点阵字符LCM接口
5.3.1 点阵字符LCM的构成
5.3.2 点阵字符LCM的造字
5.3.3 点阵字符LCM的指令系统
5.3.4 点阵字符LCM接口的编程
5.4 输入/输出通道接口
5.4.1 并行A-D转换器接口
5.4.2 并行D-A转换器接口
练习与思考
第6章 单片机应用系统构建与调试
6.1 单片机应用系统的构建
6.1.1 硬件构建
6.1.2 软件构建
6.2 51系列单片机的开发方式
6.2.1 在线仿真
6.2.2 软件仿真
6.2.3 在线编程
6.3 单片机应用系统的调试
6.3.1 硬件调试
6.3.2 软件调试
练习与思考
第7章 常用电子元器件选用导引
7.1 无源元件的选用
7.1.1 电阻元件
7.1.2 电容元件
7.1.3 电感元件
7.1.4 整流和稳压二极管
7.1.5 发光二极管
7.1.6 LED数码管
7.2 有源元器件的选用
7.2.1 晶体管
7.2.2 集成电路芯片
7.3 红外传感元器件的选用
7.3.1 红外发射/接收二极管
7.3.2 红外发射/接收对管
7.3.3 一体化红外接收头
7.3.4 光电隔离器
7.4 电气执行器件的选用
7.4.1 发声器
7.4.2 继电器
7.4.3 固体继电器
7.4.4 双向晶闸管
练习与思考
第8章 单片机原理的运用实践
8.1 定时器/计数器实现的答辩倒计时
8.1.1 基本思路
8.1.2 硬件方案
8.1.3 软件方案
8.1.4 演示说明
8.2 外部中断实现的双向移动识别
8.2.1 基本思路
8.2.2 硬件方案
8.2.3 软件方案
8.2.4 演示说明
8.3 串行口实现的双向多机通信
8.3.1 基本思路
8.3.2 硬件方案
8.3.3 软件方案
8.3.4 演示说明
8.4 待机节能与键盘唤醒的实现
8.4.1 基本思路
8.4.2 硬件方案
8.4.3 软件方案
8.4.4 演示说明
8.5 机器人用舵机的转角控制
8.5.1 基本思路
8.5.2 硬件方案
8.5.3 软件方案
8.5.4 演示说明
8.6 非接触式的电动机转速测定
8.6.1 基本思路
8.6.2 硬件方案
8.6.3 软件方案
8.6.4 演示说明
8.7 I2C总线器件的密码门禁应用
8.7.1 基本思路
8.7.2 硬件方案
8.7.3 软件方案
8.7.4 演示说明
8.8 单总线器件电子标识的读取
8.8.1 基本思路
8.8.2 硬件方案
8.8.3 软件方案
8.8.4 演示说明
练习与思考
附录
附录A 51系列单片机按字母顺序排列的指令表
附录B 特殊功能寄存器综览表
附录C 内部RAM空间结构布局图
参考文献