200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > c语言485通讯源程序 51单片机485通信实验C语言源代码实现

c语言485通讯源程序 51单片机485通信实验C语言源代码实现

时间:2024-05-13 20:24:24

相关推荐

c语言485通讯源程序 51单片机485通信实验C语言源代码实现

#include

#include

sbit RS485=P3^7; //定义485的使能脚

bit SendFlag;

unsigned int ReData,SenData;

/**************************************

延时程序

**************************************/

void delay(unsigned char i)

{

unsigned char j;

for(i; i > 0; i--)

for(j = 200; j > 0; j--);

}

void main (void) {

SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1

TMOD|= 0x20; //定时器工作方式2

PCON|= 0x80;

TH1= 0xFd;

TL1 = 0xF3;

TR1= 1;

ES = 1; //开串口中断

EA = 1; // 开总中断

// IE = 0x0;

while(1)

{

if (SendFlag==1) // max485(半双工通信) RE/DE定义 RE=0为接受状态DE=1为发送状态(参考MAX485芯片管脚)

{ RS485=1; //RS5485E=0为接收状态RS5485E=1为发送状态

SBUF=SenData; //发送数据

delay(50);

}

else

{

RS485=0; //接收状态

}

}

}

/****************************************************

串口中断服务程序

******************************************************/

void ser_int (void) interrupt 4 using 1

{

if(TI == 1)

{

TI = 0;

SendFlag = 0;

}

if(RI == 1) //RI接受中断标志

{

RI = 0; //清除RI接受中断标志

ReData = SBUF;//SUBF接受/发送缓冲器

SenData=ReData;

SendFlag = 1;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。