版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 7.1 7.2 7.3 7.4 7.5 8051单片机中有两个计数器T0和T1,这两个计数器分别是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536。 8031中的计数器除了能作为计数之用外,还能用作时钟,时钟的用途当然很大,如打铃器,电视机定时关机,空调定时开关等等。 定时器和计数器的原理是一样的,都是进行计数操作,每次加1,加满溢出后,再从0开始计数,定时器和计数器不同之定时器和计数器不同之处是输入的计数信号来源不同处是输入的计数信号来源不同。计数器是记录的外界发生的事情,而定时器则是由单片机供给一个非常稳定的计数源。 这个计数源就是由单片机的晶体震荡
2、器经过12分频后获得的一个脉冲源。晶体震荡器的频率当然很准,所以这个计数脉冲的时间间隔也很准。实现定时功能,比较方便的方法是利用单片机的定时器计数器实现定时功能,比较方便的方法是利用单片机的定时器计数器,也可以采用下面的三种方法:软件定时软件定时:软件定时不占用硬件资源,但占用了cpu的时间,降低了cpu的利用率。采用时基电路定时采用时基电路定时:例如采用555电路,外界必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行修改与控制,即不可编程。采用可编程芯片定时采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片
3、定时功能强,使用灵活,在单片机的定时计数器不够用时,可以考虑进行扩展扩展。7.2 8051定时定时/计数器结构和工作原理计数器结构和工作原理 5151系列单片机片内有二个系列单片机片内有二个十六位十六位定时定时/ /计数器:计数器:定时器定时器0(T0)0(T0)和定时器和定时器1(T1)1(T1)。 两个定时器都有两个定时器都有定时或事件计数定时或事件计数的功能,可用于的功能,可用于定时控定时控制、延时、对外部事件计数和检测制、延时、对外部事件计数和检测等场合等场合 定时定时/ /计数器实际上是计数器实际上是1616位加位加1 1计数器计数器。 T0T0由由2 2个个8 8位持殊功能寄存器位
4、持殊功能寄存器TH0TH0和和TL0TL0构成,构成, T1T1由由2 2个个8 8位持殊功能寄存器位持殊功能寄存器TH1TH1和和TL1TL1构成。构成。每个定时器都可由每个定时器都可由软件设置软件设置为为定时工作方式定时工作方式或或 计数工作方式。计数工作方式。T0和和T1受受特殊功能寄存器特殊功能寄存器TMODTMOD和和TCONTCON控制。控制。 加加1计数器计数器输入的计数脉冲有输入的计数脉冲有两个来源两个来源,一个是由一个是由系统的时系统的时钟振荡器输出脉冲经钟振荡器输出脉冲经12分频后送来分频后送来;一个是;一个是T0或或T1引脚引脚输入的外部脉冲源。输入的外部脉冲源。 每来一
5、个脉冲计数器加每来一个脉冲计数器加1,当加到计数器为全,当加到计数器为全1时,再输入时,再输入一个脉冲就使计数器回零,且计数器的溢出使一个脉冲就使计数器回零,且计数器的溢出使TCON中中TF0或或TF1置置1,向,向CPU发出中断请求(定时发出中断请求(定时/计数器中断计数器中断允许时)。允许时)。 如果定时如果定时/计数器工作于定时模式,则表示定时计数器工作于定时模式,则表示定时时间已到时间已到;如果工作于计数模式,则表示如果工作于计数模式,则表示计数值已满计数值已满。 可见,由溢出时计数器的值减去计数初值才是加可见,由溢出时计数器的值减去计数初值才是加1计数器计数器的计数值。的计数值。1.
6、 定时工作方式定时工作方式 设置为定时器模式时:设置为定时器模式时:加加1计数器是对内部机器周期计数计数器是对内部机器周期计数(1个机器周期等于个机器周期等于12个振荡周期,即计数频率为晶振频个振荡周期,即计数频率为晶振频率的率的1/12)。)。 每经过一个每经过一个机器周期机器周期定时器定时器(T0或或T1)的数值加的数值加1直至计数直至计数满产生溢出。满产生溢出。 计数值计数值N乘以机器周期乘以机器周期Tcy就是定时时间就是定时时间t 。 计数值:计数值:N=满计数值满计数值-初始设定值初始设定值t=计数值计数值N机器周期机器周期T 如:当如:当8051采用采用12MHz晶体时,每个机器周
7、期为晶体时,每个机器周期为1s,计计5 个机器周期即为个机器周期即为5 s,即定时,即定时5 s 。2. 计数工作方式计数工作方式 设置为计数工作方式时,通过设置为计数工作方式时,通过引脚引脚T0(P3T0(P34)4)和和T1(P3T1(P35)5)对外对外部脉冲信号计数。部脉冲信号计数。当输入脉冲信号产生由当输入脉冲信号产生由1 1至至0 0的下降沿时,定时器的值加的下降沿时,定时器的值加1, 1, 在每在每个机器周期个机器周期CPUCPU采样采样T0T0和和T1T1的输入电平。若前一个机器周期采的输入电平。若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加样值为高,下一个机
8、器周期采样值为低,则计数器加 1 1。由于检测一个由于检测一个1 1至至0 0的跳变需要二个机器周期,故最高计数频率的跳变需要二个机器周期,故最高计数频率为振荡频率的为振荡频率的虽然对输入信号的占空比无特殊要求,但为了确保某个电平在虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少被采样一次,要求变化之前至少被采样一次,要求电平保持时间至少是一个完整电平保持时间至少是一个完整的机器周期。的机器周期。由由T0或或T1引脚输入计数脉冲。在每个机器周期的引脚输入计数脉冲。在每个机器周期的S5P2期间,期间,CPU采样引脚输入电平。当前一机器周期采样到高电平,下一周采样引脚输入电平。当
9、前一机器周期采样到高电平,下一周期机器采样到低电平时,则计数器加期机器采样到低电平时,则计数器加1,更新的计数值在下一个机,更新的计数值在下一个机器周期的器周期的S3P1期间装入计数器。由于检测一个从期间装入计数器。由于检测一个从1到到0的下降沿需的下降沿需要要2个机器周期,个机器周期,因此要求被采样的电平至少要维持一个机器周期因此要求被采样的电平至少要维持一个机器周期,最高计数频率不超过振荡频率的,最高计数频率不超过振荡频率的1/24 ,当晶振频率为,当晶振频率为12MHz时时,计数频率为,计数频率为1/2MHz,计数脉冲的周期要大于,计数脉冲的周期要大于2 s。 7.3 7.3 7.3 定
10、时计数器的控制寄存器定时计数器的控制寄存器定时计数器的控制寄存器定时计数器的控制寄存器定时计数器的控制寄存器定时计数器的控制寄存器定时器共有两个控制寄存器:定时器共有两个控制寄存器:定时器共有两个控制寄存器:定时器共有两个控制寄存器:定时器共有两个控制寄存器:定时器共有两个控制寄存器: 定时器控制定时器控制定时器控制定时器控制定时器控制定时器控制TCONTCONTCON(88H)88H)88H) 定时器工作模式寄存器定时器工作模式寄存器定时器工作模式寄存器定时器工作模式寄存器定时器工作模式寄存器定时器工作模式寄存器TMOD(89H)TMOD(89H)TMOD(89H)1. 1. 1. 工作模式
11、寄存器工作模式寄存器工作模式寄存器工作模式寄存器工作模式寄存器工作模式寄存器TMOD(89H)TMOD(89H)TMOD(89H) TMODTMODTMOD用于控制用于控制用于控制用于控制用于控制用于控制T0T0T0和和和和和和T1T1T1的操作模式。其各位的定义如下:的操作模式。其各位的定义如下:的操作模式。其各位的定义如下:的操作模式。其各位的定义如下:的操作模式。其各位的定义如下:的操作模式。其各位的定义如下: TMOD D7D6D5D4 D3D2D1D0 (89H)GATEC/TM1M0GATEC/TM1M0定时器定时器定时器定时器定时器定时器T0T0T0 定时器定时器定时器定时器定时
12、器定时器T1T1T1 GATE:门控选择位:门控选择位 =0=0,非门控方式,定时,非门控方式,定时/ /计数器由内部计数器由内部软件软件启动:启动: TRxTRx=1=1,启动定时器工作;,启动定时器工作; TRxTRx=0=0,停止定时器工作。,停止定时器工作。 =1=1,门控方式,定时,门控方式,定时/ /计数器由内、外部启动:计数器由内、外部启动: TRxTRx=1=1,同时必须引脚,同时必须引脚INTxINTx=1=1,才启动。,才启动。 门控位门控位GATE为为1时,时,TRx=1,INTx=1才能启动定时器。利用这个特性可以才能启动定时器。利用这个特性可以测量外部输入脉冲的宽度。
13、测量外部输入脉冲的宽度。 C/T:定时器:定时器/计数器选择位计数器选择位 M1、M0工作模式选择位。工作模式选择位。 由于有由于有M1和和M0两位,可以有四种工作方式。两位,可以有四种工作方式。T0有有4种工作模式种工作模式,T1有有3种工种工作模式作模式。 定时器定时器/计数器计数器T1不能工作在模式不能工作在模式3。设置。设置T1的的M1M0=11,T1将停止工将停止工作。作。定时器定时器/计数器的工作模式计数器的工作模式M1 M0 工作模式工作模式功能介绍功能介绍00模式模式013位定时器位定时器/计数器计数器 01模式模式116位定时器位定时器/计数器计数器10模式模式28位自动重置
14、定时器位自动重置定时器/计数器计数器11模式模式3定时器定时器0:TL0可可8位定时器位定时器/计数器,计数器,TH0为为8位定时器。位定时器。定时器定时器1:不工作。:不工作。TMODTMODTMOD各位定义及具体的意义各位定义及具体的意义各位定义及具体的意义各位定义及具体的意义各位定义及具体的意义各位定义及具体的意义 TF1 TR1TF0 TR0 IE1IT1 IE0IT0T1 请求请求有有/无无 T1工作工作启启/停停 T0 请求请求有有/无无 T0 工作工作启启/停停 INT1 请求请求有有/无无 INT1方式方式下沿下沿/ 低电低电平平 INT0请求请求有有/无无 INT0方式方式下
15、沿下沿/低电低电平平 2. 2. 2. 控制寄存器控制寄存器控制寄存器控制寄存器控制寄存器控制寄存器TCON(88H)TCON(88H)TCON(88H) TCONTCONTCON寄存器寄存器寄存器寄存器寄存器寄存器 中定时器控制中定时器控制中定时器控制中定时器控制中定时器控制中定时器控制 仅用了其中高四位,其意义如下:仅用了其中高四位,其意义如下:仅用了其中高四位,其意义如下:仅用了其中高四位,其意义如下:仅用了其中高四位,其意义如下:仅用了其中高四位,其意义如下: TF1TF1TF1:T1T1T1溢出中断请求标志。溢出中断请求标志。溢出中断请求标志。溢出中断请求标志。溢出中断请求标志。溢出
16、中断请求标志。 TF1=1TF1=1TF1=1,T1T1T1有溢出中断请求。有溢出中断请求。有溢出中断请求。有溢出中断请求。有溢出中断请求。有溢出中断请求。 TF1=0TF1=0TF1=0,T1T1T1无溢出中断请求。无溢出中断请求。无溢出中断请求。无溢出中断请求。无溢出中断请求。无溢出中断请求。 TR1TR1TR1:T1T1T1运行控制位。运行控制位。运行控制位。运行控制位。运行控制位。运行控制位。 TR1=1TR1=1TR1=1,启动,启动,启动,启动,启动,启动T1T1T1工作。工作。工作。工作。工作。工作。 TR1=0TR1=0TR1=0,停止,停止,停止,停止,停止,停止T1T1T1
17、工作。工作。工作。工作。工作。工作。在程序中用指令在程序中用指令在程序中用指令在程序中用指令在程序中用指令在程序中用指令“SETB TR1”SETB TR1”SETB TR1”使使使使使使TR1TR1TR1位置位置位置位置位置位置1 1 1,定时器,定时器,定时器,定时器,定时器,定时器T1T1T1便开便开便开便开便开便开始计数。始计数。始计数。始计数。始计数。始计数。“CLR TR1CLR TR1CLR TR1”使使使使使使TR1TR1TR1清清清清清清0. 0. 0.GATE=0GATE=0GATE=0时,用时,用时,用时,用时,用时,用软件软件软件软件软件软件使使使使使使TR1TR1TR
18、1置置置置置置1 1 1,则启动定时器,则启动定时器,则启动定时器,则启动定时器,则启动定时器,则启动定时器1 1 1, 用用用用用用软件软件软件软件软件软件使使使使使使TR1TR1TR1清清清清清清0 0 0,则停止定时器,则停止定时器,则停止定时器,则停止定时器,则停止定时器,则停止定时器1 1 1。GATE=1GATE=1GATE=1时时时时时时,用,用,用,用,用,用软件软件软件软件软件软件TR1TR1TR1TR1TR1TR1置置置置置置1 1 1 1 1 1,如果检测到引脚,如果检测到引脚,如果检测到引脚,如果检测到引脚,如果检测到引脚,如果检测到引脚INT1INT1INT1INT1
19、INT1INT1(P3.3P3.3P3.3P3.3P3.3P3.3)输)输)输)输)输)输入高电平时启动定时器入高电平时启动定时器入高电平时启动定时器入高电平时启动定时器入高电平时启动定时器入高电平时启动定时器1 1 1 1 1 1。 TF0TF0TF0:T0T0T0溢出中断请求标志。溢出中断请求标志。溢出中断请求标志。溢出中断请求标志。溢出中断请求标志。溢出中断请求标志。 TF0=1TF0=1TF0=1,T0T0T0有溢出中断请求。有溢出中断请求。有溢出中断请求。有溢出中断请求。有溢出中断请求。有溢出中断请求。 TF0=0TF0=0TF0=0,T0T0T0无溢出中断请求。无溢出中断请求。无溢
20、出中断请求。无溢出中断请求。无溢出中断请求。无溢出中断请求。 TR0TR0TR0:T0T0T0运行控制位。运行控制位。运行控制位。运行控制位。运行控制位。运行控制位。 TR0=1TR0=1TR0=1,启动,启动,启动,启动,启动,启动T0T0T0工作。工作。工作。工作。工作。工作。 TR0=0TR0=0TR0=0,停止,停止,停止,停止,停止,停止T0T0T0工作。同工作。同工作。同工作。同工作。同工作。同TR1TR1TR1定时计数器的内部逻辑电路结构定时计数器的内部逻辑电路结构定时计数器的内部逻辑电路结构定时计数器的内部逻辑电路结构定时计数器的内部逻辑电路结构定时计数器的内部逻辑电路结构 &
21、 & & 1 1 1C/TC/TC/TC/TC/TC/T7.4 7.4 7.4 定时器的四种工作方式定时器的四种工作方式定时器的四种工作方式定时器的四种工作方式定时器的四种工作方式定时器的四种工作方式 对对对对对对TMODTMODTMOD寄存器的寄存器的寄存器的寄存器的寄存器的寄存器的M1M1M1、M0M0M0位的设置,可选择四种工作方位的设置,可选择四种工作方位的设置,可选择四种工作方位的设置,可选择四种工作方位的设置,可选择四种工作方位的设置,可选择四种工作方式,即方式式,即方式式,即方式式,即方式式,即方式式,即方式0 0 0、方式、方式、方式、方式、方式、方式1 1 1、方式、方式、方
22、式、方式、方式、方式2 2 2和方式和方式和方式和方式和方式和方式3 3 3。下面用下面用下面用下面用下面用下面用THXTHXTHX、TLXTLXTLX(X=1X=1X=1或或或或或或0 0 0)表示)表示)表示)表示)表示)表示TH1 TL1 TH0 TL0TH1 TL1 TH0 TL0TH1 TL1 TH0 TL0。模式模式模式模式模式模式0 0 0以及定时器以及定时器以及定时器以及定时器以及定时器以及定时器T0T0T0、T1T1T1模式模式模式模式模式模式0 0 0下的结构下的结构下的结构下的结构下的结构下的结构模式模式模式模式模式模式1 1 1以及定时器以及定时器以及定时器以及定时器以
23、及定时器以及定时器T0T0T0、T1T1T1模式模式模式模式模式模式1 1 1下的结构下的结构下的结构下的结构下的结构下的结构模式模式模式模式模式模式2 2 2以及定时器以及定时器以及定时器以及定时器以及定时器以及定时器T0T0T0、T1T1T1模式模式模式模式模式模式2 2 2下的结构下的结构下的结构下的结构下的结构下的结构模式模式模式模式模式模式3 3 3以及定时器以及定时器以及定时器以及定时器以及定时器以及定时器T0T0T0、T1T1T1模式模式模式模式模式模式3 3 3下的结构下的结构下的结构下的结构下的结构下的结构 13位定时位定时/计数器计数器,由,由TLx的低的低5位(高位(高3
24、位未用)和位未用)和THx的的8位组成。位组成。TLx的低的低5位溢出时向位溢出时向THx进位,进位,THx溢溢出时,置位出时,置位TCON中的中的TFx标志,向标志,向CPU发出中断请求。发出中断请求。计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数: 1 1 1 1 1 18192(28192(28192(28192(28192(28192(2131313131313) ) ) ) ) )定时时间:定时时间:定时时间:定时时间:定时时间:定时时间: T T T T T T8192T8192T8192Tfoscfoscfoscfosc
25、foscfosc=12MHz=12MHz=12MHz=12MHz=12MHz=12MHz,T=1usT=1usT=1usT=1usT=1usT=1us时,最大定时时间:时,最大定时时间:时,最大定时时间:时,最大定时时间:时,最大定时时间:时,最大定时时间:8.19ms8.19ms8.19ms8.19ms8.19ms8.19ms 计数外部脉冲个数范围:计数外部脉冲个数范围:计数外部脉冲个数范围:计数外部脉冲个数范围:计数外部脉冲个数范围:计数外部脉冲个数范围:1 1 1 1 1 1655366553665536655366553665536(2(2(2(2(2(2161616161616) )
26、 ) ) ) )定时时间范围定时时间范围定时时间范围定时时间范围定时时间范围定时时间范围 :T T T65536T65536T65536T65536T65536T65536TTLx为为8位加位加1计数器,计数器, THx为为8位位初值暂存器初值暂存器。 TLx计数溢出时,一方计数溢出时,一方面将面将TFx置位,另一方面,将置位,另一方面,将THx的内容重新装入的内容重新装入TLx,但不影响,但不影响THx中的中的内容,用于需要重复定时和计数的场合,可实现每隔预定时间发出控制信内容,用于需要重复定时和计数的场合,可实现每隔预定时间发出控制信号。号。4)方式)方式3(M1M0=00) T0在方式在
27、方式3时时T1的工作模式的工作模式 如果定时如果定时如果定时如果定时如果定时如果定时/ / /计数器计数器计数器计数器计数器计数器T0T0T0工作在方式工作在方式工作在方式工作在方式工作在方式工作在方式3 3 3,T1T1T1只能工作在只能工作在只能工作在只能工作在只能工作在只能工作在0 0 0、1 1 1、2 2 2方式。方式。方式。方式。方式。方式。此时由于此时由于此时由于此时由于此时由于此时由于T1T1T1的运行控制位的运行控制位的运行控制位的运行控制位的运行控制位的运行控制位TR1TR1TR1及计数溢出标及计数溢出标及计数溢出标及计数溢出标及计数溢出标及计数溢出标志位志位志位志位志位志
28、位TF1TF1TF1已被定时已被定时已被定时已被定时已被定时已被定时/ / /计数器计数器计数器计数器计数器计数器T0T0T0借用,借用,借用,借用,借用,借用,这时,这时,这时,这时,这时,这时,T1T1T1作为串行口作为串行口作为串行口作为串行口作为串行口作为串行口的波特率发生器使用。的波特率发生器使用。的波特率发生器使用。的波特率发生器使用。的波特率发生器使用。的波特率发生器使用。 当作为波特率发生器使用时,只需要设置好工作方当作为波特率发生器使用时,只需要设置好工作方当作为波特率发生器使用时,只需要设置好工作方当作为波特率发生器使用时,只需要设置好工作方当作为波特率发生器使用时,只需要
29、设置好工作方当作为波特率发生器使用时,只需要设置好工作方式,便可自动运行。式,便可自动运行。式,便可自动运行。式,便可自动运行。式,便可自动运行。式,便可自动运行。如要停止工作,只需送入一个把如要停止工作,只需送入一个把如要停止工作,只需送入一个把如要停止工作,只需送入一个把如要停止工作,只需送入一个把如要停止工作,只需送入一个把T1T1T1设置为方式设置为方式设置为方式设置为方式设置为方式设置为方式3 3 3的方式控制字。因为定时的方式控制字。因为定时的方式控制字。因为定时的方式控制字。因为定时的方式控制字。因为定时的方式控制字。因为定时/ / /计数器计数器计数器计数器计数器计数器T1T1
30、T1不能在不能在不能在不能在不能在不能在方式方式方式方式方式方式3 3 3下工作,如果硬把它设置为方式下工作,如果硬把它设置为方式下工作,如果硬把它设置为方式下工作,如果硬把它设置为方式下工作,如果硬把它设置为方式下工作,如果硬把它设置为方式3 3 3,则停止工作。,则停止工作。,则停止工作。,则停止工作。,则停止工作。,则停止工作。T0在方式在方式3时时T1的工作模式的工作模式(c)T1(c)T1(c)T1方式方式方式方式方式方式2 2 2定时器定时器定时器/ / /计数器的功能和工作模式的选择是由工作模式控制寄存器计数器的功能和工作模式的选择是由工作模式控制寄存器计数器的功能和工作模式的选
31、择是由工作模式控制寄存器TMODTMODTMOD和定和定和定时器控制寄存器时器控制寄存器时器控制寄存器TCONTCONTCON来控制的。来控制的。来控制的。 工作模式控制寄存器工作模式控制寄存器工作模式控制寄存器TMODTMODTMOD示意图示意图示意图 定时器控制寄存器定时器控制寄存器定时器控制寄存器TCONTCONTCON示意图示意图示意图 4 4 4种工作模式的特点种工作模式的特点种工作模式的特点1 1 1最大定时时间不同(采用最大定时时间不同(采用最大定时时间不同(采用12MHz12MHz12MHz的晶体)的晶体)的晶体)模式模式模式0 0 0(131313位)时:位)时:位)时:TM
32、AX=8192TMAX=8192TMAX=8192 s= 8.192mss= 8.192mss= 8.192ms。模式模式模式1 1 1(161616位)时:位)时:位)时:TMAX=65536TMAX=65536TMAX=65536 s= 65.536mss= 65.536mss= 65.536ms。模式模式模式2 2 2和和和3 3 3(两个(两个(两个8 8 8位)时:位)时:位)时:TMAX=256TMAX=256TMAX=256 s= 0.256mss= 0.256mss= 0.256ms。2 2 2加载方式不同加载方式不同加载方式不同 模式模式模式0 0 0和模式和模式和模式1 1
33、 1的最大特点是计数溢出后,计数器全为的最大特点是计数溢出后,计数器全为的最大特点是计数溢出后,计数器全为0 0 0,因此,循环定时或,因此,循环定时或,因此,循环定时或计数时就要反复设置计数初值;模式计数时就要反复设置计数初值;模式计数时就要反复设置计数初值;模式2 2 2可以自动加载计数初值;模式可以自动加载计数初值;模式可以自动加载计数初值;模式3 3 3适合适合适合用于串行口数据传输率发生器。用于串行口数据传输率发生器。用于串行口数据传输率发生器。小小小小小小 结结结结结结任意定时以及计数的方法:任意定时以及计数的方法: 我们采用预置数的办法,我要计100,那我就先放进65436,再来
34、100个脉冲,就到了65536了。定时也是如此,每个脉冲是1微秒,则计满65536个脉冲需时65.536毫秒,但现在我只要10毫秒就能了,怎么办?10个毫秒为10000个微秒,所以,只要在计数器里面放进55536就可以了。 以定时器T0在方式1下定时0.95ms为例,先将65536s-950s=64586s换成十六进制数FC4AH,然后将此数的高位FC装入TH0;再将此数的低位4A装入TL0。再进行计数就可以了。 还有一种简便计算方法,即将设计时初始值直接代入表中所提供的公式里,如使用定时器T0在模式0下定时1000s,设计初始值为1000,将1000分两次代入公式即可。定时计数器的初始化定时
35、计数器的初始化定时计数器的初始化定时计数器的初始化定时计数器的初始化定时计数器的初始化 在使用定时器在使用定时器在使用定时器在使用定时器在使用定时器在使用定时器/ / /计数器前,应首先对其进行初始化编程。计数器前,应首先对其进行初始化编程。计数器前,应首先对其进行初始化编程。计数器前,应首先对其进行初始化编程。计数器前,应首先对其进行初始化编程。计数器前,应首先对其进行初始化编程。一、定时器的初始化步骤一、定时器的初始化步骤一、定时器的初始化步骤一、定时器的初始化步骤一、定时器的初始化步骤一、定时器的初始化步骤1 1 1、设置、设置、设置、设置、设置、设置TMODTMODTMOD。选择工作模
36、式和工作方式。选择工作模式和工作方式。选择工作模式和工作方式。选择工作模式和工作方式。选择工作模式和工作方式。选择工作模式和工作方式。2 2 2、设置定时器的计数初值、设置定时器的计数初值、设置定时器的计数初值、设置定时器的计数初值、设置定时器的计数初值、设置定时器的计数初值。将初值写入。将初值写入。将初值写入。将初值写入。将初值写入。将初值写入TH0TH0TH0和和和和和和TL0TL0TL0或或或或或或TH1TH1TH1、TL1TL1TL1。3 3 3、如果需要中断,设置中断允许寄存器、如果需要中断,设置中断允许寄存器、如果需要中断,设置中断允许寄存器、如果需要中断,设置中断允许寄存器、如果
37、需要中断,设置中断允许寄存器、如果需要中断,设置中断允许寄存器IEIEIE。4 4 4、设置、设置、设置、设置、设置、设置TCONTCONTCON,启动定时器,启动定时器,启动定时器,启动定时器,启动定时器,启动定时器。 可以使用位操作指令。例如:可以使用位操作指令。例如:可以使用位操作指令。例如:可以使用位操作指令。例如:可以使用位操作指令。例如:可以使用位操作指令。例如:SETB SETB SETB TRxTRxTRx。使用定时器工作之前,先写入方式、控制寄存器,确定好使用定时器工作之前,先写入方式、控制寄存器,确定好使用定时器工作之前,先写入方式、控制寄存器,确定好使用定时器工作之前,先
38、写入方式、控制寄存器,确定好使用定时器工作之前,先写入方式、控制寄存器,确定好使用定时器工作之前,先写入方式、控制寄存器,确定好定时器工作方式:定时器工作方式:定时器工作方式:定时器工作方式:定时器工作方式:定时器工作方式:GATEC/TM1M0GATEC/TM1M0 MOV TMODMOV TMODMOV TMOD,# # # 方式字方式字方式字方式字方式字方式字; ; ;启动方式选择启动方式选择启动方式选择启动方式选择启动方式选择启动方式选择(内外共同启动(内外共同启动(内外共同启动(内外共同启动(内外共同启动(内外共同启动/ / / / / /内启动)内启动)内启动)内启动)内启动)内启
39、动) 功能选择功能选择功能选择功能选择功能选择功能选择(计数(计数(计数(计数(计数(计数/ / / / / /定时)定时)定时)定时)定时)定时) 位数选择位数选择位数选择位数选择位数选择位数选择 (8/13/168/13/168/13/168/13/168/13/168/13/16位)位)位)位)位)位) MOV MOV MOV THxTHxTHx,#X#X#XH H H;计算时间常数计算时间常数计算时间常数计算时间常数计算时间常数计算时间常数X X X X X X,MOV MOV MOV TLxTLxTLx,#X#X#XL L L ;TxTxTx时间常数初值装入数据寄存器时间常数初值装入
40、数据寄存器时间常数初值装入数据寄存器时间常数初值装入数据寄存器时间常数初值装入数据寄存器时间常数初值装入数据寄存器 , (SETB EA(SETB EA(SETB EA) ) ) ;开;开;开;开;开;开TxTxTx中断中断中断中断中断中断(SETB (SETB (SETB ETxETxETx) ) ) SETB SETB SETB TRxTRxTRx ;启动控制;启动控制;启动控制;启动控制;启动控制;启动控制TxTxTxTxTxTx定时器(启动定时器(启动定时器(启动定时器(启动定时器(启动定时器(启动/ / / / / /停止)停止)停止)停止)停止)停止)定时器初始化编程定时器初始化编
41、程定时器初始化编程定时器初始化编程定时器初始化编程定时器初始化编程:在主程序中进行:在主程序中进行:在主程序中进行:在主程序中进行:在主程序中进行:在主程序中进行二、定时器二、定时器/计数器初值计算计数器初值计算 定时器定时器/计数器的模式和方式不同,计数初值也将不同。计数器的模式和方式不同,计数初值也将不同。计数器的长度为计数器的长度为n,则计数的最大值为,则计数的最大值为2n 。1、工作于定时方式、工作于定时方式计数脉冲由内部的时钟提供,每个机器周期进行加计数脉冲由内部的时钟提供,每个机器周期进行加1。设晶振频率为设晶振频率为fosc,则计数脉冲的频率为,则计数脉冲的频率为fosc/12,
42、计数脉冲周期,计数脉冲周期T=1/(fosc/12)。)。如果进行定时时间为如果进行定时时间为t,计数初值为,计数初值为X,则:,则:初值X = 2n - t fosc/12 2、工作于计数方式、工作于计数方式 当工作在计数方式时,对外部脉冲计数。利用计数器计数结束当工作在计数方式时,对外部脉冲计数。利用计数器计数结束产生溢出的特性,来计算初值产生溢出的特性,来计算初值X 。则有:。则有:X= 2n计数次数计数次数上节练习与回顾上节练习与回顾1、下面哪一种仅适用于定时器 T0( ) A.方式 0 B.方式 1 C.方式 2 D.方式 32、若 51 单片机的晶振频率是 24MHz,则其内部定时
43、器/计数器利用计数器对 外部输入脉冲的最高计数频率是( ) A.1MHz B. 6MHz C. 12MHz D. 24MHz3、8031定时/计数器是否计满可采用等待中断的方法进行处理,也可通过对( )的查询方法进行判断。 AOV标志 BCY标志 C中断标志 D奇偶标志4、在下列寄存器中,与定时/计数控制无关的是 ( ) A、TCON(定时控制寄存器) B、TMOD(工作方式控制寄存器)C、SCON(串行控制寄存器) D、IE(中断允许控制寄存器)答:有四种工作模式:模式答:有四种工作模式:模式0,模式,模式1,模式,模式2,模式,模式3 (1) 模式模式0:选择定时器的高:选择定时器的高8位
44、和低位和低5位组成一个位组成一个13位定时器位定时器/计数器。计数器。TL低低5位溢出时向位溢出时向TH进位,进位,TH溢出时向中断标志位溢出时向中断标志位TF进位,并申请中断。进位,并申请中断。 定时时间定时时间t=(213-初值初值)振荡周期振荡周期12;计数长度位;计数长度位213=8192个外部脉冲个外部脉冲 (2) 模式模式1:与模式:与模式0的唯一差别是寄存器的唯一差别是寄存器TH和和TL以全部以全部16位参与操作。定时时间位参与操作。定时时间t=(216-初值初值)振荡周期振荡周期12;计数长度位;计数长度位216=65536个外部脉冲个外部脉冲 (3) 模式模式2:把:把TL0
45、和和TL1配置成一个自动重装载的配置成一个自动重装载的8位定时器位定时器/计数器。计数器。TL用作用作8位计数位计数器,器,TH用以保存初值。用以保存初值。TL计数溢出时不仅使计数溢出时不仅使TF0置置1,而且还自动将,而且还自动将TH中的内容重新中的内容重新装载到装载到TL中。中。 定时时间定时时间t=( -初值初值)振荡周期振荡周期12;计数长度位;计数长度位 =256个外部脉冲个外部脉冲 (4) 模式模式3:对:对T0和和T1不大相同不大相同 若设若设T0位模式位模式3,TL0和和TH0被分为两个相互独立的被分为两个相互独立的8位位计数器。计数器。TL0为为8位计数器,功能与模式位计数器
46、,功能与模式0和模式和模式1相同,可定时可计数。相同,可定时可计数。 TH0仅用作仅用作简单的内部定时功能,它占用了定时器简单的内部定时功能,它占用了定时器T1的控制位的控制位TR1和中断标志位和中断标志位TF1,启动和关,启动和关闭仅受闭仅受TR1控制。控制。 定时器定时器T1无工作模式无工作模式3,但,但T0在工作模式在工作模式3时时T1仍可设置为仍可设置为02。 5 5 5、89C5189C5189C51定时器有哪几种工作模式?有何区别?定时器有哪几种工作模式?有何区别?定时器有哪几种工作模式?有何区别?定时器有哪几种工作模式?有何区别?定时器有哪几种工作模式?有何区别?定时器有哪几种工
47、作模式?有何区别?6、根据定时器、根据定时器/计数器计数器0方式方式1逻辑结构图,分析门控位逻辑结构图,分析门控位GATE取不同取不同值时,启动定时器的工作过程。值时,启动定时器的工作过程。答:答:当GATE=0:软件启动定时器,即用指令使TCON中的TR0置1即可启动定时器0。GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR0置1时,只有外部中断INT0引脚输入高电平时才能启动定时器0。7、单片机、单片机8031的时钟频率为的时钟频率为6MHz,若要求定时值分别为若要求定时值分别为0.1ms,1ms,10ms,定时器定时器0工作在模式工作在模式0、模式、模式1和模式和模式2
48、时,其时,其定时器初值各应是多少?定时器初值各应是多少? 解: (1) 0.1ms 模式0: T0低5位01110B=0EH T0高8位:11111110B=FEH 模式1:模式2: (2) 1ms 模式0: T0低5位01100B=0CH T0高8位:11110000B=F0H 模式1: 模式2: 在此情况下最长定时为512s,无法一次实现定时1ms,可用0.1ms循环10次 (3) 10ms 模式0: T0低5位11000B=18H T0高8位:01100011B=63H 模式1: 模式2:在此情况下最长定时为512s,无法一次实现定时10ms,可用0.1ms循环100次8、3、设、设MC
49、S-51单片机单片机fosc=12MHz,要求,要求T0定时定时150s,分别计算采用定时方式,分别计算采用定时方式0、方式、方式1和方式和方式2时的定时初值时的定时初值。答:答:方式0的定时初值:IF6AH方式1的定时初值:FF6AH方式2的定时初值:6AH9、 设设MCS-51单片机单片机fosc=6MHz,问单片机处于不同的,问单片机处于不同的工作方式时,最大定时范围是多少?工作方式时,最大定时范围是多少?答:答:方式0的最大定时范围:131,072s方式1的最大定时范围:16,384s方式2的最大定时范围:512s例例1 设单片机的振荡频率为设单片机的振荡频率为12MHz,用定时器,用
50、定时器/计数器计数器0的的模式模式1编程,在编程,在P1.0引脚产生一个周期为引脚产生一个周期为1000s的方波,定时的方波,定时器器T0采用中断的处理方式。采用中断的处理方式。定时器的分析过程。定时器的分析过程。工作方式选择工作方式选择 需要产生周期信号时,选择定时方式。定时时间到了对输需要产生周期信号时,选择定时方式。定时时间到了对输出端进行周期性的输出即可。出端进行周期性的输出即可。 工作模式选择工作模式选择 根据定时时间长短选择工作模式。根据定时时间长短选择工作模式。 首选模式首选模式2,可以省略重装初值操作。,可以省略重装初值操作。定时器的应用举例定时器的应用举例定时器的应用举例定时
51、器的应用举例定时器的应用举例定时器的应用举例 定时时间计算:定时时间计算:周期为周期为1000s的方波要求定时器的定的方波要求定时器的定时时间为时时间为500s,每次溢出时,将,每次溢出时,将P1.0引脚的输出取反,引脚的输出取反,就可以在就可以在P1.0上产生所需要的方波。上产生所需要的方波。 定时初值计算:定时初值计算: 振荡频率为振荡频率为12MHz,则机器周期为,则机器周期为1s。 设定时初值为设定时初值为X,(65536-X)1s=500s X=65036=0FE0CH定时器的初值为:定时器的初值为:TH0=0FEH,TL0=0CH C语言程序语言程序:#include /包含特殊功
52、能寄存器库包含特殊功能寄存器库sbit P1_0=P10; /进行位定义进行位定义void main( )TMOD=0 x01; /T0做定时器,工作在模式做定时器,工作在模式1TL0=0 x0c;TH0=0 xfe;/设置定时器的初值设置定时器的初值 ET0=1;/允许允许T0中断中断 EA=1; /开中断开中断 TR0=1; /启动定时器启动定时器 while(1); /等待中断等待中断 void time0_int(void) interrupt 1/中断服务程序中断服务程序TL0=0 x0c;TH0=0 xfe;/定时器重赋初值定时器重赋初值P1_0=P1_0;/P1.0取反,输出方波
53、取反,输出方波 汇编语言程序汇编语言程序:ORG0000HSJMPMAINORG000BHLJMPTIME0MAIN:MOV TMOD,#01H;T0定时,模式定时,模式1MOVTL0,#0CH;置定时初值;置定时初值MOVTH0,#0FEH SETBET0;定时器;定时器T0开中断开中断SETBEA;CPU开中断开中断SETBTR0;启动定时器;启动定时器T0SJMP$;等待定时器溢出;等待定时器溢出TIME0: MOV TL0,#0CH ;中断服务程序中断服务程序MOVTH0,#0FEH;重装定时初值;重装定时初值CPLP1.0;P1.0取反,输出方波取反,输出方波RETI;中断返回;中断
54、返回END例例2 设单片机的振荡频率为设单片机的振荡频率为12MHz,用定时器,用定时器/计数器计数器0编程实现编程实现从从P1.0输出周期为输出周期为500s的方波。的方波。分析:分析:定时时间:定时时间:从从P1.0输出周期为输出周期为500s的方波。定时的方波。定时250s,定时结束对定时结束对P1.0取反。取反。 模式选择模式选择:当系统时钟频率为:当系统时钟频率为12MHz,机器周期为,机器周期为1s,定,定时器时器/计数器计数器0可以选择模式可以选择模式0、模式、模式1和模式和模式2。模式。模式2最大的定时时最大的定时时间为间为256s,满足,满足250s的定时要求,选择模式的定时
55、要求,选择模式2(1)定时初值计算)定时初值计算 (256-X)1s=250s X=6;则则TH0=TL0=6采用中断处理方式的程序采用中断处理方式的程序 :C语言程序语言程序 :# include /包含特殊功能寄存器库包含特殊功能寄存器库sbit P1_0=P10; voidmain( )TMOD=0 x02;/选择定时器的工作模式选择定时器的工作模式TL0=0 x06;TH0=0 x06;/为定时器赋初值为定时器赋初值 ET0=1;/允许定时允许定时0中断中断 EA=1;TR0=1;/启动定时器启动定时器0while(1);/等待中断等待中断void time0_int(void) in
56、terrupt 1 P1_0=P1_0;汇编语言程序汇编语言程序:ORG0000HLJMPMAIN ORG000BH;中断处理程序;中断处理程序CPLP1.0RETIORG 0030H;主程序;主程序MAIN:MOV TMOD,#02H MOV TL0,#06HMOV TH0,#06HSETB ET0;允许定时器;允许定时器0中断中断SETB EA;允许;允许CPU中断中断SETB TR0;启动定时器;启动定时器0SJMP $;等待中断;等待中断END采用查询方式处理的程序:采用查询方式处理的程序:C语言程序:语言程序:# include /特殊功能寄存器库特殊功能寄存器库sbitP1_0=P
57、10;void main()TMOD=0 x02;TL0=0 x06;TH0=0 x06; TR0=1;while (1)while(!TF0) ;/查询计数溢出查询计数溢出 TF0=0;P1_0=P1_0;汇编语言程序汇编语言程序:MAIN:MOV TMOD,#02H;主程序;主程序MOVTL0,#06HMOVTH0,#06HSETBTR0LOOP:JNBTF0,$;查询计数溢出;查询计数溢出CLRTF0CPLP1.0 SJMPLOOPEND门控位的应用门控位的应用 门控位门控位GATE为为1时,时,TRx=1,INTx=1才能启动定时器。利才能启动定时器。利用这个特性可以测量外部输入脉冲的
58、宽度。用这个特性可以测量外部输入脉冲的宽度。例例3 利用利用T0门控位测试门控位测试 INT0引脚上出现的正脉冲宽度,已知引脚上出现的正脉冲宽度,已知晶振频率为晶振频率为12MHz,将所测得值最高位存入片内,将所测得值最高位存入片内71H单元,单元,低位存入低位存入70H单元。单元。解:设外部脉冲解:设外部脉冲 由由(P3.2)输入,输入,T0工作于定时方式工作于定时方式 1 (16位计数位计数),GATE设为设为1。测试时,应在。测试时,应在INT0 低电平时,低电平时,设置设置TR0为为1(16位计数位计数);当;当INT0 变为高电平时,就启动计变为高电平时,就启动计数;数; 再次变低时
59、,停止计数。此计数值与机器周期的乘积即再次变低时,停止计数。此计数值与机器周期的乘积即为被测正脉冲的宽度。因为被测正脉冲的宽度。因fosc=12MHZ,机器周期为,机器周期为1us,测,测试过程如下。试过程如下。源程序如下:源程序如下: MOV TMOD,#09H ; 设设T0为方式为方式1 MOV TL0,#00H ;设计初值取最大值;设计初值取最大值 MOV TH0,#00H MOV R0,#70H JB P3.2, $ ;等;等P3.2(INT0 )变低变低 SETB TR0 ;启动;启动T0准备工作准备工作 JNB P3.2, $ ;等待;等待P3.2(INT0 ) JB P3.2,$
60、 ; 等待等待P3.2(INT0 ) CLR TR0 ;停止计数停止计数T0T0T0从从从从从从0 0 0开始计数开始计数开始计数开始计数开始计数开始计数INT0INT0INT0INT0INT0INT0 09H (TMOD)09H (TMOD)09H (TMOD) 1 TR0 1 TR0 1 TR0 0 TR00 TR00 TR0T0T0T0停止计数停止计数停止计数停止计数停止计数停止计数 MOV R0,TL0 ;存放结果;存放结果 INC R0 MOV R0,TH0 SJMP $ 读者不难编出读者不难编出C语言程序。语言程序。这种方案被测脉冲的宽度最大为这种方案被测脉冲的宽度最大为65535
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 警字特色课程设计
- 委托代销服装合同范例
- 施工电梯购买合同范例
- 乡镇粮油代理合同范例
- 外卖电动车电池租赁协议3篇
- 全新美容院客人转让协议书范本3篇
- 养殖场拆除补偿协议3篇
- 劳动合同招工员工关系管理策略3篇
- 创意产业园区物业管理协议3篇
- 企业整体资产转让协议3篇
- 身临其境 课件-2024-2025学年人教版(2024)初中美术七年级上册
- 2024秋期国家开放大学专科《社会调查研究与方法》一平台在线形考(形成性考核一至四)试题及答案
- 高中数学单元教学设计范文(5篇)
- 【人教版】《劳动教育》五上 劳动项目五《设计制作海报》课件
- GB/T 22517.2-2024体育场地使用要求及检验方法第2部分:游泳场地
- 2024-2030年生命科学中的工业自动化行业市场现状供需分析及投资评估规划分析研究报告
- 2024年江苏苏州市事业单位专业化青年人才定岗特选444人历年高频500题难、易错点模拟试题附带答案详解
- Unit3 Amazing Animals(教学设计)-2024-2025学年人教PEP(2024)三年级上册
- 一年级心理健康课件生命真美好苏科版
- 10以内连加减口算练习题完整版89
- GB/T 44460-2024消费品质量分级导则卫生洁具
评论
0/150
提交评论