📄 master.c
字号:
#include<reg51.h>
#define uchar unsigned char
sbit tr=P1^7 ; //1发0收
//发送子程序
uchar SendMsg(uchar msg,uchar IDnum)
//msg:发送缓冲区指针;len:要发送的数据长度;IDnum:从机号
{uchar i=0;
TB8=1;
tr=1;
SBUF=0xff; //复位从机
while(TI==0);
TI=0;
SBUF=IDnum; //呼叫从机
while(TI==0);
TI=0;
tr=0;
while(RI==0); //等待从机回应 RI=0; //清除串行口中断标志
RI=0;
//下面是数据帧
i=SBUF;
if(i== IDnum)
{TB8=0;
tr=1;
SBUF=msg;
while(TI==0);
TI=0;
tr=0;
while(RI==0);RI=0;
i=SBUF;
return i;
}
}
uchar send(uchar msg,uchar IDnum)
{ uchar i=0;
//初始化
PCON=0; //SMODE=0
TMOD=0x20; //定时器1设为模式2,作为串行口的波特率发生器
EA=0; //禁止定时器中断
TH1=0xfd;
TL1=0xfd; //定时起始值,12MHz晶振时波特率为9600bps
SCON=0xd8; //串行口模式3,TB8=1发送地址呼叫
TR1=1; //启动定时器1
i=SendMsg( msg,IDnum);
return i;
}
main()
{uchar i=0;
while(1)
{
while(i!=1) i=send(10,1);
i=0;
while(i!=1) i=send(30,1);
i=0;
while(i!=1) i=send(50,1);
i=0;
while(i!=1) i=send(70,1);
i=0;
while(i!=1) i=send(100,1);
i=0;
while(i!=1) i=send(70,1);
i=0;
while(i!=1) i=send(20,1);
i=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -