单片机_定时器/计数器

时间:2020-11-28 19:44:03

1.P0~P4口

四个并行口均可作为输入输出接口使用,但又有各自的特点。因PO口是数据线和低八位的地址线,因此不用它作输入/输出接口,而是用它传输数据和低八位的地址信息。

2.读取数据:

一般的读指令为读引脚状态,为保证可靠输入,需先输出高电平(复位后为高)

3.定时器
计数输入信号来自内部振荡信号,在每个机器周期内定时器的计数器做一次“+1”运算。因此定时器亦可视为计算机机器周期的计数器。

4.计数器 
计数输入信号来自外部引脚T0(P3.4)、T1(P3.5)上的计数脉冲,外部每输入一个脉冲,计数器做一次“+1”运算。

单片机_定时器/计数器

定时器/计数器需写入计数初值,且规定其工作方式。

1.方式控制寄存器TMOD 

2.控制寄存器TCON

单片机_定时器/计数器

五、定时器/计数器初始化编程

1.确定工作方式——对方式寄存器TMOD赋值。

2.预置定时或计数初值,直接将初值写入TL0、TH0或TL1、TH1中。
3.根据需要对中断允许寄存器有关位赋值,以开放或禁止定时器/计数器中断。
4.启动定时器/计数器,使TCON中的TR1或TR0置“1”,计数器即按确定的工作方式和初值开始计数或定时

GATE:门控信号
      GATE=0,TRi=1时即可启动定时器工作 ;
      GATE=1, TRi=1 INTi=1才可启动定时器工作。
C/T:定时器/计数器选择位
      C/T=1,为计数器方式;
      C/T=0,为定时器方式。
M1 M0  工作模式选择位
      M1M0=00    工作方式0(13位方式)。
      M1M0=01    工作方式1(16位方式)。
      M1M0=10    工作方式2(8位自动再装入方式)。
      M1M0=11    工作方式3(T0为2个8位方式)

六、计数初值的计算

设计数器最大计数值为M,选择不同的工作方式,最大计数值M不同。
    方式0:M=213=8192
    方式1:M=216=65536
    方式2、3:M=28=256
 置入计数初值X可计算如下:
① 计数方式时:
     X=M-计数值(X即为计数值的补码)
     例如:要计100个数,则计数初值X=M-100
② 定时方式时:
     (M-X)×T=定时值
     故,X=M-定时值/T
其中T为计数周期,是单片机时钟的12分频,即单片机机器周期。当晶振为6MHz时,T=2μs,当晶振为12MHz时,T=1μs。

单片机_定时器/计数器

七、串行口

MCS-51系列单片机有一个全双工的串行接口,可进行异步串行接收和串行发送,可编程选择四种工作方式,波特率可由用户设置。
通过引脚RXD(P3.0串行数据接收端)和引脚TXD(P3.1串行数据发送端)与外界进行通信。

八、特殊功能寄存器

数据缓冲器 SBUF 

单片机_定时器/计数器
串行口控制寄存器 SCON

单片机_定时器/计数器

特殊功能寄存器 PCON

九波特率发生器
① 定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率。
② 以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率

十、单片机如何接收数据

在接收方式下,串行数据通过RXD(P3.0)进入单片机。当接收控制器检测到接收端RXD的负跳变时,启动接收过程,则串行口按照程序设定的格式、以一定的频率(波特率)接收一帧数据,接收完毕,数据存入接收缓冲器SBUF中,并置RI为1。

在发送方式下,通过CPU执行  MOV  SBUF, A指令启动发送过程,数据由TXD(P3.1)一位一位的发出,发送完最后一位,将TI置1。

单片机_定时器/计数器

方式0
方式0为同步移位寄存器输入/输出方式,可外接移位寄存器,以扩展I/O口,也可接同步输入/输出设备。
RXD作为移位寄存器的输入输出口,TXD提供移位时钟脉冲,频率为振荡器频率的1/12。移位数据的发送和接收以8位为一组,低位在前,高位在后。

串行口小结:

在串行通信编程中,如果是方式1和方式3,必须对定时计数器T1进行初始化以选择波特率。发送过程是先发送后检查TI;接收过程是先检查RI后接收。无论发送或接收前应先清状态TI或RI,无论是查询方式或中断方式,发送或接收后都不会自动清状态标志,必须用程序清零TI和RI。