单片机原理与应用项目式教程 教学课件 邹显圣主编 项目五_第1页
单片机原理与应用项目式教程 教学课件 邹显圣主编 项目五_第2页
单片机原理与应用项目式教程 教学课件 邹显圣主编 项目五_第3页
单片机原理与应用项目式教程 教学课件 邹显圣主编 项目五_第4页
单片机原理与应用项目式教程 教学课件 邹显圣主编 项目五_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在线教务辅导网:://教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187或者直接输入下面地址:微控制器技术应用工程五“流速〞可控的LED分析与实践【能力目标】1.能够正确进行中断效劳程序设计。2.能够使用定时器/计数器对外部的事件进行统计。3.能够利用中断和定时器进行“流速〞可控的LED电路设计。4.能够进行时钟电路的正确连接及调试。5.能够进行复位电路的正确连接及调试。6.能够进行本工程单片机系统控制电路的正确连接及调试。7.能够熟练地使用伟福仿真器。8.能够熟练地使用编程器。工程五“流速〞可控的LED分析与实践【知识目标】1.掌握中断的根本概念、中断优先级的设置。2.熟练掌握中断源的开放或关闭设置及中断源中断效劳程序入口地址确实定方法。3.掌握中断的使用方法。4.掌握单片机中定时器/计数器的工作模式。5.熟练掌握定时器初始值的计算方法。6.熟练掌握定时器/计数器初始化程序的设计。工程五“流速〞可控的LED分析与实践一、工程引入二、相关理论知识三、工程实施四、拓展知识六、自测题五、工程小结工程五“流速〞可控的LED分析与实践一、工程引入本工程通过单片机来完成“流速〞可控的LED。从这个简单的“流速〞可控制的LED电路做起,使大家对单片机技术的定时器/计数器的工作模式、特点以及中断系统的工作方式、特点有一个最根本的认识,并掌握定时器/计数器、中断系统的根本工作过程以及在实际生活中的应用,激发学生学习单片机应用技术的兴趣。工程要求用单片机实现对LED的控制,让LED按一定次序点亮,形成“流动〞的效果,间隔时间采用定时器定时的方法来实现,分为快、慢、中三种流速,由三个开关控制,最终形成“流速〞可控的效果。在设计本工程控制原理的过程中要求使用软件查询、定时器定时的方法来实现流速可控。下面就针对该工程,学习“流速〞可控的LED电路分析与实践方面的相关知识。二、相关理论知识〔一〕AT89C51单片机的中断系统1.中断的根本概念中断是计算机的CPU暂停正在运行的程序,转而执行提出中断请求的那个外部设备或事件的效劳程序〔即中断效劳程序〕,当效劳程序处理完毕后,CPU再回到原来的“断点〞继续原来的程序。其执行过程如图6-1所示。主程序中断服务程序断点中断返回二、相关理论知识〔一〕AT89C51单片机的中断系统2.中断的必要性〔1〕具有分时处理功能在正常状态下,CPU执行主程序,当外设需要CPU为它效劳时,就向CPU发出中断请求,一般情况下,CPU就响应中断执行相应的中断效劳程序。在处理完中断效劳程序后,CPU又返回主程序正常运行。如果有几个外设同时发出中断请求时,由于CPU的速度远比外设的速度高出许多,因此当CPU响应各外设中断请求,执行各相应的中断效劳程序时,对于各外设都觉得CPU只为它单独效劳。事实上,各个外设提出中断请求都有一定的时间差,因此即使在极小的时间内,由于CPU的速度极快,也有足够的时间执行完中断效劳程序。二、相关理论知识〔一〕AT89C51单片机的中断系统2.中断的必要性〔2〕具有实时处理功能在单片机用于工业实时控制时,由于现场的参数或信息随时会出现变化并要求CPU能极快地响应并作出处理,因此如果没有中断技术是很难实现的。有了中断以后,可能将这些参数或信息设定为中断请求信号向CPU提出中断请求,从而使CPU能及时对参数或信息的变化作出相应的处理,到达实时控制的目的。二、相关理论知识〔一〕AT89C51单片机的中断系统2.中断的必要性〔3〕故障处理功能在单片机运行过程中,常会出现意料不到的故障,单片机有了中断技术后,可以将故障设定为中断信号。当故障发生时,故障源作为中断源向CPU发出中断请求,从而使CPU马上执行相应的故障效劳程序,保证单片机不会因故障而造成停机。二、相关理论知识〔一〕AT89C51单片机的中断系统3.AT89C51的中断系统结构AT89C51单片机具有5个中断源,它们都是可屏蔽中断,所有的中断源都由“中断允许存放器IE〞来设定“允许〞或“屏蔽〞。中断源具有“高〞、“低〞两个优先级,由“中断优先级存放器IP〞来设定。单片机在复位后,5个中断源都被屏蔽且都为低优先级,如图6-2所示。二、相关理论知识〔一〕AT89C51单片机的中断系统4.与中断相关的存放器EX0ET0EX1ET1ESEAxx〔1〕中断允许存放器IEEA:总允许位。假设EA=0,禁止一切中断。假设EA=1,那么每个中断是否允许还要取决于各自的允许位。ES:串行口中断允许位。假设ES=0,禁止中断;假设ES=1,允许中断。ET1:定时器1中断允许位。假设ET1=0,禁止中断;假设ET1=1,允许中断。EX1:外部中断INT1中断允许位。假设EX1=0,禁止中断;假设EX1=1,允许中断。ET0:定时器0中断允许位。假设ET1=0,禁止中断;假设ET1=1,允许中断。EX0:外部中断INT0中断允许位。假设EX0=0,禁止中断;假设EX0=1,允许中断。二、相关理论知识〔一〕AT89C51单片机的中断系统4.与中断相关的存放器〔2〕中断优先级存放IPPS:串行口中断优先级设定位。假设PS=1,高优先级;PS=0低优先级。PT1:定时器1中断优先级设定位。假设ET1=1,高优先级;ET1=0低优先级。PX1:外部中断1中断优先级设定位。假设EX1=1,高优先级;EX1=0低优先级。PT0:定时器0中断优先级设定位。假设ET0=1,高优先级;ET0=0低优先级。PX0:外部中断0中断优先级设定位。假设EX0=1,高优先级;EX0=0低优先级。PX0PT0PX1PT1PSxxx二、相关理论知识〔一〕AT89C51单片机的中断系统4.与中断相关的存放器〔3〕定时器/计数器控制存放器TCONTF1:定时器T1溢出标志。当定时/计数器T1产生溢出时,该位由硬件置1,并申请中断〔中断开放时〕。进入中断效劳程序后由硬件自动清零。注意:如果使用软件查询标志时,应当在标志有效〔TF=1〕后使用软件去除标志。TF0:定时器T0溢出标志。功能同TF1类似。TR1:定时器T1的运行控制位,由软件置1和清零。置1时,定时/计数器开始工作,清零时停止工作。TR0:定时器T0的运行控制位,功能同TR1类似。IE1:外中断INT1标志位。当检测到INT1脚上的电平由高电平变为低电平时,该位置位并请求中断。进入中断效劳程序后,该位自动去除。IE0:外中断INT0标志位。功能同IE1类似。IT1:外中断INT1触发类型控制位。IT=1时,为下降沿触发中断;IT=0时,是低电平触发。IT0:外中断INT0触发类型控制位。功能同IT1类似。TF1TR1TF0TR0IE1IT1IE0IT0二、相关理论知识〔一〕AT89C51单片机的中断系统5.中断响应协议在每一个机器周期中,所有的中断源都要按照其顺序检查一遍。到S6状态时,就查找到所有被激活的中断申请并排好优先权。在下一个机器周期的S1状态,只要不受阻断,就开始响应高级中断。如果发生以下情况,中断将被阻止:1〕同级或高级中断正在执行时。2〕当前的机器周期不是指令的最后一个机器周期。3〕CPU正在执行的指令是RETI或访问IE、IP存放器时,CPU是不会响应中断的,而且要等到该指令的下一条指令执行完后中断才能响应。二、相关理论知识〔一〕AT89C51单片机的中断系统6.中断响应的优先级低级中断在响应执行中,可被高级中断所中断,反之那么不能。一个中断〔不管是什么优先级〕一旦得到响应,与它同级的中断那么不能再中断它。当CPU同时收到几个同一级别的中断要求时,CPU响应哪个中断源取决于硬件的查询顺序。从中断系统的硬件结构图可以清楚地看出同一级别中5个中断源的查询顺序。那么,要改变这种顺序只能通过IP的设置。如:要想将串行口的级别设为最高时,将IP中的PS置1。即使用指令“SETBPS〞或“MOV0B8H,#10H〞完成对IP设置。二、相关理论知识〔一〕AT89C51单片机的中断系统7.中断响应的过程如果CPU响应五个中断源中的某一个中断申请时,在硬件的控制下,AT89C51必须做三件事情:1〕CPU查询到某一中断源后,使相应的“优先级激活触发器〞置位,用以屏蔽、阻止同级或低级中断〔在单片机中断系统中有两个不可寻址的优先级激活触发器—flagH和flagL,分别代表高优先级和低优先级〕。2〕在硬件控制下,将当前程序计数器PC的内容〔断点地址〕进栈,以备返回。3〕将对应的中断矢量装入PC,使程序转向对应的矢量单元〔入口地址〕,并通过此单元的长转移指令转向执行对应的中断效劳程序。二、相关理论知识〔一〕AT89C51单片机的中断系统8.外部中断在单片机的引脚上,有两个输入脚分别为INT0和INT1。作为外部中断的两个输入,其激活中断申请输入的方式有两种:一种是低电平激活;另一种是下降沿激活。具体采用哪种方式,由专用存放器TCON中的IT1、IT0位来决定。假设ITx〔X=1或0〕=0那么低电平激活中断;假设ITx=1是下降沿激活。在2个机器周期中,对ITx进行两次采样。第一次采为高电平,第二次采样为低电平时,激活中断标志〔TCON中的IEx=1〕。由于CPU对外部中断的采样每个机器周期只有一次,所以电平激活方式中的外触发信号加在INTx的引脚上的低电平至少要保证一个机器周期〔即12个振荡周期〕。如果系统采用的是12M晶体,那么,INTx上的中断信号〔低电平〕应大于1微秒,在实际应用中,如果采用电平触发方式时,外部中断源应一直保持中断有效〔低电平〕,直到中断被响应为止。同理,对于边沿激活方式的信号,加在INTx上的高电平、低电平至少要各保持一个机器周期以上的时间。二、相关理论知识〔一〕AT89C51单片机的中断系统9.中断请求的撤除CPU一旦响应中断,进入中断效劳程序后,应当将该中断请求撤除,否那么该信号还会引起重复的中断。撤除中断的方法就是将对应的中断标志位清零。在AT89C51系统中,去除标志有两种方法:一种是靠硬件自动去除;另一种是必须人为地用软件〔指令〕来去除。具体见表6-1〔如果采用“查询〞方式编程时,所有标志都应软件清零〕二、相关理论知识〔一〕AT89C51单片机的中断系统9.中断请求的撤除二、相关理论知识〔一〕AT89C51单片机的中断系统9.中断请求的撤除使用一个D型触发器,在外部信号的鼓励下,使触发器的Q端为“0〞电平,该电平作为外中断的申请信号。当CPU响应该中断并进入到效劳程序中时,利用P0口的一条线输出一个将D型触发器置1的信号,如图6-3所示。该电路还可以解决外中断信号有效宽度过窄的问题。二、相关理论知识〔一〕AT89C51单片机的中断系统10.中断技术的应用1〕与查询方式比较,采用中断方式编程可以提高CPU的运行效率。2〕单片机内部模块定时器、串行口都可以采用中断的方式编程。3〕单片机的引脚INT0和INT1为用户提供了可以使用外部信号承担中断源的时机。如系统的电源监控系统,当电源出现下降时,可以向CPU发出一个紧急中断申请,CPU便可实现备用电源的切换等。但应当注意:外部的INT信号必须要经过处理,以保证中断的可靠性。4〕与查询方式编程相比,中断编程要注意两点:①通过对IE存放器的编程,选择对应的使能位并开放该中断源。②在对应的中断矢量入口单元写入“跳板指令〞,以便中断发生时,能够通过跳板指令使CPU转到真正的中断效劳子程序中。二、相关理论知识〔二〕AT89C51单片机的定时器/计数器1.定时器/计数器的结构AT89C51单片机有二个16位定时器/计数器,它们都具有定时和计数双重功能。其内部结构如图6-5所示。二、相关理论知识〔二〕AT89C51单片机的定时器/计数器2.定时器/计数器的特殊功能存放器〔1〕方式存放器TMOD特殊功能存放器TMOD为T0、T1的工作方式存放器,地址为89H,其格式如下:GATEC/TM1M0GATEC/TM1M0定时/计数器1定时/计数器0GATE:选通门GATE=1时,只有INTi〔i=0或1〕信号为高电平且TRi=1时,定时器/计数器才开始工作;GATE=0时,只要TRi=1,定时器/计数器就开始工作,而与INTi信号无关。C/T计数器方式、定时方式选择位。当C/T=0时,设定为定时方式,计数脉冲来自内部时钟系统;当C/T=1时,设定为计数方式,计数脉冲来自外部引脚T0、T1。M1,M0工作模式控制位,具体见表6-2所示。二、相关理论知识〔二〕AT89C51单片机的定时器/计数器2.定时器/计数器的特殊功能存放器〔1〕方式存放器TMOD二、相关理论知识〔二〕AT89C51单片机的定时器/计数器2.定时器/计数器的特殊功能存放器〔2〕控制存放器TCONTF1TR1TF0TR0IE1IT1IE0IT0特殊功能存放器TCON的高4位存放定时器的运行控制位和溢出标志位,低4位存放外部中断的的触发方式控制位和锁存外部中断请求源,地址为88H,其格式如下。各位含义在中断控制系统局部已讲,这里不再赘述。二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式在AT89C51单片机内部,具有两个完全相同的定时计数器T0、T1,它们都具有两种工作方式:定时和计数,无论是定时还是计数方式、其核心局部都是一个“加一计数器〞,无论何种方式,都具备四种模式,以满足实际要到达的最正确工作状态;定时器/计数器的工作方式、工作模式是由特殊功能存放器中的TMOD来决定的。因此对其方式、模式的设定是靠对TMOD的初始化编程实现的。二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式〔1〕方式0当M1M0为00时,定时器/计数器工作在方式0,这时为13位的定时器/计数器,其工作结构如图6-6所示。〔以T1为例〕二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式〔2〕方式1当M1M0为01时,定时器/计数器工作在方式1,这时为16位的定时器/计数器,其工作结构如图6-7所示。〔仍以T1为例〕二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式〔3〕方式2当M1M0为10时,定时器/计数器工作在方式2,这时为8位自动重装的定时器/计数器,其工作结构如图6-8所示。〔仍以T1为例〕二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式〔4〕方式3当M1M0为11时,定时器/计数器0工作在方式3,这时为两个8位的定时器/计数器,而定时器/计数器1没有工作方式3。在定时器/计数器0工作在方式3的情况下,定时器/计数器0被分为两个独立的8位计数器TL0和TH0,其中TL0使用本身的控制位GATE、C/T、TF0、TR0和INT0,并占用T0的中断资源,而TH0固定作为一个8位定时器〔不能作为计数器〕,借用定时器/计数器1的局部控制位TR1和TF1,并占用T1的中断源。其工作结构如图6-9所示。二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式〔4〕方式3图6-9方式3T0电路结构图〔此时T1可先设定为模式2运行〕二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式〔4〕方式3定时器/计数器4种模式比较见表6-3和表6-4。表6-3定时器/计数器4种方式比较〔计数方式〕二、相关理论知识〔二〕AT89C51单片机的定时器/计数器3.定时器/计数器的工作方式〔4〕方式3定时器/计数器4种模式比较见表6-3和表6-4。表6-4定时器/计数器4种方式比较〔定时方式〕二、相关理论知识〔二〕AT89C51单片机的定时器/计数器4.定时器/计数器的使用方法1〕确定工作方式—配置TMOD存放器。2〕根据任务需求,确定定时或计数功能。3〕选择工作方式。定时器/计数器初值计算—配置TH0、TL或TH1、TL1计数存放器。由于AT89C51单片机定时器/计数器是加1计数器,当TF溢出时为定时时间到或计数正好,因此实际定时时间或计数长度不能作为初值赋给TH1〔TH0〕和TL1〔TL0〕,初值的计算公式应为:T初值=2N-定时时间/机器周期其中,N与工作方式有关,方式0时为13,方式1时为16,方式2时为8,方式3时为8。二、相关理论知识〔二〕AT89C51单片机的定时器/计数器4.定时器/计数器的使用方法机器周期与时钟频率fosc有关,如果fosc=12MHz,那么机器周期为1us,如果fosc=6MHz,那么机器周期为2us。根据需要开启定时器中断,即配置IE存放器。根据任务需求,对中断允许控制存放器IE赋值,开启定时器计满溢出后的中断请求功能。〔2〕启动定时启动定时器工作—配置TCON存放器。配置TCON存放器,用位指令置位TR0或TR1,即可启动定时器,开始定时。〔3〕定时完成通过判断定时器TF0或TF1来查询是否完成定时。如果TF0或TF1为1,那么认为定时完成。三、工程实施〔一〕硬件电路原理图设计〔二〕系统所用元器件、设备及工具三、工程实施元器件名称主要参数数量元器件名称主要参数数量单片机AT89C511螺钉旋具一字及十字1电阻5.1kΩ1面包板—2电阻330Ω8伟福仿真器H51/L1电阻10K3西尔特编程器SUPERPRO/L+1瓷片电容30pF2仿真头POD-S8X5X/H8X5X1LED发光二极管—8插线—若干晶振6MHz1计算机—1开关

3钳子尖口1电解电容10μF1万用表数字式1〔三〕系统所用汇编源程序的编制三、工程实施ORG0000HLJMPMAINORG0100HMAIN:MOVR2,#08HMOVA,#0FEHMOVP0,#0FFHCLREANEXT:JBP0.0,NEXT1MOVP1,AMOVR3,#05HLCALLDELAY1SJMPNEXT3NEXT1:JBP0.1,NEXT2MOVP1,AMOVR3,#0AHLCALLDELAY1SJMPNEXT3NEXT2:JBP0.2,NEXTMOVP1,AMOVR3,#0FHLCALLDELAY1NEXT3:RLADJNZR2,NEXTSJMPMAINDELAY1:MOVTMOD,#10HMOVTH1,#3CHMOVTL1,#0B0HSETBTR1L1:JBCTF1,L2SJMPL1L2:MOVTH1,#3CHMOVTL1,#0B0HDJNZR3,L1RETEND〔四〕硬件及软件的联合调试三、工程实施三、工程实施〔五〕脱离仿真器后的独立运行四、拓展知识〔一〕定时器/计数器初值TC的计算1.计数方式下的TC计算TC=M-C其中,C为要求的计数值;M为计数器的模,有以下3种情况:方式0:M=213=8192方式1:M=216=65536方式2:M=28=256例6-2要求每计100个脉冲定时器产生一次溢出。解1:选择方式2TC=256-100=156=9CHMOVTH0,#9CHMOVTL0,#9CH解2:选择方式1TC=65536-100=65436=FF9CHMOVTH0,#0FFHMOVTL0,#9CH四、拓展知识〔一〕定时器/计数器初值TC的计算2.定时方式下的TC计算TC=M-T/T计数

其中,T——要求的定时时间值;T计数——计数器计数脉冲周期=〔1/fosc〕×12;M---计数器的模,有以下3种情况:方式0:M=213=8192方式1:M=216=65536方式2:M=28=256例6-3定时方式:要求T0产生20ms的定式。解:选择方式1TC=M-T/T计数TC=65536−〔20ms×1000〕/1μS=65536-20000=45536=0B1E0HMOVTH0,#0B1HMOVTL0,#0E0H四、拓展知识〔一〕定时器/计数器初值TC的计算3.定时器门控位GATE的应用如果GATE=1,TR=1时电路是否计数取决于INT0:INT0=1时开始计数;INT0=0时电路停止计数。利用这一特点,可以实现测量外部脉冲的周期〔频率〕,如图6-13所示。解题步骤:1〕将外部脉冲接到P3.2〔INT0〕上,使用T0且C/T=0,且令GATE=1。2〕计数器TH0、TL0原始初值为00H,且设为模式1〔16位〕。3〕在INT0=0时启动T0计数器〔TR0=1〕。4〕当INT0=1时,定时器T0自动开始计数;当INT0=0时自动停止计数,此时TH0、TL0中的计数值就是与脉冲宽度相对应的数据。四、拓展知识〔一〕定时器/计数器初值TC的计算3.定时器门控位GATE的应用图6-13定时器门控位GATE的应用四、拓展知识〔一〕定时器/计数器初值TC的计算3.定时器门控位GATE的应用程序清单:MOVTMOD,#09H;设定T0为模式1且GATE=1MOVTH0,#00HMOVTL0,#00H;计数器原始清零MOVR0,#20H;设置数据区指针并原始赋初值JBINT0,$;等待P3.2引脚上的脉冲变低,寻找准备阶段SETBTR0;INT0变低后,TR0置1〔但不计数〕JNBINT0,$;假设INT0低电平那么等待,准备计数阶段JBINT0,$;假设INT0高电平那么等待〔硬件开始计数〕CLRTR0;INT0变低后,关闭T0〔停止计数〕MOV@R0,TH0INCR0MOV@R0,TL0;保存计数器T0的计数值四、拓展知识〔二〕外部中断源的扩展1.用定时器作外部中断源AT89C51单片机有两个定时器,具有两个内中断标志和外计数引脚,如在某些应用中不被使用,那么它们的中断可作为外部中断请求使用。此时,可将定时器设置成计数方式,计数初值可设为满量程,那么它们的计数输入端T0〔P3.4〕或T1〔P3.5〕引脚上发生负跳变时,计数器加1便产生溢出中断。利用此特性,可把T0脚或T1脚作为外部中断请求输入线,而计数器的溢出中断作为外部中断请求标志。四、拓展知识〔二〕外部中断源的扩展1.用定时器作外部中断源例6-4将定时器T0扩展为外部中断源。解:将定时器T0设定为方式2〔自动恢复计数初值〕,TH0和TF0的初值均设置为FFH,允许T0中断,CPU开放中断,源程序如下:MOVTMOD,#06HMOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA…当连接在T0〔P3.4〕引脚的外部中断请求输入线发生负跳变时,TL0加1溢出,TF0置1,向CPU发出中断申请,同时,TH0的内容自动送至TL0使TL0恢复初值。这样,T0引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论