TMOD、TCON、SCON、PCON、SBUF寄存器说明

TMOD:定时器/计数器工作方式寄存器


 TCON:定时器/计数器控制寄存器

       


SCON:串行口控制寄存器

串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等,其位格式为:

 

SMO、SM1:串行口工作方式控制位,对应4种工作方式,如表7-1所示(fosc是晶振频率)。

SM2

多机通信控制位,主要用于工作方式2和工作方式3。

若SM2=1,则允许多机通信。

多机通信规定:第9位数据位为1 (即TB8=1),说明本帧数据为地址帧:第9位数据为0(即TB8=0),则本帧数据为数据帧。

当从机接收到的第9位数据(在RB8中)为1时,数据才装入接收缓冲器SBUF,并置RI=1向CPU申请中断;如果接收到的第9位数据(在RB8中)为0,则不置位中断标志RL信息丢失。

当SM2=0时,则不管接收到第9位数据是否为1,都产生中断标志RI,并将接收到的数据装入SBUF。应用这一特点可以实现多机通信。

串行口工作在方式0时,SM2必须设置为0;工作在方式1时,如SM2=1,则只有接收到有效的停止位时才会激活RI。

REN:允许接收控制位。当REN=1时,允许接收;当REN=0时,禁止接收。此位由软件置1或清零。

TB8:在方式2和方式3中,此位为发送数据的第9位,在多机通信中作为发送地址帧或数据帧的标志。TB8=1,说明该发送帧为地址帧;TB8=0,说明该发送帧为数据帧。在许多通信协议中,它可作为奇偶校验             位。此位由软件置1或清零。在方式0和方式1中,此位未使用。

RB8:  接收数据的第9位。在方式2和方式3中,接收到的第9位数据放在RB8中。它或是约定的奇/偶校验位,或是约定的地址/数据标志位。在方式2和方式3多机通信中,若SM2=1且RB8=1,说明接收到的数                据为地址帧。

TI:   发送中断标志位。在一帧数据发送完时置位。TI=1,申请中断,说明发送缓冲器SBUF已空,CPU可以发送下一帧数据。中断被响应后,TI不能自动清零,必须由软件清零。 ,

RI:   接收中断标志位。在接收到一帧有效数据后,由硬件置位。RI=1.申请中断,表示一帧数据接收结束,并已装入接收缓冲器SBUF中,CPU响应中断,取走数据。RI不能自动清零,必须由软件清零。

           串行口发送中断标志TI和接收中断标志RI共为一个中断源。因此,CPU接收到中断请求后,不知道是发送中断TI还是接收中断RI,必须用软件来判别。单片机复位后,控制寄存器SCON的各位均清零。


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

电源控制寄存器PCON中只有一位SMOD与串行口工作有关,

SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;
若SMOD=0,则波特率不提高一倍。单片机复位时,SMOD=0。


SBUF:串行数据缓冲器

串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H。这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。

SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。只要在编写程序时,用不同指令即可操作两个寄存器。
        比如,SBUF=A;这个是指将A的数据移入发送寄存器,然后发送寄存器再把数据发送出去。A=SBUF;则是指将接受寄存器中的数据赋值给A。

ACC: 累加器,用于存放运算结果或数据。初值为0。内部位的作用如下: - ACC.7: 符号位,用于表示结果的正负。 - ACC.6-ACC.0: 数据位,用于存放运算结果或数据。 PC: 程序计数器,用于存放下一条指令的地址。初值为0。内部位的作用如下: - PC.7-PC.0: 地址位,用于存放指令的地址。 PSW: 程序状态字,用于存放程序的运行状态和标志位。初值为0。内部位的作用如下: - PSW.7: 符号位,用于表示运算结果的正负。 - PSW.6: OV溢出志位,用于表示运算结果是否溢出。 - PSW.5: AC位标志位,用于表示运算结果是否进位。 - PSW.4: F0标志位,可由用户自定义使用。 - PSW.3: RS1标志位,可由用户自定义使用。 - PSW.2: RS0标志位,可由用户自定义使用。 - PSW.1: P标志位,用于表示运算结果的奇偶性。 - PSW.0: CY进位标志位,用于表示运算结果是否进位。 SP: 堆栈指针,用于指向堆栈的栈顶。初值为07H。内部位的作用如下: - SP.7-SP.0: 地址位,用于存放堆栈的地址。 IE: 中断使能寄存器,用于控制中断的使能。初值为0。内部位的作用如下: - IE.7: EA总中断使能位,用于控制所有中断的总使能。 - IE.6: ET2定时器2中断使能位,用于控制定时器2中断的使能。 - IE.5: ES串行口中断使能位,用于控制串行口中断的使能。 - IE.4: ET1定时器1中断使能位,用于控制定时器1中断的使能。 - IE.3: EX1外部中断1使能位,用于控制外部中断1的使能。 - IE.2: ET0定时器0中断使能位,用于控制定时器0中断的使能。 - IE.1: EX0外部中断0使能位,用于控制外部中断0的使能。 - IE.0: EA总中断使能位,用于控制所有中断的总使能。 TCON: 定时器/计数器控制寄存器,用于控制定时器和计数器的工作方式。初值为0。内部位的作用如下: - TCON.7: TF1定时器1溢出标志位,用于表示定时器1是否溢出。 - TCON.6: TR1定时器1运行控制位,用于控制定时器1的启动和停止。 - TCON.5: TF0定时器0溢出标志位,用于表示定时器0是否溢出。 - TCON.4: TR0定时器0运行控制位,用于控制定时器0的启动和停止。 - TCON.3: IE1外部中断1标志位,用于表示外部中断1是否触发。 - TCON.2: IT1外部中断1触发方式位,用于控制外部中断1的触发方式。 - TCON.1: IE0外部中断0标志位,用于表示外部中断0是否触发。 - TCON.0: IT0外部中断0触发方式位,用于控制外部中断0的触发方式。 TMOD: 定时器/计数器模式寄存器,用于设置定时器和计数器的工作模式。初值为0。内部位的作用如下: - TMOD.7-TMOD.4: T1M1-T1M0定时器1工作模式位,用于设置定时器1的工作模式。 - TMOD.3-TMOD.0: T0M1-T0M0定时器0工作模式位,用于设置定时器0的工作模式。 SCON: 串行口控制寄存器,用于设置串行口的工作方式。初值为0。内部位的作用如下: - SCON.7: SM0串行口工作方式位,用于设置串行口的工作方式。 - SCON.6: SM1串行口工作方式位,用于设置串行口的工作方式。 - SCON.5: SM2串行口工作方式位,用于设置串行口的工作方式。 - SCON.4: REN串行口接收使能位,用于控制串行口的接收使能。 - SCON.3: TB8发送数据位8,用于发送数据的第8位。 - SCON.2: RB8接收数据位8,用于接收数据的第8位。 - SCON.1: TI发送中断标志位,用于表示发送中断是否触发。 - SCON.0: RI接收中断标志位,用于表示接收中断是否触发。 SBUF: 串行口数据寄存器,用于存放串行口发送和接收的数据。初值为0。 PCON: 电源控制寄存器,用于控制单片机的电源和时钟。初值为0。内部位的作用如下: - PCON.7: SMOD串行口波特率倍增位,用于控制串行口的波特率倍增。 - PCON.6: SMOD0串行口波特率倍增位,用于控制串行口的波特率倍增。 - PCON.5: GF1通用标志位1,可由用户自定义使用。 - PCON.4: GF0通用标志位0,可由用户自定义使用。 - PCON.3: PD电源控制位,用于控制单片机的电源模式。 - PCON.2: IDL空闲模式位,用于控制单片机的空闲模式。 - PCON.1: STOP模式位,用于控制单片机的停机模式。 - PCON.0: SMOD1串行口波特率倍增位,用于控制串行口的波特率倍增。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值