您的位置 首页 新能源

51单片机寄存器的使用解析

51单片机寄存器的应用解析-软件清零,或者进入定时器中断时硬件清零。6TR1定时器1运行控制位。软件置位/清零来进行启动/停止定时器。5TF0定时器0溢出标志。一旦定时器0发生溢出时硬件置1。清零有两种方式:

软件清零,或者进入定时器中断时硬件清零。4TR0定时器0运行控制位。软件置位/清零来进行启动/停止定时器。3IE1外部中断部分,与定时器无关,暂且不看。2IT11IE00IT0

规范的 51 单片机内部有 T0 和 T1 这两个守时器,T 便是 TImer 的缩写,现在许多 51 系列单片机还会添加额定的守时器,在这儿咱们先讲守时器 0 和 1。前边提到过,关于单片机的每一个功用模块,都是由它的 SFR,也便是特别功用寄存器来操控。与守时器有关的特别功用寄存器,有以下几个,咱们不需求去回忆这些寄存器的姓名和效果,你只需大约知道就行,用的时分,随时能够查手册,找到每个寄存器的姓名和每个寄存器所起到的效果。

清零有两种办法:

软件清零,或许进入守时器中止时硬件清零。6TR1守时器1运转操控位。软件置位/清零来进行发动/中止守时器。5TF0守时器0溢出标志。一旦守时器0发生溢出时硬件置1。清零有两种办法:

软件清零,或许进入守时器中止时硬件清零。4TR0守时器0运转操控位。软件置位/清零来进行发动/中止守时器。3IE1外部中止部分,与守时器无关,暂时不看。2IT11IE00IT0

咱们留意在表 5-3 中的描绘中,只需写到硬件置 1 或许清 0 的,便是指一旦契合条件,单片机将主动完结的动作,只需写软件置 1 或许清 0 的,是指咱们有必要用程序去完结这个动作,后续遇到此类描绘就不再另做说明晰。

关于 TCON 这个 SFR,其间有 TF1、TR1、TF0、TR0 这 4 位需求咱们了解清楚,它们别离对应于 T1 和 T0,咱们以守时器 1 为例解说,那么守时器 0 同理。先看 TR1,当咱们程序中写 TR1 = 1 今后,守时器值就会每通过一个机器周期主动加 1,当咱们程序中写 TR1 = 0今后,守时器就会中止加 1,其值会坚持不改变。TF1,这个是一个标志位,他的效果是告知咱们守时器溢出了。比方咱们的守时器设置成 16 位的形式,那么每通过一个机器周期,TL1加 1 一次,当 TL1 加到 255 后,再加 1,TL1 变成 0,TH1 会加 1 一次,如此一向加到 TH1和 TL1 都是 255(即 TH1 和 TL1 组成的 16 位整型数为 65535)今后,再加 1 一次,就会溢出了,TH1 和 TL1 一起都变为 0,只需一溢出,TF1 立刻主动变成 1,告知咱们守时器溢出了,仅仅是提供给咱们一个信号,让咱们知道守时器溢出了,它不会对守时器是否持续运转发生任何影响。

本节最初咱们就提到了守时器有多种作业形式,作业形式的挑选就由 TMOD 来操控,TMOD 的位分配和描绘见表 5-4 到 5-6 所示,TMOD 的位功用如表 5-5 所示。

TMOD——守时器形式寄存器的位分配(地址 0x89、不行位寻址)位76543210符号GATE

(T1)C/T

(T1)M1

(T1)M0

(T1)GATE

(T0)C/T

(T0)M1

(T0)M0

(T0)复位值00000000

TMOD——守时器形式寄存器的位描绘符号描绘T1/T0在表5-5中,标T1的表明操控守时器1的位,标T0的表明操控守时器0

的位。GATE该位被置1时为门控位。仅当?INTx?脚为高而且?TRx?操控位被置1时使能

守时器?x?,守时器开端计时,当该位被清0时,只需?TRx?位被置1,守时

器x就使能开端计时,不遭到单片机引脚?INTx?外部信号的搅扰,常用来测

量外部信号脉冲宽度。这是守时器一个额定功用,本节课暂不介绍。C/T守时器或计数器挑选位。该位被清零时用作守时器功用(内部体系时钟),

被置1用作计数器功用。

TMOD——守时器形式寄存器 M1/M0 作业形式M1M0作业形式描绘000兼容8048单片机的13位守时器,THn的8位和TLn的5位组

成一个13位守时器。011THn和TLn组成一个16位的守时器。1028位主动重装形式,守时器溢出后THn重装到TLn中。113禁用守时器1,守时器0变成2个8位守时器。

或许你现已留意到了,表 5-2 的 TCON 最终标示了“可位寻址”,而表 5-4 的 TMOD 标示的是“不行位寻址”。意思便是说:比方 TCON 有一个位叫 TR1,咱们能够在程序中直接进行 TR1 = 1 这样的操作。但对 TMOD 里的位比方(T1)M1 = 1 这样的操作便是过错的。咱们要操作就有必要一次操作这整个字节,也便是有必要一次性对 TMOD 一切位操作,不能对其间某一位独自进行操作,那么咱们能不能只修正其间的一位而不影响其它位的值呢?当然能够,在后续课程中你就会学到办法的,现在就先不关心它了。

表 5-6 列出的便是守时器的 4 中作业形式,其间形式 0 是为了兼容老的 8048 系列单片机而规划的,现在的 51 几乎不会用到这种形式,而形式 3 依据我的使用经历,它的功用用形式 2 完全能够替代,所以基本上也是不必的,那么咱们就重点来学习形式 1 和形式 2。

形式 1,是 THn 和 TLn 组成了一个 16 位的守时器,计数规模是 0~65535,溢出后,只需不对 THn 和 TLn 从头赋值,则从 0 开端计数。形式 2,是 8 位主动重装载形式,只要 TLn做加 1 计数,计数规模 0~255,THn 的值并不发生改变,而是坚持原值,TLn 溢出后,TFn就直接置 1 了,而且 THn 原先的值直接赋给 TLn,然后 TLn 重新赋值的这个数字开端计数。这个功用能够用来发生串口的通讯波特率,咱们讲串口的时分要用到,本章节咱们重点来学习形式 1。为了加深咱们了解守时器的原理,咱们来看一下他的形式 1 的电路示意图 5-2。


51单片机寄存器的使用解析

图 5-2 守时器/计数器形式 1 示意图

我带领咱们一起来剖析一遍这个示意图,日后假如再遇到相似的图,咱们就能够自己研讨了。OSC 框表明时钟频率,由于 1 个机器周期等于 12 个时钟周期,所以那个 d 就等于 12。下边 GATE 右边的那个门是一个非门电路,再右侧是一个或门,再往右是一个与门电路,咱们能够对照一下 5-1 节的内容。

图上能够看出来,下边部分电路是操控了上边部分,那咱们先来看下边是怎么操控的,咱们以守时器 0 为例。

1) TR0 和下边或门电路的成果要进行与运算,TR0 假如是 0 的话,与运算完了肯定是 0,所以假如要让守时器作业,那么 TR0 就有必要置 1。

2) 这儿的与门成果要想得到 1,那么前面的或门出来的成果有必要也得是 1 才行。在 GATE位为 1 的情况下,通过一个非门变成 0,或门电路成果要想是 1 的话,那 INT0 即 P3.2 引脚有必要是 1 的情况下,这个时分守时器才会作业,而 INT0 引脚是 0 的情况下,守时器不作业,这便是 GATE 位的效果。

3) 当 GATE 位为 0 的时分,通过一个非门会变成 1,那么不论 INT0 引脚是什么电平,通过或门电路后都肯定是 1,守时器就会作业。

4) 要想让守时器作业,便是主动加 1,从图上看有两种办法,第一种办法是那个开关打到上边的箭头,便是 C/T = 0 的时分,一个机器周期 TL 就会加 1 一次,当开关打到下边的箭头,即 C/T =1 的时分,T0 引脚即 P3.4 引脚来一个脉冲,TL 就加 1 一次,这也便是计数器功用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/345675.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部