定时/计数器
1、定时/计数器的结构
定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。
2、定时/计数器的功能选择
T0和T1都具有定时和计数两种功能。在TMOD中,有一个控制位C/T,分别用于选择T0和
T1是工作于定时器方式,还是计数器方式。计数功能里,计数脉冲的频率不能高于振荡脉冲频率的1/24。定时功能里,计数频率为振荡频率的1/12。
3、工作方式控制寄存器TMOD
TMOD不能位寻址,只能有用字节传送指令设置其内容。TMOD的各位定义如下:D7D6D5D4D3D2D1D0 GATE C/T M1M0GATE C/T M1M0定时器1定时器0
GATE位:门控位。该位置位时只有在INTn引脚置高及TRn控制置位时才可打开定时器/
计数器,这时可用于测量在INTn引脚出现的正脉冲的宽度。该位清零时,置位TR1即可打开定时器/计数器。
C/T:计数/定时功能选择位。控制定时器是用作定时器或计数器,该位清零则用作定
伊能静门照艳全集50时器(从内部系统时钟输入);该位置位则用作计数器(计数脉冲从Tn引脚输入)。
M1和M0:定时器模式选择位:
M1M0定时器模式
00模式0:TLn中低5位与THn中的8位构成13位计数器
01模式1:16位定时器/计数器,无预分频器
10模式2:8位自装载定时器,当溢出时将THn存放的值装入TLn
11模式3:定时器0此时作为双8位定时/计数器。TL0作为一个8位定时器/计数器,通过标准定时器0控制位控制。TH0仅作为一个8位定时器,由定时器1控制位控制。
56个民族服装在这种模式下定时/计数器T1关闭。
4、定时器控制寄存器TCON
TCON各位的定义如下:
女生穿什么衣服显白D7D6D5D4D3D2D1D0 TF1TR1TF0TR0IE1IT1IE0IT0 TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软
件清除。
TR1:定时器1运行控制位。由软件置位时将定时/计数器打开,清零时将定时/计数器关闭。TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。
TR0:定时器0运行控制位。由软件置位时将定时/计数器打开,清零时将定时/计数器关闭。IE1:外部中断1(INT1)请求标志位。IEl=1时,外部中断1向CPU申请中断。
IT1:选择外部中断1(INT1)触发方式控制位。其操作功能与IT0相同。
IEO:外部中断O(INT0)请求标志位。IEO=1,外部中断0向CPU申请中断。
ITO:选择外部中断O(INT0)触发方式控制位。
5、定时/计数器T0和T1的工作模式
(1)模式0:此模式下定时器寄存器配置为13位寄存器。当计数从全为“1”翻转为全“0”时,定时器中断标志位TF0置位。当TR0=1同时GATE=0或INT0=1时定时器计数,置位GATE时允许由外部输入INT0控制定时器,这样可实现脉宽测量。TR0为TCON寄存器内的控制位。该13位寄存器包含THn全部8个位及TLn的低5位。TLn的高3位不定,可将其忽略。置位运行标志(TRn)不能清零此寄存器。当为计数工作方式时,计数值的范围是:1-8192(213)。当为定时器工作方式时,定时时间的计算公式为:(213-计数初值)×晶振周期×d(6时钟模式d=6,12时钟模式d=12)。其时间单位为微秒(μS)。
美国投资公司(2)模式1:模式1除了使用了THn及TLn全部16位外,其它与模式0相同。模式1情况下定时时间的计算公式为:(216-计数初值)×晶振周期×d(6时钟模式d=6,12时钟模式d=12)。其时间单位为微秒(μS)
(3)模式2:此模式下定时器寄存器作为可自动重装的8位计数器(TLn),如图8-3所示,其中6时钟模式d=6,12时钟模式d=12。TLn的溢出不仅置位TFn,而且将THn内容重新装入TLn,THn内容由软件预置。重装时THn内容不变。模式2的操作对于定时器0及定时器1是相同的,定时时间的计算公式为:(28-计数初值)×晶振周期×d(6时钟模式d=6,12时钟模式d=12)。其时间单位为微秒(μS)。
祝福爸爸的简单句子(4)模式3:在模式3中定时器1停止计数,效果与将TR1设置为0相同。此模式下定时器0的TL0及TH0作为两个独立的8位计数器。图8-4为模式3时的定时器0逻辑,其中6时钟模式d=6,12时钟模式d=12。TL0占用定时器0的控制位:C/T、GATE、TR0、INT0及TF0。TH0限定为定时器功能(计数器周期),占用定时器1的TR1及TF1,此时TH0控制“定时器1”中断。模式3可用于需要一个额外的8位定时器的场合。定时器0工作于模式3时,80C51看似有3个定时器/计数器,当定时器0工作于模式3时,定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器,或者应用于任何不要求中断的场合。浪漫情人节
中断系统
6、中断过程:
一个完整的中断传送方式的处理过程应包括中断请求、中断优先权判别、中断响应、中断处理和中断返回等几个步骤。
7、51系列单片机有6个中断源:
(1)INTO:外部中断0请求,由P3.2引脚输入。它有两种触发方式,通过IT0(TCON.O)来决定是电平触发方式还是边沿触发方式。一旦输入信号有效,则向CPU申请中断,并且将中断标志IEO置1。
(2)INT1:外部中断1请求,由P3.3引脚输人。通过IT1(TCON.2)来决定是电平触发方式还是边沿触发方式。一旦输入信号有效,则向CPU申请中断,并将中断标志IE1置1。
(3)TF0:定时器T0溢出中断请求。当定时器TO产生溢出时,TO中断请求标志TF0置1,请求中断处理。
(4)TF1:定时器T1溢出中断请求。当定时器Tl产生溢出时,T1中断请求标志TF1置1,请求中断处理。
(5)TI/RI:串行口发送/接收中断请求。当通过串行口发送或接收完一帧串行数据时,串行口中断请求标志TI或RI置1,请求中断处理。
8、TCON的中断标志:
TCON是专用寄存器,字节地址为88H,可位寻址。它锁存了外部INT0和INT1的中断请求标志及T0和T1的溢出中断请求标志,与中断有关的位如下:
D7D6D5D4D3D2D1D0 TF1TF0IE1IT1IE0IT0 (1)ITO:选择外部中断O(INT0)触发方式控制位。
当ITO=O时,为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间采样INTO(P3.
2)引脚输入电平,若采样为低电平时,认为有中断申请,则置IEO标志为1;若采样为高电平,认为无中断申请或中断申请已撤除,则将IEO标志清0。注意在电平触发方式下,CPU响应中断后不会自动清除IEO标志,也不能由软件清除IE0标志,所以在中断返回前,一定要撤消INTO引脚上的低电平,使IE0置0,否则将再次引起中断。
当ITO=1时,为边沿触发方式。CPU在每个机器周期的S5P2期间采样INTO引脚输人电平,如果连续两次采样,一个机器周期中采样为高电平,接着下个机器周期中采样为低电平,则置IE0标志为1,表示外部中断0正在向CPU申请中断。当CPU响应该中断时,IEO由硬件自动清0。由于每个机器周期采样一次外部中断输人电平,在边沿触发方式中,为保证CPU在两个机器周期内检测到由高到低的负跳变,必须保证外部中断源输人的高电平和低电平的持续时间在12个时钟周期以上。
(2)IEO:外部中断O(INT0)请求标志位。IEO=1,外部中断0向CPU申请中断。
(3)ITl:选择外部中断1(INT1)触发方式控制位。其操作功能与IT0相同。
(4)IEl:外部中断1(INT1)请求标志位。IEl=1时,外部中断1向CPU申请中断。
(5)TFO:片内定时器TO溢出中断请求标志。TO被启动后,从初始值开始进行加1计数,当最高位产生溢出时置TFO=l,向CPU申请中断,直到CPU响应该中断时,才由硬件自动将TFO 清0,也可由软件查询该标志,并用软件清O。
(6)TF1:片内定时器T1溢出中断请求标志,其操作功能与TF0相同。
9、SCON的中断标志:
SCON也是专用寄存器,字节地址为98H,可位寻址。其低2位锁存了串行口发送/接收中断请
求标志TI/RI。
D7D6D5D4D3D2D1D0
TI RI (1)TI:串行口发送中断标志位。当CPU将一个数据写人发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,由硬件置TI=1,向CPU发中断申请。因CPU响应中断时并不清除TI,所以必须由软件清除。
(2)RI:串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置RI=1,向CPU发中断申请。CPU响应中断时也不会自动清除RI,因此必须由软件清除。
10、中断允许寄存器IE:
专用寄存器IE的字节地址为A8H,通过对IE的编程写入可以控制CPU对中断源的开放或禁止,以及每一个中断源是否允许中断。
D7D6D5D4D3D2D1D0 EA EC ET2ES ET1EX1ET0EX0 (1)EA:CPU中断总允许位。EA=1,CPU开放中断,这时每个中断源的中断请求被允许或禁止,取决于各自中断允许位的置1或清O;EA=O,CPU屏蔽所有的中断请求,即关中断。
(2)EC:PCA中断使能位。EC=1,允许PCA中断;EC=0,禁止PCA中断。
(3)ET2:定时器2中断使能位。ET2=1,允许T2中断;ET2=0,禁止T2中断。
(4)ES:串行口中断允许位。ES=1,允许串行口中断;ES=O,禁止串行口中断。
(5)ETl:定时器T1滋出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。
(6)EX1:外部中断1(INT1)中断允许位。EXI=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
(7)ETO:定时器TO溢出中断允许位。ETO=1,允许TO中断;ETO=O,禁止T0中断。
(8)EXO:外部中断0(INT0)中断允许位。EXO=1,允许外部中断0中断;EXO=O,禁止外部中断0中断。
单片机系统复位后,IE中各位均被清0,即处于禁止所有中断的状态。若要开放某一中断,可在系统初始化程序中对IE寄存器编程。
11、中断优先级寄存器IP
52系列单片机中断系统具有四级中断优先级管理。每一个中断源均可通过对中断优先
级寄存器IP的设置,选择高优先级中断或低优先级中断,并可实现中断嵌套。
中断优先级管理遵循的基本原则是:高优先级中断源可中断正在执行的低优先级中断
服务程序,除非在执行低优先级服务程序时,设置了CPU关中断或禁止某些高优先级中断源的中断;同级或低优先级中断源不能中断正在执行的中断服务程序。
专用寄存器IP的字节地址为B8H,通过对IP的编程,可实现将7个中断源分别设置为高优
先级中断或低优先级中断。其格式如下:
D7D6D5D4D3D2D1D0 --PT2PS PT1PX1PT0PX0
说明如下:
(1)PT2:定时器2中断优先级控制位。PT2=1,高优先级;PT2=O,低优先级。
(2)PS:串行口中断优先级控制位。PS=1,高优先级;PS=O,低优先级。
(3)PTI:片内定时器T1中断优先级控制位。PT1=1,高优先级;PT1=0,低优先级。
(4)PX1:外部中断INTI中断优先级控制位。PXI=1,高优先级;PX1=0,低优先级。
(5)PTO:片内定时器TO中断优先级控制位。PTO=1,高优先级;PTO=O,低优先级。
(6)PXO:外部中断INTO中断优先级控制位。PXO=1,高优先级;PXO=O,低优先级。
当系统复位时,IP寄存器被清0,将6个中断源均设置为低优先级中断。
如果同一级的几个中断源同时向CPU申请中断,CPU便通过内部硬件查询逻辑按自然优先级决定响应顺序。
中断源外部中断0(IE0)定时器T0溢出中
断(TF0)外部中断1(IE1)定时器T1溢出中
断(TF1)
串行口中断
(RI/TI)
优先级1(最高)2345(最低)12、中断处理过程
(1)中断响应的条件:
*有中断源发出中断申请;
*中断总允许位EA=1,即CPU开放中断;
*请求中断的中断源的中断允许位置1,即该中断源可以向CPU发中断申请。
(2)中断响应过程:
*将相应的优先级状态触发器置1;
*由硬件清除相应的中断请求标志;
*执行一条由硬件生成的长调用指令。该指令将自动把断点地址(PC值)压人堆栈保护起来,然后将对应的中断人口地址送人程序计数器PC,使程序转向该中断入口地执行中断服务程序。
(3)中断入口地址:
中断源外部中断0(IE0)定时器T0溢出中
断(TF0)外部中断1(IE1)定时器T1溢出中
断(TF1)
串行口中断
(RI/TI)
入口地址03H0BH13H1BH23H 13、中断的C编程:
中断过程通过使用interrupt关键字和中断号(0到31)来实现。中断号告诉编译器中断程序的入口地址,中断号对应着IE寄存器中的使能位。也就是说IE寄存器中的0位对应着外部中断0,相应的外部中断0的中断号是0。
C的中断号01234
对应的中断源外部中断0定时器0溢出外部中断1定时器1溢出串行口中断中断服务程序的格式如下:
返回值函数名(参数)interrupt n using m
其中,n是中断号,m是所使用的寄存器组。
14、外部中断的使用:
外部中断一般为下降沿的触发方式,而且为最高优先权,在实际应用中时常需要及时做出反
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论