⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 13.1.6单片机多机通信.txt

📁 里面有好多的原码,大家都来下载.用asm编写的
💻 TXT
字号:
#include<reg51.h>
#define 	uchar unsigned char
#define 	SLAVE 	0x02				
#define 	NUMB 	16
uchar idata rbuffer[16]
uchar idata tbuffer[16]={“master transmit”}
void error(void)
{
SBUF=0xff;
while(TI!=1);
TI=0;
}
uchar master(uchar address,uchar cmd)
{
uchar status,I,count;
while(1)
{
SBUF=SLAVE;						
while(TI!=1);
TI=0;
while(RI!=1);
RI=0;
if(SBUF!=address)					
error();							
else
{
TB8=0;						
SBUF=cmd;						
while(TI!=1);						
TI=0;
while(RI!=1);
RI=0;
status-SBUE;						
if((status&0x08)==0x08)
{
TB8=1;
error();							
}
else
{
if(cornmand==0x01)					
{
if((status&0x01)==0x01)				
{
do
{
count=0;							
for(i=0;i<NUMB;i++)
{
SBUF=tbuffer[i];					
count+= tbuffer[i];
while(TI!=1);
TI=0;
SBUF=count;						
while(TI==0);
TI=0;
while(RI==0);
R1=0;
}
while(SBUF!=0);				
TB8=1;							
return(0);
}
}
else
{
if((status&0x02)==0x02)				
while(1)
{
count=0;						
for(i=0;i<NUMB;i++)
{
while(RI!=1);
RI=0;
Rbuffer[i]=SBUF;				
count+=rbuffer[i];
while(RI==0);
RI=0;
If(SBUF==COUNT)
{
SBUF=0x00;					
while(TI==0);
TI=0;
break;
}
else
{
SBUF=0xff;						
while(TI==0);
TI=0;
}
}
TB8=1;						
return(0);
}
}
}
}
void main(void)
{
TMOD=0x20;						
TL1=0xfd;THl=0xfd;					
PCON=0x00;
TR1=1;
{SCON=0xf0;					
master(SLAVE,0x01);
master(SLAVE,0x02);
}
#include<reg51.h>				
#define 	uchar unsigned char
#define 	SLAVE 	0x02
#ddfine 	NUMB	16
uchar idata		trbuffer[16];
uchar idata 	rebuffer[16];
bit	tok;
bit 	rok;
void main(void)
{
TMOD=0x20;				 	
TL1=0xfd;						
TH1=0xfd;
PCON=0x00;
TR1=1;
SCON=0xf0;					
ES=1; 							
EA=1;
while(1)
{
tok=1;							
rok=1;
}
}
void SSIO(void)						
{
void send(void);
void receive(void);
uchar a,i;
RI=0;
ES=0;							
if(SBUF!=SLAVE)
{
ES=1;							
goto reback;
}
SM2=0;							
SBUF=SLAVE;						
while(TI!=1);
TI=0;
while(RI!=1);
RI=0;
if(RB8==1)
{
SM2=1;							
ES=1;
goto reback;
}
a=SBUF;							
if(a= 0x01)							
{
if(rok==1)
SBUF=0x01;						
else
SBUF=0x00;
while(TI!=1);
TI=0;								
while(RI!=1);
RI=0;							
if(RB8==1)
{
SM2=1;
ES=1;
goto reback;
}
receive();						
}
else
{
if(a=0x02)							
{
if(tok==1)							
SBUF=0x02;
else
SBUF=0x00;
while(TI=1);
TI=0;							
while(RI!=1);
RI=0;							
if(RB8==1)
{
SM2=1;
ES=1;
goto reback;
}
send();							
}
else
{
SBUF=0x8;						
while(TI!=1);
TI=0;
SM2=1;
ES=1;							
}
)
reback;
}
void send (void)						
(
uchar sum,i;
tok=0;
do
{
sum=0;							
for(i=0;i<NUMB;i++)
{
SBUF=trbuffer[i];				
Sum+=trbuffer[i;
while(TI!=1);
TI=0;
}
SBUF=sum;						
while(TI==0);
TI=0;
while(RI==0);
RI=0;
}
while(SBUF!=0);					
SM2=1;
ES=1;
}
void receive(void)				
{
uchar sum,i;
rok=0;
while(1)
{
sum=0;						
for(i=0;i<NUMB;i++)
{
while(RI!=1);
RI=0;
rebuffer[i]=SBUF;					
sum+=rebuffer[i];
}
while(RI!=1);
RI=0;
if(SBUF==sum)
{
SBUF=0x00;						
break;
}
else
SBUF=0xff;						
while(TI==O);
TI=0;
}
SM2=1;
ES=1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -