专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

实验三 单片机双机通讯试验

作者:佚名   来源:本站原创   点击数:  更新时间:2010年06月24日   【字体:

实验时间:2010.05.18

实验名称:双机通讯
 
实验目的:熟悉单片机串行口工作原理;掌握通信程序设计的一般方法
 
实验要求:按照实验安排准时参加实验,按照实验步骤操作,仔细观察及记录实验过程及结果,回答实验相关问题,最终根据实验结果撰写实验指导书。
 
实验内容:编写一个双机通信程序,一个作为主机,一个作为从机,主机对从机发送控制命令,当主机发送turn on 时,从机如果接收正确,则向主机发送on用于应答,并使LED灯亮(从机任选1LED灯来控制),当主机发关turn off 时,从机如果接收正确,则使LED 灯灭。如果不是这两个命令,则从机向主机发送error作为应答。
 
实验步骤:
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)
    {
     }
} 

程序参考及鸣谢:我在网上认识了一个网名为苏工的网友,我不知道他真名,但是人很好,我把问题咨询过他了。虽然对单片机用c程序编程,我很生疏,因为以往我的菜鸟级编程都是汇编语言,但是,他给我解释C程序很详细,我略有小知,很感谢苏工,所以在这个实验报告引用了他的脑力劳动成果,并且在这里谢谢苏工对我的指教。同样感谢单片机鲜浩老师,对我单片机课程细致的传授,使我产生浓厚兴趣的同时真真切切的感受到学习单片机的快乐和运用智慧操纵机器的兴奋。不知道以往实验报告的学生有没有我这一则小叙,但是对别人劳动成功的肯定,我认为是我们对待知识的尊重。参考网址:http://www.51hei.com/mcu/791.html 
 
实验结果:主机对从机发送控制命令,当主机发送turn on 时,从机如果接收正确,则向主机发送on用于应答,并使LED灯亮(从机任选1LED灯来控制),当主机发关turn off 时,从机如果接收正确,则使LED 灯灭。如果不是这两个命令,则从机向主机发送error作为应答。
关闭窗口

相关文章