最新单片机定时与中断讲解ppt课件幻灯片

上传人:博****1 文档编号:570128017 上传时间:2024-08-02 格式:PPT 页数:37 大小:748KB
返回 下载 相关 举报
最新单片机定时与中断讲解ppt课件幻灯片_第1页
第1页 / 共37页
最新单片机定时与中断讲解ppt课件幻灯片_第2页
第2页 / 共37页
最新单片机定时与中断讲解ppt课件幻灯片_第3页
第3页 / 共37页
最新单片机定时与中断讲解ppt课件幻灯片_第4页
第4页 / 共37页
最新单片机定时与中断讲解ppt课件幻灯片_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《最新单片机定时与中断讲解ppt课件幻灯片》由会员分享,可在线阅读,更多相关《最新单片机定时与中断讲解ppt课件幻灯片(37页珍藏版)》请在金锄头文库上搜索。

1、进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记忆中的故那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着一把,忽闪忽闪个不停,嘴里叨叨着“怎么这么热怎么这么热”,于是三五成群,聚在大树,于是三五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩

2、子们却在周下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到围跑跑跳跳,热得满头大汗,不时听到“强子,别跑了,快来我给你扇扇强子,别跑了,快来我给你扇扇”。孩。孩子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,母亲总是,好似生气的样子,边扇边训,“你看热的,跑什么?你看热的,跑什么?”此时这把蒲扇,此时这把蒲扇,是那么凉快,那么的温馨幸福,有母亲的味道!蒲扇是中国传统工艺品,在是那么凉快,那么的温馨幸福,有母亲的味

3、道!蒲扇是中国传统工艺品,在我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,圆,轻巧又便宜的蒲扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的半个人

4、生的轨迹,携带着特有的念想,一年年,一天天,流向长也走过了我们的半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧道,袅长的时间隧道,袅单片机定时与中断讲解ppt课件定时定时/ /计数器计数器 8051单片机内部有两个16位的可编程定时/计数器,称为T0(T0)和T1(T1) 例如:设定时器例如:设定时器T0为定时工作方式,要求用软件启动为定时工作方式,要求用软件启动 定时器定时器T0工作,按方式工作,按方式1工作;定时器工作;定时器T1为计数为计数 工作方式,要求软件启动,工作方式为方式工作方式,要求软件启动,工作方式为方式2。 则根据则根据TMOD各位的定义可知,其控制字为

5、:各位的定义可知,其控制字为: 即控制字为61H,其指令形式为: MOV TMOD,#61H格式: D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 0 1 1 0 0 0 0 1定时器的控制寄存器定时器的控制寄存器TCONTCON作用:作用:TMOD用来控制两个定时器的启动、停止,表明定时器的溢出、中断情况。字节地址:字节地址:88H,可以位寻址。系统复位时,所有位均清零。格式:格式: D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0各位的含义:各位的含义:TCON中的低4

6、位与中断有关,在中断章节中讨论。TF1 (8FH)TF1 (8FH):定时器1溢出标志。计满后自动置1。TR1 (8EH)TR1 (8EH):定时器1运行控制位。由软件清零关闭定时器1。当GATE=0时,TR1 软件置1即启动定时器1 。(SETB TR1)当GATE=1时,且INT1为高电平时,TR1置1启动定时器1 ; 定时器的四种工作方式定时器的四种工作方式方式的选择:根据方式的选择:根据M1,M0来选择。来选择。 00:方式0 01:方式1 10: 方式2 11: 方式3主要特点:主要特点:主要特点:主要特点:方式方式0 0:1313位定时器。位定时器。 TH0 TH0的的8 8位位+

7、TL0+TL0的低的低5 5位位 方式方式1 1:1616位定时器。位定时器。 TH0 TH0的的8 8位位+TL0+TL0的的8 8位位 方式方式2 2:能重复置初始值的:能重复置初始值的8 8位定时器位定时器 。 TL0 TL0和和TH0TH0必须赋相必须赋相同的值。同的值。方式方式3 3:只适用于定时器:只适用于定时器0 0,T0T0被拆成两个独立的被拆成两个独立的8 8位定时器位定时器TL0,TH0TL0,TH0。 其中:其中:TL0TL0与方式与方式与方式与方式0 0、1 1相同,可定时或计数相同,可定时或计数相同,可定时或计数相同,可定时或计数。用定时器。用定时器T0T0的的 GA

8、TE GATE、C/TC/T、TR0TR0、TF0TF0、T0T0、和、和INT0INT0控制。控制。 TH0TH0只可用作简单的内部定时功能。只可用作简单的内部定时功能。只可用作简单的内部定时功能。只可用作简单的内部定时功能。占用占用T1T1的控制的控制位位TF1TF1、TR1TR1和和INT1INT1,启动关闭仅受,启动关闭仅受TR1TR1控制。控制。定时器的方式定时器的方式0 0、1 1示意图示意图返回TF0 TH0 TL0 12分频OSC中断高8位8位或低5位控制+T0(P3.4)TR0GATEINT0(P3.2)C/T=0C/T=1定时器的方式定时器的方式2 2示意图示意图 TH08

9、位8位 TL0 12分频OSC控制+T0(P3.4)TR0GATEINT0(P3.2)C/T=0C/T=1 1中断TF0 0溢出定时器的初始值的计算定时器的初始值的计算对于不同的工作方式,计数器位数不同,故最大计数值M也不同: 方式0:M=213=8192 方式1:M=216=65536 方式2:M=28=256 方式3:定时器0分为2个8位计数器,每个M均为256。因为定时/计数器是作加1计数,并在计满溢出时产生中断,因此初值X的计算如下: X = M 计数值 计算出来的结果X转换为16进制数后分别写入TL0(TL1)、TH0(TH1)。注意!方式0时初始值写入时,对于TL不用的高3位应填入

10、0!用用T1T1、工作方式、工作方式0 0实现实现1 1秒延时函数,晶振频率为秒延时函数,晶振频率为12MHz12MHz。方式方式0 0采用采用1313位计数器,其最大定时时间为:位计数器,其最大定时时间为:8192181921 s = s = 8.192ms8.192ms,因此,定时时间不可能象任务,因此,定时时间不可能象任务7 7中一样选择中一样选择50ms50ms,可选择定时时间为,可选择定时时间为5ms5ms,再循环,再循环200200次。次。定时时间为定时时间为5ms5ms,则计数值为,则计数值为5ms/15ms/1 s =5000s =5000,T1T1的初值为:的初值为: X =

11、 M X = M 计数值计数值= 8192 = 8192 5000 = 3192 = C78H = 5000 = 3192 = C78H = 0110001111000B0110001111000B1313位计数器中位计数器中TL1TL1的高的高3 3位未用,填写位未用,填写0 0,TH1TH1占高占高8 8位,所以,位,所以,X X的实际填写值应为:的实际填写值应为:X = 01100011X = 0110001100000011000B = 6318H11000B = 6318H举 例1用用T1T1方式方式0 0实现任务实现任务7 7中中1 1秒延时函数如下:秒延时函数如下: void d

12、elay1s()void delay1s() unsigned char i; unsigned char i; TMOD=0x00; TMOD=0x00; / / 置置T1T1为工作方式为工作方式0 0 for(i=0;i0xc8;i+) for(i=0;i0xc8;i+) / / 设置设置200200次循环次数次循环次数 TH1=0x63; TH1=0x63;/ / 设置定时器初值设置定时器初值 TL1=0x18; TL1=0x18; TR1=1; TR1=1; / / 启动启动T1T1 while(!TF1); / while(!TF1); / 查询计数是否溢出,即定时查询计数是否溢出,

13、即定时5ms5ms时时间到,间到,TF1=1TF1=1 TF1=0; TF1=0; / 5ms/ 5ms定时时间到,定时时间到,将定时器溢出标志位将定时器溢出标志位TF1TF1清零清零 举 例1用用T1T1、工作方式、工作方式2 2实现实现1 1秒延时,晶振频率为秒延时,晶振频率为12MHz12MHz。因工作方式因工作方式2 2是是8 8位计数器,其最大定时时间为:位计数器,其最大定时时间为:25612561 s s = 256= 256 s s,为实现,为实现1 1秒延时,可选择定时时间为秒延时,可选择定时时间为250250 s s,再,再循环循环40004000次。定时时间选定后,可确定计

14、数值为次。定时时间选定后,可确定计数值为250250,则,则T1T1的初值为:的初值为:X = M X = M 计数值计数值=256 =256 250 = 6 = 6H 250 = 6 = 6H。采用。采用T1T1方式方式2 2工作,因此,工作,因此,TMOD =0x20TMOD =0x20。举 例2用定时器工作方式用定时器工作方式2 2实现的实现的1 1秒延时函数如下:秒延时函数如下:void delay1s()void delay1s() unsigned int i; unsigned int i;/ i/ i取值范围为取值范围为0 040004000,因,因此不能定义成此不能定义成un

15、signed charunsigned char TMOD=0x20; TMOD=0x20; / / 设置设置T1T1为方式为方式2 2 TH1=6; TH1=6;/ / 设置定时器初值,设置定时器初值,放在放在forfor循环之外循环之外 TL1=6; TL1=6; for(i=0;i4000;i+) for(i=0;i4000;i+) / / 设置设置40004000次循环次数次循环次数 TR1=1; TR1=1; / / 启动启动T1T1 while(!TF1); / while(!TF1); / 查询计数是否溢出,即定时查询计数是否溢出,即定时250250 s s时间到,时间到,TF1

16、=1TF1=1 TF1=0; TF1=0; / 250/ 250 s s定时时间定时时间到,将定时器溢出标志位到,将定时器溢出标志位TF1TF1清零清零 举 例2p在在C C语言程序中,子程序的作用是由函数来实现的,函数是语言程序中,子程序的作用是由函数来实现的,函数是C C语言的语言的基本组成模块,一个基本组成模块,一个C C语言程序就是由若干个模块化的函数组成的。语言程序就是由若干个模块化的函数组成的。pC C程序都是由一个主函数程序都是由一个主函数main( )main( )和若干个子函数构成,有且只有一和若干个子函数构成,有且只有一个主函数,程序由主函数开始执行,主函数根据需要来调用其

17、他函数,个主函数,程序由主函数开始执行,主函数根据需要来调用其他函数,其它函数可以有多个。其它函数可以有多个。C语言的函数 1.1.标准库函数标准库函数 标准库函数是由标准库函数是由C51C51的编译器提供的,用户不必定义这的编译器提供的,用户不必定义这些函数,可以直接调用。些函数,可以直接调用。KEIL C51KEIL C51编译器提供了编译器提供了100100多个库多个库函数供我们使用。常用的函数供我们使用。常用的C51C51库函数包括一般库函数包括一般I/OI/O口函数、口函数、访问访问SFRSFR地址函数等,在地址函数等,在C51C51编译环境中,以头文件的形式编译环境中,以头文件的形

18、式给出。给出。2.2.用户自定义函数用户自定义函数 用户自定义函数是用户根据需要自行编写的函数,它必用户自定义函数是用户根据需要自行编写的函数,它必须先定义之后才能被调用。须先定义之后才能被调用。函数分类和定义 函数定义的一般形式是:函数定义的一般形式是:函数类型函数类型 函数名(形式参数表)函数名(形式参数表) 形式参数说明形式参数说明 局部变量定义局部变量定义函数体语句函数体语句 其中,其中,“函数类型函数类型”说明了自定义函数返回值的类型。说明了自定义函数返回值的类型。 “ “函数名函数名”是自定义函数的名字。是自定义函数的名字。 “ “形式参数表形式参数表”给出函数被调用时传递数据的形

19、式参数,形式参数给出函数被调用时传递数据的形式参数,形式参数的类型必须要加以说明。的类型必须要加以说明。ANSI CANSI C标准允许在形式参数表中对形式参数标准允许在形式参数表中对形式参数的类型进行说明。如果定义的是无参数函数,可以没有形式参数表,的类型进行说明。如果定义的是无参数函数,可以没有形式参数表,但是圆括号不能省略。但是圆括号不能省略。 “ “局部变量定义局部变量定义”是对在函数内部使用的局部变量进行定义。是对在函数内部使用的局部变量进行定义。 “ “函数体语句函数体语句”是为完成函数的特定功能而设置的语句。是为完成函数的特定功能而设置的语句。函数分类和定义 函数调用就是在一个函

20、数体中引用另外一个已经定义函数调用就是在一个函数体中引用另外一个已经定义的函数,前者称为主调用函数,后者称为被调用函数,函的函数,前者称为主调用函数,后者称为被调用函数,函数调用的一般格式为:数调用的一般格式为:函数名(实际参数列表);函数名(实际参数列表); 对于有参数类型的函数,若实际参数列表中有多个实对于有参数类型的函数,若实际参数列表中有多个实参,则各参数之间用逗号隔开。实参与形参顺序对应,个参,则各参数之间用逗号隔开。实参与形参顺序对应,个数应相等,类型应一致。数应相等,类型应一致。函数调用 在一个函数中调用另一个函数需要具备如下条件:在一个函数中调用另一个函数需要具备如下条件: (

21、1 1)被调用函数必须是已经存在的函数(库函数或)被调用函数必须是已经存在的函数(库函数或者用户自己已经定义的函数。者用户自己已经定义的函数。 如果函数定义在调用之后,那么必须在调用之前如果函数定义在调用之后,那么必须在调用之前(一般在程序头部)对函数进行声明。(一般在程序头部)对函数进行声明。 (2 2)如果程序使用了库函数,则要在程序的开头用)如果程序使用了库函数,则要在程序的开头用includeinclude预处理命令将调用函数所需要的信息包含在本预处理命令将调用函数所需要的信息包含在本文件中。如果不是在本文件中定义的函数,那么在程序文件中。如果不是在本文件中定义的函数,那么在程序开始要

22、用开始要用externextern修饰符进行函数原型说明。修饰符进行函数原型说明。函数调用 中断是指通过硬件来改变中断是指通过硬件来改变CPUCPU的运行方向。计算机在执行的运行方向。计算机在执行程序的过程中,外部设备向程序的过程中,外部设备向CPUCPU发出中断请求信号,要求发出中断请求信号,要求CPUCPU暂时中断当前程序的执行而转去执行相应的处理程序,暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的这种程序在执行过程中由于外界的原因而被中间打

23、断的情况称为情况称为“中断中断”。 什么是中断 (1)中断服务程序:CPU响应中断后,转去执行相应的处理程序,该处理程序通常称之为中断服务程序。(2)主程序:原来正常运行的程序称为主程序。(3)断点:主程序被断开的位置(或地址)称为断点。(4)中断源:引起中断的原因,或能发出中断申请的来源,称为中断源。(5)中断请求:中断源要求服务的请求称为中断请求(或中断申请。 中断基本概念 同步工作异常处理实时处理中断特点 中断系统的结构 MCS-51中断系统内部结构示意图MCS-51系列单片机中断源序号中断源说 明1外部中断0请求由P3.2引脚输入,通过IT0位(TCON.0)来决定是低电平有效还是下降

24、沿有效。一旦输入信号有效,即向CPU申请中断,并建立IE0(TCON.1)中断标志。任务9中采用下降沿有效,由按键产生下降沿。2外部中断1请求由P3.3引脚输入,通过IT1位(TCON.2)来决定是低电平有效还是下降沿有效。一旦输入信号有效,即向CPU申请中断,并建立IE1(TCON.3)中断标志。3TF0T0溢出中断请求当T0产生溢出时,T0溢出中断标志位TF0(TCON.5)置位(由硬件自动执行),请求中断处理。4TF1T1溢出中断请求当T1产生溢出时,T1溢出中断标志位TF1(TCON.7)置位(由硬件自动执行),请求中断处理。5RI或TI串行口中断请求当接收或发送完一个串行帧时,内部串

25、行口中断请求标志位RI(SCON.0)或TI(SCON.1)置位(由硬件自动执行),请求中断。中断标志 中断标志位位名称说 明TF1T1溢出中断标志TCON.7T1被启动计数后,从初值开始加1计数,计满溢出后由硬件置位TF1,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。也可由软件查询该标志,并由软件清0。前述的定时器编程都是采用查询方式实现。TF0T0溢出中断标志TCON.5T0被启动计数后,从初值开始加1计数,计满溢出后由硬件置位TF0,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。也可由软件查询该标志,并由软件清0。IE1中断标

26、志TCON.3IE1 = 1,外部中断1向CPU申请中断。IT1中断触发方式控制位TCON.2当IT1 = 0,外部中断1控制为电平触发方式;当IT1 = 1,外部中断1控制为边沿(下降沿)触发方式。IE0中断标志TCON.1IE0= 1,外部中断0向CPU申请中断。IT0中断触发方式控制位TCON.0当IT0= 0,外部中断0控制为电平触发方式;当IT0 = 1,外部中断0控制为边沿(下降沿)触发方式。TI串行发送中断标志SCON.1CPU将数据写入发送缓冲器SBUF时,启动发送,每发送完一个串行帧,硬件都使TI置位;但CPU响应中断时并不自动清除TI,必须由软件清除。RI串行接收中断标志S

27、CON.0当串行口允许接收时,每接收完一个串行帧,硬件都使RI置位;同样,CPU在响应中断时不会自动清除RI,必须由软件清除。中断的开放和禁止 MCS-51系列单片机的5个中断源都是可屏蔽中断,中断系统内部设有一个专用寄存器IE,用于控制CPU对各中断源的开放或屏蔽。IE寄存器格式如下:EAESET1EX1ET0EX0D7D6D5D4D3D2D1D0IE(A8H)中断的开放和禁止 中断允许位位名称说明EA总中断允许控制位IE.7EA = 1,开放所有中断,各中断源的允许和禁止可通过相应的中断允许位单独加以控制;EA = 0,禁止所有中断。ES串行口中断允许位IE.4ES = 1,允许串行口中断

28、;ES = 0禁止串行口中断。ET1T1中断允许位IE.3ET1 = 1,允许T1中断;ET1 = 0,禁止T1中断。EX1)中断允许位IE.2EX1 = 1,允许外部中断1中断;EX1 = 0,禁止外部中断1中断。ET0T0中断允许位IE.1ET0 = 1,允许T0中断;ET0 = 0,禁止T0中断。EX0)中断允许位IE.0EX0 = 1,允许外部中断0中断;EX0 = 0,禁止外部中断0中断。中断优先级 pMCS-51系列单片机有两个中断优先级:高优先级和低优先级。p每个中断源都可以通过设置中断优先级寄存器IP确定为高优先级中断或低优先级中断,实现二级嵌套。同一优先级别的中断源可能不止一

29、个,因此,也需要进行优先权排队。同一优先级别的中断源采用自然优先级。p中断优先级寄存器IP,用于锁存各中断源优先级控制位。IP中的每一位均可由软件来置1或清0,1表示高优先级,0表示低优先级。中断优先级 中断优先级控制位位名称说明PS串行口中断优先控制位IP.4PS = 1,设定串行口为高优先级中断;PS = 0,设定串行口为低优先级中断。PT1定时器T1中断优先控制位IP.3PT1 = 1,设定定时器T1为高优先级中断;PT1 = 0,设定定时器T1为低优先级中断。PX1外部中断1中断优先控制位IP.2PX1 = 1,设定外部中断1为高优先级中断;PX1 = 0,设定外部中断1为低优先级中断

30、。PT0T0中断优先控制位IP.1PT0 = 1,设定定时器T0为高优先级中断;PT0 = 0,设定定时器T0为低优先级中断。PX0外部中断0中断优先控制位IP.0PX0 = 1,设定外部中断0为高优先级中断;PX0 = 0,设定外部中断0为低优先级中断。中断处理过程 中断响应p中断响应是指CPU对中断源中断请求的响应。CPU并非任何时刻都能响应中断请求,而是在满足所有中断响应条件、且不存在任何一种中断阻断情况时才会响应。pCPU响应中断的条件有:有中断源发出中断请求;中断总允许位EA 置 1;申请中断的中断源允许位置1。pCPU响应中断的阻断情况有:CPU正在响应同级或更高优先级的中断;当前

31、指令未执行完;正在执行中断返回或访问寄存器IE和IP。中断处理过程 中断响应过程就是自动调用并执行中断函数的过程。C51编译器支持在C源程序中直接以函数形式编写中断服务程序。常用的中断函数定义语法如下: void 函数名() interrupt n其中n为中断类型号,C51编译器允许031个中断,n取值范围031。下面给出了8051控制器所提供的5个中断源所对应的中断类型号和中断服务程序入口地址:中断源中断源 n n 入口地址入口地址外部中断0 00003H定时/计数器0 1000BH外部中断1 20013H定时/计数器1 3 001BH串行口 4 0023H中断处理过程 中断响应时间中断响应时间是指从中断请求标志位置位到CPU开始执行中断服务程序的第一条语句所需要的时间。1)中断请求不被阻断的情况外部中断响应时间至少需要3个机器周期,这是最短的中断响应时间。一般来说,若系统中只有一个中断源,则中断响应时间为3 8个机器周期。2)中断请求被阻断的情况如果系统不满足所有中断响应条件、或者存在任何一种中断阻断情况,那么中断请求将被阻断,中断响应时间将会延长。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号