《单片机原理及接口技术》以流行单片机芯片AT89C51为主体介绍了单片机的原理、常用单片机接口技术及应用。全书共9章,在硬件基础知识、汇编软程序设计的基础上,按照单片机产品的开发流程,介绍了调试工具软件Keilc与调试仿真工具软件Protues。用11个实训将产品开发的流程理念充分贯穿于其中。达到在稳固掌握基础原理的基础上再应用与开发。融教、学、做一体于教材中。针对有些专业还专门设置了课程设计(或综合训练)。《单片机原理及接口技术》也特别编写了8个课题,方便老师与同学们完成该项训练。
《单片机原理及接口技术》内容精练,实例丰富,用实训来强化原理的基础知识,知识点与技能点相结合,既实现了知识的全面性和连贯性,又做NT理论与实践内容的融合贯通,体现了应用性人才培养的特点。特别适合作为高职高专院校电子信息类、计算机类、自动化类、机电类及控制类各专业的单片机技术课程教材,也可作为职工大学、函授大学、中职学校的教材及单片机应用开发人员的参考书。
任务驱动,行动导向,工学结合,学生主体,过程考核。
目前单片机已经渗透到了人们生活中的各个领域,导弹的导航装置、飞机上各种仪表的控制、计算机的网络通信与数据传输、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等,这些都离不开单片机,更不用说自动控制领域的机器人、智能仪表和医疗器械了。科技越发达,智能化的东西就越多,使用的单片机也就越多。因此,学习单片机技术越来越成为社会发展的需求。单片机原理及接口技术课程也成为高等学校重要的基础课或专业课。
全书共9章,按照基础理论-实训操作-总结的顺序,主要介绍AT89C5l单片机的硬件基础知识、软程序设计、调试工具软件Keilc与软硬结合的调试仿真工具软件Protues的融合应用,将产品开发的流程理念充分贯穿于其中。第1章到第5章均是针对单片机最小应用系统的学习,第6章到第8章主要是针对常用接口部分的扩展应用学习,第9章专门介绍2个单片机应用的综合实例。从专用芯片到Keil的调试,从而完成软件设计,用工具软件Protues先进行产品的仿真,再用面包板(实验PCB或教学实验板)进行制作。教学时可融合于前面的每一章节中。本书从原理到应用,以应用实例为主,每个例子均已实践检测。每一章节均体现“教、学、做”的思想在里面,符合当前工学结合的理念与思路。
本教材是针对学生重点学习单片机基础并能快速入门产品开发,学会简单应用制作相应的单片机产品,并能有一定的扩展学习的资源空间接口部分。引入调试软件KeilC与单片机仿真软件Protues的相关应用,产品开发的流程理念贯穿于其中,达到在稳固掌握基础理念的基础上再应用与开发。每一章节中都配有练习,小结中阐明讲授重点,也就是学生学习的重点及方法指导。针对有些专业还专门设置了课程设计(或综合训练)。本书也特别编写了8个课题,方便老师与同学们完成该项训练。
通过对本教材的学习,将使读者达到以下目标。
(1)了解单片机的组成、内部结构和特点,获得其硬件和软件的必要基础知识;
(2)在初步掌握MCS-51单片机指令系统的基础上,掌握汇编语言程序的分析,能根据实际工作要求进行一般的程序设计和应用;
(3)能基本掌握Keil(程序调试软件)与Protues(虚拟软件与硬件的连机仿真)两个软件界面操作与应用;
(4)基本掌握单片机内部硬件资源和常用外围电路的初步应用方法;
(5)掌握中小型单片机应用电路的软硬件设计和调试。通过很多实例的讲解,能完全掌握整个单片机系统的开发过程。
本书可作为高职高专院校电子信息类、计算机类、自动化类、机电类及控制类各专业的单片机技术课程教材,也可作为职工大学、函授大学、中职学校的教材及单片机应用开发人员的参考书。
第1章 单片机的基础知识
1.1 计算机中的数和编码
1.1.1 计算机中的数制
1.1.2 符号数的表示法
1.1.3 二进制数的算术运算
1.1.4 二进制编码
1.1.5 逻辑电路
1.2 单片机概论
1.2.1 嵌入式系统、单片机
1.2.2 单片机的发展概况
1.2.3 应用广泛的AT89系列单片机
1.3 单片机应用研发工具和教学实验装置
1.3.1 单片机应用研发工具
1.3.2 单片机课程教学实验装置
1.3.3 AT89C5l单片机研发工具操作演示
小结
练习题1
第2章 AT89C51单片机芯片的硬件结构
2.1 AT89C:51单片机的逻辑结构及信号引脚
2.1.1 AT89C51单片机的结构框图
2.1.2 AT89C51单片机芯片内部结构
2.1.3 Ar89C51的信号引脚
2.1.4 时钟与复位电路
2.2 AT89C51的内部存储器
2.2.1 内部数据存储器低128单元
2.2.2 内部数据存储器高128单元
2.2.3.MCS.5 1的堆栈
2.2.4 内部程序存储器
2.3 实训1:单片机复位、晶振、ALE信号的观测
2.3.1 电路安装
2.3.2 信号观测
小结
练习题2
第3章 单片机的指令系统及程序设计
3.1 基本概念
3.1.1 指令、指令系统、机器代码
3.1.2 程序、程序设计、机器语言
3.1.3 汇编语言、汇编语言指令格式
3.1.4 汇编(编译)和编程(固化)
3.1.5 汇编语言常用符号
3.2 MCS.5 1单片机指令的寻址方式
3.2.1 MCS.5 1单片机指令的寻址方式
3.2.2 MCS.5 l单片机指令寻址方式小结
3.3 汇编语言的指令系统
3.3.1 数据传送指令
3.3.2 算术运算指令
3.3.3 逻辑运算类及移位类指令
313.4 控制转移类指令
3.3.5 位操作指令
3.4 MCS.5 1单片机伪指令
3.4 一常量和标号
3.4.2 常用伪指令
3.4.3 手工汇编和机器汇编
3.5 汇编语言程序设计
3.5.1 顺序程序设计
3.5.2 分支程序设计
3.5.3 循环程序设计
3.5.4 子程序设计
3.6 经典功能模块汇编语言程序设计实例
3.6.1 定时程序
3.6.2 查表程序
3.6.3 码制转换程序
3.6.4 算术运算程序
3.7 实训2:软件调试仿真器:KeiluVision及其应用
3.7.1 KeiluVision快速入门
3.7.2 用Keil设计延时子程序并仿真调试
3.7.3 用Keil设计分支结构程序并仿真调试
3.7.4 用Keil设计查表程序并仿真调试
3.8 实训3:跑马灯的:Proteus设计与仿真
3.8.1 ProteusISIS窗口与基本操作
3.8.2 ProteusISIS库元件的认识
3.8.3 跑马灯Proteus电路原理图的设计
3.8.4 跑马灯Proteus与KeiluVision的联调与仿真
小结
练习题3
第4章 AT89C51l,O及其应用举例
4.1 I/O口结构与负载能力
4.1.1 I/O口结构与工作原理
4.1.2 I/O口负载能力
4.2 实训4:I/O,的简单应用
4.2.1 单片机控制数码管静态显示
4.2.2 单片机用开关控制的LED显示
4.2.3 单片机用开关控制数码管静态显示
4.3 单片机与矩阵式键盘的接口技术
4.3.1 基础知识
4.3.2 接口电路与程序设计
4.3.3 运行与思考
4.4 实训5I/O口应用
4.4.1 单片机与LED数码管的动态显示
4.4.2 单片机与LED数码管的动态显示Proteus仿真
4.4.3 编程器的使用
4.4.4 制作实训及思考
小结
练习题4
第5章 AT89C51单片机的中断与定时
5.1 中断
5.1.1 数据传送控制方式
5.1.2 中断基本概念
5.2.MCS.5 1单片机中断系统结构
5.2.1 MCS.5 1的中断
5.2.2 与中断控制有关的寄存器
5.2.3 中断响应过程
5.2.4 中断程序设计举例
5.3 MCS.5 l的定时器/计数器
5.3.1 定时方法
5.3.2 定时和计数功能
5.3.3 定时/计数器的控制
5.3.4 定时器/计数器初值的计算
5.3.5 定时器/计数器的工作方式
5.3.6 定时器/计数器的应用举例
5.4 实训6:定时/计数器与中断综合应用举例
5.4.1 基于AT89C51的60s倒计时装置的设计与仿真
5.4.2 基于AT89C51的按键发声装置的设计与仿真
小结
练习题5
第6章 AT89C51单片机存储器的扩展技术
6.1 存储器概述
6.1.1 存储器的类型
6.1.2 存储器的性能指标与分级结构
6.1.3 常用的只读存储器芯片
6.1.4 常用的随机读/写存储器芯片
6.2 MCS.5 l单片机存储器的扩展
6.2.1 AT89C51存储器扩展的三总线
6.2.2 扩展存储器的编址技术
6.2.3 程序存储器的扩展
6.2.4 数据存储器的扩展
6.2.5 存储器的综合扩展
6.3 实训7:用E2PROM扩展AT89C5l单片机ROM、RAM
6.3.1 E2pROM存储器2864A
6.3.2 E2PROM扩展ROM、RAM电路设计
6.3.3 E2PROM扩展ROM、RAM程序设计
6.3.4 运行与思考
小结
练习题6
第7章 AT89C51单片机的串行接口技术
7.1 AT89C51单片机之间的串行通信接口技术及仿真
7.1.1 串行通信的基本原理
7.1.2 AT89C51串行通信基础知识
7.1.3 硬件接口电路设计
7.1.4 软件接口程序设计
7.1.5 单片机之间的串行通信:Protues仿真
……
第8章 单片机I/O扩展及应用
第9章 单片机实际应用制作
(3)逻辑运算及移位指令
①逻辑运算有“与”、“或”和“异或”运算指令,逐位进行,目的寄存器可以是A或directo
②循环移位必须在A中进行,分为带或不带Cy的左移或右移指令。
③字节(8位)清零和取反必须在A中进行。
(4)控制转移类指令
①无条件转移指令可分为长转移、绝对转移、相对转移和间接转移4种。长转移IdMP转移范围是64KB;绝对转移AJMP转移范围是与当前PC值同一2KB范围;相对转移SJMP转移范围是当前PC为-128B-127B。使用AJMP和SJMP指令应该注意转移目标地址是否在转移范围内,若超出范围,程序将出错。间接转移也称散转指令,属变址寻址,以DPTR为基址,由A的值来决定具体的转移地址。
②条件转移指令可分为判C转移、判bit转移、判A转移、减1非0转移和比较转移指令。满足条件,则转移;不满足条件,则程序顺序执行。
③调用指令根据其调用子程序范围分为长调用和绝对调用两种,其特点类似于长转移和绝对转移指令。长调用可调用64KB范围内的子程序;绝对调用只能调用与当前PC值同一2KB范围内的子程序。
④返回指令对应于调用指令,分为子程序返回和中断返回两种,两者不能混淆。其功能都是从堆栈中取出断点地址,送入PC,使程序从主程序断点处继续执行。
⑤空操作指令的功能仅使PC加1,常用于在延时或等待程序中时间“微调”。
(5)位操作类指令
①位传送只能在Cy与bit之间进行,bit与bit之间不能直接传送。
②位修正分置1、清零和取反,只能由Cy或bit进行。
③位逻辑运算只有“与”、“或”两种指令,无位“异或”指令。
4.伪指令不是指令,是对汇编语言源程序进行汇编时,提供有关汇编信息的辅助标记。其中最常用的有:起始伪指令ORG,用于规定指令起始地址;等值伪指令EQU,用于给字符赋值;定义字节伪指令DB,用于在程序存储器中定义字节数据,定义字伪指令DW,用于在程序存储器中定义字数据。
、
对于具体指令,要掌握格式和功能,但因为指令条数多,开始时不宜死记硬背,应在程序设计内容时,多加练习。
5.在进行程序设计时,首先需要明确单片机应用系统预计完成的设计任务、功能要求和硬件资源,然后确定算法并进行优化,接着画程序流程图,然后再编制和调试程序。程序流程图是用各种图形、符号、指向线等来描述程序的执行过程,可以帮助设计程序、阅读程序和查找程序中的错误。读者在编程的过程中要养成先画流程图的好习惯。
一个好的程序不仅要完成规定的功能任务,而且还应该执行速度快、占用内存少、条理清晰、阅读方便、便于移植、巧妙而实用。采用循环结构和子程序可以使程序的容量大大减少,提高程序的效率,节省内存。
结构化程序设计方法具有明显的优点,任何复杂的程序都可由顺序结构、分支结构和循环结构构成。