第三章-定时计数与中断系统...ppt_第1页
第三章-定时计数与中断系统...ppt_第2页
第三章-定时计数与中断系统...ppt_第3页
第三章-定时计数与中断系统...ppt_第4页
第三章-定时计数与中断系统...ppt_第5页
免费预览已结束,剩余50页可下载查看

下载本文档

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

文档简介

第三章定时/计数器、中断一、主要特性1、定时器/计数器是MCS-51单片机的重要功能模块之一,有两个可编程的定时器/计数器定时器/计数器0与定时器/计数器1,可由程序选择作为定时器用或作为计数器用,定时时间或计数值可由程序设定。2、每个定时器/计数器都4种工作方式,可用程序选择。3、定时器/计数器是一个二进制的加1计数器,任一定时器/计数器在定时时间或计数值到时,可由程序安排产生中断请求信号或不产生中断请求号。,二、定时器/计数器的结构定时器/计数器的结构由加法计数器、TMOD寄存器、TCON寄存器等组成。定时器/计数器0、1的结构框图,1、16位加法计数器定时器/计数器的核心是16位加法计数器,用特殊功能寄存器TH0、TL0及TH1、TL1表示,TH0、TL0是定时器/计数器0的高8位和低8位,TH1、TL1是定时器/计数器1的高8位和低8位。作计数器用时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)上输入的脉冲计数,每输入一个脉冲,加法计数器增加1,加法计数溢出理可向CPU发出中断请求信号。作定时器用时,加法计数器对内部机器周期T脉冲计数。由于机器周期T是定值,所以对机器周期T脉冲的计数也是也就是定时,如T=1us,计数值为100,相当于定时100us。加法计数器的初值可以由程序设定,设置的初值不同,计数值或定时时间就不同。,2、定时器/计数器方式控制寄存器TMODTMOD用来选择定时器/计数器0、1的工作方式,低4位用于定时器/计数器0、高4位用于定时器/计数器1。其值可用程序决定,格式如下:,T1控制,T0控制,GATE门控位,M1M0工作方式选择,(1)定时器/计数器功能选择位C/TC/T=1为计数器方式,C/T=0为定时器方式。(2)定时器/计数器工作方式选择位M1、M0定时器/计数器4种工作方式的选择由M1、M0的值决定,如下表:,(3)门控制位GATE如果GATE=1,定时器/计数器0的工作受芯片引脚INT0(P3.2)控制,定时器/计数器1的工作受芯片引脚INT1(P3.3)控制;如果GATE=0,定时器/计数器的工作与引脚INT0、INT1无关,一般情况下GATE=0。3、定时器/计数器控制寄存器TCONTCON高4位用于控制定时器/计数器0、1的运行;低4位用于控制外部中断,与定时器/计数器无关。TCON格式如下:,中断请求标志,触发方式选择,启动定时/计数器,定时器/计数器1运行控制位TR1(TCON.6)TR1=1时定时器/计数器1工作,TR1=0则定时器/计数器停止工作,TR1由软件置1或清零。(2)定时器/计数器1溢出中断标志TF1(TCON.7)定时器/计数器1计数溢出时由硬件自动置TF1=在中断允许的条件下,便向CPU发出定时器/计数器1的中断请求信号,CPU响应后TF1由硬件自动清零。TF1也可以用程序置位或清零,例如执行指令SETBTF1后,TF1=1,定时器/计数器1的中断请求用程序安排产生,称为软件中断。(3)定时器/计数器0运行控制位TR0(TCON.4)TR0=1时定时器/计数01工作,TR0=0则定时器/计数器停止工作,TR0由软件置1或清零。(4)定时器/计数器0溢出中断标志TF0(TCON.5)TF0决定定时器/计数器0的中断,其功能与TF1相仿。,三、定时器/计数器0、1的4种工作方式1、工作方式0(13位方式)M1=0、M0=0时定时器/计数器设定为工作方式0,构成13位定时器/计数器。如图:,计数脉冲输入,13位计数器,定时器,计数器,中断,TH1用作高8位加法计数器,TL1用作低5位加法计数器。可用程序将08191的某一数送入TH1、TL1作为初值,TH1、TL1从初值开始计数,直至溢出,所以设置的初值不同,定时时间或计数值也不同。要注意的是,加法计数器TH1溢出后,必须用程序重新对TH1、TL1设置初值,否则下次TH1、TL1将从0开始加法计数。如果定时器/计数器工作在计数状态,加法计数器对T1引脚上外部输入脉冲计数,计数值出式N=8192-X决定,X是TH1、TL1的初值。如果定时器/计数器工作在定时方式,加法计数器对机器周期脉冲Tcy计数,每个机器周期TL1加1,定时时间由式T=(8192-X)Tcy决定,如果振荡频率=12MHz,即Tcy=1us,则定时范围为18192us。,2.工作方式116位方式,中断,M1=0、M0=1时定时器/计数器设定为工作方式1,构成了16位定时器/计数器,此时TH1、TL1都是8位加法计数器,其它与工作方式0相同。在工作方式1时,计数器的计数值由N=65536-X决定,计数范围165536。定时器的定时时间由式T=(65536-X)T决定,如果振荡频率=12MHz,即T=1us,则定时范围为165536us。,例:已知振荡器频率为12MHz,要求定时器/计数器0产生10ms定时,试编写初始化程序。由于定时时间大于8192us,应选用工作方式1。(1)TH0、TL0初值的计算T=1us,故有T=(65536-X)T=(65536-X)*1us=10ms,X=55536=D8F0H,即TH0=D8H、TL0=F0H。(2)方式寄存器TMOD的编程TMOD=01H(3)初始化程序:START:MOVTL0,#0F0HMOVTH0,#0D8HMOVTMOD,#01HSETBTR0执行指令SETBTR0后,定时器/计数器0开始定时,待10ms到时,硬件使TF0=1,向CPU申请中断。,3.工作方式28位自动装入时间常数方式,中断,当M1=1、M0=0时,定时器/计数器工作于方式2,方式2是自动重装初值的8位定时器/计数器。TL1作为8位加法计数器使用,TH1作为初值寄存器用,TH1、TL1的初值都由软件预置,TL1计数溢出时,不仅置位TF1,而且发出重装信号,将TH1初值自动送入TL1,使TL1从初值开始重新计数,重新装入初值后,TH1的内容不变。工作方式2的计数范围为1256,定时范围为1us256us。工作方式2特别适用于定时控制。例如要求每隔200us产生一定时信号,则TH1、TL1的初值都置38H,C/T=0,M1=1、M0=0。,4、工作方式3当M1=1、M0=1时,定时器/计数器工作于方式3。工作方式3仅对定时器/计数器0有意义,如果把定时器/计数器1设置为工作方式3,相当于TR1=0,即定时器/计数器1实际将停止工作。定时器/计数器0工作方式3,TH0、TL0成为两个独立的8位加法计数器,它的工作情况与方式0、方式1类似,仅计数范围为1256,定时范围为1256us。,第七节MCS-51单片机的中断系统,一、中断的概念,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,中断是指计算暂时停止原程序执行转而为外部设备服务(执行中断服务程序),并在服务完成后返回原程序执行的过程.中断由中断源产生,在需要时向CPU提出中断请求,中断请求是一种电信号。中断源:引起中断原因的设备或部件,发出中断请求信号的源泉。1、外部设备中断源:打印、按键2、控制对象中断源:电压、电流、温度、压力控制3、故障电断源:4、定时脉冲中断源:定时器/计数器中断分类:1、可屏蔽中断2、非屏蔽中断3、软件中断,中断系统功能中断系统:能够实现中断功能的那部分硬件电路或软件程序。功能:1、进行中断优先权排队2、中断嵌套3、自动响应中断CPU响应中断时自动做三件事:(1)自动关闭中断(防止其它中断干扰)(2)按中断源提供的中断矢量自动转入相应中断服务程序(3)自动或通过安排在中断服务程序中指令来撤除本次中断请求。以避免再次响应本次中断的请求。4、实现中断返回(RETI指令),中断系统是单片机的重要组成部分,MCS-51中断系统的功能有5个中断源;2个中断优先级,中断优先级可以程序设定。一、中断源(MCS-51系列有5个中断源)1、外部中断0、1有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平(电平触发)或负边沿两种中断触发方式来输入中断请求信号。外部中断请求INT0、INT1有两种触发方式:电平触发及跳变触发,由定时器控制寄存器TCON的IT0位及IT1位选择。IT0(IT1)=0时INT0(INT1)为电平触发方式,当引脚INT0或INT1上出现低电平时就向CPU申请中断;IT0(IT1)=1时为跳变触发方式,当INT0或INT1引脚上出现负跳变时,向CPU申请中断。,2、定时器/计数器0、1溢出中断定时器/计数器计数溢出时,由硬件分别置TF0=1或TF1=1,向CPU申请中断,CPU响应中断后,由硬件自动清除TF0或TF1。3、串行接口中断定时器/计数器控制寄存器TCONTCON高4位用于控制定时器/计数器0、1的运行;低4位用于控制外部中断,与定时器/计数器无关。TCON格式如下:,中断请求标志,触发方式选择,启动定时/计数器,二、中断控制1、中断允许控制MCS-51有5个中断源,如图所示:,中断请求标志,1,高级,低级,内部查询,内部查询,入口地址,入口地址,中断允许控制,中断优先级,EA,中断源,K1,K2,1、中断允许寄存器IE用IE来控制中断系统结构图中K1、K2,IE格式如下:中断允许寄存器IE的各位可以位寻址,既可以用字节传送指令又可以用位操作指令来对各中断请求位加以控制,例如可以采用如下字节传送指令来开放定时器T1溢出中断:MOVIE,#88H若改用位寻址指令,则需采用如下两条指令:SETBEASETBET1,2、中断优先级控制MCS-51单片机有两个中断优先级,每一个中断源都可以通过编程确定高优先级中断或低优先级中断。用中断优先级控制寄存器IP,其格式如下:,0低级别,1高级别,同一优先级中的中断源优权由中断系统的硬件确定,用户无法自行安排,优先权排队顺序如下:,例:8031芯片的INT0、INT1引脚分别输入压力超限及温度超限中断请求信号,定时器/计数器0作为定时检测的实时时钟,用户规定的中断优先级次序为:压力超限温度超限定时检测要求确定IE、IP的内容,以实现上述要求。1000111,IE,压力超限中断允许,定时检测中断允许,温度超限中断允许,中断屏蔽,IP,中断屏蔽取任意值,压力高优先级,定时检测低优先级,温度高优先级,IE的内容为87H,IP的内容为05H,三、中断响应CPU响应中断后由硬件执行如下功能:(1)根据中断请求源的优先级高低,使相应的优先级状态触发器置1。(2)保留断点,即把程序计数器PC的内容压入堆栈保存,以便执行到中断服务程序中RETI指令时按此地址返回原程序执行。(3)把被响应的中断服务程序的固定入口地址送入PC,从而转入相应的中断服务程序。中断源入口地址INT00003T0000BHINT10013HT1001BHRI/TI0023H,由表可知:五个中断源的入口地址彼此相差8个存储单元,这八个存储单元用来存放中断服务程序是放不下的,通常解决办法是在中断入口地址处放一条长转移指令,CPU执行这条长转移指令就可转入相应中断服务程序。中断服务程序的最后一条指信必须是中断返回指令RETI,然后返回主程序。例:若INT0中断服务程序起始地址在2000单元,则如下指行命令可转入2000H处执行中断服务程序:ORG0003HLCALL2000H,四、中断系统初始化MCS-51中断系统功能,是通过上述特殊功能寄存器进行统一管理,中断系统初始化是指用户对这些特殊功能寄存器中的各控制位进行赋值。中断系统初始化步骤如下:1、开相应中断源的中断2、确定所用中断源的中断优先级3、若为外部中断,则相应规定低电平还是负边沿触发的中断方式,例:请写出INT1为低电平触发的中断系统系统初始化程序。1、采用位操作指令SETBEASETBEX1;开INT1中断SETBPX1;令INT1为高优先级CLRIT1;令INT1为电平触发2、采用字节型指令MOVIE,#84H;开INT1中断ORLIP,#04H;令INT1为高优先级ANLTCON,#OFBH;令INT1为电平触发,串行输入/输出接口一、基本概念通信:计算机与外界的信息交换。并行通信:信息的各位数据同时传送通信方法串行通信:信息的各位逐位顺序传送异步通信;按字符传输单工半双工串行通信同步通信:按数据块传输全双工,异步通信方式:一帧信息(一个字符)包括一个起始位、8个数据位1位停止位。,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0/1,0,1,停止位,起始位,低位,高位,8位数据位,停止位,第N个字符,第N-1个字符,1,在一帧信息中,每一位的传送时间用Td表示,其倒数就称为波特率,表示每秒传送的位数。同步通信:在数据块开头发送一个或两个同步字符,使发送与接收双方取得同步。MCS-51串行I/O接口的工作过程:发送时,将CPU送来的并行数据转换成串行数据,从引脚TXD上按规定的波特率逐位输出;接收时:将串行数据转换成并行数据,等待CPU读取。,二、串行接口功能与结构1、功能串行口有4种方式,由SCON中的SM1和SM0来决定的如下表:,2、结构串行口主要由发送数据缓冲器、发送控制器、输出控制门、接收数据缓冲器、接收控制器、输入移位寄存器等组成。,MCS-51串行口组成示意,(1)串行口数据缓冲器SBUF,(2)串行口控制寄存器SCON,串行口控制寄存器SCON,(3)电源控制寄存器PCONPCON主要是为CHMOS型单片机的电源控制设置的专用寄存器,单元地址为87H,不能位寻址。其格式如图7-7所示。,PCON各位定义,三、串行口的工作方式1、方式0即串行寄存器方式,数据从RXD引脚上发送或接收,一帧信息由8位数据组成,低位在前,波特率固定为fosc/12,同步移位脉冲TXD引脚输出。(1)发送CPU执行一条写SBUF指令MOVSBUF,A就启动数据的发送。,当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的控制下,逐位移入74LS164,74LS164能完成数据的串并转换。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。,数据发送过程,(2)接收在RI=0时,将SCON.4置1就启动接收,数据就在移位脉冲TXD的控制下,从RXD端输入。当接收到8位数据时,置位接收中断标志位RI,发生中断请求。其接口逻辑如图所示。由逻辑图可知,通过外接74LS165,串行口能够实现数据的并行输入。,外接移位寄存器输入,例:使用74LS164的并行输出端接8支发光二极管,利用它的串入并出功能,把发光二极管从左到右依次点亮,并反复循环。假定发光二极管为共阴极接法。,图电路设计,解:软件部分如下ORG1000HMAIN:MOVSCON,#00H;串行口工作在方式0CLRES;禁止串行中断MOVA,#80H;发光二极管从左边亮起DELR:CLRP1.0;关闭并行输出MOVSBUF,A;串行输出WAINT:JNBTI,WAIT;状态查询SETBP1.0;开启并行输出ACALLDELAY;调用延时子程序CLRTI;清发送中断标志RRA;发光右移AJMPDELR;继续END,2、工作方式1SM0=1、SM1=1串行口工作在方式1,即8位异步通信接口方式,RXD为接收端,TXD为发送端,一帧信息由10位组成。方式1的帧格式(1)发送数据写入SBUF后,开始发送,此时由硬件加入起始位和停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可以进行下一个字符的发送。,(2)接收当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个字符。3、工作方式2与3串行口工作在方式2、方式3时,为9位异步通信方式,发送或接收的一帧信息由11位组成,如图:,方式2的帧格式,在方式2下,字符还是8个数据位,只不过增加了一个第9个数据位(D8),而且其功能由用户确定,是一个可编程位。在发送数据时,应先在SCON的TB8位中把第9个数据位的内容准备好。这可使用如下指令完成:SETBTB8;TB8位置“1”CLRTB8;TB8位置“0”,(1)发送发送数据(D0D7)由MOV指令向SBUF写入,而D8位的内容则由硬件电路从TB8中直接送到发送移位器的第九位,并以此来启动串行发送。一个字符帧发送完毕后,将TI位置“1”,其他过程与方式1相同。(2)接收方式2的接收过程也于方式1基本类似,所不同的只在第9数据位上,串行口把接收到的前8个数据位送入SBUF,而把第九数据位送入RB。方式3同方式2几乎完全一样,只不过方式3的波特率是可变的,有用户来确定。,五、波特率工作方式0的波特率固定为fosc/12。工作方式2的波特率由(PCON.7)决定,SMOD=1时为fosc/32,SMOD=0时为fosc/64。工作方式1、工作方式3的波特率取决于定时器/计数器1的溢出速率及SMOD,波特率的计算公式为:SMOD为PCON寄存器最高位的值,其值为1或0,当定时器1作波特率发生器使用时,选用工作方式2(即自动加载定时初值方式)。选择方式2可以避免通过程序反复装入定时初值所引起的定时误差,使波特率更加稳定。假定计数初值为X,则计数溢出周期为:,溢出率为溢出周期的倒数。则波特率的计算公式为:,实际使用中,波特率是已知的。因此需要根据波特率的计算公式求定时初值X。用户只需要把定时初值设置到定时器1,就能得到所要求的波特率。,例:设串行口工作于方式3,SMOD=0,fosc=11.059M,定时器/计数器1工作于定时方式2(自动重装载方式)TL1、TH1的初值为FDH,试计算波特率。解:定时器/计数器1的定时时间为:Tc=(256-253)*12/(11.059*106)其溢出速率:1/Tc=11.059*106/(256-253)*12=307194.4波特率为:20*307194。4/32=9599.83=9600位/S,常用波特率和定时器T1初值关系表,例:AB两台单片机,均采用11.0592MHZ晶振。A机以1200HZ波特率将内部RAM中30H至39H的十个字节经串行口发向B机,存入其RAM中30H至39H单元。AB两机的RXD、TXD交叉相连,并连通两机地线。AB两机串行口同样设置为工作方式1;均用定时器1工作方式2,由表4.2查得时间常

温馨提示

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

评论

0/150

提交评论