《【单片机课程设计】第05章MCS-51单片机的中断与定时.ppt》由会员分享,可在线阅读,更多相关《【单片机课程设计】第05章MCS-51单片机的中断与定时.ppt(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MCS-51单片机的定时器单片机的定时器/计数器计数器MCS-51单片机的中断系统单片机的中断系统中断技术概述中断技术概述第5章 51单片机的中断与定时第5章 51单片机的中断与定时第一节 中断技术概述5.5.1 1.1 1 中断的定义和作用中断的定义和作用当当 CPU 正在处理某项任务时,如果外部或内正在处理某项任务时,如果外部或内部的某种原因,要求部的某种原因,要求 CPU 暂停正在处理的任暂停正在处理的任务而去执行相应的处理任务,待处理完后,务而去执行相应的处理任务,待处理完后,再回到原来中断的地方,继续执行原来被中再回到原来中断的地方,继续执行原来被中断的程序,这个过程称作中断。断的程
2、序,这个过程称作中断。中断中断功能功能突发事件处理突发事件处理实时监控实时监控与外设并与外设并行工作行工作根据轻重缓急响应根据轻重缓急响应多外设的中断请求多外设的中断请求与慢速外与慢速外设的协调设的协调12345第一节 中断技术概述第5章 51单片机的中断与定时第5章 51单片机的中断与定时第一节 中断技术概述5.5.1 1.2 2 中断源与中断分类中断源与中断分类引起中断的原因,或能发出中断请求的来源,引起中断的原因,或能发出中断请求的来源,称为中断源。中断源要求称为中断源。中断源要求CPU为它服务的请为它服务的请求称为中断请求或中断申请。求称为中断请求或中断申请。CPU接受中断接受中断源提
3、出的中断请求就称为中断响应。源提出的中断请求就称为中断响应。中断源中断源第一节 中断技术概述第5章 51单片机的中断与定时故障中断源故障中断源实时中断源实时中断源定时计数脉冲中断源定时计数脉冲中断源输入、输出设备中断源输入、输出设备中断源第5章 51单片机的中断与定时第一节 中断技术概述5.5.1 1.3 3 中断嵌套中断嵌套当当CPU响应某一中断的请求而正在执行中断处理期间,响应某一中断的请求而正在执行中断处理期间,若有优先权级别更高的中断源发出中断请求,若有优先权级别更高的中断源发出中断请求,CPU则则中断正在进行的中断服务程序,去响应高级中断,在中断正在进行的中断服务程序,去响应高级中断
4、,在高级中断处理完以后,再继续执行被中断的中断服务高级中断处理完以后,再继续执行被中断的中断服务程序,这就叫中断嵌套。程序,这就叫中断嵌套。5.5.1 1.4 4 中断处理过程中断处理过程1 1)中断响应与中断返回)中断响应与中断返回2 2)保护现场与恢复现场)保护现场与恢复现场3 3)开中断与关中断)开中断与关中断4 4)中断服务)中断服务第一节 中断技术概述第5章 51单片机的中断与定时第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统5.5.2 2.1 1 中断源和中断标志中断源和中断标志MCS-51单片机有单片机有5个中断源,分别是个中断源,分别是2个外部中断源,个外部
5、中断源,2个内部定时个内部定时/计数器计数器溢出中断源,溢出中断源,1个串行口发送个串行口发送/接收中接收中断源。断源。第二节 MCS-51单片机的中断系统外部中断外部中断0(INT0):当):当P3.2引脚输入引脚输入低电平或者下低电平或者下降沿时,产生降沿时,产生中断请求中断请求外部中断源外部中断源外部中断外部中断1(INT1):当):当P3.3引脚输入引脚输入低电平或者下低电平或者下降沿时,产生降沿时,产生中断请求中断请求第5章 51单片机的中断与定时第5章 51单片机的中断与定时定时器控制寄存器TCON 第二节 MCS-51单片机的中断系统第二节 MCS-51单片机的中断系统定时器定时
6、器/计数计数器器0(T0):):T0计数到发计数到发生溢出时,产生溢出时,产生中断请求生中断请求定时中断源定时中断源定时器定时器/计数计数器器1(T1):):T1计数到发计数到发生溢出时,产生溢出时,产生中断请求生中断请求第5章 51单片机的中断与定时TCONTCON寄存寄存寄存寄存器高器高器高器高4 4位位位位第二节 MCS-51单片机的中断系统第5章 51单片机的中断与定时TF0:T0溢出中断请求标志位溢出中断请求标志位TR1:T1运行控制位运行控制位TF1:T1溢出中断请求标志位溢出中断请求标志位TR0:T0运行控制位运行控制位第二节 MCS-51单片机的中断系统串口中断源串口中断源当单
7、片机串行当单片机串行口接收或发送口接收或发送完一帧数据时,完一帧数据时,串行口会产生串行口会产生中断请求中断请求第5章 51单片机的中断与定时第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统5.2.5.2.2 2 中断请求的控制中断请求的控制MCS-51系列单片机为用户提供了系列单片机为用户提供了2个个特殊功能寄存器:中断允许控制寄存特殊功能寄存器:中断允许控制寄存器器IE、中断优先级控制寄存器、中断优先级控制寄存器IP来进来进行中断系统的控制行中断系统的控制第5章 51单片机的中断与定时中断允许控制寄存器(IE)第二节 MCS-51单片机的中断系统第5章 51单片机的中断与
8、定时第二节 MCS-51单片机的中断系统【例例5-1】允许允许MCS-51片内两个定时器片内两个定时器/计计数器中断,禁止其他中断源的中断请求,请数器中断,禁止其他中断源的中断请求,请编写出设置编写出设置IE的相应程序段。的相应程序段。解法一:用位操作指令来编写,如下程序段解法一:用位操作指令来编写,如下程序段:SETB ET0 ;允许定时器;允许定时器/计数器计数器T0中断中断 SETB ET1 ;允许定时器;允许定时器/计数器计数器T1中断中断 SETB EA ;CPU开中断开中断解法二:用字节操作指令来编写解法二:用字节操作指令来编写:MOV IE,#8AH第5章 51单片机的中断与定时
9、中断优先级控制寄存器(IP)第二节 MCS-51单片机的中断系统第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统如果同一优先级的几个中断源同时发中断请如果同一优先级的几个中断源同时发中断请求时,系统按硬件设定的自然优先级顺序响求时,系统按硬件设定的自然优先级顺序响应中断,自然优先级从高到低的顺序如下应中断,自然优先级从高到低的顺序如下:第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统5.2.35.2.3 中断的响应过程中断的响应过程中断中断功能功能中断请求中断请求中断查询中断查询中断响应中断响应中断返回中断返回中断服务中断服务12345中断源向中断源向CPU
10、CPU发出请求中断的信号,要求发出请求中断的信号,要求CPUCPU中断原来执行的程序,转去为它服务。中断原来执行的程序,转去为它服务。外部中断源可通过中断请求线向外部中断源可通过中断请求线向CPUCPU发中断发中断请求信号,内部中断源直接向请求信号,内部中断源直接向CPUCPU申请中断。申请中断。当有中断源发出中断请求时,当有中断源发出中断请求时,CPUCPU就将相应就将相应的中断请求标志位置的中断请求标志位置“1”1”,以此请求一次,以此请求一次中断服务。中断服务。第5章 51单片机的中断与定时1.中断请求第二节 MCS-51单片机的中断系统CPUCPU每个机器周期都会检查各个中断源,看每个
11、机器周期都会检查各个中断源,看看是否有发出中断请求。即看是否有发出中断请求。即CPUCPU查询查询TCONTCON寄寄存器和存器和SCONSCON寄存器中的各个中断请求标志寄存器中的各个中断请求标志位的状态,确定是哪个中断源发出中断请位的状态,确定是哪个中断源发出中断请求,查询时按优先级顺序进行查询,即先求,查询时按优先级顺序进行查询,即先查询高优先级再查询低优先级。如果优先查询高优先级再查询低优先级。如果优先级相同,则按自然优先级顺序查询。级相同,则按自然优先级顺序查询。第5章 51单片机的中断与定时2.中断查询第二节 MCS-51单片机的中断系统当中断源发出中断请求当中断源发出中断请求且满
12、足中断响应条且满足中断响应条件,件,CPUCPU将立即响应该中断请求将立即响应该中断请求。中断响应。中断响应时首先将优先级状态触发器置时首先将优先级状态触发器置“1”1”,以阻,以阻断同级或低级的中断请求。然后将断点地断同级或低级的中断请求。然后将断点地址压入堆栈保护,再由硬件自动执行一条址压入堆栈保护,再由硬件自动执行一条长调用指令将对应的中断入口地址送入程长调用指令将对应的中断入口地址送入程序计数器序计数器PCPC中,使程序转到该中断入口地中,使程序转到该中断入口地址,并执行中断服务程序。址,并执行中断服务程序。第5章 51单片机的中断与定时3.中断响应第二节 MCS-51单片机的中断系统
13、第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统中断入口地址:中断入口地址:INT0:0003HT0:000BHINT1:0013HT1:001BH串口:串口:0023H中断服务一般包括保护现场、处理中断源中断服务一般包括保护现场、处理中断源的请求以及恢复现场三部分内容。一般主的请求以及恢复现场三部分内容。一般主程序和中断服务程序都可能会用到累加器程序和中断服务程序都可能会用到累加器A A、程序状态字、程序状态字PSWPSW和一些其他寄存器,所以和一些其他寄存器,所以需要保护现场。待中断服务结束返回主程需要保护现场。待中断服务结束返回主程序之前再恢复现场。序之前再恢复现场。第
14、5章 51单片机的中断与定时4.中断服务第二节 MCS-51单片机的中断系统中断返回由专门的中断返回指令中断返回由专门的中断返回指令“RETI”“RETI”实现,该指令执行时,将保存在堆栈中的实现,该指令执行时,将保存在堆栈中的断点地址取出,送入程序计数器断点地址取出,送入程序计数器PCPC中,程中,程序转到断点处继续执行原来的程序。同时序转到断点处继续执行原来的程序。同时还将优先级状态触发器清还将优先级状态触发器清“0”“0”,将部分,将部分中断请求标志(除串行口中断请求标志中断请求标志(除串行口中断请求标志TITI和和RIRI外)清外)清“0”“0”第5章 51单片机的中断与定时5.中断返
15、回第二节 MCS-51单片机的中断系统定时定时/计数器中断请求计数器中断请求标志的撤除标志的撤除串行口中断请求标志的撤除串行口中断请求标志的撤除外部中断请求的撤除外部中断请求的撤除中断请求中断请求中断请求中断请求的撤除的撤除的撤除的撤除第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统5.2.5.2.4 4 中断请求的撤除中断请求的撤除 中断响应后,由硬件自动把定时中断响应后,由硬件自动把定时/计计数器数器0 0中断请求标志位中断请求标志位TF0TF0或定时或定时/计数器计数器1 1中断请求标志位中断请求标志位TF1TF1清清“0”0”,此操作不需,此操作不需要用户参与。要用户
16、参与。第5章 51单片机的中断与定时1.定时/计数器中断请求标志的撤除第二节 MCS-51单片机的中断系统串口中断响应后,系统没有用硬件清除串口中断响应后,系统没有用硬件清除TITI或或RIRI,所以必须在中断服务程序中用软件,所以必须在中断服务程序中用软件(指令)将串行发送中断请求标志位(指令)将串行发送中断请求标志位TITI或或串行接收中断请求标志位串行接收中断请求标志位RIRI清清“0”0”第5章 51单片机的中断与定时2.串行口中断请求标志的撤除第二节 MCS-51单片机的中断系统CLR TI ;清;清TI标志位标志位CLR RI ;清;清RI标志位标志位 脉冲触发方式外中断请求的撤除
17、脉冲触发方式外中断请求的撤除 对于采用负脉冲触发方式的外部中断对于采用负脉冲触发方式的外部中断0 0中断请求标志位中断请求标志位IE0IE0和外部中断和外部中断1 1中断请求中断请求标志位标志位IE1IE1的清的清“0”0”是由单片机硬件自动是由单片机硬件自动完成的,用户无需参与。完成的,用户无需参与。第5章 51单片机的中断与定时3.外部中断请求的撤除第二节 MCS-51单片机的中断系统 低电平触发方式外中断请求的撤除低电平触发方式外中断请求的撤除 对低电平触发方式的外部中断请求信号,需要对低电平触发方式的外部中断请求信号,需要外加电路,在中断响应后将外加电路,在中断响应后将INT0INT0
18、、INT1INT1引脚的低引脚的低电平中断请求信号撤除,即将电平中断请求信号撤除,即将INT0INT0、INT1 INT1 引脚电引脚电平从低电平强制为高电平平从低电平强制为高电平第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统ANL P1,#0FEH;P1.0输出输出“0”ORL P1,#01H;P1.0输出输出“1”第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统5.2.5 5.2.5 外中断应用举例外中断应用举例 中断初始化程序实质上就是对中断初始化程序实质上就是对TCONTCON、SCONSCON、IEIE和和IPIP寄存器的管理和控制。寄存器的管理
19、和控制。1 1)对外中断源,要设置中断请求是采用)对外中断源,要设置中断请求是采用 低电平触发方式还是下降沿触发方式低电平触发方式还是下降沿触发方式2 2)设置中断允许控制寄存器)设置中断允许控制寄存器IEIE3 3)设置中断优先级寄存器)设置中断优先级寄存器IPIP1.中断初始化程序第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统【例例5-3】设外部中断设外部中断0为下降沿触发方式,为下降沿触发方式,高优先级,试编写中断初始化程序。高优先级,试编写中断初始化程序。解法一:用位操作指令:解法一:用位操作指令:SETB IT0;下降沿触发中断请求;下降沿触发中断请求SETB E
20、X0 ;外中断;外中断0开中断开中断 SETB EA ;开中断允许总控制位;开中断允许总控制位SETB PX0;外中断;外中断0高优先级高优先级解法二:用字节指令也可对解法二:用字节指令也可对IE和和IP进行设置:进行设置:SETB IT0 ;下降沿触发中断请求下降沿触发中断请求MOV IE,#81H ;同时置位;同时置位EA和和EX0ORL IP,#01H ;置位;置位PX0 中断服务程序是一种为中断源的特定中断服务程序是一种为中断源的特定要求服务的独立程序段,以中断返回指令要求服务的独立程序段,以中断返回指令RETIRETI结束,中断服务完后返回到原来被中结束,中断服务完后返回到原来被中断
21、的地方(即断点)继续执行原来的程序断的地方(即断点)继续执行原来的程序 在中断响应过程中,断点的保护主要在中断响应过程中,断点的保护主要由硬件电路自动完成。由硬件电路自动完成。用户在编写中断服务程序时需要考虑用户在编写中断服务程序时需要考虑保护现场的问题。保护现场的问题。第5章 51单片机的中断与定时2.中断服务程序第二节 MCS-51单片机的中断系统第5章 51单片机的中断与定时3.中断程序的结构第二节 MCS-51单片机的中断系统主程序结构:主程序结构:ORG 0000HLJMP MAINORG 中断入口中断入口LJMP INT ORG XXXXHMAIN:主程序主程序 INT:中断服务程
22、序中断服务程序 END中断服务程序结构中断服务程序结构:INT:CLR EA ;关中断;关中断PUSH PSW;现场保护;现场保护PUSH ACC SETB EA ;开中断;开中断 ;中断处理中断处理CLR EA ;关中断;关中断POP ACC ;现场恢复;现场恢复POP PSW SETB EA ;开中断;开中断RETI ;中断返回中断返回第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统【例例5-4】将单脉冲接到外中断将单脉冲接到外中断0(INT0)引脚,利)引脚,利用用P1.0作为输出,经反相器接发光二极管。编写程序,作为输出,经反相器接发光二极管。编写程序,每按动一次按钮
23、,产生一个外中断信号,使发光二极每按动一次按钮,产生一个外中断信号,使发光二极管的状态发生变化,由亮变暗,或反之管的状态发生变化,由亮变暗,或反之第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统ORG0000HLJMPMAIN;转主程序;转主程序ORG0003H;外中断;外中断0中断入口中断入口LJMPT0INT;转中断服务程序入口;转中断服务程序入口ORG0030H;主程序;主程序MAIN:SETBIT0;置下降沿触发方式;置下降沿触发方式MOVIE,#81H;外中断;外中断0开中断开中断CLRP1.0;灯的初始状态为暗;灯的初始状态为暗WAIT:NOP;等待中断;等待中断
24、SJMPWAITORG0100H;中断服务程序;中断服务程序T0INT:CPLP1.0;中断处理;中断处理RETI;中断返回;中断返回END对外中断对外中断0 0开中断,则中断允许寄存器开中断,则中断允许寄存器IEIE设置设置 第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统例如某系统有例如某系统有5个外部中断源,其优先顺序个外部中断源,其优先顺序从高到低依此为:外设从高到低依此为:外设0 外设外设4。把其中。把其中最高级别的中断源外设最高级别的中断源外设0直接接到直接接到MCS-51的的外部中断请求输入端外部中断请求输入端INT0,其余,其余4个外部中个外部中断源外设断源外
25、设1外设外设4用用“线或线或”的方法连到的方法连到MCS-51的另一个外中断请求输入端的另一个外中断请求输入端INT1,同时还将它们分别连到同时还将它们分别连到P1.0P1.3脚脚第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统第5章 51单片机的中断与定时第二节 MCS-51单片机的中断系统ORG 0013H ;外中断;外中断1中断入口中断入口LJMP INT1 INT1:PUSH PSW;保护现场;保护现场 PUSH ACCJB P1.0,IR1;P1.0=1,IR1请求请求JB P1.1,IR2;P1.1=1,IR2请求请求JB P1.2,IR3;P1.2=1,IR1请
26、求请求 JB P1.3,IR4;P1.4=1,IR4请求请求INTIR:POP ACC;恢复现场;恢复现场 POP PSW RETI ;中断返回;中断返回 IR1:(IR1的中断程序)的中断程序)AJMP INTIR ;IR2:(IR2的中断程序)的中断程序)AJMP INTIR ;IR3:(IR3的中断程序)的中断程序)AJMP INTIR ;IR4:(IR4的中断程序)的中断程序)AJMP INTIR第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器MCS-51系列单片机内部有两个系列单片机内部有两个16位可编程位可编程定时定时/计数器计数器T0和和T1,常简称为定时器,常简
27、称为定时器0和定和定时器时器1。在特殊功能寄存器。在特殊功能寄存器TMOD和和TCON的的控制下,它们既可以设定成定时器使用,也控制下,它们既可以设定成定时器使用,也可以设定成计数器使用。定时可以设定成计数器使用。定时/计数器有计数器有4种种工作方式,而且具有中断请求的功能,可以工作方式,而且具有中断请求的功能,可以完成定时、计数、脉冲输出等任务完成定时、计数、脉冲输出等任务 第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器5.3.1 5.3.1 定时与计数原理定时与计数原理定时定时/计数器的核心是一个加计数器的核心是一个加1计数器,当定计数器,当定时时/计数器设置在计数方式时
28、,可对外部输计数器设置在计数方式时,可对外部输入脉冲进行计数,每来一个外部输入脉冲信入脉冲进行计数,每来一个外部输入脉冲信号,计数器就加号,计数器就加1。第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器当定时当定时/计数器设置在定时方式时,是对内计数器设置在定时方式时,是对内部标准脉冲(由晶体振荡器产生的振荡信号部标准脉冲(由晶体振荡器产生的振荡信号经经12分频得到的脉冲信号)进行计数,由于分频得到的脉冲信号)进行计数,由于此时的计数脉冲的频率与机器周期频率相等,此时的计数脉冲的频率与机器周期频率相等,所以可以看成是对机器周期信号进行计数,所以可以看成是对机器周期信号进行计数,
29、即即1个机器周期输入个机器周期输入1个计数脉冲,定时器加个计数脉冲,定时器加1。由于机器周期的时间是固定的,所以定。由于机器周期的时间是固定的,所以定时时间就等于计数值乘以机器周期时间时时间就等于计数值乘以机器周期时间第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器5.3.2 5.3.2 定时器定时器/计数器的控制计数器的控制定时定时/计数器控制寄存器计数器控制寄存器TCON主要用于定时主要用于定时/计数器的计数器的启动、停止及计数溢出控制,定时启动、停止及计数溢出控制,定时/计数器方式寄存器计数器方式寄存器TMOD用于定时或计数功能选择、工作方式选择及启用于定时或计数功能选择
30、、工作方式选择及启动方式选择控制。动方式选择控制。第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器1.定时器工作方式寄存器(TMOD)控制控制T1控制控制T0第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器2.定时器控制寄存器(TCON)定时器用定时器用外中断用外中断用第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器5.3.3 5.3.3 定时器定时器/计数器的工作方式计数器的工作方式定时定时定时定时/计数器计数器计数器计数器工作方式工作方式工作方式工作方式方式方式1:16位定时器位定时器/计数器计数器方式方式2:8位可自动重装初值位可自动重装初
31、值的定时器的定时器/计数器计数器方式方式3:T0分成两个分成两个8位计数器位计数器T1停止计数停止计数方式方式0:13位定时器位定时器/计数器计数器第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器1.方式0 13位定时器/计数器当当TMODTMOD寄存器中的寄存器中的M1M0=00M1M0=00时,定时时,定时/计数计数器被选为工作方式器被选为工作方式0 0,这是一种,这是一种1313位定时位定时/计计数器方式,由数器方式,由TH0TH0的的8 8位和位和TL0TL0的低的低5 5位构成,位构成,TL0TL0的高的高3 3位未用位未用第5章 51单片机的中断与定时第三节 51单
32、片机的定时器/计数器定时/计数器0工作在方式0时的结构第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器2.方式1 16位定时器/计数器当当TMODTMOD寄存器中的寄存器中的M1M0=01M1M0=01时,定时时,定时/计数器计数器被选为工作方式被选为工作方式1 1。这是一种。这是一种1616位的定时位的定时/计计数器方式,由数器方式,由TH0TH0的的8 8位和位和TL0TL0的的8 8位构成位构成 方式方式1的定时时间为:的定时时间为:第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器3.方式2 8位可自动重装初值的 定时器/计数器当当TMODTMOD寄存器中
33、的寄存器中的M1M0=10M1M0=10时,定时时,定时/计数器计数器被选为工作方式被选为工作方式2 2。这是一种可自动重装初。这是一种可自动重装初值的值的8 8位定时位定时/计数器,此时计数器,此时TL0TL0用作用作8 8位计数位计数器,器,TH0TH0用作保存计数初值用作保存计数初值方式方式2的定时时间为:的定时时间为:t=(28初值)初值)TM第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器4.方式3 T0分成两个8位计数器 T1停止计数当当TMODTMOD寄存器中的寄存器中的M1M0=11M1M0=11时,定时时,定时/计数器计数器被选为工作方式被选为工作方式3 3。
34、此时。此时T0T0分成两个独立的分成两个独立的定时定时/计数器计数器TL0TL0和和TH0TH0,而,而T1T1停止计数,但停止计数,但可用作波特率发生器可用作波特率发生器 方式方式3的定时时间为:的定时时间为:t=(28初值)初值)TM第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器5.3.4 5.3.4 定时器定时器/计数器应用举例计数器应用举例定时定时定时定时/计数器计数器计数器计数器初始化编程初始化编程初始化编程初始化编程定时定时/计数器开中断,计数器开中断,即对即对IE、IP寄存器赋值寄存器赋值置定时置定时/计数器初值,计数器初值,即对即对TH0/1、TL0/1寄存器
35、赋值寄存器赋值启动定时启动定时/计数器,将计数器,将TCON寄存器的寄存器的TR0或或TR1置置“1”确定工作方式,即对定时器确定工作方式,即对定时器方式寄存器方式寄存器TMOD赋值赋值第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器初值的计算定时初值:定时初值:计数初值:计数初值:X=M n第5章 51单片机的中断与定时【例例5-5】已知已知MCS-51单片机晶振频率为单片机晶振频率为12MHz,试分别计算在方式,试分别计算在方式1和方式和方式0下定时下定时器器T1定时定时2ms所需的定时器初值所需的定时器初值第三节 51单片机的定时器/计数器因为晶振频率为因为晶振频率为12
36、MHz12MHz,所以机器周期为:,所以机器周期为:第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器如果采用定时功能工作方式如果采用定时功能工作方式1 1,则初值为:,则初值为:所以,所以,TH1=F8H,TL1=30H如果采用定时功能工作方式如果采用定时功能工作方式0 0,则初值为:,则初值为:TH1=11000001B=C1H,TL1=10000B=10H第5章 51单片机的中断与定时【例例5-6】已知单片机晶振频率为已知单片机晶振频率为6MHz,要,要求用定时求用定时/计数器计数器T0工作方式工作方式1,在,在P1.0脚输脚输出周期为出周期为2ms的连续方波,如图所示,试
37、采的连续方波,如图所示,试采用中断方式编写程序用中断方式编写程序第三节 51单片机的定时器/计数器 第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器定时器方式寄存器定时器方式寄存器TMODTMOD的设置的设置所以,所以,TH0=FEH,TL0=0CH已知晶振频率为已知晶振频率为6MHz6MHz,则机器周期为,则机器周期为2s2s,初值为:,初值为:第5章 51单片机的中断与定时ORG0000H LJMPMAIN ;转主程序;转主程序 ORG000BH ;T0中断入口地址中断入口地址 LJMPT0INT ;转;转T0中断服务程序中断服务程序 ORG0030H ;主程序;主程序MA
38、IN:MOVTMOD,#01H ;设置定时器方式;设置定时器方式MOVTH0,#0FEH ;送初值;送初值MOVTL0,#0CHSETB EA ;开中断总允许;开中断总允许SETB ET0 ;开;开T0中断允许中断允许SETBTR0;启动;启动T0开始定时开始定时HERE:SJMP HERE;等待;等待T0中断中断 ORG0100H ;T0中断服务程序中断服务程序T0INT:MOVTH0,#0FEH ;重装初值;重装初值 MOVTL0,#0CH CPLP1.0 ;P1.0取反取反 RETI ;中断返回;中断返回 END第三节 51单片机的定时器/计数器第5章 51单片机的中断与定时【例例5-7
39、】已知单片机晶振频率为已知单片机晶振频率为6MHz,要,要求用定时求用定时/计数器计数器T0工作方式工作方式1,在,在P1.0脚输脚输出周期为出周期为2ms的连续方波,如图所示的连续方波,如图所示,试采试采用查询方式编写程序用查询方式编写程序第三节 51单片机的定时器/计数器 第5章 51单片机的中断与定时ORG1000HMOVTMOD,#01H ;设置定时器方式;设置定时器方式MOVTH0,#0FEH ;送初值;送初值MOVTL0,#0CHSETBTR0;启动;启动T0开始定时开始定时LOOP:JBC TF0,NEXT ;TF0为为1则转则转T0PRO SJMP LOOP ;TF0为为0,则
40、等待,则等待NEXT:MOVTH0,#0FEH;重装初值;重装初值 MOVTL0,#0CH CPLP1.0 ;P1.0取反取反 SJMP LOOP ;处理完毕转;处理完毕转LOOPEND第三节 51单片机的定时器/计数器工作中查询定时器工作中查询定时器0 0的溢出标志位的溢出标志位TF0TF0第5章 51单片机的中断与定时【例例5-8】硬件连接如图所示,要求用定时硬件连接如图所示,要求用定时器器T1的工作方式的工作方式2对外部脉冲进行计数。每对外部脉冲进行计数。每计满计满10个脉冲,就使个脉冲,就使P1.0引脚外接的发光二引脚外接的发光二极管的状态发生变化,由亮变暗,或反之极管的状态发生变化,
41、由亮变暗,或反之第三节 51单片机的定时器/计数器 第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器定时器方式寄存器定时器方式寄存器TMODTMOD的设置的设置 X=2810=246=F6H TL1=F6H,重装初值寄存器,重装初值寄存器TH1=F6HT1T1的初值:的初值:TMOD 0110 0000 B60H 第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器中断允许寄存器中断允许寄存器IEIE的设置的设置IE 1 0 0 0 1 0 0 0 B=88H第5章 51单片机的中断与定时 ORG 0000HLJMP MAINORG 001BH;T1中断入口中断入口
42、LJMPINTT1 ORG 0100H;主程序;主程序MAIN:MOV TMOD,#60H;设;设T1为方式为方式2计数计数 MOV TL1,#0F6H ;T0置初值置初值 MOV TH1,#0F6H MOVIE,#88H SETB TR1;启动;启动T1开始计数开始计数HERE:SJMP HEREORG0200H;T1中断服务程序中断服务程序INTT1:CPL P1.0;P1.0位取反位取反 RETIEND第三节 51单片机的定时器/计数器第5章 51单片机的中断与定时【例例5-9】51单片机单片机P1.0P1.7分别通过反分别通过反相器接相器接8个发光二极管,要求用个发光二极管,要求用T1
43、定时编写定时编写程序,每隔程序,每隔1s循环点亮循环点亮1只发光二极管,一只发光二极管,一直循环下去,已知系统的晶振频率为直循环下去,已知系统的晶振频率为6MHz第三节 51单片机的定时器/计数器 第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器解 题 思 路要求每隔要求每隔1s1s循环点亮循环点亮1 1只发光二极管,则只发光二极管,则定时器定时器T1T1需要定时需要定时1s1s,这个值超过了定时,这个值超过了定时器的最大定时时间。为此,可采用定时器器的最大定时时间。为此,可采用定时器定时与软件计数相结合的方法来解决问题。定时与软件计数相结合的方法来解决问题。本题用定时器本题用
44、定时器T1T1,每隔,每隔0.1s0.1s中断中断1 1次,向次,向CPUCPU申请中断,用申请中断,用R0R0计中断的次数。当计中断的次数。当R0R0计到计到1010次中断时,则次中断时,则1 1秒时间到,循环点秒时间到,循环点亮下亮下1 1只发光二极管只发光二极管第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器定时器方式寄存器定时器方式寄存器TMODTMOD的设置的设置 所以所以,TH1=3CH,TL1=B0H定时器定时器T1T1的初值:的初值:TMOD 0001 0000 B10H 第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器中断允许寄存器中断允许寄存
45、器IEIE的设置的设置IE 1 0 0 0 1 0 0 0 B=88H第5章 51单片机的中断与定时 ORG0000HLJMPSTARTORG001BH ;T1中断入口中断入口LJMPIT11ORG0100H;主程序;主程序START:MOVA,#01H;点亮第;点亮第1个个LED灯灯MOVP1,AMOVR0,#0AH ;设置中断次数;设置中断次数10次次MOVTMOD,#10H;置定时器;置定时器1工作方式工作方式1MOVTH1,#3CH;送初值;送初值MOVTL1,#0B0HMOVIE,#88H;开中断;开中断SETBTR1;启动定时器;启动定时器第三节 51单片机的定时器/计数器【例5-
46、9】源程序:第5章 51单片机的中断与定时LOOP:CJNER0,#00H,NEXT;R00则转则转NEXTMOVR0,#0AH;否则;否则1s延时到,重置延时到,重置R0RLA;A左移左移MOVP1,A;点亮下;点亮下1个个LED灯灯NEXT:SJMPLOOP ORG0300HIT11:DECR0MOVTH1,#3CH;重置初值;重置初值MOVTL1,#0B0HRETIEND 第三节 51单片机的定时器/计数器【例5-9】源程序(续):第5章 51单片机的中断与定时第三节 51单片机的定时器/计数器5.3.5 5.3.5 用定时器用定时器/计数器扩展外中断计数器扩展外中断 在计数工作模式下,
47、在计数工作模式下,T0(或(或T1)引脚上发)引脚上发生负跳变时,生负跳变时,T0(或(或T1)计数器会加)计数器会加1,利,利用这个特性,可以把用这个特性,可以把T0(或(或T1)引脚作为扩)引脚作为扩展的外部中断请求输入引脚,而定时器展的外部中断请求输入引脚,而定时器/计计数器的溢出中断标志数器的溢出中断标志TF0(或(或TF1)就借用)就借用作外部中断请求标志作外部中断请求标志第5章 51单片机的中断与定时 ORG 0000HLJMP MAIN;跳到主程序;跳到主程序ORG000BH;T0中断入口中断入口LJMPEXINT;跳转到扩展外中断服务程序;跳转到扩展外中断服务程序ORG0030H;主程序;主程序MAIN:MOV TMOD,#06H;设置计数器;设置计数器0工作方式工作方式2MOV TL0,#0FFH;给计数器设置初值;给计数器设置初值 MOV TH0,#0FFH;SETB ET0;允许;允许T0中断中断 SETB EA;允许总中断;允许总中断 SETB TR0;启动计数;启动计数 ORG2000H;扩展外中断服务程序;扩展外中断服务程序EXINT:PUSH PSW;保护现场;保护现场 ;对扩展外中断的处理;对扩展外中断的处理POPPSW;恢复现场;恢复现场RETI;中断返回;中断返回END第三节 51单片机的定时器/计数器