外文翻译Word文档下载推荐.docx
《外文翻译Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《外文翻译Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
![外文翻译Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-11/16/c226ee57-8791-474d-be61-28df23a0e6a1/c226ee57-8791-474d-be61-28df23a0e6a11.gif)
签名:
年月日
附件1:
外文资料翻译译文
第四章定时器运行
4.1定时器介绍
在本章中,我们研究了8051的片上定时器。
我们开始简化视图,因为它们通常用于微处理器或微控制器的计时器。
一个系列的定时器被划分为两个触发器,触发器的接收输入信号作为时钟源。
时钟频率除以2的时钟被应用于第一个触发器。
第一个触发器的输出时钟为第二个触发器除以2等。
由于每个连续的阶段都除以2,N个分期定时器的输入时钟频率也除以2。
最后一个阶段的输出时钟触发器,定时器溢出或者标记都是由软件测试或产生中断。
从定时器启动后,定时触发器的二进制值可以被看作是一个“数量”的时钟脉冲(或“事件”)。
一个16位定时器,例如,将数从0000H到FFFFH。
溢出标志设置的计数值为FFFFH-0000H溢出。
一个简单计时器的操作是在3位定时器上的,每个阶段是作为一个类型的三维负边沿触发触发器2分频模式(即经营所示的输出连接到D输入)。
触发器的标志仅仅是一个类型D锁存器,被置于计时器的最后阶段。
它在时序图是显而易见,第一阶段是
1/2的时钟频率,第二阶段是时钟频率的1/4。
十进制计数显示,并且很容易通过检查核实三个触发器是否过时。
例如,数“4”发生时,
=1。
=0,
=0(
=
)。
定时器是以几乎所有的控制为导向的应用,8051定时器也不例外。
两个16位的定时器有四种操作模式。
第三个16位定时器的三种操作模式是增加8052。
定时器用于(a)时间间隔定时,(b)事件计数,(c)内置串行端口的波特率速率生成。
每一个定时器都是一个16位的定时器,因此
=65536除以16就是最后阶段的输入时钟频率。
在间隔定时应用时,编程定时器溢出;
在定期的时间间隔是就要设置定时器溢出标志。
使用该标志是同步方案的执行,如检查输入状态或的数据发送到输出的行动。
其他的应用程序也可以使用计时器来衡量这两个条件之间所经过时间的定期时钟(例如脉冲宽度测量)。
事件计数器是用来确定事件的发生次数,而来衡量事件之间所经过的时间。
“事件”是任何外部刺激提供了1到0转换到8051集成电路的引脚。
该定时器还可以提供8051的内部串行端口的波特率时钟。
8051定时器使用6个特殊功能寄存器进行访问。
另外5个SFR提供访问在8052第三定时器上。
4.2定时器模式寄存器(TMOD)
TMOD寄存器包含两组4位设置定时器0和1的操作模式。
TMOD是不可位寻址,也不需要使用译码芯片。
一般来说,它是在一个程序初始化定时器模式开始通过软件来加载。
此后,定时器可以停止,启动,并通过访问其他定时器的SFR等。
4.3定时器控制寄存器(TCON)
TCON寄存器包含了定时器0和1的状态和控制位。
TCON中的高4位(TCON.4和TCON.7)用于打开和关闭的定时器(TR0,TR1)或信号定时器溢出(TF0,TF1)。
这些高4位被广泛使用在本章的例子。
较低的4位TCON中的(TCON.0-TCON.3)与定时器无关。
它们被用来检测并启动外部中断。
这些较低的4位讨论被推迟到第6章,讨论中断。
4.4定时器模式和溢出标志
每个定时器将在下面讨论。
由于8051有两个定时器,所以符号“X”是用来表示定时器0或定时器1,因此,“THX”是指定时器TH1或定时器TH0。
安排显示定时器寄存器TLx的THx和定时器溢出标志TFX每种模式。
4.4.113位定时器模式(模式0)
模式0是一个13位定时器模式,提供和8051的前身8048相同的兼容性。
这在新的设计中通常不使用这种模式。
定时器的高字节(THx)级联五个最低有效位定时器的(TLx)来形成一个13位定时器。
低字节TLx的上层3位没有被使用。
4.4.216位定时器模式(模式1)
模式1是一个16位定时器模式,它和模式0相同。
除了定时器是作为一个完整的16位定时器操作外,时钟是被应用于高位和低位相结合的定时器寄存器(TLx/THx)。
由于能接收时钟脉冲,因此定时器计数:
0000H,0001H,0002H等。
发生溢出的计数值为FFFFH-0000H过渡,并设置定时器溢出标志,定时器继续计数。
溢出标志是TCON中的TFx标志位通过软件读取或编写出来的。
最重要的位(MSB)是在定时器寄存器的高字节THx的第7位和最低有效位(LSB)TLx的第0位。
LSB的切换是输入时钟频率除以2,而MSB切换是输入时钟频率除以65536(即
定时器寄存器(TLx/THx),它可被读取或随时由软件写入。
4.4.38位自动重装模式(模式2)
模式2是8位自动重装载模式。
作为一个8位定时器,该定时器的低字节(TLx)运行,而定时器的高字节(THX)拥有重载值。
当计数从FFH到00H溢出时,不仅是计时器标志设置,THx的值被装入至TLx时继续计数,从这个值FFH-00H过渡到下一个值等。
这种模式是便捷的,因为一旦TMOD和THX被初始化,定时器溢出就发生在具体的周期间隔。
4.4.4斯普利特定时器模式(模式3)
模式3是分割定时器模式它不同于每个定时器。
在模式3中,定时器0分成两个8位定时器。
TL0和TH0分别设置TF0和TF1位独立的定时器溢出行为。
一旦定时器1在模式3中停止后可以启动切换到其他模式之一。
唯一的限制是通常的定时器1溢出标志位。
TF1不是受到定时器1溢出的影响,因为它是连接到TH0中。
模式3本质上提供了一个额外的8位定时器。
8051还有第三个计时器。
当定时器0处于模式3时,定时器1可开启和关闭并切换到自己的模式3。
它仍然可以用作串行端口的波特率发生器,它也可以在任何不要求中断的方式使用(因为它不再连接到TF1)。
4.5时钟源
如图4-2,不显示的定时器的时钟。
有两种可能的时钟源,定时器初始化时通过写在TMOD位计数器/定时器(
)被选定。
事件计数器的其他时钟源之一被用于时间间隔的时序。
4.5.1时间间隔的时序
如果
=0,连续定时器操作是选择从片上振荡器提供时钟和计时器。
分频的12阶段被添加到减少时钟频率值对于大多数应用程序都是合理的。
当选择连续定时器操作时,定时器用于时序时间间隔。
定时器寄存器(TLx的/THx)的频率增量是片上振荡器的1/12速率,因此,一个12MHz晶体将产生1MHz的时钟速率。
定时器溢出后,会出现一个固定数目的时钟,根据初始值加载到定时器寄存器,至TLx/THX。
4.5.2事件计数
如果
=1,定时器来自于外部信号源。
在大多数应用中,这种外部源供应的定时器与后一个“事件”的发生脉冲定时器都是事件计数器。
定时器寄存器TLx的/THx事件的数量是通过软件读取来确定。
16位值在这些寄存器中的每个事件递增。
外部时钟源是通过端口3引脚的复用功能的方式实现的。
在这种情况下端口3位4(P3.4)作为定时器0的外部时钟输入端“T0”。
P3.5或“TL”,是TIMET1的时钟输入。
在计数器的应用中,1到0的转换是通过外部输入TX定时器寄存器来递增。
外部输入在每个机器周期的S5P2期间被采样,因此,当输入显示在一个周期为高,则在下一个周期为低,并且计数递增。
定时器周期的S3P1期间出现的新值是在寄存器以后的过渡期中被检测到的。
由于识别1到0的跳变需要两个机器周期(2us),最大的外部频率为500kHz(假设12MHz运行)。
4.6启动,停止,控制定时器
图2说明了定时器寄存器的TLx,THx和定时器溢出标志位TFx的各种配置。
定时器计时两种性能,如图4-3所示。
我们现在演示如何启动停止和控制定时器。
最简单的方法是启动和停止定时器运行控制位,TRx位在TCON中。
当TRx明确后,系统复位,因此定时器默认情况下禁用(停止)。
TRx置位通过软件来启动定时器。
由于TRx的位寻址在寄存器TCON,它就很容易在一个程序中启动和停止定时器。
例如,启动定时器0
SETBTR0
停止定时器0
CLRTR0
汇编器将从“TR0”到正确的位地址执行必要符号转换。
SETBTR0和SETB8通道是完全一样的。
定时器控制的另一种方法是在TMOD的GATE位和外部输入的。
当设置GATE=1时,允许定时器控制
。
如下对于脉冲宽度测量,这是有用的。
假设
是低,但经过一段时间的测量后
为高。
初始化定时器0模式2,当16位定时器模式与TL0/TH0=0000H,GATE=1时,则TR0=1。
当
为高电平时,定时器是“门控开”和速度主频为1MHz。
变低电平时,定时器是“门控关闭”,而且微秒脉冲的持续时间是在TL0和TH0计数,(当它返回低电平时,可以编程产生一个中断)。
定时器1作为模式1是一个16位定时器,以及定时器寄存器TL1/TH1和溢出标志位TF1。
图中显示的时钟源是启动,停止和控制定时器的几种可能。
4.7初始化和访问定时器寄存器
通常定时器在程序设置正确的操作模式时开始初始化一次。
此后,内部机体的一个程序有定时器启动,停止,测试和清零标志位,定时器寄存器读取或更新所需的应用程序。
由于TMOD设置的运作模式,所以它是第一个寄存器初始化的。
例如,下面的指令是初始化定时器1作为一个16位定时器时钟(模式1)的片上振荡器(间隔计时):
MOVTMOD#00010000B
此指令的作用是设置M1=0和M0=1为MODE1,脱离
=0和GATE=0的内部时钟则就清除定时器0的模式位。
当然,定时器不开始计时,直到其运行控制位TR1设置。
如果初始计数是必要的,定时器寄存器TL1/TH1也必须被初始化。
记住定时器计数,并设置FFFFH-0000H过渡溢出标志,100us的时间间隔可以定时初始化TL1/TH1到100计数要比0000H少。
正确的值是-100或FF9CH。
下面的指令完成这项工作:
MOVTL1,#9CH
MOVTH1,#0FFH
然后启动定时器运行控制位设置如下:
SETBTR1
4.7.1读定时器的“飞行”模式
在某些应用中,它是必要的读取定时器值寄存器“飞行”模式。
有一个潜在的问题很简单来防止软件对抗。
由于两个定时器寄存器必须先读取,所以“相位误差”可能会出现在两个读操作之间的低字节到高字节溢出位。
可以被读的A值从来就不存在;
解决的办法是先读高字节的第一位,其次读低字节,然后再读取高字节。
如果高字节发生了变化,重复进行读取操作。
下面的指令是读取定时器的内容从寄存器TL1/TH1到寄存器R6/R7来正确处理这个问题。
AGAIN:
MOVA,THl
MOVR6,TL1
CJNEA,THl,AGAIN
MOVR7,A
附件2:
外文原文
4
TIMEROPERATION
4.1INTRODUCTIONInthischapterweexaminethe8051'
son-chiptimers.Webeginwithasimplifiedviewoftimersastheyarecommonlyusedwithmicroprocessorsormicrocontrollers.Atimerisaseriesofdivide-by-twoflip-flopsthatreceiveaninputsignalasaclockingsource.Theclock