8051单片机全双工串行口具有4种工作方式,可通过软件编程选择。方式1为波特率可变的10位异步通信接口方式。在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,在移位脉冲作用下串行数据从TXD引脚输出。发送和接收的一帧信息为11位,即1个起始位,9个数据位和1个停止位。发送一帧信息后,置位中断标志TI,其过程与方式1相同。方式3为波特率可变的11位UART方式。......
2025-09-30
在方式1下,串行口以10位为一帧,为异步串行通信方式,主要包括1位起始位、8位数据位和1位停止位。其主要特点是:RXD(P 3.0)引脚接收数据,TXD(P 3.1)引脚发送数据;数据位的接收和发送低位在前,高位在后。其格式如图9-9所示。

图9-9 方式1帧格式图
1.数据的发送
在方式1,TI=0时,数据的发送从执行“MOV SBUF,A”指令开始,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移动脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在1(mark)状态下,并将SCON寄存器的TI置1,通知CPU可以接着发送下一个字符。
2.数据的接收
接收数据时,SCON的REN位应处于允许接收状态(REN=1)且(RI=0),串行口采样RXD端,当采样从1到0的状态跳变时,就认定接收到起始位,随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中,直到停止位到来之后置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。
3.波特率的设定
方式0的波特率是固定的。但方式1的波特率是可变的,以定时器T1作波特率发生器使用,其值由定时器1的计数溢出率来决定,其公式为
![]()
其中,SMOD为PCON寄存器最高位的值,其值为1或0。
当定时器1作波特率发生器使用时,选用工作方式2(即8位自动加载方式),这主要是因为方式2具有自动加载功能,可避免通过程序反复装入初值所引起的定时误差,能使波特率更加稳定。假定计数初值为X,则计数溢出周期为

溢出率为溢出周期的倒数,则波特率计算公式为

实际使用时,总是先确定波特率,再计算定时器1的计数初值,然后再进行定时器的初始化。根据上述波特率的计算公式,可得出计数初值的计算公式为

以T1作波特率发生器由系统决定,用户只需根据通信所要求的波特率计算出定时器T1的计数初值,以便在程序中设置。
【例9-2】单片机以串行工作方式1进行串行数据通信,波特率为1200bps。若晶体振荡频率fosc为6MHz,试确定定时器/计数器1的计数初值。(https://www.chuimin.cn)
【解】串行口工作于方式1时的波特率由定时器/计数器1的溢出率决定,计数初值为

式中,晶体振荡频率fosc=6MHz、波特率=1200bps(已由题中给出),设SMOD位为0,可得计数初值为

因此,通过下面的指令可以对单片机的串行通信进行初始化,包括串行口的工作方式和波特率设置。

【例9-3】假定甲、乙机以串行工作方式1进行串行数据通信,其波特率为9600,甲、乙双机的8051的晶振频率均为11.0592MHz,波特率不倍增。甲机发送,发送数据的个数在内部RAM的40H中,数据则存放于外部RAM的以4000H地址开始的单元中。乙机接收,并把接收到的数据个数存放于内部RAM的50H中,数据块依次存入外部RAM的5000H地址开始的区域中。双机通信系统图如图9-10所示。
【解】参考例9-2,确定定时器/计数器1的计数初值。


图9-10 双机通信系统图
串行发送的内容包括数据的个数和数据两部分内容。对数据个数的发送以查询方式进行,而数据则以中断方式传送。因此在程序中要先禁止串行中断,后允许串行中断。
【程序】



单片机串行工作方式1例程说明
相关文章
8051单片机全双工串行口具有4种工作方式,可通过软件编程选择。方式1为波特率可变的10位异步通信接口方式。在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,在移位脉冲作用下串行数据从TXD引脚输出。发送和接收的一帧信息为11位,即1个起始位,9个数据位和1个停止位。发送一帧信息后,置位中断标志TI,其过程与方式1相同。方式3为波特率可变的11位UART方式。......
2025-09-30
8255共有3种工作方式,即方式0、方式1以及方式2。8255的“选通”是通过信号的“问”与“答”,以联络方式来实现的,所以这种数据传送方式是有条件的,适用于以查询或中断方式进行控制。3.方式2方式2是在方式1的基础上加上双向传送功能,但只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。如果把A口置于方式2下,则B口只能工作于方式0。表8-7C口联络信号定义......
2025-09-30
当CPU执行完任何能使PD置1的指令后,就使单片机进入掉电工作方式。退出掉电工作方式的唯一方法是硬件复位。在掉电工作方式期间,VCC可以降低到2V,但在进入掉电工作方式之前,VCC不能降低。而在准备退出掉电工作方式之前,VCC必须恢复正常的工作电压值,并维持一段时间,使振荡器重新启动并稳定。......
2025-09-30
在MCS-51单片机中,与串行通信有关的控制寄存器有3个,分别是串行控制寄存器SCON、串行口电源控制寄存器PCON和中断允许寄存器IE。1.串行控制寄存器SCONSCON是一个可位寻址的专用寄存器,用于串行数据通信的控制。2.串行口电源控制寄存器PCONPCON主要是为CHMOS型单片机8051的电源控制而设置的。表9-4串行口电源控制器寄存器在电源控制寄存器PCON中只有1位SMOD与串行口工作有关,SMOD是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。......
2025-09-30
8051系列单片机内部集成的串行通信接口全称为“通用异步收发器”,它既可作异步传输使用,也可作同步移位寄存器使用,还可用于数据的组网通信。图9-7 8051系列单片机通用异步收发器的内部结构UART工作时,定时器T1用于产生通信需要的时钟,控制寄存器用于对串行口的工作状态进行相应的监控和设置。......
2025-09-30
MCS-51单片机串行口中寄存器的基本结构如图9-3所示。图9-3串行口结构示意图MCS-51单片机串行口有两个缓冲寄存器,其中一个是发送寄存器,另一个是接收寄存器,以便MCS-51能以全双工方式进行通信。这两个寄存器都是可寻址的,但由于发送与接收不能同时进行,所以这两个寄存器地址相同。由于在接收寄存器之前还有移位寄存器,因而串行接收具有双缓冲结构,避免了数据接收过程中出现的帧重叠错误。......
2025-09-30
使用单片机本身的I/O口,可以实现一些简单的数据输入/输出传送,例如,从单片机P1.0~P1.3输入开关状态,再经P1.4~P1.7输出去驱动发光二极管,使发光二极管显示开关的状态。这时I/O口对信息的输入、输出可以直接操作。图8-7单片机I/O口直接使用方式图对于复杂的I/O操作,必须有接口电路的协调和控制才能进行。一般I/O接口电路主要完成以下基本功能。......
2025-09-30
由于AT89S52单片机内部没有集成I2C总线模块,采用C语言编写I2C总线技术的通信协议,实现单片机与AT24C02存储器的密码读出与写入功能。图20-13 数据传送时序图I2C总线发送器送到SDA线上的每个字节必须为8位长,传送时高位在前,低位在后。图20-14 完整的数据传送过程2.AT24C02读写操作本系统设计中利用P1.2,P1.3作为SDA、SCL串行通信线,实现对AT24C02芯片内某一地址数据的读写操作。......
2025-09-30
相关推荐