中易网

C语言单片机与485通讯协议

答案:1  悬赏:30  
解决时间 2021-10-18 13:51
  • 提问者网友:暮烟疏雨之际
  • 2021-10-18 00:43
C语言单片机与485通讯协议
最佳答案
  • 二级知识专家网友:野味小生
  • 2021-10-18 00:50


#include <reg51.h>
#include <intrins.h>

char temp;
bit flag;
sbit uart_rd=P3^2;

void ser() interrupt 4
{
RI=0;
temp=SBUF;
flag=1;
}

void serinit()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd; //设置波特率9600
SM0=0;
SM1=1;
REN=1;
TR1=1;
ES=1;
EA=1;
}

void main()
{
serinit();
uart_rd=0;
while(1)
{
if(flag==1) // 判断是否完成接收
{
uart_rd=1;
flag=0;
ES=0; // 串口中断关闭
SBUF=temp; // 将原先发送的值给缓存器(接发都是同一个,但意义不一样)
while(!TI); //判断是否发送完成
TI=0; // 是则硬件清0
ES=1; // 再次打开串口中断
uart_rd=0;
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息