• 大小: 156KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: Zigbee  cc2530  组态王  

资源简介

代码中包含zigbee与组态王的通信协议,利用CC2530芯片开发

资源截图

代码片段和文件信息

#include “kingview.h“

char RecFlagRecOK; //串口接收和接收完成标志
char ConvFlagReadFlag; //DS2438转换和读取数据标志
uchar T2CountRecCountByteCount; //T2定时器计数、串口接收字节计数、组态王通信的读写字节数
uint DatAdd; //组态王读写单片机地址
uchar RecBuf[22]; //串口接收数据暂存
uchar TBUF[16]; //串口待发送数据暂存
uchar byte[10];
uint word[10];

uchar const ASCII[]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘};


/***********串口发送函数*********/
void DataSend(uchar outdata)
{
    U0DBUF = outdata;
    while(UTX0IF == 0);
    UTX0IF = 0;
}

/***********Ascii码转换16进制数***********/
uchar AsciiToHex(uchar *StartAdduchar n)
{
uchar id;
    for(i=0;i  {
d<<=4;
    if(StartAdd[i]>0x40) d=d+(StartAdd[i]-0x37);
    else d=d+(StartAdd[i]-0x30);
}
    return (d);
}

/**********校验接收到主机数据帧的CRC校验码********/
char ChackCRC(void)
{
uchar ixordatcrc;
crc=AsciiToHex(&RecBuf[RecCount-2]2);
for(i=0xordat=0;i xordat^=RecBuf[i];
RecCount=0;
if(crc==xordat) return 1;
else return 0;
}

/********主机读函数********/
void ReadData(void)
{ uchar icrc;

TBUF[0]=0x40;
TBUF[1]=RecBuf[0];
TBUF[2]=RecBuf[1];
TBUF[3]=RecBuf[8];
TBUF[4]=RecBuf[9];
for(i=ByteCount*2;i>0;i--)
{
 if(ByteCount>1)
 TBUF[ByteCount*2-i+5]=ASCII[(word[DatAdd-10]>>(i-1)*4)%16];
 else
 TBUF[ByteCount*2-i+5]=ASCII[(byte[DatAdd]>>(i-1)*4)%16];
}
for(i=1crc=0;i<=ByteCount*2+4;i++)
{  
 crc^=TBUF[i];
}
TBUF[ByteCount*2+5]=ASCII[crc/16];
TBUF[ByteCount*2+6]=ASCII[crc%16];
TBUF[ByteCount*2+7]=0x0d;

for(i=0;i DataSend(TBUF[i]);
}

/*******主机写函数********/
void WriteData(void)
{
uint idatcrc;
dat=AsciiToHex(&RecBuf[10]ByteCount*2);
if(ByteCount>1)
{
word[DatAdd-10]=dat;
}
else
{
byte[DatAdd]=dat;
}
TBUF[0]=0x40;
TBUF[1]=RecBuf[0];
TBUF[2]=RecBuf[1];
TBUF[3]=TBUF[4]=0x23;
crc=TBUF[1]^TBUF[2]^TBUF[3]^TBUF[4];
TBUF[5]=ASCII[crc/16];
TBUF[6]=ASCII[crc%16];
TBUF[7]=0x0d;
for(i=0;i<8;i++)
DataSend(TBUF[i]);
}

/******主机读写错误******/
void Error(void)
{
uchar icrc;
TBUF[0]=0x40;
TBUF[1]=RecBuf[0];
TBUF[2]=RecBuf[1];
TBUF[3]=TBUF[4]=0x2a;
crc=TBUF[1]^TBUF[2]^TBUF[3]^TBUF[4];
TBUF[5]=ASCII[crc/16];
TBUF[6]=ASCII[crc%16];
TBUF[7]=0x0d;
for(i=0;i<8;i++)
DataSend(TBUF[i]);
}


 /****************************************************************
串口接收一个字符:一旦有数据从串口传至CC2530则进入中断,将接收到的数据赋值给变量temp.
****************************************************************/
#pragma vector = URX0_VECTOR
 __interrupt void UART0_ISR(void)
 {
 
 uchar buf;
 //if(URX0IF)
  {
 buf=U0DBUF;
          //DataSend(buf);
 if(RecFlag)
  {if(buf==0x0d)
{
 RecOK=1;
 RecFlag=0;
}
 else
  {RecBuf[RecCount]=buf;
 RecCount++;
}
}
 if(buf==0x40) RecFlag=1;
     URX0IF=0; //清中断标志
     }                         
 }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      34257  2012-10-21 10:22  cc2530-组态王\Backup (2) of 串口收发数据.ewd

     文件      55653  2012-10-21 12:36  cc2530-组态王\Backup (2) of 串口收发数据.ewp

     文件      34257  2012-10-21 10:22  cc2530-组态王\Backup of 串口收发数据.ewd

     文件      55653  2012-10-21 12:36  cc2530-组态王\Backup of 串口收发数据.ewp

     文件      20244  2012-10-21 12:49  cc2530-组态王\Debug\Exe\串口收发数据.d51

     文件      80927  2012-08-20 13:17  cc2530-组态王\Debug\Exe\串口收发数据.hex

     文件     285767  2013-03-31 09:10  cc2530-组态王\Debug\Obj\kingview.pbi

     文件      12345  2013-03-31 09:10  cc2530-组态王\Debug\Obj\kingview.pbi.cout

     文件      48027  2012-10-21 12:49  cc2530-组态王\Debug\Obj\kingview.r51

     文件     325196  2013-03-31 09:10  cc2530-组态王\Debug\Obj\串口收发数据.pbd

     文件     325196  2013-03-31 09:10  cc2530-组态王\Debug\Obj\串口收发数据.pbd.browse

     文件     271461  2013-03-31 09:10  cc2530-组态王\Debug\Obj\串口收发数据.pbi

     文件      12349  2013-03-31 09:10  cc2530-组态王\Debug\Obj\串口收发数据.pbi.cout

     文件      21523  2012-10-21 12:49  cc2530-组态王\Debug\Obj\串口收发数据.r51

     文件       3068  2012-10-21 12:49  cc2530-组态王\kingview.c

     文件       1210  2012-10-21 12:36  cc2530-组态王\kingview.h

     文件       1743  2013-03-31 09:10  cc2530-组态王\settings\串口收发数据.cspy.bat

     文件       4053  2013-03-31 16:02  cc2530-组态王\settings\串口收发数据.dbgdt

     文件        893  2013-03-31 16:02  cc2530-组态王\settings\串口收发数据.dni

     文件       4100  2013-03-31 16:01  cc2530-组态王\settings\串口收发数据.wsdt

     文件        240  2013-03-31 09:12  cc2530-组态王\settings\串口收发数据_EncodingOverride.xml

     文件       4865  2012-10-21 12:51  cc2530-组态王\串口收发数据.c

     文件       3013  2012-11-25 12:43  cc2530-组态王\串口收发数据.dep

     文件      34257  2012-10-21 10:22  cc2530-组态王\串口收发数据.ewd

     文件      55653  2012-10-21 12:36  cc2530-组态王\串口收发数据.ewp

     文件        202  2012-10-21 09:37  cc2530-组态王\串口收发数据.eww

     文件         25  2013-03-31 16:02  cc2530-组态王\串口收发数据CustomSfr.sfr

     目录          0  2012-10-21 10:22  cc2530-组态王\Debug\Exe

     目录          0  2012-05-16 20:53  cc2530-组态王\Debug\List

     目录          0  2013-03-31 09:10  cc2530-组态王\Debug\Obj

............此处省略6个文件信息

评论

共有 条评论