第7章 51单片机的定时计数器
单片机原理与应用(C51编程+proteus仿真)第2版张毅刚--第7章课后习题答案2020年1月30日整理
单片机原理与应用(C51编程+proteus仿真)第2版-张毅刚课后习题参考答案第7章思考题及习题7参考答案一、填空1.如果采用晶振的频率为3MHz,定时器/计数器Tx(x=0,1)工作在方式0、1、2下,其方式0的最大定时时间为(),方式1的最大定时时间为(),方式2的最大定时时间为()。
答:32.768ms,262.144ms,1024μs 2.定时器/计数器用作计数器模式时,外部输入的计数脉冲的最高频率为系统时钟频率的()。
答:1/243.定时器/计数器用作定时器模式时,其计数脉冲由()提供,定时时间与()有关。
答:系统时钟信号12分频后,定时器初值4.定时器/计数器T1测量某正单脉冲的宽度,采用方式()可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度为()。
答:方式1定时,131.072ms。
5. 定时器T2 有3种工作方式:()、()和(),可通过对寄存器()中的相关位进行软件设置来选择。
答:捕捉,重新装载(增计数或减计数),波特率发生器,T2CON6. AT89S52单片机的晶振为6MHz,若利用定时器T1的方式1定时2ms,则(TH1)=(),(TL1)=()。
答:FCH,18H。
二、单选1.定时器T0工作在方式3时,定时器T1有()种工作方式。
A.1种B.2种 C.3种 D.4种答:C2. 定时器T0、T1工作于方式1时,其计数器为位。
A.8位B.16位C.14位D.13位答:B3. 定时器T0、T1的GATEx=1时,其计数器是否计数的条件()。
A. 仅取决于TRx状态B. 仅取决于GATE位状态C.是由TRx和INTx两个条件来共同控制D. 仅取决于INTx的状态答:C4. 定时器T2工作在自动重装载方式时,其计数器为位。
A.8位B. 13位C.14位D. 16位答:D5. 要想测量INT0引脚上的正单脉冲的宽度,特殊功能寄存器TMOD的内容应为。
A.87HB. 09HC.80HD. 00H答:B三、判断对错1.下列关于T0、T1的哪些说法是正确的。
单片机原理及接口技术(C51编程)第7章 定时器计数器
图7-14 由外部计数输入信号控制LED的闪烁
(3)设置IE寄存器 本例由于采用T1中断,因此需将IE寄存器的EA、ET1位置1。
(4)启动和停止定时器T1 将寄存器TCON中TR1=1,则启动T1计数;TR1=0,则停止T1计数。
参考程序如下:
#include <reg51.h> void Delay(unsigned int i)
7.4 定时器/计数器的编程和应用 4种工作方式中,方式0与方式1基本相同,只是计数位数不同。方
式0为13位,方式1为16位。由于方式0是为兼容MCS-48而设,计数初 值计算复杂,所以在实际应用中,一般不用方式0,常采用方式1。
7.4.1 P1口控制8只LED每0.5s闪亮一次 【例7-1】在AT89S51的P1口上接有8只LED,原理电路见图7-
当TMOD的低2位为11时,T0被选为方式3,各引脚与T0的逻辑关系 见图7-8。
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位 C/T* 、GATE、TR0 ,而TH0被固定为一个8位定时器(不能作为外部 计数模式),并使用定时器T1的状态控制位TR1,同时占用定时器T1的 中断请求源TF1。
13。采用T0方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮 一次。
23
图7-13 方式1定时中断控制LED闪亮
24
(1)设置TMOD寄存器 T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设置C/T*=0,为定
时器模式;对T0的运行控制仅由TR0来控制,应使相应的GATE位为0。定时 器T1不使用,各相关位均设为0。所以,TMOD寄存器应初始化为0x01。 (2)计算定时器T0的计数初值
51单片机定时器工作方式
51单片机定时器工作方式51单片机是一种非常常见的单片机,它具有多个定时器用来实现各种定时任务。
下面我们就来详细介绍一下51单片机的定时器工作方式。
首先,51单片机的定时器可以分为两种类型:定时/计数器0(T0)和定时/计数器1(T1),它们分别有不同的工作方式和控制寄存器。
一、定时/计数器0(T0)工作方式:定时/计数器0(T0)是一个8位的定时器/计数器,它可以进行定时或计数操作。
在定时模式下,它可以作为定时器在规定的时间段内进行计时;在计数模式下,它可以根据外部信号的脉冲计数。
在定时模式下,T0可以通过设置控制寄存器TCON的位4(TR0)来启动或停止计时操作。
当TR0为1时,定时器开始计时;当TR0为0时,定时器停止计时。
定时器的工作频率可以通过控制寄存器TMOD的位1和位0来设置。
在计数模式下,T0可以通过设置TCON的位5(CT0)来选择定时器或计数器操作。
当CT0为0时,定时器工作,当CT0为1时,计数器工作。
同时,在计数模式下,还需要通过设置控制寄存器TMOD的位1和位0来设置计数器的工作频率。
定时/计数器0还可以使用中断功能,通过设置控制器IE的位4(ET0)来开启或关闭中断。
当ET0为1时,当定时器溢出时会产生中断请求,可以在中断服务程序中处理相应的操作。
二、定时/计数器1(T1)工作方式:定时/计数器1(T1)也是一个8位的定时器/计数器,它可以进行定时或计数操作。
类似于T0,T1也可以在定时模式下作为定时器进行计时,或者在计数模式下根据外部信号的脉冲进行计数。
在定时模式下,T1可以通过设置TCON的位6(TR1)来启动或停止计时操作。
当TR1为1时,定时器开始计时;当TR1为0时,定时器停止计时。
定时器的工作频率可以通过设置TMOD的位3和位2来设置。
在计数模式下,T1可以通过设置TCON的位7(CT1)来选择定时器或计数器操作。
当CT1为0时,定时器工作;当CT1为1时,计数器工作。
51单片机定时器的使用
151单片机定时器/计时器的使用步骤:1、 打开中断允许位:对IE 寄存器进行控制,IE 寄存器各位的信息如下图所示:EA : 为0时关所有中断;为1时开所有中断ET2:为0时关T2中断;为1时开T2中断,只有8032、8052、8752才有此中断 ES : 为0时关串口中断;为1时开串口中断 ET1:为0时关T1中断;为1时开T1中断 EX1:为0时关1时开 ET0:为0时关T0中断;为1时开T0中断 EX0:为0时关1时开2、 选择定时器/计时器的工作方式:定时器TMOD 格式CPU 在每个机器周期内对T0/T1检测一次,但只有在前一次检测为1和后一次检测为0时才会使计数器加1。
因此,计数器不是由外部时钟负边沿触发,而是在两次检测到负跳变存在时才进行计数的。
由于两次检测需要24个时钟脉冲,故T0/T1线上输入的0或1的持续时间不能少于一个机器周期。
通常,T0或T1输入线上的计数脉冲频率总小于100kHz 。
方式0:定时器/计时器按13位加1计数,这13位由TH 中的高8位和TL 中的低5位组成,其中TL 中的高3位弃之不用(与MCS-48兼容)。
13位计数器按加1计数器计数,计满为0时能自动向CPU 发出溢出中断请求,但要它再次计数,CPU 必须在其中断服务程序中为它重装初值。
方式1:16位加1计数器,由TH 和TL 组成,在方式1的工作情况和方式0的相同,只是计数器值是方式0的8倍。
2方式2:计数器被拆成一个8位寄存器TH 和一个8位计数器TL ,CPU 对它们初始化时必须送相同的定时初值。
当计数器启动后,TL 按8位加1计数,当它计满回零时,一方面向CPU 发送溢出中断请求,另一方面从TH 中重新获得初值并启动计数。
方式3:T0和T1工作方式不同,TH0和TL0按两个独立的8位计数器工作,T1只能按不需要中断的方式2工作。
在方式3下的TH0和TL0是有区别的:TL0可以设定为定时器/计时器或计数器模式工作,仍由TR0控制,并采用TF0作为溢出中断标志;TH0只能按定时器/计时器模式工作,它借用TR1和TF1来控制并存放溢出中断标志。
MCS-51单片机内部定时器计数器
二、 方式1
方式 1(16位计数器)
•MCS-51单片机内部定时器计数器
方式1和方式0的工作原理基本相同,唯一 不同是T0和T1工作在方式1时是16位的计数/定 时器。
方式1时的计数长度M是2的16次方。16位 的初值直接拆成高低字节,分别送入TH和TL 即可。
•MCS-51单片机内部定时器计数器
M1 M0:四种工作方式的选择位 工作方式选择表
M1 M0 方式
说明
0 0 0 13 位定时器(TH的 8 位和TL的低 5 位)
0 1 1 16 位定时器/计数器
1 0 2 自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器,
1 1 3 T1 在方式 3 时停止工作
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
•MCS-51单片机内部定时器计数器
N= 1 ms÷2 μs = 500
由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=M-N=8 192-500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其 余码均计入高 8 位TH0 的初值, 则 T0
0。TF产生的中断申请是否被接受, 还需要由中断计数器T1、 T0 的运行控制位,
通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时
被清 0。
•MCS-51单片机内部定时器计数器
定时器的工作方式
一、 方式 0
方式 0(13位计数器)
•MCS-51单片机内部定时器计数器
•MCS-51单片机内部定时器计数器
51单片机定时计数器的工作原理
51单片机定时计数器的工作原理
51单片机是一种常用的微控制器,它具有多个定时计数器,其中包括定时器0和定时器1。
这些定时计数器是通过内部时
钟源提供的脉冲进行计数的。
定时器0和定时器1是独立的计数器,它们可以用于不同
的应用。
这里我们将主要关注定时器0的工作原理。
定时器0
由一个八位计数器和一个控制寄存器组成。
当定时器0启动时,它会根据时钟源提供的脉冲进行计数,每个脉冲会使计数器的值增加1。
定时器0的计数范围为0-255,即八位二进制数。
通过控制寄存器,我们可以设置定时器0的工作模式、计
数器的初始值以及时钟源的频率。
定时器0可以以不同的方式工作,包括定时模式和计数模式。
在定时模式下,我们可以设置一个初始值,并在每次计数
器增加到该值时产生一个中断。
这样就可以实现精确的定时功能。
定时器0的中断服务程序可以完成各种操作,例如控制其他外设、延时等。
在计数模式下,定时器0将简单地计数外部触发信号的脉
冲次数。
这可以用于测量外部事件的时间间隔或频率。
需要注意的是,定时器0的工作需要通过编程来完成。
我
们可以使用汇编语言或C语言来配置定时器0的寄存器,并
设计相应的中断服务程序。
51单片机定时器的工作原理是通过定时器0和定时器1实
现计数功能。
定时器0可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。
编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。
MCS-51的定时计数器
第六章MCS-51的定时/计数器1.如果采用晶振的频率为3MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?解答:因为机器周期,所以定时器/计数器工作方式0下,其最大定时时间为;同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1024ms。
2.定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
3.定时/计数器用作定时器时,对外界计数频率有何限制?答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
4.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。
定时1ms后,又转为计数方式,如此循环不止。
假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。
解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。
除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。
编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2MOV TL0,#156 ;计数100个脉冲的初值赋值MOV TH0,#156SETB GATE ;打开计数门SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断CLR F0 ;设置下一轮为定时方式的标志位WAIT: AJMP WAITIT0P: CLR EA ;关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器T0为定时方式0MOV TH0,#0FEH ;定时1ms初值赋值MOV TL0,#0CHSETB EARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI5. 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
定时器与计数器
第7章定时器/计数器MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1(8052提供3个,这第三个称定时器T2)。
它们既可用作定时器方式,又可用作计数器方式。
7 . 1定时器/计数器结构定时器/计数器的基本部件是两个8位的计数器(其中TH1,TL1是T1的计数器,TH0,TL0是T0的计数器)拼装而成。
在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对计算机机器周期的计数器(因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号)。
故其频率为晶振频率的1/12。
如果晶振频率为12MH Z,则定时器每接收一个输入脉冲的时间为1us。
当它用作对外部事件计数时,接相应的外部输入引脚T0(P3.4)或T1(P3.5)。
在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1(它在每个机器周期的S5P2时采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,则计数器加1)。
加1操作发生在检测到这种跳变后的一个机器周期中的S3P1,因此需要两个机器周期来识别一个从“1”到“0”的跳变,故最高计数频率为晶振频率的1/24。
这就要求输入信号的电平要在跳变后至少应在一个机器周期内保持不变,以保证在给定的电平再次变化前至少被采样一次。
定时器/计数器有四种工作方式,其工作方式的选择及控制都由两个特殊功能寄存器(TMOD和TCON)的内容来决定。
用指令改变TMOD或TCON的内容后,则在下一条指令的第一个机器周期的S1P1时起作用。
1、定时器的方式寄存器TMOD图7-1 TMOD寄存器各位定义特殊功能寄存器TMOD为定时器的方式控制寄存器,寄存器中每位的定义如图7-1所示。
高4位用于定时器1,低4位用于定时器0。
其中M1,M0用来确定所选的工作方式,如表7-1所示。
①M1 M0 定时器/计数器四种工作方式选择,见表7-1所示。
第7章习题解答
第7章思考题及习题71.如果采用的晶振的频率为24MHz,定时器/计数器工作在方式0、1、2下,其最大定时时间各为多少?答:晶振的频率为24MHz, 机器周期为µs。
方式0最大定时时间=µs×213=µs×8192=4096µs方式1最大定时时间=µs×216=µs×65536=327686µs方式2最大定时时间=µs×28=µs×256=128µs2.定时器/计数器用作计数器模式时,对外界计数频率有何限制?答:外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
3.定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?答:方式2为初值自动装入的8位定时器/计数器,克服了在循环定时或循环计数应用时就存在用指令反复装入计数初值影响定时精度的问题。
4.TH x与TL x(x= 0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满后才能刷新?答:THx与TLx(x = 0,1)是计数器,其内容可以随时用指令更改,但是更改后的新值要等当前计数器计满后才能刷新。
5.Proteus虚拟仿真使用定时器T0,采用方式2定时,在脚输出周期为400µs,占空比为4:1的矩形脉冲,要求在脚接有虚拟示波器,观察脚输出的矩形脉冲波形。
答:略6.Proteus虚拟仿真利用定时器T1的中断来使控制蜂鸣器发出1kHz的音频信号,假设系统时钟频率为12MHz。
答:利用定时器T1的中断控制引脚输出频率为1kHz的方波音频信号,驱动蜂鸣器发声。
系统时钟为12MHz。
方波音频信号的周期为1ms,因此T1的定时中断时间为 ms,进入中断服务程序后,对求反。
电路如图所示。
图控制蜂鸣器发出1kHz的音频信号先计算T1初值,系统时钟为12MHz,则方波的周期为1µs。
《单片机原理及应用》第7章 51及定时器计数器应用基础
中断,并在中断服务程序中对P1.0和P1.1取反。由于 采用了6MHz晶振,因此单片机的机器周期为2μs。因 此可计算TL0的初值X=156=9CH,TH0的初值X=56=38H。
【例7-3】P1.1输出周期1s的方波
• 由于定时时间较长,一个定时器不能直接实现(一个 定时器最长定时时间为65536us),可以有以下两种方 法。
• 方法1:硬件定时*软件计数 • 如硬件定时50ms,软件计数器设定为20即可。
方法2:硬件定时器*硬件计数器
• (1)T0定时器,定时器50ms,定时时间到,P1.0取反 ;
• (2)T1计数器, • 计数脉冲位P1.0, • 计数10次; • (3)计数次数到 • P1.1取反。
【例7-4】不同占空比的输出)
• 7.1.1 结构 • 7.1.2 控制寄存器 •
7.1.1 结构
• 计数功能:
• 是指对外部事件进行计数:计数信号来自T0(P3.4)、 T1(P3.5)引脚。
• 定时功能:
• 也是通过计数器的计数功能来完成的,不过此时的计 数脉冲来自单片机内部:机器周期。
7.1.2 控制寄存器
• 与定时器/计数器应用有关的控制寄存器有2个,分别 为TCON、TMOD、TH、TL。
• 1、计数器控制寄存器(TCON)
2、工作方式控制寄存器(TMOD)
• 3、TH、TL • 4、如果是中断方式,还与IE、IP寄存器有关。
7.1.3 串行通信的检错与纠错
• 1、奇偶校验 • 2、代码和校验 • 3、循环冗余校验(CRC校验)
总结:
• 7.1.4(1串)并行行接与口串芯行片;UART和USART
中职教育-《89C51单片机实用教程》课件:第7章 89C51单片机中断系统和定时器(4).ppt
SJMP LOOP
END
例7.9 工作模式1的应用 利用定时器 T1 工作模式1, 在引脚 P1.1 上输出
7.4 89C51单片机中定时器/计数器的应用
在定时器/计数器应用时,进行如下工作: 1. 设定TMOD来选择定时器T0,T1的工作方式:
按照实际需要,选择定时方式还是计数方式; 按照定时长短,选择工作模式0、1、2或 3 ; 按照具体要求,选择是否受INT0 (INT1) 控制。 2.根据定时时间长短和工作模式计算计数初值: 根据工作模式,计算出定时时间的计数初值 ;
将计数初值送入定时器中(TH1,TL1,TH0、TL0) 3. 对TCON的设定来启动定时器/计数器工作。 4. 正确选择用程序查询方法或程序中断方式来进
行定时时间到(计数溢出)后的处理操作。
7.4.1 定时器工作方式的设置和计数初值计算
对定时器的工作模式寄存器TMOD进行设定:
l. 定时方式和计数方式选择。
解: ⑴ 如图在引脚 P1.0 上输出周期为 2ms 连续方波,
需要定时器 T0 产生 1ms 的定时。 每隔1ms时间 P1.0 引脚的输出取反即可。
解:
⑵. T0工作于模式0,计数器为13位的加1计数器, fosc=6MHz,则1个振荡周期为1/6μs 定时时间为1ms,根据公式: t =(213-T0初值)×振荡周期×12 1×10-3=(213-T0初值) ×( 1/6×10-6 ) ×12 T0初值= 7692 = 1111000001100B
多为:213=8192个。
例7.5 定时器T0工作在模式0, CPU主频 fosc=6MHz 定时1ms, T0的初值为多少?计算最长定时时间?
解:T0工作于模式0时, 为13位的加1计数器 ①. 定时1ms,根据公式:
MCS-51单片机的定时器计数器
TL; 如:任务中的MOV TH0,#00H 两条指令,设定计数初
值。 MOV TL0,#00H
Copyright 2006
(3)根据需要开放定时器/计数器的中断——对IE位赋值; (4)启动定时器/计数器; 如:任务中的SETB TR0 指令 初值的计算方法 X=M-计数值 M是定时器的最大计数值。视工作方式不同而不同。
判断中 断的次 数
程
CPL P1.0
;定时到,输出取反
序
NO:RETI
;中断返回
END
注意:此程序的#20和#60这两个立即数后面没 有加H表示是十进制数。
思考:能否利用定时器来实现一个电子钟?
Copyright 2006
测量每1秒钟之内的按键按下次数
工作方式0: 13位定时/计数方式,因此,最多可以计到2的13 次方,也就是8192次。
工作方式1: 16位定时/计数方式,因此,最多可以计到2的16 次方,也就是65536次。
工作方式2和工作方式3:都是8位的定时/计数方式,因此, 最多可以计到2的8次方,也说是256次。
Copyright 2006
;开中断 ;开T0中断 ;运行T0 ;等待中断 ;定时到,输出取反 ;重新加载初战值
;中断返回
中断程序的主 程序和中断服 务程序的布局
定时器初始化
开定时器中断
Copyright 2006
实例二:利用方式1定时
题目:用定时器T1,使用工作方式1,在单片机的P1.0输出一个周期为2分钟、占 空比为1:1的方波信号。
Copyright 2006
MCS-51单片机的定时器/计数器(二)
第7章 STC15单片机的计数器-单片机原理及接口技术-彭文辉-清华大学出版社
位符号 TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
88H
位地址 8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
(1)TF0、TFl——T0、Tl计数溢出标志位。当计数器计数溢出时,该位置“1”。
(2)TR0、TRl——T0、Tl计数运转控制位。当TR1置“1”时,T/C才可能启动, 但是否启动T/C,还与GATE位的状态有关。
单片机原理与接口技术————基于STC1T5系4H列的51单片机
字节地址 8CH 8AH 8DH 8BH D6H D7H D4H D5H
第7章D2SHTC15单片机定时/计数器
第三节 定时/计数器的工作方式
T0、T1的工作方式0 T0、T1的工作方式1 T0、T1的工作方式2
定时/计数器的工作方式
1.STC单片机T/C有两种工作模式——定时模式和计数模式。每个 T/C都有四种工作方式。具体的工作模式和工作方式可以通过 TMOD寄存器设定
第7章 STC15单片机定时/计数器
二、计数寄存器
1.在STC15系列单片机为5个T/C设置了5组计数寄存器。用于保存计数值。每 组寄存器又由两个8位的寄存器组成,为TH和TL。每个寄存器有唯一地址对应。
2.计数寄存器用于存储计算初值和计算中间值。
计数寄存器地址表
寄存器符号 TH0 TL0 TH1 TL1 T2H T2L T3H T3L
单片机原理与接口技术————基于STC15系列的51单片机
第7章 STC15单片机定时/计数器
一、特殊功能寄存器-续1
3.工作方式寄存器TMOD
位
D7
第7章单片机的中断系统答案
一、选择题1、若要求最大定时时间为216×机器周期,则应使定时器工作于 B 。
A.工作方式0B.工作方式lC.工作方式2D.工作方式32、若要求最大定时时间为213×机器周期,则应使定时器工作于 A 。
A.工作方式0B.工作方式lC.工作方式2D.工作方式33、若要求最大定时时间为28×机器周期,则应使定时器工作于 C ,D 。
A.工作方式0B.工作方式1C.工作方式2D.工作方式34、定时器方式控制寄存器TMOD中MlM0为l l时,则设置定时器工作于 D 。
A.工作方式0B.工作方式lC.工作方式2D.工作方式35、6MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是 B .A.1 u sB.2 u sC.4 u sD.8 u s ’6、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最小定时时间是 A .A.1 u sB.2 u sC.4 u sD.8 u s7、12MHz晶振的单片机在定时工作方式下,定时器可能实现的最大定时时间是 B .A.4096 u sB.8192 u SC.1638 u sD.32768 u s8、定时器/计时器0的初始化程序如下:MOV TMOD,#06HMOV TH0.#0FFHMOV TLO,#0FFHSETB EASETB ET0执行该程序段后,把定时器/计时器0的工作状态设置为 D 。
A. 工作方式0,定时应用,定时时间2 u s,中断禁止B.工作方式l,计数应用,计数值255,中断允许C.工作方式2,定时应用,定时时间510 u s,中断禁止D.工作方式2,计数应用,计数值1,中断允许9、设串行口工作于方式l,晶振频率为6MHz,波特率为1200位/秒,SMOD=0,则定时器l的计数初值为 C 。
A.FlHB.F4HC.F3HD.FOH10、以下所列特点,不属于串行工作方式0的是 D 。
A.波特率是固定的,为时钟频率的十二分之一B.8位移位寄存器C.TI和RI都须用软件清零D.在通信时,须对定时器l的溢出率进行设置11、通过串行口发送或接收数据时,在程序中应使用 A 。
单片机原理及智能仪表技术第7章
计数状态:X=M-N
定时状态:X=M-定时时间/T,T为机器周期
2、TMOD定时器方式设置寄存器(89H):
TMOD主要用于 选择定时器的工作 模式(C/T)、启动方 式(GATE)和工作方 式等。该寄存器的 格式如图所示。
2、TMOD定时器方式设置寄存器(89H):
TMOD,#方式字 THx,#XH TLx,#XL EA ETx TRx
;选择方式 ;装入Tx时间常数 ;开Tx中断
;启动Tx定时器
需考虑:1. 按实际需要选择定时/计数功能; 2. 按时间或计数长度选择工作方式; 3. 计算时间常数:
二、定时/计数器初值的计算
(1)定时器初值的计算
在定时器模式下,计数器由单片机主脉冲经 12 分频后 计数。因此,定时器定时时间T的公式:T=(M-TC)×T计数, 上式也可写成:TC=M-T/T计数 式中,M为模值,和定时器的工作方式有关,在方式0时 M为213,在方式1时M为216,在方式2和方式3时M为28;T计数是 单片机振荡周期TCLK的12倍;TC为定时器的定时初值。 例:单片机时钟频率12MHz,定时器工作在方式1下,定 时100us,初值为多少? 解:时钟频率Ф CLK=12MHz,所以振荡周期TCLK=1/12us T计数=12×TCLK=1us,M=216=65536,T=100us 所以,TC=65536-100/1=65436,0xFF9C
定时器工作方式:当选择定时器方式时(C/T=0),TR1=1,定时器对系统的机器周 期计数,每过一个机器周期,计数器TH1,TH0加1,直至计满规定个数回零,置 位定时器中断标志(TF1)产生溢出中断。根据机器周期和设定的计数初值,可以定 时产生各种精确的时间。 计数器工作方式:当选择计数器方式时(C/T=1),外部脉冲通过引脚T1(P3.5)引入, 计数器对此外部脉冲的下降沿进行加1计数,直至计满规定值回零,置位定时器中 断标志(TF1)产生溢出中断。根据规定的时间内的计数个数,可以得到信号的频率。 计数最高频率不得超过振荡频率的1/24。
51单片机定时器设置
51单片机定时器设置51单片机,也被称为8051微控制器,是一种广泛应用的嵌入式系统。
它具有4个16位的定时器/计数器,可以用于实现定时、计数、脉冲生成等功能。
通过设置相应的控制位和计数初值,可以控制定时器的启动、停止和溢出等行为,从而实现精确的定时控制。
确定应用需求:首先需要明确应用的需求,包括需要定时的时间、计数的数量等。
根据需求选择合适的定时器型号和操作模式。
设置计数初值:根据需要的定时时间,计算出对应的计数初值。
计数初值需要根据定时器的位数和时钟频率进行计算。
设置控制位:控制位包括定时器控制寄存器(TCON)和中断控制寄存器(IE)。
通过设置控制位,可以控制定时器的启动、停止、溢出等行为,以及是否开启中断等功能。
编写程序代码:根据需求和应用场景,编写相应的程序代码。
程序代码需要包括初始化代码和主循环代码。
调试和测试:在完成设置和编程后,需要进行调试和测试。
可以通过观察定时器的状态和输出结果,检查定时器是否按照预期工作。
计数初值的计算要准确,否则会影响定时的精度。
控制位的设置要正确,否则会导致定时器无法正常工作。
需要考虑定时器的溢出情况,以及如何处理溢出中断。
需要考虑定时器的抗干扰能力,以及如何避免干扰对定时精度的影响。
需要根据具体应用场景进行优化,例如调整计数初值或控制位等,以达到更好的性能和精度。
51单片机的定时器是一个非常实用的功能模块,可以用于实现各种定时控制和计数操作。
在进行定时器设置时,需要注意计数初值的计算、控制位的设置、溢出处理以及抗干扰等问题。
同时需要根据具体应用场景进行优化,以达到更好的性能和精度。
在实际应用中,使用51单片机的定时器可以很方便地实现各种定时控制和计数操作,为嵌入式系统的开发提供了便利。
在嵌入式系统和微控制器领域,51单片机因其功能强大、使用广泛而备受。
其中,定时器中断功能是51单片机的重要特性之一,它为系统提供了高精度的定时和计数能力。
本文将详细介绍51单片机定时器中断的工作原理、配置和使用方法。
51单片机定时器(考,小题,大题)
11
定时器的结构及工作原理
定时/计数器对输入信号的要求
1.
外部计数脉冲的最高频率为系统振荡器频率的1/24,例如 选用12MHz频率的晶体,则可输入500KHz的外部脉冲。
输入信号的高、低电平至少要分别保持一个机器周期。 如图所示,图中Tcy为机器周期。
2.
12
定时器的结构及工作原理
可编程定时器的工作方式、启动、停止、溢出标 志、计数器等都是可编程的——通过设置寄存器 TMOD,TCON,TH0,TL0,TH1和TL1 实现。
指令周期 S1 S2 机器周期 S3 S4 S5 S6 S1 S2 机器周期 S4 S3 S5 S6 P P P P XTAL2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 1 P2 P1 P2 1 P2 1 P2 1 P2 P1 P2 P1 P2 (OSC) 振荡周期 状态周期
THx作为常数缓冲器,当TLx计数溢出时,在置“1”溢出标志TFx 的同时,还自动的将 THx中的初值送至 TLx ,使TLx从初值开始重 新计数。定时器/计数器的方式2工作过程如图 (x=0, 1) 。
28
定时器的工作方式——方式2
优点:
方式0和方式1用于循环重复定时或计数 时,在每次计数器挤满溢出后,计数器 复0。若要进行新一轮的计数,就得重 新装入计数初值。这样一来不仅造成编 程麻烦,而且影响定时精度。而方式2 具有初值自动装入的功能,避免了这个 缺点,可实现精确的定时。
24
定时器的工作方式——方式0
当C/T=0时,为定时工作模式,开关接到振荡器 的12分频器输出上,计数器对机器周期脉冲计数。 其定时时间为: (213-初值)×振荡周期×12
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4 3 2
TR0 IE1 IT1
1
IE0
外部中断0触发标志位,该位被置位则说明单片机检测到了外 部中断0,并且PC自动跳转到外部中断0中断向量入口,当单片 机响应中断后该位被硬件自动清除
外部中断0触发方式控制位,置位时为下降沿触发方式,清除 内部结 构 时为低电平触发方式
0
IT0
7.2 51单片机定时计数器的寄存器 P1
7.5 定时计数器T2
7.5.1 T2的相关寄存器
T2相关的寄存器有用于控制操作的T2CON、体现状态的T2MOD和两个8 位的数据寄存器TH2、TL2。
位编号 7 6 5 4 3 2 1 0 位名称 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2# CP/R2# 描述 T2溢出标志,当RCLK和TCLK均被置位时候该位被忽略,否则当T2溢出时 该位被置位,该位可以在硬件响应中断后被自动清除 T2外部标志,当EXEN2被置位后,如果在T2EX外部引脚(P1.1上)检测到一个 负跳变,该位被置位,并且引发一个T2中断,该标志位必须由软件清除 接收时钟位,置位则使用T2作为串行口工作方式1、3的接收时钟发生器 发送时钟位,置位则使用T2作为串行口工作方式1、3的发送时钟发生器 T2外部使能位,置位后使得T2能够响应T2EX外部引脚上的捕获或者进行重 装操作 T2启动位,置位则启动T2 T2工作方式选择位,置位为计数操作,复位为定时操作 T2捕获/重装位,当TCLK或RCLK被置位后,此位被忽略,当T2溢出后被自 动重装;否则置位后捕捉T2EX外部引脚上的负跳变,复位后则当T2溢出或 者是捕捉到T2EX外部引脚上的负跳变化后自动重装
7.5 定时计数器T2
7.5.3 T2的中断处理
拥有T2的单片机IE寄存器中第6位ET2为T2的中断使能位,在EA被置位 的前提下置位该位打开T2中断,复位该位关闭T2中断。T2工作在捕获方式时 且EXEN2被置位时,定时器/计数器的溢出和外部引脚T2EX上的一个负跳变 都可以引起T2中断。
定时/计数 器T2的中 断处理函 数的结构
第七章 51单片机的定时计数器
7.1 51单片机定时计数器的组成 7.2 51单片机定时计数器的寄存器 7.3 51单片机定时计数器的工作方式
7.4 使用51单片机的计数器
7.5 定时计数器T2
7.6 51单片机定时计数器应用实例
7.1 51单片机定时计数器的组成
51单片机内部提供了两个16位可编程控制的定时计数器T0和T1,这两个 定时计数器可以独立配置为定时器或者计数器。当被配置为定时器时,将按 照预先设置好的长度运行一段时间后产生一个溢出中断;被配置为计数器时, 如果单片机的外部中断引脚上检测到一个脉冲信号,该计数器加1,当达到预 先设置好事件数目时,产生一个中断事件。 51单片机的定时计数器由内部寄存器和外部引脚组成, T0(P3.4)引脚 和T1(P3.5)引脚用于接收外部的脉冲信号。
工作方式3下的 内部结构
7.3 51单片机定时计数器的工作方式
7.3.5 定时计数器的中断
当51单片机的的中断控制寄存器IE中的EA位和ET0/ET1都被置“1”的时 候,定时计数器0/1的中断被使能,在这种状态下,如果定时计数器0/1出现 一个计数溢出事件,则会触发定时计数器中断事件。可以通过修改中断优先 级寄存器IP中的PT0/PT1ON寄存器
位编号 7~2 1 0
位名称 - T2OE DCEN -
描述
T2输出控制位,置位则使能T2外部引脚(P1.0)为时钟输出引脚 计数方向控制位,置位后使得T2的计数方向可控
T2MOD寄 存器
7.5 定时计数器T2
7.5.2 T2的工作方式
在T2的捕获工作方式下可以通过设置EXEN2位来获得两种不同的工作方 式,如果EXEN2=0,T2是一个16位的定时器/计数器,当T2溢出后将置位TF2 并且请求T2中断。如果EXEN2=1,如果T2在定时/计数过程中如果在T2EX引 脚上检测到一个负跳变,则将TH2和TL2的当前值保存到RCAP2H和RCAP2L 中,同时置位EXF2位并且请求T2中断,利用T2的这种工作方式可以方便的 测量一个信号的脉冲宽度。 T2的捕获 工作方式 下的内部 结构
7.4 使用51单片机的计数器
7.4.4 读取定时计数器的值
程序应该先读取定时器高8位数据寄存器TH0/TH1,再读取低8位数据寄 存器TL0/TL1。可以考虑在读取低位寄存器后再次读取高位寄存器并且和第 一次取得的数值进行比较,如果不相同则再次重复操作的方式来避免,用小 误差来代替大误差数据存在较大的误差。
7.3 51单片机定时计数器的工作方式
7.3.1 工作方式0
当M1、M0设定为“00”时,T0/T1工作于方式0,在工作方式0下,T0/T1 内部计数器为13位,由TH0/TH1的8位和TL0/TL1的低5位组成;当TL0/TL1溢 出时将向TH0/TH1进位,当TH0/TH1溢出后则产生相应的溢出中断。工作方 式下的驱动事件来源则由GATE位、C/T#位来控制。
工作方式0下的 内部结构
7.3 51单片机定时计数器的工作方式
7.3.2 工作方式1
当M1、M0设定为“01”时,T0/T1工作于方式1,和工作方式0比较起来, 工作方式1的得唯一区别在于此时的内部计数器宽度为16位,分别由TH0/TH1 的8位和TL0/TL1的8位组成,其溢出方式和驱动事件的来源和工作方式相同。 51系列单片机的定时计数器采用加1计数的方式,即当接收到一个驱动事件时 候计数器加1,当计数器溢出时候则产生相应的中断请求,第一个驱动事件到 来时刻和中断请求产生。
39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
C3
10uF VCC
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C52
工作方式2下的 内部结构
7.3 51单片机定时计数器的工作方式
7.3.4 工作方式3
当M1、M0设定为“11”时,T0工作于工作方式3,在这种工作方式下T0 被拆分成了两个独立的8位计数器TH0和TL0,TL0使用T0本身的控制和中断 资源,而TH0则占用了T1的TR1和TF1作为启动控制位和溢出标志。在这种情 况下,T1将停止运行并且其数据寄存器将保持其当前数值,所以设置T0为工 作方式3也可以代替复位TR1来关闭T1定时计数器。
7.4 使用51单片机的计数器
7.4.2 使用计数功能
其计数驱动信号来自外部引脚T0(P3.4)和T1(P3.5),当这两个引脚 上检查到一个负跳变的时候,其对应的计数寄存器加1。由于51单片机确认一 个负跳变需要两个机器周期,所以外部的跳变产生频率不能够高于51单片机 工作频率的1/2,否则就会丢失跳变或者是检测不到任何跳 变。
7.6.1 T0/T1控制外部引脚输出方波
4、实例的仿真结果和说明
点击运行,可以在示波器上看到波形输出。
7.6 51单片机定时计数器应用实例
7.6.2 PWM波形输出
1、PWM(脉冲宽度调制)基础
7.4 使用51单片机的计数器
7.4.3 使用门控信号
当定时计数器的控制寄存器TMOD中的GATE0/GATE1被置位后,定时计 数器T0/T1受到计数脉冲和单片机外部中断引脚INT0(P3.2)/INT1(P3.3) 上的电平信号的联合控制。只有当外部中断引脚上为高电平并且TR0/TR1被 启动时,定时计数器才工作。
7.2 51单片机定时计数器的寄存器 P1
7.2.1 工作方式控制寄存器TMOD
TMOD是定时计数器的工作方式控制寄存器,通过对该寄存器的操作可 以改变T0和T1的工作方式。
位标号
7
位名称
GATE1
描述
定时计数器1门控位,当GATE1=0时,T1的运行只受控制寄存器TCON中运行 控制位TR1控制;当GATE1=1时候,T1的运行受到TR1和外部中断输入引脚上 电平的双重控制 定时计数器1定时/计数方式选择位,当C/T1# = 0时,T1工作在计数状态下, 此时计数脉冲来自T1引脚(P3.5),当引脚上检测到一次负脉冲时候,计数器加 1;当C/T1# = 1时,T1工作在定时状态下,此时每过一个机器周期,定时器加 1 T1工作方式选择位 M10M01 工作方式 00 0 01 1 10 2 10 3 定时计数器0门控位,其功能和GATE1相同 定时计数器0定时/计数选择位,其功能和C/T1#相同 T0工作方式选择位,其功能和M10M01相同
7.6 51单片机定时计数器应用实例
7.6.1 T0/T1控制外部引脚输出方波
1、实例的设计思路
设置定时计数器工作在定时工作方式,在中断服务子程序中将需要输 出方波信号的I/O引脚上的电平翻转即可。 2、实例的Proteus电路
C1 C2 R1 U1
30pF 19
X1
CRYSTAL 30pF 18
7.2.3 数据寄存器TH0、TL0、和TH1、TL1
TH0、TL0/TH1、TL1分别是T0/T1的数据高位/低位寄存器,均为8位。 当定时计数器收到一个驱动事件(定时、计数)后,对应的数据寄存器的内 容加1,当数据寄存器的值到达最大的时候,将产生一个溢出中断,在单片机 复位后所有寄存器的值都被初始化为0x00,这些寄存器都不能位寻址。
A B C D
7.6 51单片机定时计数器应用实例
7.6.1 T0/T1控制外部引脚输出方波
3、实例的应用代码
代码使用“sbit”关键字定义引脚P1.7作为信号的输出引脚squarePIN, 然后在中断服务子程序Timer0_int(void)中将该信号翻转,即输出方波。