8051单片机的异步串行通信技术

发布时间 : 星期五 文章8051单片机的异步串行通信技术更新完毕开始阅读

L6:JBC RI, L7 ;接收从机发来的结果标志码。 AJMP L6

L7:MOV A, SBUF

JZ L8 ;若标志码为00H,表示接收正确,返回;反之

重发。

AJMP AGAIN ;发送有错,重发。 L8:RET

乙机接收参考程序如下: ORG 0030H

MOV TMOD, #20H

MOV TL1, #0F3H MOV TH0, #0F3H SETB TR1 MOV PCON, #00H MOV SCON, #50H AGAIN:MOV DPTR, #1000H L0:JBC RI, L1 AJMP L0

L1:MOV A, SBUF

MOV R6, A MOV R5, #00H WAIT:JBC RI, L2 AJMP WAIT

L2:MOV A, SBUF

MOVX @DPTR,A INC DPTR ADD A, R5 MOV R5, A

DJNZ R6, WAIT L3:JBC RI, L4

;设定时器1工作方式2。

;设置定时器初值。

;设置重装值。

;启动T1。 ;SMOD=0。

;设串行工作方式1,允许接收。

;接收发送长度值。 ;取发送长度值送R6。

;累加和寄存器清”0”。

;接收数据。

;将所接收数据送数据区。 ;指向下一单元。 ;累加。 ;若数据接收未完继续。

;数据接收完毕,接收主机的累加校验码。

;建立接收地址指针初值

AJMP L3

L4:MOV A, SBUF ;取主机累加和校验码。

XRL A, R5 ;与本机累加和进行校验。 JZ L7 ;若校验正确转L7。

MOV SBUF, #0FFH ;校验出错,回送校验出错标志码FFH,表示

要求主机重发。

L5:JBC TI, L6 ;回送FFH。

AJMP L5

L6:AJMP AGAIN ;重新接收

L7:MOV SBUF, #00H ;回送校验正确标志码00H。 L8:JBC TI, L9 ;回送。

AJMP L8

L9:RET ;接收完成,返回。

3.串行工作方式2

方式2是11位为一帧的串行通信方式,即1位始位,9位数据位和1位停止位。其中第9位数据既可作奇偶校验位,也可作控制位使用。其帧格式为:

始 D0 D1 D2 D3 D4 D5 D6 D7 D8 停

附加第9位(D8)由软件置1或清零。方式2发送时单片机自动将SBUF中8位数据加上SCON中TB8作为第9位数据进行发送。接收时,单片机将接收到的前8位数据送入SBUF,而在SCON中RB8位中存放第9位数据。方式2波特率只有两种,用公式表示: 波特率=(2

smod

/64)×f晶振

当SMOD=0, 波特率为f晶振/64 当SMOD=1, 波特率为f晶振/32

4.串行工作方式3

方式3通信过程与方式2完全相同。区别仅在于方式3的波特率可通过设置定时的工作方式和初值来设定(与串行工作方式1波特率设定方法相同)。

顺便指出,由于方式1和方式3的波特率设置较为灵活,在单片机串行通信中得到广泛应用。

第四节 单片机多机通信原理

单片机多机通信是指一台主机和多台从机之间的通信。8051的串行通信控制寄存器SCON中设有多机通信控制位SM2(SCON.5)。串行口以方式2或方式3接收时,若SM2=1,则仅当接收到的第九位数据为1时,才将数据送入接收缓冲器SBUF,并置位RI发出中断请求信号,否则将丢失信息;而当SM2=0时,则无论第九位是0还是1,都能将数据装入SBUF,并产生中断请求信号。根据这个特性,便可实现主机与多个从机之间的串行通信。

图8—7为8051多机通信连接示意图,图中8051为主机,其余8051为从机。 TXD RXD TXD RXD TXD RXD TXD RXD 8051 8051 8051 8051 主机 0#从机 1#从机 2#从机 图8—7 多机通信连接示意

以主机向从机发送数据为例,在编程前,可先定义各从机通信地址,设三个从机地址分别为00H,01H,和02H。主机和从机在初始化程序中将串行口工作方式设定为11位异步通信方式(方式2或方式3),且置位SM2,允许串行口中断。在主机和某一从机通信之前,先向所有从机发出所选从机的地址,即联络通信命令,接着才发送数据或命令。

在主机发送地址时,地址数据标识位TB8(即发送的第九位数据)设置1以表示地址信息,各从机接收到主机发来的地址信息后,则置位中断标志RI,中断后判断主机送来的地址与本从机是否相符。若为本地址,则将本机SM2位清0,准备与主机进行数据通信。 没选中的从机则保持SM2=1状态,接着主机发送数据帧(TB8=0表示),各串行口同时收到了数据帧,而只有已选中的从机(SM2=0)才能产生中断并接收该数据,其余从机因收到第九位数据RB8=0且本机SM2=1,所以将数据丢掉。这就实现了主机和从机的一对一通信。通信只能在主从机之间进行,如若在两个从机之间进行,必需通过主机作中介。

这就像我们身处喧嚣的闹市,却在渴望山清水秀的僻静之地。心若静,何处都是水云间,都是世外桃源,都是僻静之所,心若浮躁,不管你居所何处,都难宁静。 其实,很多人惧怕喧嚣,却又怕极了孤独,人实在是矛盾的载体。然而,人的最高境界,就是孤独。受得了孤独,忍得了寂寞,扛得住压力,才能成为生活的强者,才不会因为生活的暗礁而失去对美好事物的追求。

联系合同范文客服:xxxxx#qq.com(#替换为@)