TMOD TCON SCON

 

TMOD:定时器/计数器T0¦T1的方式寄存器

  方式寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址的寄存器,字节地址为89H。

  其格式为:

   TMOD TCON SCON_第1张图片

TMOD结构图

  =================================================================================

  其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:

  Ⅰ,GATE——门控制。

  ●GATE=1时,由外部中断引脚INT0、INT1和控制寄存器的TR0,TR1来启动定时器。

  当INT0引脚为高电平时TR0置位,启动定时器T0;

  当INT1引脚为高电平时TR1置位,启动定时器T1。

  ●GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

  Ⅱ,C/T——功能选择位

  置位时选择计数功能,清零时选择定时功能。

  Ⅲ,M0、M1——方式选择功能

  由于有2位,因此有4种工作方式

  ================================================================

  M1M0 工作方式 计数器模式 TMOD(设置定时器模式)

  0 0 方式0 13位计数器 TMOD=0x00

  0 1 方式1 16位计数器 TMOD=0x01

  1 0 方式2 自动重装8位计数器 TMOD=0x02

  1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03

  ================================================================

TCON

 

  TCON(Timer Control Register)定时器/计数器控制寄存器

  TCON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H一8FH,由于有位地址,十分便于进行位操作。

  TCON的作用是控制定时器的启、停,标志定时器溢出和中断情况。

  TCON的格式如下图所示。其中,TFl,TRl,TF0和TR0位用于定时器/计数器;IEl,ITl,IE0和IT0位用于中断系统。

  各位定义如下:

  TF1:定时器1溢出标志位。当字时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。

  TR1:定时器1运行控制位。由软件清“0”关闭定时器1。当GATE=1,且INT1为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1。

  TF0:定时器0溢出标志。其功能及操作情况同TF1。

  TR0:定时器0运行控制位。其功能及操作情况同TR1。

  IE1:外部中断1请求标志。

  IT1:外部中断1触发方式选择位。

  IE0:外部中断0请求标志。

  IT0:外部中断0触发方式选择位。

  TCON中低4位与中断有关,我们将在下节课讲中断时再给予讲解。由于TCON是可以位寻址的,因而如果只清溢出或启动定时器工作,可以用位操作命令。例如:执行“CLR TF0”后则清定时器0的溢出;执行“SETB TR1”后可启动定时器1开始工作(当然前面还要设置方式定)。

   定时器/计数器的初始化

  

  由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下:

  1、确定工作方式(即对TMOD赋值);

  2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);

  3、根据需要开放定时器/计数器的中断(直接对IE位赋值);

  4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。

  下面介绍一下确定时时/计数器初值的具体方法。

  因为在不同工作方式下计数器位数不同,因而最大计数值也不同。

  现假设最大计数值为M,那么各方式下的

  最大值M值如下:

  方式0:M=213=8 192

  方式1:M=216=65 536

  方式2:M=28=256

  方式3:定时器0分成两个8位计数器,所以两个M均为256。

  因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:

  X=M-计数值

 

 

SCON (Serial Port Control Register) 在51单片机中代表这是串口控制寄存器

  scon控制寄存器

  scon控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98h,其结构格式如下:

  表1 scon寄存器结构

  scon d7 d6 d5 d4 d3 d2 d1 d0

  sm0 sm1 sm2 ren tb8 rb8 ti ri

  位地址 9fh 9eh 8dh 9ch 9bh 9ah 99h 98h

  各控制位功能介绍如下:

  (1).sm0、sm1:串行口工作方式控制位。

  sm0,sm1 工作方式

  00 方式0

  01 方式1

  10 方式2

  11 方式3

  (2).sm2:多机通信控制位。

  多机通信是工作于方式2和方式3,sm2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及sm2=1时,只有当接收到第9位数据(rb8)为1时,才把接收到的前8位数据送入sbuf,且置位ri发出中断申请,否则会将接受到的数据放弃。当sm2=0时,就不管第位数据是0还是1,都得将数据送入sbuf,并发出中断申请。即此时ri是否置位由sm2和rb8共同决定。

  工作于方式0时,sm2必须为0。

  (3).ren:允许接收位。

  ren用于控制数据接收的允许和禁止,ren=1时,允许接收,ren=0时,禁止接收。

  (4).tb8:发送接收数据位8。

  在方式2和方式3中,tb8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,tb8=0为数据,tb8=1时为地址。

  (5).rb8:接收数据位8。

  在方式2和方式3中,rb8存放接收到的第9位数据,用以识别接收到的数据特征。

  (6).ti:发送中断标志位。

  可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,ti=1表示帧发送结束,ti可由软件清“0”。

  (7).ri:接收中断标志位。

  可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,ri=1表示帧接收完成。

  在串口中断处理时,ti,ri都需要软件清"0",硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要es=0,以防止中断出现。

 

 

你可能感兴趣的:(编程,工作,timer,IE)