AT-mega系列单片机原理及应用第4章-ATmega-单片机的中断系统及定时器课件.ppt

上传人(卖家):三亚风情 文档编号:3514866 上传时间:2022-09-10 格式:PPT 页数:114 大小:1.01MB
下载 相关 举报
AT-mega系列单片机原理及应用第4章-ATmega-单片机的中断系统及定时器课件.ppt_第1页
第1页 / 共114页
AT-mega系列单片机原理及应用第4章-ATmega-单片机的中断系统及定时器课件.ppt_第2页
第2页 / 共114页
AT-mega系列单片机原理及应用第4章-ATmega-单片机的中断系统及定时器课件.ppt_第3页
第3页 / 共114页
AT-mega系列单片机原理及应用第4章-ATmega-单片机的中断系统及定时器课件.ppt_第4页
第4页 / 共114页
AT-mega系列单片机原理及应用第4章-ATmega-单片机的中断系统及定时器课件.ppt_第5页
第5页 / 共114页
点击查看更多>>
资源描述

1、4.1 ATmega单片机的中断系统单片机的中断系统4.1.1 中断处理中断处理 ATmega16L有有18个不同的中断源,每个中断源和个不同的中断源,每个中断源和系统复位在程序存储器空间都有一个独立的中断系统复位在程序存储器空间都有一个独立的中断向量,每个中断时间都有各自独立的中断允许控向量,每个中断时间都有各自独立的中断允许控制位,当某个中断源的中断允许位置制位,当某个中断源的中断允许位置“1”,且状,且状态寄存器中的全局中断允许位也为态寄存器中的全局中断允许位也为“1”时,时,MCU才能响应中断,通过对启动锁定位才能响应中断,通过对启动锁定位BLB02和和BLB12编程,也能禁止编程,也

2、能禁止MCU响应中断。利用这一响应中断。利用这一特性,可以提高系统的安全性。特性,可以提高系统的安全性。中断设置中断设置 1、通过对、通过对BOOTRST熔丝位编程和熔丝位编程和GICR寄存器寄存器的的IVSEL的设置,将系统复位向量和中断向量表的设置,将系统复位向量和中断向量表置于置于FLASH程序存储器的应用程序区的头部程序存储器的应用程序区的头部 2、转移到引导程序载入区的头部,分开置于不同、转移到引导程序载入区的头部,分开置于不同的两个区各自的头部。的两个区各自的头部。当当MCU响应一个中断请求后,会自动将全局中断响应一个中断请求后,会自动将全局中断允许位允许位I自动清零,此时后续中断

3、的响应被屏蔽,自动清零,此时后续中断的响应被屏蔽,当当MCU执行中断返回指令执行中断返回指令RETI时,会将全局中时,会将全局中断允许位断允许位I自动置自动置“1”,以允许响应下一个中断,以允许响应下一个中断,用户可在中断处理程序中用户可在中断处理程序中I位置位置“1”,打开中断响,打开中断响应,这样应,这样MCU就可以再次响应中断,实现了中断就可以再次响应中断,实现了中断嵌套处理。嵌套处理。中断源基本上分为两种类型的中断:一类是时间中断源基本上分为两种类型的中断:一类是时间触发型中断,另一类是条件中断,对于时间触发触发型中断,另一类是条件中断,对于时间触发类中断(如时钟、计数、比较等),一旦

4、事件产类中断(如时钟、计数、比较等),一旦事件产生后会将相应的中断标志位置位,申请中断处理,生后会将相应的中断标志位置位,申请中断处理,当当MCU响应中断,跳转到实际中断向量,开启相响应中断,跳转到实际中断向量,开启相应的中断处理程序时,硬件自动清除对应的中断应的中断处理程序时,硬件自动清除对应的中断标志,这些中断标志位也可通过软件写标志,这些中断标志位也可通过软件写“1”来清来清除。除。当一个符合条件的中断触发置位了中断标志位,当一个符合条件的中断触发置位了中断标志位,但相应的中断允许位为但相应的中断允许位为“0”,此时,这个中断标,此时,这个中断标志将挂起为志将挂起为“1”,一直保持到该中

5、断被响应或中,一直保持到该中断被响应或中断标志被软件清为断标志被软件清为“0”。对于一些条件中断(如外部中断)来讲,它们没对于一些条件中断(如外部中断)来讲,它们没有中断标志位,在中断条件成立时,将一直不断有中断标志位,在中断条件成立时,将一直不断的向的向MCU申请中断,如果在中断允许响应前,中申请中断,如果在中断允许响应前,中断条件由成立状态变成不成立状态,该中断即宣断条件由成立状态变成不成立状态,该中断即宣告终止了告终止了。4.1.2 外部中断外部中断 外部中断通过引脚外部中断通过引脚INT0,INT1(ATmega16L多一多一个个INT2外部中断)触发。即使引脚外部中断)触发。即使引脚

6、INT0,1配置配置为输出,只要电平发生了合适的变化,中断也会为输出,只要电平发生了合适的变化,中断也会触发。这个特点可以用来产生软件中断。通过设触发。这个特点可以用来产生软件中断。通过设置置MCU控制寄存器控制寄存器MCUCR,中断可以由下降沿、,中断可以由下降沿、上升沿,或者是低电平触发。上升沿,或者是低电平触发。当外部中断使能并且配置为电平触发当外部中断使能并且配置为电平触发(INT0/INT1),只要引脚电平为低,中断就会产生。若要求只要引脚电平为低,中断就会产生。若要求INT0,INT1在信号下降沿或上升沿触发,在信号下降沿或上升沿触发,I/O 时钟时钟必须工作。必须工作。INT0/

7、INT1的低电平中断检测是异步的低电平中断检测是异步的。也就是说,这些中断可以用来将器件从睡眠的。也就是说,这些中断可以用来将器件从睡眠模式唤醒。在睡眠过程模式唤醒。在睡眠过程(除了空闲模式除了空闲模式)中中I/O时时钟是停止的。钟是停止的。1、中断寄存器、中断寄存器(1)MCU控制寄存器(控制寄存器(MCUCR)图图4.1 MCU控制寄存器控制寄存器 Bit 3,2 ISC11,ISC10:外部中断外部中断1触发方式控制触发方式控制 例例4.1 设置寄存器设置寄存器MCUCR,响应外部中断,响应外部中断INT0为上升沿为上升沿产生中断要求使用方法。产生中断要求使用方法。MCUCR|=0 x0

8、c;/设置设置MCUCR寄存器位寄存器位2、3(对照表(对照表4.1可知表示外部中断可知表示外部中断INT1为上升为上升 沿产生中断要求)沿产生中断要求)例例4.2 利用寄存器利用寄存器MCUCR,响应外部中断,响应外部中断INT0,上升沿有效。上升沿有效。MCUCR|=0 x03;/设置设置MCUCR寄存器位寄存器位0、1(对照表(对照表4.2可知表示外部中断可知表示外部中断INT0为上升沿产生为上升沿产生中断要求)中断要求)表表4.1 中断中断1 触发方式控制触发方式控制 如果如果SREG寄存器的标志位和相应的中断屏蔽位置寄存器的标志位和相应的中断屏蔽位置位的话。外部中断位的话。外部中断0

9、 由引脚由引脚INT0激发。触发方式如激发。触发方式如表表4.2所示。在检测边沿前所示。在检测边沿前MCU首先采样首先采样INT0引脚引脚上的电平。上的电平。若选择边沿触发方式或电平变化触发方式,持续时若选择边沿触发方式或电平变化触发方式,持续时间大于一个时钟周期的脉冲将触发中断,过短的脉间大于一个时钟周期的脉冲将触发中断,过短的脉冲不能保证触发中断。冲不能保证触发中断。若选择低电平触发方式,低电平必须保持到当前指若选择低电平触发方式,低电平必须保持到当前指令执行完成令执行完成 中断中断0 触发方式控制触发方式控制 表表4.2 中断中断0 触发方式控制触发方式控制(2)通用中断控制寄存器()通

10、用中断控制寄存器(GICR)Bit7INT1:外部中断请求外部中断请求1 使能使能 Bit6INT0:外部中断请求外部中断请求 0 使能使能 例例4.3 利用控制寄存器利用控制寄存器GICR,设置,设置INT1、INT0均使能外部中断使用程序。均使能外部中断使用程序。GICR=0 xc0;/INT1、INT0均使能外部中断均使能外部中断(见见图图4.2)(3)通用中断标志寄存器()通用中断标志寄存器(GIFR)Bit7INTF1:外部中断标志外部中断标志1 例例4.4 GIFR0 x80 /表示外部中断标志表示外部中断标志1置位(即置位(即表示启动了外部中断表示启动了外部中断1)4.1.3 中

11、断响应中断响应 1、中断响应的条件、中断响应的条件 除了非屏蔽中断外,其它中断都可以用软件来屏除了非屏蔽中断外,其它中断都可以用软件来屏蔽或开放。系统只有具备如下的中断条件,蔽或开放。系统只有具备如下的中断条件,CPU才可能对中断请求进行响应。才可能对中断请求进行响应。(1)设置中断请求触发器设置中断请求触发器 每一个中断源,系统要求能发出中断请求信号,每一个中断源,系统要求能发出中断请求信号,而且这个信号能保持着,直至而且这个信号能保持着,直至CPU响应这个中断响应这个中断后,才可清除中断请求。故要求每一个中断源有后,才可清除中断请求。故要求每一个中断源有一个中断请求触发器来保持中断请求。一

12、个中断请求触发器来保持中断请求。(2)设置中断屏蔽触发器设置中断屏蔽触发器 在实际系统中,往往有多个中断源。为了增加控在实际系统中,往往有多个中断源。为了增加控制的灵活性,在每一个外设的接口电路中增加了制的灵活性,在每一个外设的接口电路中增加了一个中断屏蔽触发器,只有当此触发器为一个中断屏蔽触发器,只有当此触发器为“1”时,时,外设的中断请求才能被送出至外设的中断请求才能被送出至CPU。可把。可把8个外设个外设的中断屏蔽触发器组成一个端口,用输出指令来的中断屏蔽触发器组成一个端口,用输出指令来控制它们的状态。控制它们的状态。(3)设置中断允许触发器设置中断允许触发器 在在CPU内部有一个中断允

13、许触发器。只有内部有一个中断允许触发器。只有当其为当其为“1”时,时,CPU才能响应中断;若其为才能响应中断;若其为“0”,即使,即使INTR线上有中断请求,线上有中断请求,CPU也不响应。而这个触也不响应。而这个触发器的状态可由软件指令来改变。当发器的状态可由软件指令来改变。当CPU复位时,复位时,中断允许触发器为中断允许触发器为“0”,所以必须要用软件指令,所以必须要用软件指令来开中断。当中断响应后,来开中断。当中断响应后,CPU就自动关中断,就自动关中断,所以在中断服务程序中也必须要用软件指令来开所以在中断服务程序中也必须要用软件指令来开中断。中断。CPU在现行指令结束后即响应中断。在现

14、行指令结束后即响应中断。2、中断响应过程、中断响应过程 当满足了中断的条件后,当满足了中断的条件后,CPU就会响应中断,转就会响应中断,转入中断程序处理。具体的工作过程如下所述。入中断程序处理。具体的工作过程如下所述。(1)关中断:关中断:CPU响应中断后,发出中断响应信号响应中断后,发出中断响应信号的同时,内部自动地实现关中断。的同时,内部自动地实现关中断。(2)保留断点:保留断点:CPU响应中断后,把主程序执行的响应中断后,把主程序执行的位置和有关数据信息保留到堆栈,以备中断处理位置和有关数据信息保留到堆栈,以备中断处理完毕后,能返回主程序并正确执行。完毕后,能返回主程序并正确执行。(3)

15、保护现场:为了使中断处理程序不影响主程序的保护现场:为了使中断处理程序不影响主程序的运作,故要把断点处的有关寄存器的内容和标志位运作,故要把断点处的有关寄存器的内容和标志位的状态全部推入堆栈保护起来,即在中断服务程序的状态全部推入堆栈保护起来,即在中断服务程序中把这些寄存器的内容推入堆栈。这样,当中断处中把这些寄存器的内容推入堆栈。这样,当中断处理完成后返回主程序时,理完成后返回主程序时,CPU能够恢复主程序的中能够恢复主程序的中断前的状态,保证主程序的正确动作。断前的状态,保证主程序的正确动作。(4)给出中断入口,转入相应的中断服务程序:系统给出中断入口,转入相应的中断服务程序:系统由中断源

16、提供的中断向量形成中断入口地址,使由中断源提供的中断向量形成中断入口地址,使CPU能够正确进入中断服务程序。能够正确进入中断服务程序。(5)恢复现场:把所保存的各个内部寄存器的内容恢复现场:把所保存的各个内部寄存器的内容和标志位的状态,从堆栈弹出,送回和标志位的状态,从堆栈弹出,送回CPU中原来中原来的位置。这个操作在系统中也是由服务程序来完的位置。这个操作在系统中也是由服务程序来完成的。成的。(6)开中断与返回:在中断服务程序的最后,要开开中断与返回:在中断服务程序的最后,要开中断(以便中断(以便CPU能响应新的中断请求)和安排一能响应新的中断请求)和安排一条中断返回指令,将堆栈内保存的主程

17、序被中断条中断返回指令,将堆栈内保存的主程序被中断的位置值弹出,运行被恢复到主程序。的位置值弹出,运行被恢复到主程序。例例4.6 使用中断进行计数程序实例:使用中断进行计数程序实例:void extint_init(void)/中断初始化设置中断初始化设置/WIZARD_MAP(External IRQ)/INT0 Enabled,Mode:Rising EdgeMCUCR|=0 x03;/上升沿触发上升沿触发MCUCSR|=0 x00;GICR=0 x40;/开启中断开启中断0使能使能/WIZARD_MAP(External IRQ)SIGNAL(SIG_INTERRUPT0)/外部中断外部

18、中断0程序程序 uint k;/设置变量设置变量k来记录中断的次数来记录中断的次数/TODO:Add your code here k+;4.2 定时器定时器/计数器的使用方法计数器的使用方法 4.2.1 8位定时器位定时器/计数器计数器0-T/C0 T/C0是一个通用是一个通用8位定时位定时/计数器,其主要特点是:计数器,其主要特点是:单通道计数器单通道计数器 频率发生器频率发生器 外部事件计数外部事件计数 带带10位预定比例分频器位预定比例分频器1、8位位T/C0的寄存器的寄存器(1)T/C0控制寄存器(控制寄存器(TCCR0)图图4.4 TCCR0寄存器寄存器 例例4.7 TCCR00

19、x02 /由表由表4.3 可知为自可知为自8分频分频 位位2:0CSO 2:0:时钟源选择:时钟源选择 CS02、CS02、CS02这这3个标志位用于选择个标志位用于选择T/C0的的时钟源,见表时钟源,见表4.3。表表4.3 时钟源分频器真值表时钟源分频器真值表 当选用使用外部时钟源时,无论当选用使用外部时钟源时,无论T0引脚是否定义引脚是否定义为输出功能,在为输出功能,在T0引脚上的逻辑信号电平的变化引脚上的逻辑信号电平的变化都会驱动都会驱动T/C0计数,这个特性允许用户通过软件计数,这个特性允许用户通过软件来控制计数。来控制计数。(2)T/C0计数寄存器(计数寄存器(TCNT0)图图4.5

20、 TCNT0寄存器寄存器 (位(位70为数据存储位)为数据存储位)TCNT0是是T/C0的计数值寄存器,该寄存器可以直的计数值寄存器,该寄存器可以直接被读写访问,写接被读写访问,写TCNT0寄存器将会在下一个定寄存器将会在下一个定时器时钟周期中阻塞比较匹配。时器时钟周期中阻塞比较匹配。(3)定时)定时/计数器中断屏蔽寄存器(计数器中断屏蔽寄存器(TIMSK)例例4.8 TIMSK0 x01 /表示表示T0中断溢出允许中断溢出允许 位位0TOIE0:T/C0溢出中断允许标志位溢出中断允许标志位 当当TOIE0被设置为被设置为“1”,且状态寄存器中的,且状态寄存器中的I位被位被置位置位“1”时,将

21、使能时,将使能T/C0溢出中断。若在溢出中断。若在T/C0上上发生溢出时,则执行发生溢出时,则执行T/C0溢出中断服务程序。溢出中断服务程序。(4)定时)定时/计数器中断标志寄存器(计数器中断标志寄存器(TIFR)例如:例如:TIFR0 x01/表示位表示位0置位,即置位,即T/C0溢出溢出中断被置位中断被置位 位位0TOV0:T/C0溢出中断标志位溢出中断标志位 当当T/C0产生溢出时,产生溢出时,TOV0位被设置为位被设置为“1”。当。当转入转入T/C0溢出中断向量执行中断处理程序时,溢出中断向量执行中断处理程序时,TOV0由硬件自动清零。由硬件自动清零。2、8位定时位定时/计数器计数器0

22、 8位位T/C0单元是一个可编程计数器,计数值保存单元是一个可编程计数器,计数值保存在寄存器在寄存器TCNT0中,中,MCU可以在任何时间访问可以在任何时间访问读读/写写TCNT0。MCU写入写入TCNT0的值将立即覆盖的值将立即覆盖其中原有的内容,并会影响计数器的运行。其中原有的内容,并会影响计数器的运行。计数器单一向上计数,一旦寄存器计数器单一向上计数,一旦寄存器TCNT0为为0 x00的同时,置溢出标志位的同时,置溢出标志位TTOV0位为位为“1”。标志位。标志位TOV0可以用于申请中断,也可以作为计数器的可以用于申请中断,也可以作为计数器的第第9位使用。用户可以通过写入位使用。用户可以

23、通过写入TCNT0寄存器初寄存器初值来调整计数器溢出的时间间隔。值来调整计数器溢出的时间间隔。4.2.2 16位定时器位定时器/计数器计数器1 T/C1 T/C1是一个是一个16位的多功能定时位的多功能定时/计数器,其主要特计数器,其主要特点是:点是:真正的真正的16位设计位设计 两个独立的输出比较单元两个独立的输出比较单元 双缓冲输出比较寄存器双缓冲输出比较寄存器 一个输入捕获单元一个输入捕获单元 输入捕获噪声抑止输入捕获噪声抑止 比较匹配时清零计数器比较匹配时清零计数器 无奇边非对称,相位可调的脉宽调制输出无奇边非对称,相位可调的脉宽调制输出 周期可调的周期可调的PWM1、T/C1的组成结

24、构的组成结构 定时定时/计数器寄存器计数器寄存器TCNT1、输出比较寄存器、输出比较寄存器OCR1A和和OCR1B以及输入捕获寄存器以及输入捕获寄存器ICR1都是都是16位寄存器。对这些位寄存器。对这些16位寄存器的读写操作应遵位寄存器的读写操作应遵循特定的步骤,循特定的步骤,T/C1的中断请求信号可以在定时的中断请求信号可以在定时器中断标志寄存器器中断标志寄存器TIFR中找到,在定时器中断屏中找到,在定时器中断屏蔽寄存器蔽寄存器TIMSK中,可以找到各自独立的中断屏中,可以找到各自独立的中断屏蔽位。蔽位。(1)T/C1的时钟源的时钟源 T/C1时钟源可来自芯片内部,也可来自外部引脚时钟源可来

25、自芯片内部,也可来自外部引脚T1。T/C1与与T/C0共享一个预定比例分频器。时钟共享一个预定比例分频器。时钟源选择由寄存器源选择由寄存器TCCR1B中的标志位中的标志位CS2,0确定。确定。(2)16位位T/C1的计数单元的计数单元 T/C1的计数单元是一个可编程的的计数单元是一个可编程的16位双向计数器,位双向计数器,计数值保存在计数值保存在16位寄存器位寄存器TCNT1中。中。TCNT1由由两个两个8位寄存器:位寄存器:TCNT1H和和TCNT1L组成。组成。MCU对对TCNT1的访问操作应遵循特定的步骤。的访问操作应遵循特定的步骤。(3)输入捕获单元)输入捕获单元 T/C1内部的输入捕

26、获单元。外部事件发生的触发内部的输入捕获单元。外部事件发生的触发信号由引脚信号由引脚ICP1输入。此外,模拟比较器的输入。此外,模拟比较器的ACO单元的输出信号也可作为外部事件捕获的触发信单元的输出信号也可作为外部事件捕获的触发信号。号。一个输入捕获发生在外部引脚一个输入捕获发生在外部引脚ICP1上的逻辑电平上的逻辑电平变化,或者模拟比较器输出电平变化,此时变化,或者模拟比较器输出电平变化,此时T/C1计数器计数器TCNT1中的计数值被写入输入捕获寄存器中的计数值被写入输入捕获寄存器ICR1中,并置位输入捕获标志位中,并置位输入捕获标志位ICF1。输入捕获。输入捕获功能可用于频率和周期的精确测

27、量。功能可用于频率和周期的精确测量。当当T/C1运行在运行在PWM方式下时,允许对寄存器方式下时,允许对寄存器ICR1进行写操作。应在设置进行写操作。应在设置T/C1的运行方式为的运行方式为PWM后,再设置后,再设置ICR1,此时写入,此时写入ICR1的值将作的值将作为计数器计数序列的上限值。为计数器计数序列的上限值。(4)输入比较单元)输入比较单元 在在T/C1运行期间,输出比较单元一直将寄存器运行期间,输出比较单元一直将寄存器TCNT1的计数值同寄存器的计数值同寄存器OCR1A和和OCR1B的内的内容进行比较,一旦发现与其中之一相等,比较器容进行比较,一旦发现与其中之一相等,比较器即会产生

28、一个比较匹配信号,在下一个计数时钟即会产生一个比较匹配信号,在下一个计数时钟脉冲到达时置位脉冲到达时置位OCF1A和和OCF1B中断标志位。中断标志位。根据根据WGM2:0和和COM1A1:0、COM1B1:0的的不同设置,比较相等匹配的信号还用于控制和产不同设置,比较相等匹配的信号还用于控制和产生各种类型的脉冲生各种类型的脉冲PWM波形。波形。寄存器寄存器OCR1A和和OCR1B各自配置有一个辅助缓各自配置有一个辅助缓存器。当存器。当T/C1工作在非工作在非PWM模式时,该辅助缓模式时,该辅助缓存器禁止。存器禁止。MCU直接访问和操作寄存器直接访问和操作寄存器OCR1A和和OCR1B本身本身

29、。(5)比较匹配输出单元)比较匹配输出单元 标志位标志位COM1A1:0的输出方式以及控制外部引的输出方式以及控制外部引脚脚OC1A是否输出是否输出OC1A寄存器的值。寄存器的值。当标志位当标志位COM1A1:0中任何一位为中任何一位为“1”时,波时,波形发生器的输出形发生器的输出OC1A取代引脚原来的取代引脚原来的I/O功能,功能,但引脚的方向寄存器但引脚的方向寄存器DDR依然控制依然控制OC1A引脚的引脚的输入输入/输出方向。如果要在外部引脚输出输出方向。如果要在外部引脚输出OC1A的的逻辑电平,应设定逻辑电平,应设定DDR定义该引脚为输出脚。定义该引脚为输出脚。(6)比较输出模式和波形发

30、生器)比较输出模式和波形发生器 对于对于T/C1的各种工作模式,的各种工作模式,COM1A1:0的不同的不同设置都会影响到波形发生器产生的脉冲波形方式。设置都会影响到波形发生器产生的脉冲波形方式。但只要但只要COM1A1:0,波形发生器对,波形发生器对OC1A寄存器寄存器就没有任何作用。就没有任何作用。2、16位位T/C1的寄存器的寄存器(1)T/C1的计数寄存器(的计数寄存器(TCNT1H和和TCNT1L)图4.8 TCNT1H和TCNT1L寄存器 TCNT1H和和TCNT1L组成组成T/C1的计数值寄存器的计数值寄存器TCNT1,该寄存器可以直接被,该寄存器可以直接被CPU读写访问,但读写

31、访问,但应遵循特定的步骤。写应遵循特定的步骤。写TCNT1寄存器将在下一个寄存器将在下一个定时器时钟周期中阻塞比较匹配。定时器时钟周期中阻塞比较匹配。因此,在计数器运行期间修改因此,在计数器运行期间修改TCNT1的内容,有的内容,有可能丢失一次可能丢失一次TCNT1与与OCR1A的匹配比较操作。的匹配比较操作。(2)输出比较寄存器)输出比较寄存器OCR1AH和和OCR1AL,OCR1BH和和OCR1BL图4.9 OCR1AH和OCR1AL寄存器图4.10 OCR1BH和OCR1BL寄存器 OCR1AH和和OCR1AL组成组成16位输出比较寄存器位输出比较寄存器OCR1A。该寄存器中的。该寄存器

32、中的16位数据用于同位数据用于同TCNT1寄存器中的计数值进行连续的匹配比较。寄存器中的计数值进行连续的匹配比较。一旦一旦TCNT1的计数值与的计数值与OCR1A的数据匹配相等,的数据匹配相等,将产生一个输出比较匹配相等的中断申请,或改将产生一个输出比较匹配相等的中断申请,或改变变OCR1A的输出逻辑电平的输出逻辑电平。(3)输入捕获寄存器()输入捕获寄存器(ICR1H和和ICR1L)ICR1H和和ICR1L组成组成16位输入捕获寄存器位输入捕获寄存器ICR1。当外部引脚当外部引脚ICP1或模拟比较器有输入捕获触发信或模拟比较器有输入捕获触发信号产生时,计数器号产生时,计数器TCNT1中的计数

33、值写入寄存器中的计数值写入寄存器ICR1中。中。在在PWM方式下,方式下,ICR1的设定值将作为计数器计的设定值将作为计数器计数上限值。数上限值。图4.11 ICR1H和ICR1L寄存器(4)定时)定时/计数器中断屏蔽寄存器(计数器中断屏蔽寄存器(TIMSK)例例4.9 TIMSK0 x01 /表示输入捕获中断允许表示输入捕获中断允许位位5TICIE1:T/C1输入捕获中断允许标志位输入捕获中断允许标志位当当TICIE1被设为被设为“1”,且状态寄存器中的,且状态寄存器中的I位被位被设为设为“1”时,将使能时,将使能T/C1的输入捕获中断。位的输入捕获中断。位4OCIE1A:T/C1输出比较输

34、出比较A匹配中断允许标匹配中断允许标志位志位 位位3OCIE1B:T/C1输出比较匹配中断允许标输出比较匹配中断允许标志位志位 当当OCIE1B被设为被设为“1”,且状态寄存器中的,且状态寄存器中的I位位被设置为被设置为“1”时,将使能时,将使能T/C1的输入比较匹配中的输入比较匹配中断。若在断。若在T/C1上发生输出比较上发生输出比较B匹配,则执行匹配,则执行T/C1输出比较输出比较B匹配中断服务程序。匹配中断服务程序。位位2TOIE1:T/C1溢出中断允许标志位溢出中断允许标志位 当当TOIE1被设为被设为“1”,且状态寄存器中的,且状态寄存器中的I位被设位被设置为置为“1”时,将使能时,

35、将使能T/C1的溢出中断。若在的溢出中断。若在T/C1上发生溢出时,则执行上发生溢出时,则执行T/C1溢出中断服务程序。溢出中断服务程序。(5)定时)定时/计数器中断标志寄存器(计数器中断标志寄存器(TIFR)例例4.10 TIFR0 x20/表示表示T/C1输入捕获中断被置输入捕获中断被置位位位位5ICF1:T/C1输入捕获中断标志位输入捕获中断标志位 当当T/C1由外部引脚由外部引脚ICP1触发输入捕获时,触发输入捕获时,ICF1位被设为位被设为“1”。在。在T/C1运行方式为运行方式为PWM,寄存,寄存器器ICR1内容作为计数器计数上限值时,一旦计数内容作为计数器计数上限值时,一旦计数器

36、器TCNT1计数值与计数值与ICR1相等,也将置位相等,也将置位ICF1。图4.13 TIFR寄存器 位位4OCF1A:T/C1输出比较匹配中断标志位输出比较匹配中断标志位 当当T/C1由外部引脚由外部引脚ICP1触发输入捕获时,触发输入捕获时,OCF1A位被设为位被设为“1”。当转入。当转入T/C1输出比较输出比较A匹配中断向匹配中断向量执行中断处理程序时,量执行中断处理程序时,OCF1A由硬件自动清零。由硬件自动清零。写入一个逻辑写入一个逻辑“1”到到OCF1A标志位将清除该标志位。标志位将清除该标志位。设置强制输出比较设置强制输出比较A匹配时,不会置位匹配时,不会置位OCF1A标志标志位

37、位 位位3OCF1B:T/C1输出比较输出比较B匹配中断标志匹配中断标志位位 当当T/C1由外部引脚由外部引脚ICP1触发输入捕获时,触发输入捕获时,OCF1B位被设为位被设为“1”。当转入。当转入T/C1输出比较匹配输出比较匹配中断向量执行中断处理程序时,中断向量执行中断处理程序时,OCF1B由硬件自由硬件自动清零。写入一个逻辑动清零。写入一个逻辑“1”到到OCF1B标志位将清标志位将清除该标志位。除该标志位。设置强制输出比较设置强制输出比较B匹配时,不会置位匹配时,不会置位OCF1B标标志位。志位。位位2TOV1:T/C1溢出中断标志位溢出中断标志位 当当T/C1产生溢出时,产生溢出时,T

38、OV1位被设为位被设为“1”。当转当转入入T/C1溢出中断向量执行中断处理程序时,溢出中断向量执行中断处理程序时,TOV1由硬件自动清零。写入一个逻辑由硬件自动清零。写入一个逻辑“1”到到TOV1标志位将清除该标志位。标志位将清除该标志位。TOV1标志位置位的条件与标志位置位的条件与T/C1的工作方式有关。的工作方式有关。(6)T/C1控制寄存器控制寄存器A(TCCR1A)此寄存器用来设置输入此寄存器用来设置输入A和和B的输出模式,以及波的输出模式,以及波形的发生模式。形的发生模式。位位7:6COM1A1:0比较比较A输出模式输出模式 位位5:4COM1B1:0比较比较B输出模式输出模式 这些

39、位控制了比较输出引脚这些位控制了比较输出引脚OC1A的输出行为。的输出行为。图图4.14 TCCR1A寄存器寄存器 FOC1A/FOC1B位只在位只在WGM3:0被设置为非被设置为非PWM模式下才有效,但为了保证同以后的器件兼模式下才有效,但为了保证同以后的器件兼容,在容,在PWM模式下写模式下写TCCR1A寄存器时,该位寄存器时,该位必须被写必须被写“0”。当写一个逻辑。当写一个逻辑“1”到到FOC1A/FOC1B位时,在波形发生器上强加一个比较匹配位时,在波形发生器上强加一个比较匹配成功信号,使波形发生器依据成功信号,使波形发生器依据COM1A1:0/COM1B1:0位的设置而改变位的设置

40、而改变OC1A/OC1B输出状输出状态。注意:态。注意:FOC1A/FOC1B的作用仅如同一个选的作用仅如同一个选通脉冲,而通脉冲,而OC1A/OC1B的输出还是取决于的输出还是取决于COM1A1:0/COM1B1:0位的设置。位的设置。一个一个FOC1A/FOC1B选通脉冲不会产生任何的中选通脉冲不会产生任何的中断申请,也不影响计数器断申请,也不影响计数器TCNT1和寄存器和寄存器OCR1A的值。读的值。读FOC1A/FOC1B总为零。总为零。位位1:0WGM1:0:波形发生模式:波形发生模式 这两个标志与这两个标志与WGM3:2相组合,用于控制相组合,用于控制T/C1的计数和工作方式的计数

41、和工作方式计数器计数上限值和确定计数器计数上限值和确定波形发生器的工作模式。波形发生器的工作模式。T/C1支持的工作模式有:支持的工作模式有:一般模式,比较匹配时清零定时器模式,以及两一般模式,比较匹配时清零定时器模式,以及两种脉宽调制模式等种脉宽调制模式等15种。种。(7)T/C1控制寄存器控制寄存器B(TCCR1B)位位7ICNC1:输入捕获噪声抑制允许:输入捕获噪声抑制允许 位位4:3WGM3:2:波形发生模式:波形发生模式 位位2:0CS12:0T/C1时钟源选择时钟源选择 这这3个标志位用于选择个标志位用于选择T/C1的时钟源的时钟源图4.15 TCCR1B寄存器表表4.4 T/C1

42、的时钟源真值表的时钟源真值表3、16位寄存器的读写操作步骤位寄存器的读写操作步骤 T/C1有有4个个16位的寄存器:位的寄存器:TCNT1、OCR1A、OCR1B、ICR1。由于。由于AVR的内部数据总线为的内部数据总线为8位,位,因此读写因此读写16位的寄存器需要分两次操作。为了能位的寄存器需要分两次操作。为了能够同步读写够同步读写16位寄存器,每一个位寄存器,每一个16位寄存器分别位寄存器分别配有一个配有一个8位的临时辅助寄存器,用于保存位的临时辅助寄存器,用于保存16位寄位寄存器的高存器的高8位数据。要同步读写这些位数据。要同步读写这些16位寄存器,位寄存器,读写操作应遵循以下特定的步骤

43、:读写操作应遵循以下特定的步骤:16位寄存器的读操作位寄存器的读操作 当当MCU读取读取16位寄存器的低字节,位寄存器的低字节,16位寄存器低位寄存器低字节内容被送到字节内容被送到MCU,而高字节内容在读低字节,而高字节内容在读低字节的同时被置于临时辅助寄存器中;当的同时被置于临时辅助寄存器中;当MCU读取高读取高字节时,读到的是临时辅助寄存器的内容,因此,字节时,读到的是临时辅助寄存器的内容,因此,要同步读取要同步读取16位寄存器中的数据,应先读取该寄位寄存器中的数据,应先读取该寄存器的低位字节,再立即读取其高位字节。存器的低位字节,再立即读取其高位字节。16位寄存器的写操作位寄存器的写操作

44、 当当MCU写入数据到写入数据到16位寄存器的高位字节时,数位寄存器的高位字节时,数据是写入到临时辅助寄存器中,当据是写入到临时辅助寄存器中,当MCU写入数据写入数据到到16位寄存器的低位字节时,写入的位寄存器的低位字节时,写入的8位数据与临位数据与临时辅助寄存器中的时辅助寄存器中的8位数据组合成位数据组合成16位数据,同步位数据,同步写入到写入到16位寄存器中。因此,要同步写位寄存器中。因此,要同步写16位寄存位寄存器时,应写入该寄存器的高位字节,再立即写入器时,应写入该寄存器的高位字节,再立即写入它的低位字节。它的低位字节。4.2.3 8位定时器位定时器/计数器计数器2(T/C2)T/C2

45、是一个是一个8位的多功能定时位的多功能定时/计数器,其主要特计数器,其主要特点是:点是:比较匹配时清零计数器比较匹配时清零计数器 无奇边非对称,相位可调的脉宽调制输出无奇边非对称,相位可调的脉宽调制输出 周期可调的周期可调的PWM 频率发生器频率发生器 10位的时钟预分频器位的时钟预分频器 溢出和比较匹配中断源溢出和比较匹配中断源 允许使用从外部引脚的允许使用从外部引脚的32.768kHz时钟晶振作为独时钟晶振作为独立的计数时钟源。立的计数时钟源。1、T/C2的组成结构的组成结构(1)8位位T/C2的计数单元的计数单元 T/C2的计数单元是一个可编程的的计数单元是一个可编程的8位双向计数器,根

46、位双向计数器,根据计数器的工作模式,在每一个时钟到来时,计数据计数器的工作模式,在每一个时钟到来时,计数器进行加器进行加1、减、减1或清零操作。时钟的来源由标志位或清零操作。时钟的来源由标志位CSR2:0设定。当设定。当CSR2:00时,计数器停止计数。时,计数器停止计数。计数值保存在寄存器计数值保存在寄存器TCNT2中,中,MCU可以在任可以在任何时间访问读何时间访问读/写写TCNT2,MCU写入写入TCNT2的值的值将立即覆盖其中原有的内容,并会影响计数器的将立即覆盖其中原有的内容,并会影响计数器的运行。运行。计数器的计数序列取决于寄存器计数器的计数序列取决于寄存器TCCR2中标志位中标志

47、位的设置。的设置。WGM22:0的设置直接影响到计数器的的设置直接影响到计数器的计数方式和计数方式和OC2的输出,同时也影响和涉及的输出,同时也影响和涉及T/C2的溢出标志位的溢出标志位TOV2的置位。标志位的置位。标志位TOV2可以用可以用于产生申请中断。于产生申请中断。(2)输出比较单元)输出比较单元 在在T/C2运行期间,输出比较单元一直将寄存器运行期间,输出比较单元一直将寄存器TCNT2的计数值同寄存器的计数值同寄存器OCR2的内容进行比较。的内容进行比较。一旦两者相等,在下一个计数时钟脉冲到达时置位一旦两者相等,在下一个计数时钟脉冲到达时置位OCR2标志位。根据标志位。根据WGM21

48、:0和和COM22:0的不的不同设置,比较相等匹配的输出还控制产生各种类型同设置,比较相等匹配的输出还控制产生各种类型的脉冲波形。的脉冲波形。(3)比较匹配输出单元)比较匹配输出单元 当标志位当标志位COM21:0中的任何一位为中的任何一位为“1”时,波形时,波形发生器的输出取代发生器的输出取代OC2引脚原来的引脚原来的I/O功能,单引功能,单引脚的方向寄存器脚的方向寄存器DDR仍然控制仍然控制OC2引脚的输入引脚的输入/输输出方向。如果要在外部引脚输出出方向。如果要在外部引脚输出OC2的逻辑电平,的逻辑电平,应设定应设定DDR定义该引脚为输出脚。采用这种结构,定义该引脚为输出脚。采用这种结构

49、,用户可以先初始化用户可以先初始化OC2的状态,然后再允许其由引的状态,然后再允许其由引脚输出。脚输出。(4)比较输出模式和波形发生器)比较输出模式和波形发生器 在四种工作模式下,根据在四种工作模式下,根据COM21:0的不同设定,的不同设定,波形发生器将产生各种不同的脉冲波形,只要波形发生器将产生各种不同的脉冲波形,只要COM21:00,波形发生器对,波形发生器对OC2寄存器没有任寄存器没有任何作用。何作用。2、8位位T/C2的寄存器的寄存器(1)TCNT2是是T/C2的计数值寄存器的计数值寄存器,该寄存器可,该寄存器可以直接被读写访问。写以直接被读写访问。写TCNT2寄存器在下一个定寄存器

50、在下一个定时器时钟周期中阻塞比较匹配。因此,在计数器时器时钟周期中阻塞比较匹配。因此,在计数器运行期间修改运行期间修改TCNT2的内容,可能将丢失一次的内容,可能将丢失一次TCNT2与与OCR2的匹配比较操作。的匹配比较操作。图图4.16 TCNT2寄存器寄存器(2)输出比较寄存器()输出比较寄存器(OCR2)该寄存器中的该寄存器中的8位数据用于同位数据用于同TCNT2寄存器中的寄存器中的计数值进行连续的匹配比较。计数值进行连续的匹配比较。一旦一旦TCNT2的计数值与的计数值与OCR2的数据匹配相等,的数据匹配相等,将产生一个输出比较匹配相等的中断申请,或改将产生一个输出比较匹配相等的中断申请

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(AT-mega系列单片机原理及应用第4章-ATmega-单片机的中断系统及定时器课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|