/****************************************************************************************************************
*************************
*Author:JYW
*Time:2019_02_24
*Describe:LetAllLinesOfCodeSpeak
*****************************************************/
/**************************
*多机通信主机程序
***********************/
#include<reg51.h>
#define uchar unsigned char
#define NODE1_ADDR 1
#define NODE2_ADDR 2//1 子机地址
// 2 子机地址
uchar KeyValue = 0;
uchar code str[] = "0123456789ABCDEF";
uchar pointer_1 = 0,pointer_2 = 0;
void delay(uchar time)
{
uchar i,j;
for(i= 0;i<130;i++)
for(j = 0;j<time;j++);
}
void proc_key(uchar node_number)
{
delay(200);
SCON = 0xc0;//1100 0000
TMOD = 0x20;
TH1 = TL1 = 0xfd;
TR1 = 1;
TB8 = 1;//发送地址帧
SBUF = node_number;
while(TI == 0);
TI = 0;
TB8 = 0;
switch(node_number)
{
case 1:
{
SBUF = str[pointer_1++];
if(pointer_1 >= 16) pointer_1 = 0;
break;
}
case 2:
{
SBUF = str[pointer_2++];
if(pointer_2 >= 16) pointer_2 = 0;
break;
}
default:break;
while(TI == 0);
TI = 0;
}
}
void main()
{
while(1)
{
P1 = 0xFF;
while(P1 == 0xFF);
switch(P1)
{
case 0xFE: proc_key(NODE1_ADDR); break;
case 0xEF: proc_key(NODE2_ADDR); break;
}
}
}