要设置51系列单片机串口工作于所需工作方式,应是对哪个专用寄存器进行操作

如题所述

控制51单片机串行口的控制寄存器共有两个:特殊功能寄存器SCON和PCON。下面对这两个寄存器各个位的功能予以详细介绍。

  1.串行口控制寄存器SCON

  串行口控制寄存器SCON的格式如表4.4:

   SM0、SM1:串行口4种工作方式的选择位。

   SM2:允许方式2和3的多机通讯控制位。在方式2或3中,如果SM2置为l,则接收到的第9位数据(RB8)为0时不激活RI。在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。在方式0时,SM2必须清0。

  REN:允许串行接收位。由软件置1或清0。REN=l允许接收,REN=O则禁止接收。

   TB8:是工作在方式2和3时,要发送的第9位数据。需要时由软件置1或清0。在许多的通讯协议中该位是奇偶校验垃。在多机通讯中用来表示是地址帧或是数据帧,TB8=1为地址帧,TB8=0为数据帧。

   RB8:当工作在方式2和3时,为接收到的第9位数据。在多机通讯中为地址帧或数据帧的标识位。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。

  D7 D6 D5 D4 D3 D2 D1 D0

  SM0 SM1 SM2 REN TB8 RB8 TI RI

   T1:发送中断标志位,在方式O串行发送第8位数据结束时由硬件置1,或在其它方式串行发送停止位的开始时置1。TI=1时,申请中断,CPU响应中断后,发送下一帧数据。TI必须由软件清0。 表4.4 串行口控制寄存器SCON的格式

  RI:接收中断标志位,在方式O串行接收到第8位数据结束时,由硬件置1。在其它方式中,串行接收到停止位的中间点时置1。RI=1时申请中断,要求CPU取走数据。但在方式1中,SM2=1时,若未收到有效的停止位,不会对RI置1。RI必须由软件清0。

  SCON的所有位都能由软件清0。

  2.特殊功能寄存器PCON

  特殊功能寄存器PCON没有位寻址功能。PCON的格式如表4.5:

  表4.5 特殊功能寄存器PCON的格式

  D7 D6 D5 D4 D3 D2 D1 D0

  SMON × × × × × × ×

  SMOD:波特率系数选择位。

3.串行口工作方式

  方式0:8位移位寄存器输入/输出方式。在扩展I/O端口外接移位寄存器时常用,其波特率固定为Fosc/12, Fosc为时钟频率;

  方式1:10位异步通信方式。其中1个起始位,8个数据位和一个停止位,其波特率计算公式为:波特率=2的SMOD次方/32*(定时器T1的溢出率);

  方式2,3:11位异步通信方式,其中一个起始位,8个数据位,1个附加的第9位和1个停止位,方式2和方式3仅只有波特率不同,方式2的波特率=2的SMOD次方/64*Fosc,方式3的波特率=2的SMOD次方/32*(定时器T1的溢出率)。

  此次系统串行口工作方式是:01。

  SM0、SM1两位为01时,串行口以方式1上作,方式1时串行口被控制为波特率可变的8位异步通讯接口。方式1的波特彩由下式确定:

  方式l波特率=2的(SMOD-5)次方*定时器1的溢出率

  式中SMOD为PCON寄存器的最高位的值(0或1)。

  因为串行口用于连接打印机,所以这里只介绍串行口输出情况。

  串行口以方式1输出时,数据位由TXD端输出,发送—帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1,CPU执行一条数据写发送缓冲器SBUF的指令,就启动发送。当发送完数据位,置“1”中断标志TI。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-01
1. 数据缓冲寄存器SBUF
SBUF 是可以直接寻址的专用寄存器。物理上,它对应着两个寄存器,即一个发送寄存
器一个接收寄存器,CPU 写SBUF 就是修改发送寄存器;读SBUF 就是读接收寄存器。接
收器是双缓冲的,以避免在接收下一帧数据之前,CPU 未能及时的响应接收器的中断,没
有把上一帧的数据读走而产生两帧数据重叠的问题。对于发送器,为了保持最大的传输速率,
一般不需要双缓冲,因为发送时CPU 是主动的,不会产生重叠问题。
2. 状态控制寄存器SCON
SCON 是一个逐位定义的8 位寄存器,用于控制串行通信的方式选择、接收和发送,指
示串口的状态,SCON 即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。
3. 控制寄存器PCON
控制寄存器PCON 也是一个逐位定义的8 位寄存器,仅最高位SMOD 与串口的控制有关。SMOD 是串行通信波特率系数控制位,当串口工作在工作方式1、2 时,若使用
T1 作为波特率发生器其SMOD=1 则波特率加倍 。
初始化示例
void _init(void)
{
TMOD = 0x20; //定时器T1定义为模式2
TL1 = 0xFD; TH1 = 0xFD; //设置波特率为9600bps
PCON = 0x00; //SMOD=0
SCON = 0x70; //SM0,SM1=01--选择工作方式1
//SM2=1--多机控制位置1
//REN=1--禁止接收
//TB8=0--此方式无要发送第9位数据
//RB8=0--此方式无接收到的第9位数据
//TI=0--发送中断标志清0
//RI=0--接收中断标志清0
TR1 = 1; //启动定时器T1
}
第2个回答  2012-06-01
找一个现成的单片机和PC串口通讯程序,对应程序中 TMOD SCON PCON 及一些控制位TR EA ES,对着参考资料看下就会明白的。
void UART_init (void)
{
TMOD=0x20; //定时器1做为串口用
PCON=0x00; /// 波特率不加倍
SCON=0x50; //串行工作方式1 允许接收
TH1=0xFD; //波特率9600 11。0592M晶振
TL1=0xFD; //
EA=1; // 开总中断
ES=1; //开串口中断
TR1=1; // 开定时器1

}
第3个回答  2012-06-01
特殊功能寄存器SCON,其中高两位SM0,SM1是工作方式选择位,共有四种方式可选择。
第4个回答  2017-10-22
SMOD

书是要好好看的……

要设置51系列单片机串口工作于所需工作方式,应是对哪个专用寄存器进行...
要使51系列单片机的串口工作在所需的工作方式,需要对特殊功能寄存器SCON进行操作。SCON寄存器用于设置串行通信的工作模式,包括数据位、停止位、校验位以及波特率等参数。SCON寄存器中,SM0和SM1位用于选择四种不同的串行工作模式。例如,当SM0和SM1设置为“01”时,串口工作在方式1,这是一种波特率可变的8...

要设置51系列单片机串口工作于所需工作方式,应是对哪个专用寄存器进行...
1. 数据缓冲寄存器SBUF SBUF 是可以直接寻址的专用寄存器。物理上,它对应着两个寄存器,即一个发送寄存 器一个接收寄存器,CPU 写SBUF 就是修改发送寄存器;读SBUF 就是读接收寄存器。接 收器是双缓冲的,以避免在接收下一帧数据之前,CPU 未能及时的响应接收器的中断,没 有把上一帧的数据读走而产...

要设置51系列单片机串口工作于所需工作方式,应是对哪个专用寄存器进行...
1.串行口控制寄存器SCON 串行口控制寄存器SCON的格式如表4.4:SM0、SM1:串行口4种工作方式的选择位。SM2:允许方式2和3的多机通讯控制位。在方式2或3中,如果SM2置为l,则接收到的第9位数据(RB8)为0时不激活RI。在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。在方式0时,SM...

单片机串口通信需要用哪些寄存器
51单片机串口工作时,涉及到以下三个寄存器:1.scon——串行口工作寄存器 2.ie——中断允许寄存器(如果用到中断方式的话)3.pcon——其中最高位smod与波特率有关 另外定时器有t0和t1,而t1在方式1,方式3时需要用到,以改变波特率。

控制mcs-51单片机的串行口工作方式的寄存器是 A、TCON B、PCON C...
C TCON(Timer Control Register)定时器\/计数器控制寄存器 PCON电源控制及波特率选择寄存器 SCON-串行口控制寄存器 TMOD定时器工作方式寄存器

51单片机的低功耗工作方式配置是在哪个寄存器
PCON寄存器。51单片机是对兼容英特尔8051指令系统的单片机的统称。该片机是通过设置电源控制寄存器PCON实现低功耗工作方式,51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。

51单片机串口是什么工作方式?
1、方式0 串行接口的工作方式0为移位寄存器I/O方式。在串行口外接移位寄存器以扩展I/O接口,也可以外接串行同步I/O的设备。(1)方式0输出 串行口以方式0发送时,数据以RXD端串行输出,TXD端输出同步信号。当一个数据写入串行口发送缓冲器以后,就启动串行口发送器以振荡频率的十二分之一的波特率...

8051单片机串行口的工作方式由哪个寄存器决定
8051单片机串行口的工作方式由SCON寄存器最高二位SM0,SM1二位定义,

51单片机怎么设置寄存器
学习使用单片机如果不仔细阅读数据手册几乎是无法进行的,对于51单片机的应用,其实就是设置这些寄存器的事情,这些弄懂了也就入门了。TMOD=0x10 :设置定时器1为方式1模式(16位定时器\/计数器)。TMOD=0x02:设置定时器0为方式2模式(自动重载8位定时器\/计数器)

51系列单片机如何实现工作寄存器组RO~R7的选择?开机复位后,CPU使用的...
51单片机有4组RO~R7工作寄存器,程序运行中具体使用哪一组由程序状态字PSW的RS1及RS0(PSW.4及PSW.3)决定,可以设置这两位来选择寄存器组。开机复位后,由于PSW=00H,所以使用的为第0组寄存器。只要在程序运行过程中不对PSW的RS1及RS0位进行设置,寄存器组就不会切换。至于它的具体地址如下:0组...

相似回答