中断系统定时器计数器串行口.ppt
《中断系统定时器计数器串行口.ppt》由会员分享,可在线阅读,更多相关《中断系统定时器计数器串行口.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中断系统定时器计数器串行口 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望.单片机的中断系统单片机的中断系统5.1.1中断的概念中断的概念 所谓中断,是指当计算机正在执行正常所谓中断,是指当计算机正在执行正常程序时,系统中出现了某些急需处理的异常程序时,系统中出现了某些急需处理的异常情况和特殊请求。计算机停止正在执行的正情况和特殊请求。计算机停止正在执行的正常程序,转而去处理异常情况,处理完异常常程序,转而去处理异常情况,处理完异常情况后,再回到正常程序的过程。情
2、况后,再回到正常程序的过程。5.1.2中断源中断源 中断源就是能向中断源就是能向CPU提出申请的部件。提出申请的部件。注:注:MCS-51单片机(单片机(51子系列)有五个子系列)有五个中断源,其中两个外中断,三个内中断,具中断源,其中两个外中断,三个内中断,具有两个中断优先级,可以实现二级中断嵌套。有两个中断优先级,可以实现二级中断嵌套。内部结构如下:内部结构如下:5.1.3中断的控制 定时计数器控制寄存器()定时计数器控制寄存器()TCON 为定时计数器的控制器,单元地址为,为定时计数器的控制器,单元地址为,位地址为,其格式如表位地址为,其格式如表-所示。所示。IT0:外中断:外中断0的触
3、发方式选择位,为的触发方式选择位,为“0”低电平触发,为低电平触发,为“1”下降沿触发,由用户设定。下降沿触发,由用户设定。IE0:外中断:外中断0中断申请标志位中断申请标志位,当满足触发条件时,当满足触发条件时,IE0为为“1”,否则为,否则为“0”,由硬件完成。,由硬件完成。IT1:外中断:外中断1的触发方式选择位,为的触发方式选择位,为“0”低电平触发,为低电平触发,为“1”下降沿触发,由用户设定。下降沿触发,由用户设定。IE1:外中断:外中断1中断申请标志位中断申请标志位,当满足触发条件时,当满足触发条件时,IE1为为“1”,否则为,否则为“0”,由硬件完成。,由硬件完成。TR0:为:
4、为T0的启动位,为的启动位,为“1”时时T0开始计数,为开始计数,为“0”时时T0停止计数,由用户设定。停止计数,由用户设定。TF0:为:为T0的溢出标志位,当的溢出标志位,当T0计满数后,计满数后,TF0为为“1”,在中断系统中也称之为中断申请标志位,由,在中断系统中也称之为中断申请标志位,由硬件完成。硬件完成。TR1:为:为T1的启动位,为的启动位,为“1”时时T1开始计数,为开始计数,为“0”时时T1停止计数,由用户设定。停止计数,由用户设定。TF1:为:为T1的溢出标志位,当的溢出标志位,当T1计满数后,计满数后,TF1为为“1”,在中断系统中也称之为中断申请标志位,由,在中断系统中也
5、称之为中断申请标志位,由硬件完成。硬件完成。串行口控制寄存器()串行口控制寄存器()SCON 为串行接口的控制器,为串行接口的控制器,单元地址为单元地址为,位地址为位地址为,其格式如表其格式如表-所示。所示。RI:为串行口的接收标志位,当接收完一帧数据后,:为串行口的接收标志位,当接收完一帧数据后,由硬件置由硬件置“1”。TI:为串行口的发送标志位,当发送完一帧数据后,:为串行口的发送标志位,当发送完一帧数据后,由硬件置由硬件置“1”。注:其余的注:其余的6位,在串行口中给大家讲解。位,在串行口中给大家讲解。注:注:1、工作在中断方式时:、工作在中断方式时:这这5个申请标志位都是在满足条件的情
6、况个申请标志位都是在满足条件的情况下,由硬件置下,由硬件置“1”。其中。其中IE0、IE1、TF0、TF1,在系统响应中断后,由硬件清,在系统响应中断后,由硬件清“0”;RI、TI是由软件清是由软件清“0”。是因为这两个标志。是因为这两个标志位共用一个入口地址。位共用一个入口地址。2、工作在查询方式时:、工作在查询方式时:这这5个申请标志位都是在满足条件的情况个申请标志位都是在满足条件的情况下,由硬件置下,由硬件置“1”,查询后由软件清,查询后由软件清“0”。中断允许控制寄存器中断允许控制寄存器 由于单片机没有专门的开中断和关由于单片机没有专门的开中断和关中断指令,个中断源中断的开放和关闭是通
7、过中断中断指令,个中断源中断的开放和关闭是通过中断允许寄存器允许寄存器 进行两级控制的。所谓两级控制,是进行两级控制的。所谓两级控制,是指有一个中断允许总控制位,配合各中断源的中指有一个中断允许总控制位,配合各中断源的中断允许控制位共同实现对中断请求的控制。断允许控制位共同实现对中断请求的控制。的单的单元地址为,位地址为,其内容元地址为,位地址为,其内容及位地址如表及位地址如表-所示。所示。EA:总的中断允许,为:总的中断允许,为“0”时禁止中断,为时禁止中断,为“1”时时允许中断(所有的中断源)。允许中断(所有的中断源)。EX0:外中断:外中断0(INT0)中断允许,为)中断允许,为“0”时
8、禁止中时禁止中断,为断,为“1”时允许中断。时允许中断。ET0:定时:定时/计数器计数器T0中断允许,为中断允许,为“0”时禁止中断,时禁止中断,为为“1”时允许中断。时允许中断。EX1:外中断:外中断1(INT1)中断允许,为)中断允许,为“0”时禁止中时禁止中断,为断,为“1”时允许中断。时允许中断。ET1:定时:定时/计数器计数器T1中断允许,为中断允许,为“0”时禁止中断,时禁止中断,为为“1”时允许中断。时允许中断。ES:串行口:串行口S中断允许,为中断允许,为“0”时禁止中断,为时禁止中断,为“1”时允许中断。时允许中断。注:都是由用户设定。注:都是由用户设定。中断优先级控制寄存器
9、中断优先级控制寄存器 中断优先级寄存器字节地址为,位中断优先级寄存器字节地址为,位地址为,其内容及位地址如表地址为,其内容及位地址如表-所示。所示。PX0:外中断:外中断INT0优先级设置,为优先级设置,为“0”时低优先级,时低优先级,为为“1”时高优先级,由用户设置。时高优先级,由用户设置。PT0:定时:定时/计数器计数器T0优先级设置,为优先级设置,为“0”时低优先时低优先级,为级,为“1”时高优先级,由用户设置。时高优先级,由用户设置。PX1:外中断:外中断INT1优先级设置,为优先级设置,为“0”时低优先级,时低优先级,为为“1”时高优先级,由用户设置。时高优先级,由用户设置。PT1:
10、定时:定时/计数器计数器T1优先级设置,为优先级设置,为“0”时低优先时低优先级,为级,为“1”时高优先级,由用户设置。时高优先级,由用户设置。PS:串行口:串行口S优先级设置,为优先级设置,为“0”时低优先级,为时低优先级,为“1”时高优先级,由用户设置。时高优先级,由用户设置。注注:都是有用户设定。:都是有用户设定。注:高优先级中断源可以中断正在执行的低优先级注:高优先级中断源可以中断正在执行的低优先级中断服务程序,同级或低优先级中断源不能中断正中断服务程序,同级或低优先级中断源不能中断正在执行的中断服务程序。在执行的中断服务程序。中断的处理过程中断的处理过程 中断响应中断响应 某一中断源
11、向某一中断源向 发出中断请求,只有发出中断请求,只有满足下面条件后,才能得到满足下面条件后,才能得到 的响应:的响应:有中断源发出中断请求;有中断源发出中断请求;中断总允许位,即中断总允许位,即 开中断;开中断;申请中断的中断源的中断允许位为,即相申请中断的中断源的中断允许位为,即相应的中断允许标志位为。应的中断允许标志位为。满足以上条件,满足以上条件,CPU一般会响应中断,一般会响应中断,但如果有下列情况之一,则中断响应被暂时但如果有下列情况之一,则中断响应被暂时搁置:搁置:1、CPU正在执行一个同级或高优先级的中断正在执行一个同级或高优先级的中断服务程序;服务程序;2、当前的机器周期不是正
12、在执行的指令的最后、当前的机器周期不是正在执行的指令的最后一个机器周期,只有在当前指令执行完后,一个机器周期,只有在当前指令执行完后,才能响应中断;才能响应中断;3、当前正在执行的指令时返回指令(、当前正在执行的指令时返回指令(RET、RETI)或访问)或访问IE、IP指令。指令。中断处理中断处理 中断响应的主要内容就是由硬件自动执行一条中断响应的主要内容就是由硬件自动执行一条长调用指令长调用指令LCALL,其格式为,其格式为LCALL addr16。这。这里的里的addr16就是相应的中断服务程序入口地址。这些就是相应的中断服务程序入口地址。这些中断入口地址已由系统设定。例如对于定时器计数中
13、断入口地址已由系统设定。例如对于定时器计数器的中断响应,自动调用的长调用指令为:器的中断响应,自动调用的长调用指令为:LCALL 000BH 中断返回中断返回 中断服务程序的最后一条指令必须是中断返回中断服务程序的最后一条指令必须是中断返回指令指令RETI。CPU 执行完这条指令后,把响应中断时执行完这条指令后,把响应中断时所保护的断点地址从堆栈中弹出,然后装入程序计数所保护的断点地址从堆栈中弹出,然后装入程序计数器器PC 中,中,CPU 就从原来被中断处继续执行原来被中就从原来被中断处继续执行原来被中断的程序。断的程序。例题:在单片机的例题:在单片机的P0口外接口外接8路路LED发光管,发光
14、管,用于流水灯显示,在外中断用于流水灯显示,在外中断0(P3.2)引脚外接引脚外接一独立式按,来控制流水灯的方向(中断方一独立式按,来控制流水灯的方向(中断方式)。式)。ORG 0000H LJMP ST ORG 0003H LJMP INT0 ORG 0050HST:MOV SP,#2FH MOV A,#0FEH SETB IT0 SETB EA SETB EX0 CLR F0 ST1:JB F0,RRR MOV P0,A LCALL DEL RL A SJMP ST1RRR:MOV P0,A LCALL DEL RR A SJMP ST1DEL :MOV R7,#00HDEL1:MOV R
15、6,#00HDEL2:NOP NOP NOP NOP DJNZ R6,DEL2 DJNZ R7,DEL1 RETINT0:CPL F0 RETI END.定时器计数器定时器计数器5.2.1定时器计数器的结构和工作原理定时器计数器的结构和工作原理 80C51单片机中设置有两个单片机中设置有两个16位的可编程位的可编程的定时器计数器的定时器计数器T0、T1,其结构如图,其结构如图-所示。通过用户设定,都可以工作在计数所示。通过用户设定,都可以工作在计数或者定时状态。或者定时状态。5.2.2定时器计数器的控制定时器计数器的控制1、工作方式寄存器工作方式寄存器 用于控制用于控制 和和 的工作方式,的工
16、作方式,字节地址为,字节地址为,其各位的定义格式如表其各位的定义格式如表-所示,不可位寻址,低所示,不可位寻址,低4位控制位控制T0,高,高4位控制位控制T1。(1)工作方式选择位、)工作方式选择位、定时器计数器的工作方式由、定时器计数器的工作方式由、的状态确定,其对应关系如表的状态确定,其对应关系如表-所示。所示。(2)定时器计数器方式选择位)定时器计数器方式选择位 为为“0”时,工作在定时状态时,工作在定时状态 为为“1”时,工作在计数状态时,工作在计数状态(3)门控位)门控位 为为“0”时,无门控时,无门控 为为“1”时,有门控时,有门控注:注:TMOD都是由用户通过软件设置。都是由用户
17、通过软件设置。、定时器计数器控制寄存器定时器计数器控制寄存器 控制寄存器控制寄存器 的主要功能是为定的主要功能是为定时器在溢出时设定标志位,并控制定时器的时器在溢出时设定标志位,并控制定时器的运行或停止。运行或停止。单元地址为,单元地址为,位地址为,其格式如表位地址为,其格式如表-所示。所示。TR0:为:为T0的启动位,为的启动位,为“1”时时T0开始计数,为开始计数,为“0”时时T0停止计数,由用户设定。停止计数,由用户设定。TF0:为:为T0的溢出标志位,当的溢出标志位,当T0计满数后,计满数后,TF0为为“1”,在中断系统中也称之为中断申请标志位,由,在中断系统中也称之为中断申请标志位,
18、由硬件完成。硬件完成。TR1:为:为T1的启动位,为的启动位,为“1”时时T1开始计数,为开始计数,为“0”时时T1停止计数,由用户设定。停止计数,由用户设定。TF1:为:为T1的溢出标志位,当的溢出标志位,当T1计满数后,计满数后,TF1为为“1”,在中断系统中也称之为中断申请标志位,由,在中断系统中也称之为中断申请标志位,由硬件完成。硬件完成。5.2.3定时器计数器的工作方式定时器计数器的工作方式1、方式、方式0(以(以T0为例)为例)定时器定时器 方式的结构框图如图方式的结构框图如图-所示,为所示,为13位定时位定时/计数器。计数器。(1)T0工作的状态由工作的状态由C/T控制,为控制,
19、为“0”时定时,为时定时,为“1”时计时计数。数。(2)T0启动由启动由TR0(启动位)、(启动位)、GATR(门控位)、(门控位)、INT0(外引脚(外引脚P3.2)控制。)控制。GATR=0:TR0=1时,时,T0启动工作启动工作 TR0=0时,时,T0禁止工作禁止工作 GATR=1:TR0=1且且INT0=1时,时,T0启动工作启动工作 TR0=0或或INT0=0时,时,T0禁止工作禁止工作(3)计数时,由外引脚输入计数脉冲)计数时,由外引脚输入计数脉冲 N:为计数值(已知):为计数值(已知)a:计数初值(未知量):计数初值(未知量)最大计数:最大计数:8192个脉冲个脉冲 定时时,由时
20、钟的定时时,由时钟的12分频作为计数脉冲分频作为计数脉冲 t:为定时时间,若:为定时时间,若fosc=12MHz,tmax=8.192ms 注:注:1、8051单片机的定时单片机的定时/计数器都是对输入的脉冲计数器都是对输入的脉冲进行进行+1计数。计数。2、计数时由外引脚输入计数脉冲,再由、计数时由外引脚输入计数脉冲,再由13位的位的计数器进行计数。计数器进行计数。3、定时时由内部时钟的、定时时由内部时钟的12分频后,再由分频后,再由13位的位的计数器进行计数,最后得到时间。计数器进行计数,最后得到时间。4、由于是、由于是+1计数,计满后产生溢出位计数,计满后产生溢出位TF0,所,所以用户根据
21、需要计数或定时时间的大小,计算出定以用户根据需要计数或定时时间的大小,计算出定时时/计数器的初值计数器的初值a,再通过软件放入定时,再通过软件放入定时/计数器计数器的高的高8位(位(TH0)和低)和低5位(位(TL0)中。)中。5、由于方式、由于方式0是是13位定时计数器(低位定时计数器(低8位中的高位中的高3位不用),所以在放数时要避开这位不用),所以在放数时要避开这3位。位。6、由于方式、由于方式0不能自动装入初值,故在溢出后,不能自动装入初值,故在溢出后,需通过软件再次装入初值给需通过软件再次装入初值给TL0和和TH0。例例5-4用定时器用定时器T1,工作方式,工作方式0实现定时,并在实
22、现定时,并在P1.0引引脚上输出周期为脚上输出周期为10ms的方波,设晶振的方波,设晶振Fosc 12MHz。解:(解:(a)确定工作方式)确定工作方式对对TMOD 赋值赋值,使用使用T1,所以低所以低 位未用,位未用,全部设为,全部设为,高高 位中位中GATE=0,C/T=0,M1M0=00,所以,所以TMOD=00H。(b)预置定时或计数的初值)预置定时或计数的初值 要在要在P1.0引脚上输出周期为引脚上输出周期为10ms的方波,只要的方波,只要每隔每隔5ms将将P1.0取反一次就可以了。因此选用取反一次就可以了。因此选用T1在方在方式下定时时间为式下定时时间为5ms,则,则T1的初值为:
23、的初值为:t=(8192-a)X12/Fosc,已知已知t=5ms,Fosc 12MHz则则a=3192=C78H=0000 1100 0111 1000B,因因13位计数位计数器中器中TL1的高位未用,可填写任意值,一般填写的高位未用,可填写任意值,一般填写,TH1占高位,所以,占高位,所以,a的实际填写值应为:的实际填写值应为:a=0110001100011000B6318H,即:,即:TH1=63H,TL1=18H。中断方式:中断方式:ORG 0000H LJMP MAIN ORG 001BH LJMP PTT1 ORG 0050HMAIN:MOV SP,#50H MOV TMOD,#0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 系统 定时器 计数器 串行口
限制150内