51单片机实现双机通信(自己整理的)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

左边1号机,右边2号机,,功能实现

1号机程序

#include

#define uint unsigned int

#define uchar unsigned char

sbit p10=P1^0;

uchar a,b,kk;

//uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(uchar y)

{

uchar i;

while(y--)

for(i=0;i<120;i++)

;

}

void put(uchar x) //发送函数

{

SBUF=x; //SBUF:串行口数据缓冲器

while(TI==0); //等待发送结束

TI=0;

}

void main()

{

uchar j;

SCON=0x40; //串行口工作方式1,8位通用异步发送器

TMOD=0x20; //定时器1工作方式2 PCON=0x00; //波特率不倍增

TH1=0xf4;

TL1=0xf4; //波特率2400

TR1=1; //定时器1开始计时

P2=0xc0;

while(1)

{

if(p10==0&&j==0)

{

delay_ms(15);

while(p10==0);

kk=1;

P2=0xf9;

j=1;

}

if(p10==0&&j==1)

{

delay_ms(15);

while(p10==0);

kk=2;

P2=0xa4;

j=2;

}

if(p10==0&&j==2)

{

delay_ms(15);

while(p10==0);

kk=3;

P2=0xb0;

j=0;

}

if(kk==1)

put('A');

if(kk==2)

put('B');

if(kk==3)

put('C');

delay_ms(10);

}

}

/*

********************************************************************** if(p10==0&&j==0)

{

delay_ms(15);

while(p10==0);

kk=0;

P2=~0xf9;

j=1;

}

if(p10==0&&j==1)

{

delay_ms(15);

while(p10==0);

kk=1;

P2=~0xa4;

j=2;

}

if(p10==0&&j==2)

{

delay_ms(15);

while(p10==0);

kk=2;

P2=~0xc0;

j=0;

}

if(kk==0)

put('A');

if(kk==1)

put('B');

if(kk==2)

put('C');

delay_ms(100);

*********************************************************** if(p10==0)

{

delay_ms(15);

while(p10==0);

number=(number+1)%4;

}

switch(oper)

{

case 0:break;

case 1:put('A');P2=~0xf9;break;

case 2:put('B');P2=~0xa4;break;

case 3:put('C');P2=~0xc0;break;

}

delay_ms(10);

******************************************************************** if(p10==0)

{

delay_ms(15);

while(p10==0);

j=(j+1)%3;

}

switch(j)

{

case 0:put('A');P2=~0xf9;break;

case 1:put('B');P2=~0xa4;break;

case 2:put('C');P2=~0xc0;break;

}

delay_ms(10);

*/

2号机程序。

#include

#define uint unsigned int

#define uchar unsigned char

sbit L1=P2^0;

sbit L2=P2^1;

//uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay_ms(int x)

{

uchar i;

while(x--)

for(i=0;i<120;i++)

;

}

相关文档
最新文档