预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基本概念 RS-232接口 MCS-51的串行接口 单片机与单片机之间的通信 单片机与PC机之间的通信什么是串行通信?串行通信的分类:异步(AsynchronousCommunication) 同步(SynchronousCommunication) MCS-51的串行接口MCS-51串行接口的结构MCS-51串行接口寄存器控制寄存器SCON只有该位有用,为1时,波特率×2;为0时不变。串行口的四种工作方式方式0方式0用于扩展I/O口输入方式1方式2方式3MCS-51串行口的波特率2.方式1和方式3的波特率可变,由定时器1的溢出率决定单片机之间的通信RS-422A双机异步通信接口电路双机通信软件编程参考发送子程序如下: MOV SCON,#80H;设置串行口为方式2 MOV PCON,#80H;SMOD=1 MOV DPTR,#1000H;设数据块指针 MOV R7,#20H;设数据块长度 START:MOVXA,@DPTR;取数据给A MOV C,P MOV TB8,C;奇偶位P送给TB8 MOV SBUF,A;数据送SBUF,启动发送 WAIT:JBCTI,CONT;判断一帧是否发送完。若送完,清TI,取下一个数据 AJMPWAIT;未完等待 CONT:INCDPTR;更新数据单元 DJNZR7,START;循环发送至结束 RET 2)乙机接收 编程使乙机接收甲机发送过来的数据块,并存入片内50H~6FH单元。接收过程要求判断RB8,若出错置F0标志为1,正确则置F0标志为0,然后返回。 在进行双机通信时,两机应采用相同的工作方式和波特率。 参考接收子程序如下: MOVSCON,#80H ;设置串行口为方式2 MOVPCON,#80H ;SMOD=1 MOVR0,#50H ;设置数据块指针 MOVR7,#20H ;设置数据块长度 SETBREN ;启动接收WAIT:JBCRI,READ;判断是否接收完一帧。若完,清RI,读入数据 AJMPWAIT;未完等待READ:MOVA,SBUF;读入一帧数据a JNBPSW.0,PZ;奇偶位为0则转 JNBRB8,ERR;P=1,RB8=0,则出错 SJMPRIGHT;二者全为1,则正确PZ:JBRB8,ERR;P=0,RB8=1,则出错RIGHT:MOV@R0,A ;正确,存放数据 INCR0 ;更新地址指针 DJNZR7,WAIT ;判断数据块是否接收完 CLRPSW.5 ;接收正确,且接收完清F0标志 RET ;返回ERR:SETBPSW.5 ;出错,置F0标志为1 RET ;返回