单片机与单片机之间如何进行串行通信

单片机与单片机之间如何进行串行通信,第1张

1、将两个单片机的RXD与TXD相连\x0d\x0a2、根据需要传输的数据编写传输协议\x0d\x0a3、编写串行通信程序,将自己需要发送的数据按照协议进行发送\x0d\x0a4、编写接收程序,按照协议进行接收\x0d\x0a5、将两个程序分别写入两个单片机,运行。

发送:

#include

<reg52.h>

#include<intrins.h>

#include<string.h>

#define

uchar

unsigned

char

uchar

data

i,j,p,TEST

sbit

INTT0=P3^2

uchar

code

V_35[10]={'V','o','l','t','

','3','.','5',13,10}

void

Init()

void

Delay()

void

Volt_35()

void

main()

{

Init()

while(1)

{

if(TEST)

{

Volt_35()

TEST=0

}

}

}

void

Init()

{

P0=0XFF

//I/O口初始化

P1=0xFF

P2=0XFF

P3=0xFF

SCON=0x50

//设置成串口方式1

T2CON=0x34

TH2=0xff

//晶振11.0592MHZ,波特率9600

TL2=0xdc

RCAP2H=0XFF

RCAP2L=0XdC

EA=1

EX0=1

IT0=1

TEST=0

}

void

Delay()

{

for(i=0i<100i++)

for(j=0j<100j++)

}

void

Volt_35()

{

for(p=0p<10p++)

{

SBUF=V_35[p]

while(!TI)

TI=0

}

}

void

int0svr(void)

interrupt

0

using

1

{

Delay()

if(!INTT0)

{

while(!INTT0)

TEST=1

}

}

接收:

#include

<reg52.h>

#include<intrins.h>

#include<string.h>

#define

uchar

unsigned

char

uchar

data

i

void

Init()

void

main()

{

Init()

while(1)

{

for(i=0i<10i++)

{

while(!RI)

P1=SBUF

RI=0

}

}

}

void

Init()

{

P0=0XFF

P1=0xFF

P2=0XFF

P3=0xFF

SCON=0x50

T2CON=0x34

TH2=0xff

TL2=0xdc

RCAP2H=0XFF

RCAP2L=0XdC

}

ORG 0000H

AJMP MAIN上电,转向主程序

ORG 0023H串行口的中断入口地址

AJMP SERVE 转向中断服务程序

ORG 0040H主程序

MAIN: MOV SP,#60H 设置堆栈指针

MOV SCON ,#50H

MOV PCON ,#00H

MOV TMOD,#20H

MOV TH1,#0F3H

MOV TL1,#0F3H

SETB TR1

MOV R0 ,#20H 置发送数据区首地址

MOV R1 ,#40H ;置接收数据区首地址

MOV R7 ,#10H ;置发送字节长度

MOV R6 ,#10H ;置接收字节长度

SETB ES允许串行口中断

SETB EACPU允许中断

MOV A ,@R0 ;取第一个数据发送

MOV SBUF ,A发送第一个数据

SJMP $ ;等待中断

SERVE: JNB RI ,SEND TI=1,为发送中断

CLR RI

MOV A ,SBUF 读出接收缓冲区内容

MOV @R1 ,A读入接收缓冲区

DJNZ R6 ,L1 判断数据块发送完否

SJMP L2数据块接收完,转L2

L1:INC R1修改数据区指针

L2:RETI中断返回

SEND:

CLR TI清除发送中断标志

DJNZ R7 ,L3 判断数据块发送完否

SJMP L4数据块接收完,转L4

L3: MOV A ,@R0取数据发送

MOV SBUF ,A发送数据

INC R0修改数据地址

L4:

RETI中断返回

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7879351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存