单片机及接口技术项目教程pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:单片机及接口技术项目教程pdf/doc/txt格式电子书下载
推荐语:
作者:李建兰编
出版社:电子工业出版社
出版时间:2013-01-01
书籍编号:30467211
ISBN:9787121193712
正文语种:中文
字数:60036
版次:1
所属分类:教材教辅-中职/高职
版权信息
书名:单片机及接口技术项目教程
作者:李建兰
ISBN:9787121193712
版权所有 · 侵权必究
前言
本书根据教育部高等职业院校的教学与教改指导思想进行编写,适用于培养应用型人才院校的电气自动化、应用电子技术、机电一体化及相关专业的学生。
本书以理论为基础,以注重实践为原则,是编者多年来单片机课程教学改革的成果与经验总结。书中精选对学生后期的职业发展有益的专业知识和实用技巧,从实际应用出发,突出培养学生运用所学知识和技能解决实际问题的综合应用能力,为其今后的职业生涯打下良好的基础。本书具有以下几个特色。
1.按学习情境重构课程内容,用训练项目组织单元教学
本书分为8个学习情境,包括22个训练项目,以设计制作多个电子小产品的形式,讲解单片机应用系统的基础知识、开发过程、设计方法和基本技能。全书按学习情境编排,每个学习情境就是一个学习项目,每个学习项目包括若干个训练项目,按照先简要叙述理论知识、再介绍训练项目仿真及制作的形式展开论述。每个训练项目实际上是完成设计制作中的一个小任务,单片机应用系统设计所需要的专业知识和基本技能穿插在各个任务完成的过程中,每个训练项目只讲解完成本任务所需要的基本知识、基本方法和基本技能,从而将知识化整为零,降低了学习的难度。
2.融“教、学、做”于一体,突出教材的基础性、实践性、科学性和先进性
书中每个训练项目都是按以下方式组织编排的:目的→任务→任务引导→硬件电路设计→软件设计→功能仿真→实物制作。其中,任务是对功能的要求,后续的各部分都是围绕任务的实现而展开的;任务引导部分主要供读者在完成任务时有一个整体设计思路,也是本任务完成后所要掌握的基本知识;硬件电路设计、软件设计和功能仿真是实践时必须亲手做的事情;实物制作可根据实际情况选做。每个训练项目中都穿插了相关方法、技能和技巧的介绍。本书融“教、学、做”于一体,突出了基础性、实践性、科学性和先进性,读者能在完成训练任务的过程中水到渠成地学会单片机应用技术。
3.强化对工程上的实用方法的介绍,突出教材的实用性和实效性
书中的内容来源于实际产品,无论是器件的选型,还是电路的设计及程序的编写,都反映了工程上的实际需求。书中全部代码采用现在市场上普遍使用的C语言编写,突出了教材的实用性和实效性。
4.注重新旧知识的衔接
本书通过数字芯片3个典型实例引出单片机的用途,将新旧知识有机结合,直观实用,拓宽了读者的眼界,使读者对单片机产生浓厚的兴趣,增强学习的主动性。
5.提供配套的仿真和实训平台,避免教材与实训环节相互脱节
单片机及接口技术是一门实践性非常强的课程,必须加强实践环节的训练。因此,我们将51单片机仿真板和Proteus仿真软件引入教学内容,每个训练项目都实现了仿真,同时研制并推出了第一代和第二代单片机学习板以供教学和实训用。该学习板与本书训练项目配套,避免了以往出现的教材与实际应用相互脱节的问题,真正做到课堂内外相互统一。
6.提供了立体化教学资源,便于教师备课和读者自学
本书有配套的立体化教学资源库,包括教学大纲、教学计划、教学视频、仿真录像、教学课件、源程序、电子教案等,请有需要的教师登录华信教育资源网(www.hxedu.com.cn)免费注册后进行下载,如有问题请在网站留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn)。
本书由李建兰任主编,顾捷、殷海双任副主编,项目1~6由李建兰编写,项目7~8由殷海双编写,附录A~F由顾捷编写,全书由李建兰统稿,邵建龙主审。
我们希望这本以MCS-51系列单片机实际应用为主线的教材能对读者学习单片机及接口技术有所帮助。由于编者水平有限,书中难免会有错误和不妥之处,恳请广大读者批评指正。
编者
项目1 认识单片机
1.1 学习情境
对于智能化的电子产品,如果单靠数字芯片通过逻辑设计来实现控制功能,其产品成本较高、灵活性不强、开发周期长、通用性差,更不便于维护。那么,怎样才能制作出灵活、多样、高效、智能的电子产品呢?让我们先来认识一下单片机。
单片机(MCU,Micro Controller Unit)是一种可通过编程控制的微控制器。在许多大批量小型智能产品的开发过程中,往往要求直接采用单片机进行开发,因为这样不仅可以大幅度降低生产成本,而且可以提高产品的可靠性和效率。本书就从数字芯片和 C 语言编程技巧出发,深入到单片机内部,学习单片机基础知识,掌握如何用单片机来开发或制作智能电子产品,进而逐步深入到单片机的应用领域。
从数字芯片到单片机,采用的硬件平台不一样;从 C 语言程序设计到单片机 C51 程序设计,编程的侧重点也发生了很大变化。作为对单片机的一个初步认识,我们先从熟悉的电路功能开始,用不同的平台完成相同的任务。通过类比和分析,读者就能知道什么是核心的技能和方法了;从单片机应用实例中,读者也能感性认识到单片机的强大功能和灵活的控制能力,相信你已很想一试身手了。
1.2 什么是单片机
单片微型计算机简称单片机,又称为微控制器(MCU),是微型计算机的一个重要分支,主要用于实现智能控制。
单片机外观如图1-1所示。
图1-1 单片机外观图
简单地说,单片机是一片集成芯片(IC),但却不是一片普通的 IC,它是把微型计算机的主要部件集成制造在同一个IC内而形成的微型计算机。
单片机定义:单片机是把微型计算机中的微处理器(CPU)、存储器、I/O 接口、定时器/计数器、串行通信接口、中断系统等电路集成在一块集成电路芯片上形成的微控制器。
各大IC制造厂为适合不同用途设计出的单片机品种非常多,目前市场上以Intel公司的MCS系列最为普遍,它共有三大系列——MCS-48系列、MCS-51系列和MCS-96系列,其中主流是MCS-51系列。
MCS-51 单片机是由美国 Intel 公司生产的 8 位高档单片机系列,也是我国目前应用最为广泛的一种单片机系列。这一系列单片机品种很多,如 8031、8051/80C51、8751 等,其中8051/80C51是整个MCS-51系列单片机的核心,该系列其他型号的单片机都是在这一内核的基础上发展起来的。所以人们习惯于用8051来称呼MCS-51系列单片机,简称51系列单片机。
MCS-51单片机分为51和52两个子系列,并以芯片型号的末位数字加以标记。其中,51子系列是基本型,而52子系列是增强型。
单片机型号中带有字母“C”的,表示该单片机采用的是 CHMOS 工艺,具有低功耗的特点,如8051的功耗为630mW,而80C51的功耗只有120mW。
Intel公司将MCS-51的核心技术授权给了很多公司,所以许多公司都在做以MCS-51为核心的单片机。当然,功能或多或少有些改变,以满足不同的需求。其中较典型的一款单片机AT89S52是由美国Atmel公司以MCS-51为内核开发生产的。
AT89S52是一种高性能、低功耗的8位单片机,其内部含有8KB的Flash ROM,可以反复擦写,并有ISP(In System Programmable,系统在线编程)功能,支持在线下载,非常适于做实验。在实际工程应用中,功能强大的 AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案之一。
另外还有一款 STC 系列单片机,它是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统 8051 单片机,其功能更为强大,下载程序更为简单方便,本书即采用 STC89C51RC 单片机作为主控芯片。在后面的仿真过程中,由于仿真软件中没有STC系列单片机,故仍用AT89C51单片机,仿真效果是相同的。
1.3 单片机能做什么
单片机究竟能做些什么,它与数字芯片有什么关系呢?下面来回顾几个典型数字芯片实例电路,然后用单片机来实现其控制功能。
【实例1-1】产生秒脉冲信号
方法1:用555芯片实现
在数字电路中可利用555芯片构成多谐振荡器电路产生秒脉冲。多谐振荡器电路如图1-2所示。
电路分析:
由图1-2可知,数字芯片555定时器外接电阻R1、R2和电容C1构成了一个多谐振荡器,图中电阻R1、R2和电容C1组成充电电路,电阻R2、电容C1和555芯片内的放电管T 组成放电电路。在接通电源后,电源 VCC 通过 R1 和 R2 对电容 C1 充电,此时输出端OUT为高电平,充电时间常数τ=(R1+R2)C1;当电容C1两端电压充电到uC>2/3VCC时,放电管T导通,此时电容C1开始通过电阻R2和放电管T放电,输出端OUT为低电平。这一过程周而复始振荡下去,便产生如图1-2(b)所示的脉冲波。
图中输出高电平的脉冲宽度 t1由电容 C1 的充电时间来决定,t1=0.7(R1+R2)C1;输出低电平的脉冲宽度t2由电容C1的放电时间来决定,t2=0.7R2C1;脉冲周期t=t1+t2。
图1-2 555芯片多谐振荡器电路
由此可知,可以通过改变电阻R1、R2和电容C1的值来改变输出脉冲的宽度。
调试与仿真:
调用Proteus仿真软件,观察仿真电路运行情况,其仿真结果如图1-3所示。
图1-3 555芯片多谐振荡器电路仿真
方法2:用单片机控制实现
现在用单片机控制来完成秒脉冲,单片机控制 LED 电路框图如图1-4所示。
电路分析:
图1-4 单片机控制LED电路框图
由图1-4可知,只要给单片机的P1.0口送0信号,LED灯亮;送 1 信号,LED 灯灭。如果不断反复地送 0、1、0、1…信号,LED灯便可以不断循环闪烁。
编写程序:
编写C51控制源程序如下所示。
调试与仿真:
启用 Keil 软件编译、调试、运行程序,同时调出键盘、LED 显示实验仿真板,在 Keil 开发环境中进行仿真,其仿真显示结果如图1-5所示。
图1-5 LED1灯间隔1s循环闪烁
通过调试程序可以发现,要想改变输出脉冲的宽度,不用修改硬件电路,只需改变调试程序里的延时函数的参数值即可,也就是实现了用软件来控制硬件电路,使电路功能的调试修改更加简单方便。
【实例1-2】实现8个LED灯循环点亮与熄灭
方法1:用74LS194芯片实现
在数字电路中可利用两片 74LS194 双向移位寄存器来实现八彩灯的循环点亮与熄灭,电路原理图如图1-6所示。
图1-6 数字芯片完成8个LED轮流循环点亮与熄灭电路
电路分析:
由图1-6可知,两片74LS194芯片连接成了一个 8位二进制双向移位电路,通过A、B控制端控制74LS194双向移位寄存器的方向。
(1)右移:将控制端 A 接低电平,B 接高电平,秒信号输入端(CP)接图 1-2 多谐振荡器电路 OUT 端。接通电源,电路中的发光二极管从左至右逐个循环点亮,然后又从左至右逐个循环熄灭,依此规律不断循环。
(2)左移:关闭电源,将控制端 A 接高电平,控制端 B 接低电平,秒信号输入端(CP)接 555 定时器构成的秒信号发生器。再次接通电源后,与原来的显示方式不同,电路中的发光二极管从右至左逐个循环点亮,然后又从右至左逐个循环熄灭,依此规律不断循环。
调试与仿真:
调用Proteus仿真软件,观察仿真电路运行情况,其电路仿真结果如图1-7所示。
图1-7 数字芯片8个LED轮流循环点亮与熄灭电路仿真
对于上述电路,要想改变八彩灯显示花样,需要重新设计电路图才行,这样做相当麻烦,所以单一由数字芯片构成的数字电路其控制灵活性较差。
方法2:单片机控制实现
现在用单片机控制来实现8个LED轮流循环点亮与熄灭,同时通过修改程序改变显示花样和显示速度。
单片机控制八彩灯电路框图如图1-8所示。
电路分析:
由图 1-8 可知,要使 8 个 LED灯循环点亮与熄灭,只需在单个 LED 闪烁的基础上,循环点亮或熄灭下一个LED 灯即可。在这里采用数组形式定义彩灯的花样代码,每经过 1s,再取下一个 LED 灯的花样代码,不断循环。
图1-8 单片机控制八彩灯电路框图
编写程序:
编写C51控制源程序如下所示。
调试与仿真:
启用 Keil 软件编译、调试、运行程序,同时调出键盘、LED 显示实验仿真板,在 Keil开发环境中进行仿真,其仿真显示结果如图1-9所示。
图1-9 8个LED间隔1s轮流循环点亮与熄灭显示仿真
对于上述单片机控制系统,要想改变八彩灯的显示花样,只需要通过调试程序,修改数组中定义 LED 显示花样中的代码值,便可以很方便地改变八彩灯的显示花样;同时通过改变延时函数中的循环参数值,可以很方便地控制花样彩灯的显示速度。
【实例1-3】实现0~9数字计数、译码、显示
方法1:用74LS161芯片实现
在数字电路中可利用74LS161计数芯片实现数字增1计数,再通过74LS48译码器芯片译码,最后将译码得到的二进制代码送八段数码管显示,电路原理图如图1-10所示。
图1-10 数字芯片实现计数译码显示逻辑电路
电路分析:
该逻辑电路的功能是对555定时器输出的秒脉冲的个数(0~9)进行递增计数,并通过译码显示电路将所计的脉冲数显示出来。
555 定时器产生秒脉冲信号,每产生一个脉冲,由 74LS161 计数芯片完成对秒脉冲的计数,将计数值送给74LS48译码器芯片进行译码,再通过LED数码管显示出对应的脉冲个数。
调试与仿真:
调用Proteus仿真软件,观察仿真电路运行情况,其电路仿真结果如图1-11所示。
图1-11 数字芯片0~9计数译码显示电路仿真
对于上述电路,如想改变显示结果,同样需要通过改变硬件电路才能实现。
方法2:单片机控制实现
现在用单片机控制来完成0~9数字计数译码显示。
单片机控制实现0~9数字显示电路框图如图1-12所示。
电路分析:
由图 1-11 可知,采用单片机控制实现 0~9 数字显示,只要通过单片机 P0 口,每经过1s送一个数字0~9的字形代码即可,0~9数字代码用数组形式定义。
图1-12 单片机控制实现0~9数字显示电路框图
编写程序:
编写C51控制源程序如下所示。
调试与仿真:
启用 Keil 软件编译、调试、运行程序,同时调出键盘、LED 显示实验仿真板,在 Keil开发环境中进行仿真,其仿真显示结果如图1-13所示。
图1-13 10秒计数显示仿真
三个典型实例总结:
用数字电路去实现某一功能,往往需要使用很多芯片,每种芯片分别完成不同的功能,然后再组合到一起实现整个电路功能。这样设计,电路很复杂、烦琐,且功能单一,灵活性差,一个电路只能完成一个功能,要想改变其功能几乎不可能实现。而用单片机实现控制,则灵活方便,硬件平台相对简单稳定,要改变实现的功能,在硬件方面改动较少时,只需增减外围电路,通过修改程序即可改变控制功能,十分易于产品功能的扩展和升级。
1.4 单片机特点
单片机具有如下特点:
(1)体积小;
(2)集成度高;
(3)性价比高;
(4)可靠性好;
(5)低功耗、低电压;
(6)外部总线丰富;
(7)功能扩展性强;
(8)简单易学。
1.5 单片机应用
目前,单片机凭借体积小、性价比高、软件控制硬件等优势已渗透到我们日常工作、生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机广泛应用于导弹的导航装置、飞机上各种仪表的控制、工业自动化过程的实时控制和数据处理、各种智能 IC 卡、小汽车的安全保障系统、录像机、摄像机、全自动洗衣机、程控玩具、电子广告牌、电子宠物等,更不用说自动控制领域的机器人、智能仪表和电子医疗器械了。
总之,单片机控制功能非常强,其应用领域十分广泛,概括单片机应用领域如图 1-14所示。
图1-14 单片机应用领域
1.6 单片机开发软件
Keil 软件是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件优秀开发系统,与汇编语言相比,C 语言在功能、结构、可读性、可维护性上有明显的优势,用过汇编语言后再使用 C 语言来开发,体会更加深刻。它集编辑、编译、仿真于一体,支持汇编、PLM语言和C语言的程序设计,界面友好,易学易用。
Keil 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外,Keil 生成的目标代码效率非常高,多数语句生成的汇编代码紧凑、易理解,在开发大型软件时更能体现高级语言的优势。
1.获得软件
读者可以从网站(www.keil.com/download/product)下载 Keil 软件的可执行文件(文件名为MCS-51v903)。
2.安装软件
(1)执行Kei1μVision 4安装程序,选择Eval Version版进行安装。
(2)在后续出现的窗口中全部选择“Next”按钮,将程序默认安装在 C:\\Program Files\\Keil文件夹中。
(3)将光盘“头文件”文件夹中的文件复制到C:\\Program Files\\Keil\\MCS-51\\INC文件夹里。
KeilμVision IDE软件安装到计算机上的同时,会在计算机桌面建立一个快捷方式。
安装、下载其他软件的方法与此类似。
3.软件的使用
1)建立工程
双击KeilμVision IDE的图标,启动KeilμVision IDE程序,进入KeilμVision IDE 4的主界面如图1-15所示。
图1-15 KeilμVision IDE 4的主界面
选择“Project”→“New μVision Project”命令,如图 1-16 所示,出现“Create New Project”对话框如图 1-17 所示,在文件名处输入所建工程名称,选择需要保存的路径,然后单击“保存”按钮。
图1-16 建立工程
工程保存之后,出现如图 1-18 所示对话框,在其中选择生产厂家及单片机型号。本书所使用的为宏晶公司的STC系列单片机,但是在CPU列表中没有这种型号,读者可以去宏晶公司网站(www.stcmcu.com)下载 UV3.CDB 文件,把该文件解压并改文件名为UV4.CDB,复制到Keil安装路径中的UV4文件夹中,即出现图1-19所示的单片机型号。
图1-17 保存工程
图1-18 单片机选择
图1-19 新增STC系列单片机
选择 STC89C51RC 系列的单片机,确认后弹出如图 1-20 所示对话框,询问是否要将8051 的标准启动代码源程序复制到工程所在文件夹并将该文件添加到工程中,对于初学者选择“否”即可。
图1-20 询问是否将51的标准启动代码复制到工程中
2)输入源程序
选择“File”→“New”命令新建一个空白文本文档,选择“File”→“Save”命令保存所建文本于项目文件夹中。文件格式为:文件名.扩展名(即后缀),如果是 C 语言编写的程序则扩展名为 C,即“文件名.C”;若是汇编语言编写的程序则扩展名为 ASM,即“文件名.ASM”。本书用 C 语言编写程序,以“示例”为文件名,如图 1-21 所示,接下来就可以在新建文本中录入事先编好的程序,如图1-22所示。
图1-21 保存源文件
图1-22 源程序录入
3)添加文件至项目
单击“Target1前的“+”号,出现“Source Group 1”,右击“Source Group 1”出现下拉菜单如图1-23所示,选择“Add Files to Group\'Source Group 1\'”命令,出现如图1-24所示对话框,选择刚才保存的文件,双击确认后即可将源程序加入到工程中,如还需加入程序则继续添加,若不需要添加,则关闭对话框即可。
图1-23 添加源程序
图1-24 加入源程序
4)设置代码文件
工程建立好之后,如需将程序烧入到单片机中,则在编译时需要生成十六进制的代码文件,这就需要代码文件设置。
选择“Project”→“Options for Target\'Target 1\'”(设置工程)命令,出现如图1-25所示对话框,切换到“Output”选项卡,勾选“Create HEX File”复选框,编译时就会产生 HEX(十六进制)文件。
图1-25 生成HEX文件
5)程序编译
接下来的工作就是编译程序,即将C语言程序编译为单片机所能识别的机器代码。
Keil软件常用的工具图标如图1-26所示。
图1-26 Keil工具图标
选择“Project”→“Build target”命令进行程序编译。如果有程序出错则在“Build Output”界面中有错误报告,双击错误提示可以定位到程序的错误行或者错误行的上一行,然后对程序进行修改,之后重新编译直到出现“0 Error(s),0 Warning(s)”字样。报告显示连接后生成程序代码量为 1254 字节(code=1254),内部 RAM 使用量为 34.1 字节(data=34.1),外部 RAM 使用量为 0 字节(xdata=0),提示生成了名为“示例”的 HEX 文件,如图1-27所示。
图1-27 Build Output
如果不想进入仿真步骤,则可直接将 HEX 文件下载到单片机电路板上,给电路板上电后就能观察到实际的显示效果。关于下载过程请读者参考本书附录。
6)程序调试与仿真
为了让初学者更容易入门,平凡单片机工作室利用 Keil 提供的 AGSI 接口开发了两块实验仿真板,键盘、LED显示实验仿真板和单片机实验仿真板如图1-28和图1-29所示,读者可以从平凡单片机工作室网站(www.mcustudio.com)下载。键盘、LED 显示实验仿真板在P1口接有8个发光二极管,在P3口接有4个独立式按钮;单片机实验仿真板接有8个共阳极LED数码管、16个按键(接成4×4的矩阵式),另外P1口接有8个发光管、两个外部中断按钮、一个带有计数器的脉冲发生器等资源。
图1-28 键盘、LED显示实验仿真板
图1-29 单片机实验仿真板
(1)实验仿真板的安装。
这两块实验仿真板实际上是两个dll文件,名称分别是LEDkey.dll和simboard.dll,安装时只要把这两个文件复制到 Keil μVision4 安装目录下的\\Keil\\MCS-51\\BIN 中,然后修改Tool.ini 文件(此文件位于 Keil μVision4 安装目录\\Keil 下),把“AGSI1=LEDkey.dll(\"LEDkey\")”和“AGSI2=simboard.dll(\"simboard\")”添加到“MCS-51”部分的后面,然后重启Keil软件。
(2)实验仿真板的使用。
要使用仿真板,必须对工程进行设置,设置的方法是选择“Project”→“Option for Target\'Target1”命令打开对话框,然后选中“Debug”标签页,勾选“Use Simulater”复选框。
接着编译程序,选择“Debug”→“Start/Stop Debug Session”命令或者双击“Start/Stop Debug Session”的快捷图标,然后单击“Peripherals”选择所需要的仿真板,最后选择“Debug”→“Run”命令或双击“Run”的快捷图标,就可以看到对应程序的运行结果。
(3)实验仿真板实例测试。
以键盘、LED显示实验仿真板为例,使用以下程序测试,结果如图1-30所示。
图1-30 键盘、LED显示实验仿真板测试
7)使用Keil软件注意事项
(1)保存工程时,输入的工程名后不要加后缀。
(2)保存源程序时,输入文件名后一定要加后缀,即“文件名.C”或“文件名.ASM”。(3)输入源程序时务必将输入法切换成英文半角状态。
(4)单片机所有特殊功能寄存器一律用大写字母。
(5)当创建一个工程并编译这个工程时,生成的 HEX 文件名与工程文件名相同,添加的源程序代码可以有很多,但HEX文件名只能和工程文件名相同。
通过上面的学习,读者已经对单片机及其开发软件有了一个初步认识,从下一个项目开始,本书将引导你如何运用 MCS-51(选择 STC89C51RC)单片机作为大脑,采用 C 语言编程,通过多个训练项目的学习与训练,学会用单片机控制不同的外围硬件设备,实现多个基础和综合智能任务。这些任务的完成,会使你在无限的乐趣之中,不知不觉地掌握单片机内部结构及接口技术,以及单片机C程序设计技术,轻松走上单片机嵌入式系统开发之路。
项目2 单片机最小系统与I/O接口应用
2.1 学习情境
生活中各式各样的彩灯把城市装扮得格外美丽,那么这些彩灯是如何工作的呢?
本项目教你如何用 MCS-51 单片机的输入
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询