找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2762|回复: 3
打印 上一主题 下一主题
收起左侧

zigbee串口发收单片机源码

[复制链接]
跳转到指定楼层
楼主
zigbee串口发收


单片机源程序如下:
  1. /************发送数据格式:命令+数据长度+ID+传感器数据+校验*****************/
  2. #include <reg52.h>
  3. #include "uart.h"                                // 串行通信函数头文件                          

  4. #define errorState 0x01//异常命令
  5. #define open_LED   0x02//开灯命令
  6. #define close_LED  0x03//关灯命令


  7. sbit key1=P2^0;
  8. sbit key2=P2^1;
  9. sbit key3=P2^7;

  10. typedef struct zigbee  //整个数据结构为14字节
  11. {
  12.         uint8_t Order;//命令类型
  13.         uint8_t ValidDataLen;//有效数据长度
  14.         uint8_t wdata[10];//数据
  15.         uint8_t crc;//校验和
  16. }zigbeeCmd_t;

  17. zigbeeCmd_t zigbeeCmd;

  18. /*
  19. 函数用途:数据发送函数
  20. 输入数据:
  21. 输出数据:0 成功 1失败
  22. */
  23. uint8_t zigbeeSendCmd(void)
  24. {
  25.         uint8_t i,ax=8,ay=9;
  26.        
  27.   zigbeeCmd.Order = errorState;
  28.         zigbeeCmd.ValidDataLen = 2;
  29.         zigbeeCmd.wdata[0] = ax;
  30.         zigbeeCmd.wdata[1] = ay;
  31.   
  32.   //打包命令头
  33.         U1SendData(zigbeeCmd.Order);//1
  34.         U1SendData(zigbeeCmd.ValidDataLen);//2
  35.        
  36.         //打包有效数据
  37.   zigbeeCmd.crc = 0;
  38.         for(i=0;i<10;i++)
  39.         {
  40.                 U1SendData(zigbeeCmd.wdata[i]);//8,9,0,0,0,0,0,0,0,0
  41.                 zigbeeCmd.crc += zigbeeCmd.wdata[i];
  42.         }
  43.         //CRC校验
  44.         U1SendData(zigbeeCmd.crc);//11

  45.         return 0;
  46. }
  47. uint8_t OPEN_LED(void)
  48. {
  49.   uint8_t i,ax=8,ay=9;
  50.   zigbeeCmd.Order = open_LED;
  51.   zigbeeCmd.ValidDataLen = 2;
  52.         zigbeeCmd.wdata[0] = 1;
  53.         zigbeeCmd.wdata[1] = 2;
  54.   
  55.   //打包命令头
  56.         U1SendData(zigbeeCmd.Order);//2
  57.         U1SendData(zigbeeCmd.ValidDataLen);//2
  58.        
  59.         //打包有效数据
  60.   zigbeeCmd.crc = 0;
  61.         for(i=0;i<10;i++)
  62.         {
  63.                 U1SendData(zigbeeCmd.wdata[i]);//1,2,0,0,0,0,0,0,0,0
  64.                 zigbeeCmd.crc += zigbeeCmd.wdata[i];
  65.         }
  66.         //CRC校验
  67.         U1SendData(zigbeeCmd.crc);//0

  68.         return 0;
  69. }
  70. uint8_t CLOSE_LED(void)
  71. {
  72.   uint8_t i;
  73.   zigbeeCmd.Order = close_LED;
  74.   zigbeeCmd.ValidDataLen = 2;
  75.         zigbeeCmd.wdata[0] = 3;
  76.         zigbeeCmd.wdata[1] = 4;
  77.   
  78.   //打包命令头
  79.         U1SendData(zigbeeCmd.Order);//1
  80.         U1SendData(zigbeeCmd.ValidDataLen);//2
  81.        
  82.         //打包有效数据
  83.   zigbeeCmd.crc = 0;
  84.         for(i=0;i<10;i++)
  85.         {
  86.                 U1SendData(zigbeeCmd.wdata[i]);//3,4,0,0,0,0,0,0,0,0
  87.                 zigbeeCmd.crc += zigbeeCmd.wdata[i];
  88.         }
  89.         //CRC校验
  90.         U1SendData(zigbeeCmd.crc);//
  91.   return 0;
  92. }

  93. void main()                                                  // 主函数     
  94. {       
  95.   UartInit();
  96.         while(1)
  97.         {
  98.     if(key1==0)
  99.     {
  100.       DelayMS(5);
  101.       if(key1==0)
  102.       {
  103.         while(!key1);
  104.         zigbeeSendCmd();
  105.       }
  106.     }
  107.     if(key2==0)
  108.     {
  109.       DelayMS(5);
  110.       if(key2==0)
  111. ……………………

  112. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
zigbee串口发收.rar (92.54 KB, 下载次数: 59)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:361297 发表于 2019-3-31 17:56 | 只看该作者
兄弟  是不是还有几个头文件没有发出来
回复

使用道具 举报

板凳
ID:377872 发表于 2019-9-27 22:22 | 只看该作者
为什么没反应呢?
回复

使用道具 举报

地板
ID:140706 发表于 2019-12-25 18:40 | 只看该作者
谢谢分享,很好的资源,好好学习中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表