标题: 单片机无线串口通信例程 [打印本页]

作者: 邹泽兰    时间: 2017-12-8 09:51
标题: 单片机无线串口通信例程
  1. #include <at89x52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit K1 = P3^2;//设置P3.2口为按键端口
  5. sbit LED = P2^7;//设置P2.7口为按键端口

  6. uchar Error;          //验证标志

  7. uchar code table[] = "Ebyte";              //发送数组
  8. uchar table1[] = "01234";                 //接受数组


  9. void delay (uint time)
  10. {
  11.         uint i;
  12.         uint j;
  13.         for (i=0; i<time; i++)
  14.                 for (j=0; j<110; j++);
  15. }

  16. void inital (void)
  17. {
  18.         LED = 1;//默认熄灭
  19.         SM0 = 0;
  20.         SM1 = 1;//工作方式1
  21.         //SMOD = 0;//波特率不加倍(默认)
  22.         REN = 1;//允许接受
  23.         TMOD = 0X20;//T1工作于方式2:自动重装初值
  24.         TH1 = 0XFD;
  25.         TL1 = 0XFD;        //此初值波特率为:9600bps
  26.         TR1 = 1;        //定时器是用来作为波特率的发生器
  27. //        EA = 1;
  28. //        ES = 1;        
  29. }

  30. void Check_Data (void)//验证错误
  31. {
  32.         uchar i;
  33.         
  34.         for (i=0;i<6;i++)
  35.         {
  36.                 if(table1[i]==table[i])
  37.                         Error = 0;
  38.                 else
  39.                 {
  40.                         Error = 1;
  41.                         break;        
  42.                 }
  43.         }        
  44. }

  45. void Send_and_Sin_Data (void)
  46. {
  47.         uchar i;
  48.         for (i=0;i<6;i++)
  49.         {
  50.                 SBUF = table[i];
  51.                 while (TI == 0);//等待发送结束
  52.                 TI = 0;
  53.                 while (RI == 0);//发送和接受同步进行,发送结束后,等待接受结束
  54.                 RI = 0;
  55.                 table1[i] = SBUF;//接受端
  56.         }
  57. }

  58. void main ()
  59. {
  60.         uchar i;
  61.         inital ();
  62.         while (1)
  63.         {
  64.                 for (i=0;i<6;i++)
  65.                         table1[i] = i;//数组清空
  66.         
  67.                 if(K1 == 0)
  68.                 {
  69.                         delay (10);
  70.                         if(K1 == 0)
  71.                         {
  72.                                 Send_and_Sin_Data ();//发送并接受数据
  73.                                 Check_Data ();//验证接受的数据
  74.                                 if (Error == 0)//判断接受的正确性
  75.                                 {
  76.                                         LED = 0;                //亮
  77.                                         delay (50);
  78.                                         LED = 1;                //灭
  79.                                 }
  80.                         }
  81.                 }
  82.         }
  83. }
复制代码

作者: 宫商角徵羽smile    时间: 2018-5-2 10:43
楼主,求仿真




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1