赣州市宣传部领导班子:MCS-51单片机特殊功能寄存器详解

来源:百度文库 编辑:中财网 时间:2024/05/11 02:47:18


1、      定时器/计数器的方式寄存器TMOD

          TMOD是一个8位的特殊功能寄存器,对应的地址是89H,不可位寻址。

   A      主要完成三个功能:

          *确定选择定时器还是计数器;

           *选择何种工作方式;

           *是否借用外中断控制定时器和计数器的启停;

   B      TMOD的低4位是控制T0的字段(T0--P3.4 定时器/计数器0外部事件脉冲输入端)


            TMOD的高4位是控制T1的字段(T1--P3.5定时器/计数器1外部事件脉冲输入端)

   C     控制字的格式和含义


        a、   GATE(TMOD.7)

           分为两种情况:GATE=0,定时器的启停和INT1无关,只取决于TR0;

                                    GATE=1,定时器的启停不仅要由TR0来控制,而且要INT1引脚的控制,只有二者

                                                     都为高电平时定时器 才开始工作;
    
       b、   C/T(TMOD.6)

           分为两种情况:C/T=0,用作定时器;

                                  C/T=1,用作计数器;
     
         d、 M1(TMOD.5),M0(TMOD.4)

               用M1,M0来控制定时器/计数器的4种工作方式:

                  *方式0:M1=0,M0=0.13位定时/计数方式

                *方式1:M1=0,M0=1.16位定时/计数器

                   *方式2,M1=1,M0=0.8位初值自动重新装入的8位定时/计数器

                    *方式3,M1=1,M0=1.仅适用于T0,分为两个8位计数器,T1停止计数

   2、定时器/计数器控制寄存器TCON

      TCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。

     A   控制字的格式和含义

       a、TF1(TCON.7),TF0(TCON.5)----T1、T0计数溢出标志位

           当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供cpu

           查询,但应注意在查询该位有效后应以软件方法及时将该位清“0”。使用中断

           方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清0.

       b、TR1(TCON.6),TR0(TCON.4)----计数运行控制位

          TR1(TR0)=1,启动定时/计数器工作的必要条件,还与GATE位的状态有关。

          TR1(TR0)=0,停止定时/计数器工作。

          该位可由软件置1或清0.

      C、 IE1(TCON.3),IE0(TCON.1)----外部中断INT1(P3.3)、INT0(P3.2)的中断请求标志位

          当有外部的中断请求时,INT1(INT0)=1(有硬件完成),在cpu响应中断后,由硬件将

          IE1(IE0)清0.

      d、 IT1(TCON.2),IT0(TCON.0)----INT1(INT0)触发方式控制位

          可由软件进行置位和复位。IT0(IT1)=0,INT0(INT1)为低电平触发方式;

                                  IT0(IT1)=1,INT0(INT1)为负跳变触发方式;

   3、中断允许寄存器IE

       在51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来

       控制的
   
       EA(IE.7):总开关,如果它等于0,则所有中断都不允许;

       ES(IE.4):串行口中断允许;

       ET1:定时器1中断允许;

       EX1:外中断1中断允许;

       ET0:定时器0中断允许;

       EX0;外中断0中断允许;

   4、5个中断源的优先级

      单片机的中断服务入口地址如下,它们的自然优先级由高到低排列。

      外中断0:0003H;

      定时器0:000BH;

      外中断1:0013H;

      定时器1:001BH;

      串口:0023H;

      采用c51的编程语言,该语言中断服务函数的完整语法如下:

      返回值   函数名称(【参数】)【模式】【重入】interrupt n 【using n】

      interrupt对应的是中断源的编号,而【using】决定了使用寄存器的组号。这里,需要对

      寄存器的组号进行简单的解释。51系统中有4个寄存器组,具体的位置取决于psw(程序状态字)

      的两位RS0、RS1的设置。当运行一个中断任务时,采用不同的寄存器组。在c51

      中,寄存器组的选择就取决于using后的变量的指定,变量位0~3的整数。

      在这里给出不同中断服务程序的c51程序写法:

      *外中断INT0--------void intsvr0(void) interrupt 0 using 1

      *定时/计数器T0-----void timer0(void) interrupt 1 using 1

      *外中断INT1--------void intsvr0(void) interrupt 2 using 1

      *定时/计数器T1-----void timer0(void) interrupt 3 using 1

      *串口中断----------void serial0 interrupt 4 using 1          

P3口的代替功能

寄存器地址B0H,位寻址B7HB0H

引脚

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

代替功能

RXD

TXD

/INT0

/INT1

T0

T1

/WR

/RD

TCON:定时器控制寄存器

寄存器地址88H,位寻址8FH88H

位地址

8F

8E

8D

8C

8B

8A

89

88

位符号

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1

TR0TR1)——定时器运行控制位

TR0TR1)=0  停止定时器/计数器工作

TR0TR1)=1  启动定时器/计数器工作

IE0IE1)——外中断请求标志位

CPU采样到P3.2P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0

IT0IT1)——外中断请求信号方式控制位

IT0IT1=1 脉冲方式(后沿负跳有效)

IT0IT1)=0 电平方式(低电平有效)此位由软件置1或清0

TF0TF1)——计数溢出标志位

当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。

   

TMOD:工作方式控制寄存器

寄存器地址89H,不可位寻址。

位序

B7

B6

B5

B4

B3

B2

B1

B0

位符号

GATE

C/T

M1

M0

GATE

C/T

M1

M0

GATE——门控位

当=0时,以运行TR0(或TR1)启动或禁止定时器、计数器

当=1时,以TR0*/INT0(或TR1*/INT1)启动或禁止定时器、计数器

GATE0  TR0TR1)启动定时器

GATE1  INT0INT1)启动定时器

  C/T0 定时/计数工作方式选择位

  M1M0——工作方式选择位

T2MOD:工作方式控制寄存器

寄存器地址0C9H,不可位寻址

T2OE

DCEN

T2OE:定时器2输出允许位,当=1时,P1.0/T2引脚输出连续脉冲信号

DCEN:当=1时,T2配置成向上向下计数器

T2CON:定时器控制寄存器

寄存器地址0C8H,位寻址0C8H0CFH

位地址

CF

CE

CD

CC

CB

CA

C9

C8

位符号

TF2

EXF2

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

TF2T2溢出标记

T2溢出时TF21TD2只能用软件清除

RCLK=1TCLK1时,TF2将不置位

EXF2T2外部标记

EXEN21时,T2EX/P1.1引脚上的负跳变引起T2的捕捉/重装操作,此时EXF21。在T2中断允许时,EXF21将引起中断,EXF2只能用软件清除。在T2的向上、向下计数模式下(DCEN1EXF2的置位将不引起中断。

RCLK:接收时钟允许

RCLK1时,T2的溢出脉冲可用作串行口的接收时钟信号,适于串行口模式13RCLK0时,T1的溢出脉冲用作串行口接收时钟信号

TCLK:发送时钟允许

EXEN2T2外部事件(引起捕捉/重装的外部信号)允许

EXEN21时,如果T2没有作串行时钟输出(即RCLK+TCLK=0),则在T2EX/P1.1引脚跳变将引起T2的捕捉/重装操作;

EXEN20时,在T2EX引脚的负跳变将不起作用

TR2T2的启动/停止控制  

C/T2:计数定时

CP/RL2:捕捉/重装选择

CP/RL21EXEN21时,T2EX/P1.1引脚的负跳变将引起捕捉操作

CP/RL20EXEN21时,T2EX/P1.1引脚的负跳变将引起重装操作

CP/RL20EXEN20时,T2的溢出将引起T2的自动重装操作

RCLK+TCLK=1时,CP/RL2控制位不起作用,T2被强制工作于重装方式。重装方式发生于T2溢出时,常用来作波特率发生器。

SCON:串行口控制寄存器

寄存器地址98H,位寻址9FH98H

位地址

9F

9E

9D

9C

9B

9A

99

98

位符号

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0SM1:串行口工作方式选择位

SM2:多机通信控制位

REN:允许/禁止串行口接收的控制位

TB8:在方式2和方式3中,是被发送的第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中是停止位。

RB8:在方式2和方式3中,是被接收的第9位数据(来自第TB8位);在方式1中,RB8收到的是停止位,在方式0中不用。

TI——串行口发送中断请求标志位

当发送完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0

RI——串行口接收中断请求标志位

      当接收完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。

IE:中断允许控制寄存器

寄存器地址A8H,位寻址AFHA8H

位地址

AF

AE

AD

AC

AB

AA

A9

A8

位符号

EA

/

ET2

ES

ET1

EX1

ET0

EX0

EA:中断允许总控制位

EA=0时,中断总禁止。

EA=1时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。

EX0 EX1):外部中断允许控制位

EX0 EX1)=0 禁止外中断

EX0 EX1)=1 允许外中断

ET0EX1):定时/计数中断允许控制位

ET0ET1)=0  禁止定时(或计数)中断

ET0ET1)=1  允许定时(或计数)中断

ET2:定时器2中断允许控制位,在AT89S52AT89C52

ES:串行中断允许控制位

ES0  禁止串行中断

ES1  允许串行中断

IP:中断优先级控制寄存器

寄存器地址B8H,位寻址BFHB8H

位地址

BF

BE

BD

BC

BB

BA

B9

B8

位符号

/

/

PT2

PS

PT1

PX1

PT0

PX0

PX0——外部中断0优先级设定位

PT0——定时中断0优先级设定位

PX1——外部中断1优先级设定位

PT1——定时中断1优先级设定位

PS——串口中断优先级设定位

PT2——定时器2优先级设定位

PSW:程序状态字

寄存器地址D0H,位寻址D7HD0H

位地址

D7

D6

D5

D4

D3

D2

D1

D0

位符号

CY

AC

F0

RS1

RS0

OV

-

P

CY——进位标记

AC——半进位标记

F0——用户设定标记

RS1 RS0——4个工作寄存器区的选择位。

VO——溢出标记

P——奇偶校验标记

PCON:电源控制器及波特率选择寄存器

字节地址=87H,不可位寻址

SMOD

-

-

POF

GF1

GF0

PD

IDL

SMOD——波特率倍增位

GF1GF0——用户通用标记

PD——掉电方式控制位,PD1时进入掉电模式

IDL——空闲方式控制位,IDL=1时进入空闲方式

AT89S51PCON.4是电源断电标记位POF,上电是为1

进入空闲模式:PCON=0x01;     之前执行AUXR=0xFF;定义空闲模式下看门狗WDT不计数。

PCON:电源控制器及波特率选择寄存器

      字节地址=87H,不可位寻址

SMOD

-

-

POF

GF1

GF0

PD

IDL

      SMOD——波特率倍增位

      GF1GF0——用户通用标记

      PD——掉电方式控制位,PD1时进入掉电模式

      IDL——空闲方式控制位,IDL=1时进入空闲方式

      在AT89S51PCON.4是电源断电标记位POF,上电是为1