两台8031单片机通过串行口进行数据交换程序
有两台8031单片机相距很近,直接将它们的串行口相连,1#机的TXD接2#机的RXD,2#机的TXD接1#机的RXD,二机的GND相连 。二机的晶振频率均为11.0592MHZ,通信的波特率为4800bps 。现将第一台8031单片机片内RAM40H~5FH单元内的数据,串行发送到第二台8031单片机片内RAM60H~7FH单元中 。
发送与接收的参考程序如下:1#单片机发送程序:
ORG 1000H
【两台8031单片机通过串行口进行数据交换程序】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
推荐阅读
- ucos ii的51单片机移植
- stc51单片机pwm程序stc12c5608ad
- AVR单片机—_三、ATMEGA16驱动16*2点阵字符液晶模块—01
- 单片机应用系统的结构与工作过程
- 介绍无功补偿单片机的控制过程
- SAM4E单片机之旅——9、UART与MCK之MAINCK
- 关于51单片机的P0口上拉电阻取值问题
- 单片机4x4矩阵键盘扫描程序
- STC12C5A60S2单片机A/D转换器C语言软件的编写
- 51单片机学习之路 —— 1.6 单片机的中断_2