专业学习-功率接口12级_第1页
专业学习-功率接口12级_第2页
专业学习-功率接口12级_第3页
专业学习-功率接口12级_第4页
专业学习-功率接口12级_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

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

文档简介

1第5章定时器/计数器与中断系统定时器/计数器定时器/计数器的结构和工作原理定时器/计数器的初始化定时器/计数器的工作方式中断系统中断的概念中断系统结构及处理过程中断系统的应用2第一节定时器和计数器1.1定时器/计数器概述1.定时器/计数器的结构MCS51单片机定时器/计数器逻辑结构框图32.定时器/计数器的原理定时器工作方式定时方法:每过一个机器周期,计数器加1,直到达到其量程为止;最短定时周期:一个机器周期,即T=12/fosc定时时间的确定:确定定时器初值和适当选择定时器的长度(8位、13位、16位)计数器工作方式计数方法:通过引脚T0(P3.4)和T1(P3.5)对外部事件进行计数,外部脉冲的下降沿将触发计数;最高计数频率:振荡频率的1/24,fosc/24。外部脉冲要求:脉冲的高电平和低电平保持时间必须在一个机器周期以上。41.2TMOD和TCON寄存器1.方式寄存器TMOD(89H)GATE:门控位当GATE=0,通过TR0或TR1启动定时器;当GATE=1,只有/INT0(P3.2)或/INT1(P3.3)引脚为高电平,且TRx置1,才可启动计数器。C/T:功能选择位

C/T=0,定时器工作方式,计数脉冲由内部提供;

C/T=1,计数器工作方式,计数脉冲由外部提供。M1、M0:方式选择位,对应四种工作方式。5例:设定时器T1为定时工作方式,由软件起动,按方式2工作;定时器0为计数方式,由软件起动,按方式1工作。 MOV TMOD,#25H62.控制寄存器TCON(88H)

TCON的作用是控制定时器的启、停,定时器的溢出标志和外部中断触发方式等。TF1:定时器1溢出标志位。当定时/计数器1溢出时,由内部硬件置位,申请中断。当单片机转向中断服务程序后,由内部硬件自动清除;查询方式,软件清零。TR1:定时器1的运行控制位。由软件置位/清除来控制定时/计数器1的开启/关闭。注意事项:TCON可位寻址,可通过位操作指令起动定时器工作或者清溢出标志;TMOD只能字节寻址;使用定时器之前,需要对TMOD进行设置。71.3定时器/计数器的初始化1.初始化的步骤

1)预定工作方式:对TMOD赋值;

2)设置定时器或者计数器的初值:将初值写入THx或TLx;

3)根据要求确定是否开放定时器/计数器的中断:直接对中断允许寄存器IE相应位置1;

4)启动定时器/计数器工作:如果GATE=0,直接对TRx置位便可起动,如果GATE=1还需要对外引脚加启动电平。82.计数初值的计算

51单片机共四种工作方式,计数位数不同,计数最大值也不同,设最大计数值为M,则不同工作方式下M值分别为:方式0:13位计数器,M=213=8192方式1:16位计数器,M=216=65536方式2:自动装入8位计数器,M=28=256方式3:T0分为两个8位计数器,M=28=25651单片机为加1计数器,当加到最大值时产生溢出,将TF置1,发出溢出中断,因此计数初值X为X=M-计数值9例:若MCS51单片机主频fosc=6MHz,要求产生5ms的定时,试计算方式0和方式1的计数初值。解:计数周期T为:

T=12/fosc=2us计数值:5ms/2us=25001)定时器工作于方式0,初值为

X=M-计数值=8192-2500=5692=163CH2)定时器工作于方式1,初值为

X=M-计数值=65536-2500=63036=0F63CH101.4定时器/计数器的工作方式1.工作方式016位寄存器(TH0、TL0)只占用了13位,当TL0的低5位计满后,向TH0进位,TH0计满后,TF0硬件置位,并根据设置判断是否中断。11C/T=0:定时器工作方式,定时时间为t=(213-Tx初值)×机器周期C/T=1:计数工作方式GATE=0:只由TRx控制计数器/定时器GATE=1:由TRx和INT引脚共同控制计数器/定时器,可用于测量脉宽计数器溢出后,必须重新给THx与TLx赋值12例:定时器/计数器T0选用工作方式0,用于定时,由P1.1输出周期为6ms的方波,设晶振频率fosc=12MHz。解:用P1.1口输出6ms方波,只需每3ms取反一次,因此将T0定时3ms。计数周期:T=12/fosc=1us计数值:3ms/1us=3000计数初值:X0=213-3000=5192=1448H=1010001001000BTH0=10100010B=0A2HTL0=1000H=08H因此,由TH0、TL0组成的计数初值为X=0A208H。在程序中TMOD可以采用默认设置,无需对TMOD进行操作。13程序如下:

ORG 6000H MOV TL0,#08H MOV TH0,#0A2H SETB TR0LP1: JBC TF0,LP2 SJMP LP1LP2: MOV TL0,#08H MOV TH0,#0A2H CPL P1.1 SJMP LP1142.工作方式1

方式1是16位定时器/计数器,与方式0的区别就是采用16位定时器进行计数或者操作。定时时间:t=(216-计数初值)×机器周期计数初值:X=216-计数值=216-t/(12/fosc)=216-t×fosc/12例:用定时器T1产生1个0.1Hz的方波,由P1.0输出,设晶振频率fosc为6MHz。解:机器周期:T=12/6MHz=2us最大定时时间:Tmax=216×T=130.1072ms∵方波f=0.1Hz∴方波T=10s,只要每隔5s将P1.0口取反即可∴每隔50个100ms计数周期将P1.0口取反15T1的计数初值为:X=216-100ms/2us=15536=3CB0H程序代码如下:

ORG 6000H MOV 40H,#50 ;设定循环次数

MOV TMOD,#10H ;设置工作方式

MOV TL1,#0B0H ;定时器赋初值

MOV TH1,#3CH SETB TR1 ;开始计数LP: JNB TF1,LP MOV TL1,#0B0H MOV TH1,#3CH CLR TF1 ;清溢出标志位

DJNZ 40H,LP MOV 40H,#50 CPL P1.1 SJMP LP163.工作方式2

方式2是能自动重装计数初值的8位定时器/计数器。定时时间:t=(28-计数初值)×机器周期16位定时器被拆成两个8位计数器,TL0做计数器用,TH0用以保存计数初值,在初始化时,赋予相同的初值。该方式省略赋值时间,产生精确定时。17例:用定时器T0,方式2计数,要求每计满60次,将P1.1取反。解:T0工作于计数方式,外部脉冲由T0(P3.4)脚引入,将T0设置为方式2.计数初值:X=28-60=196=0C4HTH0、TL0=#0C4H,TMOD=06H(计数方式,方式2)源程序如下:

MOV TMOD,#06H MOV TH0,#0C4H MOV TL0,#0C4H SETB TR0LP: JBC TF0,REP SJMP LPREP: CPL P1.1 SJMP LP184.工作方式3

方式3只适用于定时器T0,T0被拆分成2个独立的8位定时器TL0和TH0。TL0的功能与操作方式与方式0、1相同,可作为定时器/计数器;TH0只能作为简单的8位定时器,占用TR1、TF1。19在定时器T0用做方式3时,T1可设置为方式0、1、2,只能由串行口输出T1的溢出信号。一般将其设置为方式2作为串行口的波特率发生器或者用在不需要中断的场合。当设置好工作方式后,定时器T1开始自动运行;若要停止操作,只需送入一个设置定时器T1为方式3的方式字。20第二节中断系统2.1中断的概念

“中断”即中途打断某一正在进行的工作,而去处理另外的事件,待处理完后,再继续原来的工作。在计算机技术中,中断是一个非常重要且实用的技术。由于采用了中断技术,解决了快速CPU和慢速外设之间的矛盾;使得计算机能够及时处理控制系统中许多随机发生的事件;具备了处理故障的能力,提高了自身的可靠性。211.中断源种类外部中断类IE0:外部中断0请求信号,由P3.2(/INT0)脚输入IE1:外部中断1请求信号,由P3.3(/INT1)脚输入定时中断类TF0:定时器T0溢出中断请求TF1:定时器T1溢出中断请求串行口中断类RI:串行口接收中断请求TI:串行口发送中断请求2.2中断系统结构222.中断入口当某中断源的中断申请被CPU响应之后,CPU将自动把此中断源的入口地址装入PC,中断程序将从此开始执行,该地址称为中断入口或者中断矢量。中断源矢量地址外部中断0中断0003H定时/计数器0中断000BH外部中断1中断0013H定时/计数器1中断001BHRI/TI串行口中断0023H233.中断相关寄存器(TCON、SCON、IE和IP)设置(1)TCON寄存器(中断请求标志)TF0:定时/计数器0溢出中断标志。在启动T0计数后,定时/计数器0从初值开始加1计数,当最高位产生溢出时,由硬件置位TF0,向CPU申请中断,CPU响应TF0中断时硬件清零该标志位;若采用查询方式,TF0需要用软件清零。TF1:定时/计数器1的溢出中断标志,功能和TF0类似。24IT0:选择外部中断0为边沿触发方式或电平触发方式的控制位。IT0=0,为电平触发方式,INT0低电平有效;IT1=1,INT0为边沿触发方式,INT0输入脚上电平由高到低的负跳变有效,为保证可靠检测,输入的高低电平维持时间至少保持12个机器周期;IT0由软件置“1”或清“0”。IT1:选择外部中断1中断触发方式的控制位,和IT0功能类似。25IE0:外部中断0请求标志IT0=0:电平触发,当响应中断,并且撤消端口低电平时,IE0自动硬件清零;IT0=1:边沿触发,当响应中断,IE0自动硬件清零。IE1:外部中断1请求标志,与IE0特性相同(2)SCON寄存器(中断请求标志)TI:串行发送中断请求标志,由硬件置位,响应中断后,必须软件清零;RI:串行接收中断请求标志,与TI特性相同26(3)IE寄存器(中断开放和屏蔽)EA:CPU中断总允许位,开放或禁止所有中断。EA=0,不响应中断;EA=1,每个中断源分别由各自的允许位确定开放或禁止。ES:开放或禁止串行口中断。ES=0,禁止串行口中断;否则允许串行口中断。ET1:开放或禁止定时器1溢出中断。ET1=0,禁止定时器1中断;ET1=1,则允许定时器1中断。EX1:开放或禁止外部中断1。EX1=0,禁止外部中断1;EX1=1允许外部中断1。27ET0:开放或禁止定时器0溢出中断。ET0=0,禁止定时器0中断;ET0=1,允许定时器0中断。EX0:开放或禁止外部中断源0。EX0=0,禁止外部中断0;EX0=1,允许外部中断0。(3)IP寄存器(中断优先级设定)设置1,为高优先级中断;设置0,为低优先级中断。PS:串行口中断;PT1:定时器1中断;PX1:外部中断1;PT0:定时器0中断;PX0:外部中断0。28当几个同一优先级的中断源同时向CPU申请中断,则按照自然优先级顺序确定应该响应哪一个中断请求。

如果重新设置了优先级,则按照IP的设置响应优先级高的中断。29MCS51单片机中断系统结构框图302.3中断处理过程1.中断响应CPU响应中断的条件有中断源发出中断申请;中断总允许位EA=1;申请中断的中断源允许位为1,即没有被屏蔽。中断响应被阻断的条件同级别或者高级别中断的服务程序正在执行;正在执行的指令完成前,不响应任何中断;正在执行RETI或正在对IE、IP进行读写操作。出现上述情况时,不会马上中断,而是将中断请求锁存在中断标志位中,等待下一机器周期再查询。31中断响应过程使被响应中断的相应“优先级激活”触发器置位,以阻断同级和低级中断;调用LCALL,自动将断点压入堆栈,但不保护PSW及其他寄存器;将中断入口地址装入PC,使程序转向该中断入口;在中断入口地址单元存放一条转移指令,使程序转移到用户安排的中断服务程序入口处。中断响应时间若系统中只有一个中断源,则响应时间在3~8个机器周期。322.中断处理中断处理主要包括两部分:保护现场、中断源服务。编写中断服务程序时应注意以下问题:中断入口单元存放一条无条件转移指令,使程序跳转到中断服务程序起始地址;若要在执行当前中断程序时禁止更高优先级中断源的中断请求,应先用软件关闭CPU中断,或者屏蔽更高级中断源的中断,在中断返回前再开放中断;保护现场与恢复现场时应关闭中断使能。3.中断返回采用RETI中断返回;对于T0、T1、INT0、INT1中断标志位可以硬件清零,TI、RI要用软件清零。332.4中断系统的应用1.中断设置的相关内容CPU开中断与关中断(IE);某中断源中断请求的允许和禁止(IE);各中断优先级别的设定(IP);外部中断请求的触发方式(TCON);2.寄存器设置指令开中断:SETB、ORL关中断:CLR、ANL3.现场的保护与恢复PUSH指令POP指令34例:若MCS51单片机主频fosc=6MHz,利用定时器T1定时,采用中断的方法,实现在P1.1端输出一个周期为10ms的方波。解:T1的中断服务程序入口地址为001BH。机器周期:2us 计数值:5ms/2us=2500T1采用方式1,计数初值:216-2500=63036=0F63CH ORG 0000H AJMP START ORG 001BH AJMP T1_INT ORG 100HSTART:MOV TMOD,#10H MOV TH1,#0F6H MOV TL1,#3CH MOV IE,#88H SETB TR1L1: SJMP L1T1_INT:MOV TL1,#3CH MOV TH1,#0F6H CPL P1.1 RETI END35例:编程使T0工作在方式3,TL0和TH0作为两个独立的8位定时器,分别产生200us和400us的定时中断,使P1.0和P1.1产生400us和800us的方波,单片机的晶振为6MHz。 ORG 0000H AJMP MAIN ORG 000BH AJMP INTT0 ORG 001BH AJMP INTT1 ORG 0100HMAIN: MOV SP,#60H ACALL INIT SJMP $INIT: MOV TMOD,#03H MOV TL0,#156 MOV TH0,#56 SETB ET0 SETB ET1 SETB TR0 SETB TR1 SETB EA RETINTT0:MOV TL0,#156 CPL P1.0 RETIINTT1:MOV TH0,#56 CPL P1.1 RETI END36例:要求每隔150ms,从外部RAM2000H开始向内部RAM30

温馨提示

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

评论

0/150

提交评论