步骤: 1、连接两台单片机开发板的串行通信线,注意共地连接 2、设定A机为发送方 3、设定B机为接收方 4、设定双方接收与发送波特率 5、各自编制收发程序 6、发送数据调试 录入程序: #include /*命令定义*/ #define TurnOn 1 #define TurnOff 2 /*应答定义*/ #define On 3 #define Off 4 #define Error 4 /////////////////显示 sbit k1=P1^3;/*第1位数码管共阴端*/ sbit k2=P1^2;/*第2位数码管共阴端*/ sbit k3=P1^1;/*第3位数码管共阴端*/ sbit k4=P1^0;/*第4位数码管共阴端*/ unsigned char rd=0;//串口数据接收暂存变量 void RxdInterrupt()interrupt 4 using 2//串口中断函数 { rd=SBUF;//接收数据存储到变量rd if(rd==TurnOn)//是亮灯命令 { P0=255;//LED亮 SBUF=On;//应答On while(TI==0);TI=0; //等待发送完毕 } else if(rd==TurnOff)//是关灯命令 { P0=0;//LED灭 SBUF=Off;//应答Off while(TI==0);TI=0; //等待发送完毕 } else { SBUF=Error;//应答Off while(TI==0);TI=0; //等待发送完毕 } RI=0; } void InitEs()//串口初始化函数 { TMOD=0x21; TH1=0xF3;//波速率设置为2400 TR1=1; SCON=0XD0; ES=1;//串口中断允许 } main() { InitEs();//串口初始化 EA=1; k1=k2=k3=k4=0;//关闭数码管 P0=0;//LED灭 while(1) { } }
实验结果:主机对从机发送控制命令,当主机发送turn on 时,从机如果接收正确,则向主机发送on用于应答,并使LED灯亮(从机任选1LED灯来控制),当主机发关turn off 时,从机如果接收正确,则使LED 灯灭。如果不是这两个命令,则从机向主机发送error作为应答。 由科通芯城(www.cogobuy.com)中国首个电子元器件网自营电商 |