首页 理论教育 单片机串行通信方式实用教程

单片机串行通信方式实用教程

时间:2023-11-16 理论教育 版权反馈
【摘要】:在方式2时,串行通信口可以发送和接收每帧11位的串行数据,其中1位起始位、8位数据位、1位可编程位和1位停止位。采用较快波特率,因此PCON中的SMOD位置“1”,然后在SCON中将串行端口设置为方式2,REN设置为“1”,即可将P2的数据送于P0显示。

单片机串行通信方式实用教程

当SCON中的SM0=1、SM1=0时,串行通信口工作在方式2。在方式2时,串行通信口可以发送和接收每帧11位的串行数据,其中1位起始位、8位数据位、1位可编程位和1位停止位。TXD端用来发送数据,RXD端用来接收数据。在方式2时,串行通信口又分两种工作情况:发送数据和接收数据。

1.方式2——发送数据

在方式2时,发送的一帧数据有11位,其中有9位数据,第9位数据取自SCON中的TB8位。在发送数据前,先用软件设置TB8位的值,然后执行写SBUF指令(如MOV SBUF,A),发送控制器在内部移位脉冲的控制下,从TXD端送出一个起始位(低电平),然后逐位送出8位数据,再从TB8位中取出第9位并送出,当最后一位数据发送完成,发送控制器马上将SCON的TI位置“1”,向CPU发出中断请求,同时从TXD端输出停止位(高电平)。

2.方式2——接收数据

在方式2时,同样需设置SCON的REN=1,串行通信口才允许接收数据,然后不断检测RXD端是否有负跳变(由“1”变为“0”),若有,说明外部设备发来了数据的起始位,于是启动RXD端接收数据。

当8位数据全部进入输入移位寄存器后,如果RI位为“0”、SM2位为“0”(若SM2不为“0”,但接收到的第9位数据为“1”也可以),输入移位寄存器中的8位数据才可以送入SBUF,第9位会放进SCON的RB8位,同时RI位置“1”,向CPU发出中断请求,让CPU取走SBUF中的数据,否则输入移位寄存器中的数据将无法送入SBUF而丢弃。(www.xing528.com)

【例6-4】 如图6-8所示,使用串行通信方式2,将P2所连接的开关的状态通过P0端口连接的LED显示出来。

解答:在波特率设置方面,串行口的方式2比方式1简单,只有fosc/64及fosc/32两种,若SMOD位为“0”,则波特率为fosc/64,若SMOD位为“1”,则波特率为fosc/32。采用较快波特率,因此PCON中的SMOD位置“1”,然后在SCON中将串行端口设置为方式2,REN设置为“1”,即可将P2的数据送于P0显示。

978-7-111-43252-4-Chapter06-16.jpg

978-7-111-43252-4-Chapter06-17.jpg

978-7-111-43252-4-Chapter06-18.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈