【STC51单片机自学笔记】——[定时器/计数器+串口(概念部分)]

    在计算机控制系统中,经常需要进行定时控制和延时,对外部事件进行计数和检测,通常采用一下三种方法来实现定时和计数:

        1)       硬件法。通过搭建硬件电路完成,优点是不占用CPU时间,但要求改变定时时间时,只能通过改变电路中的元件参数来实现,缺点时很不灵活。

        2)       软件法。软件定时是执行一段循环程序来进行时间延时,优点时无额外的硬件开销。缺点是牺牲了CPU的时间,且不容易得到比较精确的时间。

        3)       可编程定时器/计数器。最大特点是可以通过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功能或计数功能。定时器达到定时时间或者计数满时,置位溢出标志。

    89C52单片机系列有三个16位可编程定时器/计数器:0/1/2。每个定时器/计数器都可以对系统时钟进行计数,也可以对外部信号进行计数。定时器/计数器由特殊寄存器TH0/TL0、TH1/TL1、TH2/TL2组成。

    注意:检测一个由1到0的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的1/24,如果晶振频率为12Mhz,则最高计数频率为0.5Mhz.

1.     寄存器

        1) 方式寄存器TMOD:用于设定T0/T1的工作模式(此寄存器不可位寻址)

            GATE(门控位):=0时软件启动定时器,=1时软硬件共同启动定时器(TR寄存器=1且,INT引脚输入高电平才启动)

            C/T‘(定时或计数选择位):=0时是定时方式(计数脉冲为内部脉冲),=1时是计数方式(计数脉冲由外部输入引脚提供)

            M1/M0(工作模式选择位):T1不能工作在模式3,如果设置模式3就会停止工作

M1

M0

工作模式

功能介绍

0

0

模式0

13位

0

1

模式1

16位

1

0

模式2

8位自动重置

1

1

模式3

定时器0:TL0为8位定时器或计数器。TH0为8位定时器

定时器1:  16位

        方式寄存器T2MOD:用于设定T2的工作模式,不可位寻址

            T2OE(T2输出启动位):=1时(工作在可编程时钟输出方式),允许时钟输出至T2(P1.0)引脚。

            DCEN(允许向上/下计数位):置位该位,当=0时,允许T2自动向上递增计数,=1时允许T2向下计数

        2) 控制寄存器TCON:具有中断控制和定时控制两个功能   (见【STC51单片机】——[中断系统]

            控制寄存器T2CON:设置T2工作模式

                TF2(T2溢出标志位):必须由软件复位

                EXF2(T2外部触发标志位):EXEN2=1时,如果T2EX引脚出现负跳变引起捕获或者重装,EXF2=1,向主机发出中断请求。该位必须由软件复位。

                RCLK/TCLK(串行口接受/发送时钟控制位):两个不全为0时,T2为波特率发生器,T2溢出也不会将TF2置位

                EXEN2(T2外部触发控制位):=0时 T2EX引脚电平变化对T2不起作用,=1时如果T2不是波特率发生器方式,则T2EX引脚产生负跳变时,将触发“捕获”或“重装”操作

                TR2(启动控制位):

                C/T2’(定时或计数选择位):=0时是定时方式(计数脉冲为内部脉冲),=1时是计数方式(计数脉冲由外部输入引脚提供)

                CP/RL2’(捕获和重装载方式选择控制位):=1时,捕获;=0时,重装。

T2工作方式设置

RCLK、TCLK

CP/PL2’

C/T2’

T2OE

工作方式

0

0

0或1

0

16位自动重装

0

1

0或1

0

捕获

不全为0

x

x

0

波特率发生器

0

x

0

1

时钟输出

        3)     数据寄存器TH/TL:

                16位的数据寄存器,是由高8位寄存器TH与低8位寄存器所组成。只能字节寻址。

2.     定时器应用

        1)     定时器初始化

            初始化步骤:

            ① 根据系统需求,设置TMOD,选择合适的工作模式(计数还是定时)启动定时器。

            ② 设置定时器/计数器的初值,将初值写入TH/TL数据寄存器,以及陷阱寄存器RCAP2H和RCAP2L中(T2)。

            ③ 如果需要中断,设置中断允许寄存器IE,对相应位进行设置。

            ④ 设置TCON/T2CON,启动定时器。

            定时器初值的计算:根据单片机精灵等工具测算TH/TL初值(也可自己根据公式通过计算器计算)


【串口】数据通信基础知识

        基本通信方法:并行;串行。异步;同步。

        异步:起始位、数据位、奇偶检验位、停止位。

            起始位:用来通知接受设备一个待接收的数据开始到达。线路不传输数据时应保持为1,接收端不断检测线路的状态,若在连续收到1以后,又收到一个0,就知道发来一个新数据,开始接收。

            数据位:一般为8位(D0~D7),奇偶检验位(D8)只占用一位,也可以规定不用奇偶检验位。或者把D8用作地址数据帧标志(多机通信中),来确定这一帧中的数据所代表信息的性质。

            停止位:用来表示一个传送字符的结束,一定是高电平,停止位可以是1位、1.5位或2位,接收端接受到停止位,就知道这一字符传送完毕。同时,也为接收下一字符做准备,只要再次接收到0,就是新的数据的起始位。存在空闲位是异步通信的特征之一。

        同步:每一数据块发送开始时,先发送一个或两个同步字符,是发送与接收取得同步,然后再顺序发送数据。数据块之间取消起始位和停止位。

            同步传输可以提高传输速率,但对硬件要求比较高。

        波特率:串行通信中,对数据传输速度有一定要求。在一帧信息中,每一位的传送时间(位宽)是固定的,用位传送时间Td表示。Td的倒数称为波特率。

波特率表示每秒传送的位数,单位为b/s(记作波特)。

        通信方向:

            单工:一对传输线只允许单方向传送数据;

            半双工:不允许同时在两个方向传输数据,如对讲机;

            双工:允许同时传送与接收数据,如手机。

        串行通信接口种类:

            根据串行通信格式及约定(如同步方式、通信速率、数据块格式等)不同,形成了许多接口标准:UART、USB、I^2C、SPI、485、CAN等。


猜你喜欢

转载自blog.csdn.net/weixin_39222888/article/details/80377193