当前位置:首页 > 单片机 > 单片机
[导读]有两台8031单片机相距很近,直接将它们的串行口相连,1#机的TXD接2#机的RXD,2#机的TXD接1#机的RXD,二机的GND相连。二机的晶振频率均为11.0592MHZ,通信的波特率为4800bps。现将第一台8031单片机片内RAM40H~5FH单元

有两台8031单片机相距很近,直接将它们的串行口相连,1#机的TXD接2#机的RXD,2#机的TXD接1#机的RXD,二机的GND相连。二机的晶振频率均为11.0592MHZ,通信的波特率为4800bps。现将第一台8031单片机片内RAM40H~5FH单元内的数据,串行发送到第二台8031单片机片内RAM60H~7FH单元中。


发送与接收的参考程序如下:1#单片机发送程序:

ORG 1000H

TX:MOVTMOD , #02H


MOVTH1 , #0FAH

MOVTL1 , #0FAH


MOVSCON , #80H;


设定工作方式2

MOVPCON, #00H;

波特率为fosc/64

SETBTR0


MOVR0 , #40H;设发送数据的地址指针


MOVR2 , #20H;设发送数据长度

LOOP:MOVA , @R0;取发送数据送A

MOVC , PSW.0


MOVTB8 , C;奇偶位送TB8

MOVSBUF , A;启动发送


WAIT:JBCTI , LL1;判发送中断标志

SJMPWAIT


LL1:INCR0

DJNZR2 ,LOOP


RET


2#单片机接收程序:


ORG 1000H


RX:MOVTMOD , #02H

MOVTH1 , #0FAH


MOVTL1 , #0FAH


MOVSCON , #90H;设定工作方式2,并允许接收


MOVPCON , #00H

SETBTR0


MOVR0 , #60H

MOVR2 , #20H

LOOP:JBCRI , MM1;等待接收数据

SJMPLOOP

MM1:MOVA , SBUF;读入一帧数据

JBPSW.0 , PP1;判接收端奇偶

JBRB8 , ERROR;判发送端奇偶


SJMPRIGHT


PP1:JNBRB8 , ERROR;接收出错

RIGHT:MOV@R0 , A;接收正确

INCR0


DJNZR2 ,LOOP


ERROR:SETBPSW.5;置出错标志

RET


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭