<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于CC1101與STC89C52無線收發(fā)程序(發(fā)射程序)

          基于CC1101與STC89C52無線收發(fā)程序(發(fā)射程序)

          作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
          好像用CC1101的朋友好少,在此也貼上CC1101收發(fā)程序吧!這樣會減少大家大量時間去調(diào)試。不多說了直接上程序了:

          #include
          #include

          #define IOCFG2 0x00
          #define IOCFG10x01
          #define IOCFG00x02
          #define FIFOTHR0x03//rx和tx FIFO門限
          #define SYNC10x04//同步詞匯,高字節(jié)
          #define SYNC00x05//同步詞匯,低字節(jié)
          #define PKTLEN0x06//數(shù)據(jù)包長度
          #define PKTCTRL10x07//數(shù)據(jù)包自動控制
          #define PKTCTRL00x08//數(shù)據(jù)包自動控制
          #define ADDR0x09//設(shè)備地址
          #define CHANNR0x0a//信道數(shù)
          #define FSCTRL10x0b//頻率合成控制器
          #define FSCTRL00x0c//頻率控制詞匯,高字節(jié)
          #define FREQ20x0d//頻率控制詞匯,中間字節(jié)
          #define FREQ10x0e//頻率控制詞匯,低字節(jié)
          #define FREQ00x0f//調(diào)置器配置
          #define MDMCFG40x10//調(diào)置器配置
          #define MDMCFG30x11//調(diào)置器配置
          #define MDMCFG20x12//調(diào)置器配置
          #define MDMCFG10x13//調(diào)置器配置
          #define MDMCFG00x14//調(diào)置器配置
          #define DEVIATN0x15//主通信控制狀態(tài)機配置
          #define MCSM20x16//主通信控制狀態(tài)機配置
          #define MCSM10x17//主通信控制狀態(tài)機配置
          #define MCSM00x18//頻率偏移補償配置
          #define FOCCFG0x19//位同步配置
          #define BSCFG0x1a//AGC控制
          #define AGCCTRL20x1b//AGC控制
          #define AGCCTRL10x1c//AGC控制
          #define AGCCTRL00x1d//高字節(jié)時間0暫停
          #define WOREVT10x1e//低字節(jié)時間0暫停
          #define WOREVT00x1f//電磁波激活控制
          #define WORCTRL0x20//前末端RX配置
          #define FREND10x21//前末端TX配置
          #define FREND00x22//頻率合成器校準(zhǔn)
          #define FSCAL30x23//頻率合成器校準(zhǔn)
          #define FSCAL20x24//頻率合成器校準(zhǔn)
          #define FSCAL10x25//頻率合成器校準(zhǔn)
          #define FSCAL00x26//RC振蕩器配置
          #define RCCTRL10x27//RC振蕩器配置
          #define RCCTRL00x28//頻率合成器校準(zhǔn)控制
          #define FSTEST0x29//產(chǎn)品測試
          #define PTEST0x2a//AGC測試
          #define AGCTEST0x2b//不同的測試設(shè)置
          #define TEST20x2c//不同的測試設(shè)置
          #define TEST10x2d//不同的測試設(shè)置
          #define TEST00x2e//

          #define SRES0x30//重啟芯片
          #defineSFSTXON0x31//開啟和校準(zhǔn)頻率合成器
          #define SXOFF0x32//關(guān)閉晶體振蕩器
          #define SCAL0x33//校準(zhǔn)頻率合成器并判斷
          #define SRX0x34//啟用SRX
          #define STX0x35//空閑狀態(tài):啟用STX
          #define SIDLE0x36//離開RX/TX,關(guān)斷頻率合成器
          #define SAFC0x37//頻率合成器AFC調(diào)節(jié)
          #define SWOR0x38//自動RX選舉序列(電磁波激活)
          #define SPWD0x39//當(dāng)CSN為高時進入功率降低模式
          #define SFRX0x3a//沖洗RX FIFO緩存
          #define SFTX0x3b//沖洗TX FIFO緩存
          #define SWORRST0x3c//重新設(shè)置真實時間時鐘
          #define SNOP0x3d//無操作

          #define PARTNUM0x30//CC2550組成部分數(shù)目
          #define VERSION0x31//當(dāng)前版本數(shù)
          #define FREQEST0x32//頻率偏移估計
          #define LQI0x33//連接質(zhì)量的解調(diào)器估計
          #define RSSI0x34//接收信號強度指示
          #define MARCSTATE0x35//控制狀態(tài)機狀態(tài)
          #define WORTIME10x36//WOR計時器高字節(jié)
          #define WORTIME00x37//WOR計時器低字節(jié)
          #define PKTSTATUS0x38//當(dāng)前GDOx狀態(tài)和數(shù)據(jù)包狀態(tài)
          #define VCO_VC_DAC0x39//PLL校準(zhǔn)模塊的當(dāng)前設(shè)定
          #define TXBYTES0x3a//TX FIFO中的下溢和比特數(shù)
          #define RXBYTES0x3b//RX FIFO中的下溢和比特數(shù)
          #define PATABLE0x3e
          #define TX_FIFO0x3f
          #define RX_FIFO0x3f
          #define data_len8

          本文引用地址:http://www.ex-cimer.com/article/201611/322552.htm

          typedefunsigned int uint;
          typedefunsigned char uchar;

          uchar rx_buffer[data_len]={0,0,0,0,0,0,0,0};//rx data
          //uchar RX_data[data_len];
          uchar code tx_buffer[data_len]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//tx data
          uchar data_length=0;
          uchar code P_Config[]={0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0};//功率配置

          sbit CSN=P2^1;
          sbit SCLK=P2^7;
          sbit SI=P2^2;
          sbit SO=P2^0;
          sbit GDO0=P2^6;

          sbit key=P2^5;

          sbit LED=P0^0;
          //sbit LED1=P0^6;

          void CC1101_Init(void);
          void CC1101_RESET(void);
          void POWER_UP_RESET(void);
          uchar SPI_WR_Byte(uchar value);
          void SPI_Write_Byte(uchar addr,uchar value);
          uchar SPI_Read_Byte(uchar addr);
          void SPI_Write_Strobe(uchar strobe);
          void SPI_Write_Burst(uchar addr,uchar *buffer,uchar count);
          void SPI_Read_Burst(uchar addr,uchar *buffer,uchar count);
          void SPI_Write_Packet(uchar *TX_Buffer,uchar size);
          uchar SPI_Read_Packet(uchar *RX_Buffer,uchar length);
          void CC1101_Set_TX(void);
          void CC1101_Set_RX(void);
          void Write_Config(void);

          void delay_ms(uint x)
          {
          uint i;
          while(x--)for(i=0;i<120;i++);
          }

          void delay_us(uint x)
          {
          do {
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          } while (--x);
          }
          //------------------------------------------------/
          //函數(shù)功能:通過SPI寫讀一字節(jié)/
          //輸入?yún)?shù):value/
          //輸出參數(shù):B_value/
          //-----------------------------------------------/
          uchar SPI_WR_Byte(uchar value)
          {
          uchar i,B_value=0;
          SCLK=0;
          for(i=0;i<8;i++)
          {
          if(value&0x80)
          SI=1;
          else
          SI=0;
          value<<=1;
          SCLK=1;
          _nop_();_nop_();
          B_value<<=1;
          if(SO)
          B_value|=0x01;
          SCLK=0;
          _nop_();_nop_();
          }
          return B_value;
          }
          //-------------------------------------------------/
          //函數(shù)功能:重置CC1101/
          //輸入?yún)?shù):無/
          //輸出參數(shù):無/
          //----------------------------------------------/
          void CC1101_RESET(void)
          {
          SPI_Write_Strobe(SIDLE);
          CSN=0;
          while(SO);
          SPI_WR_Byte(SRES);
          while(SO);
          CSN=1;
          }
          //-----------------------------------------------/
          //函數(shù)功能:CC1101上電重置/
          //輸入?yún)?shù):無/
          //輸出參數(shù):無/
          //--------------------------------------------/
          void POWER_UP_RESET(void)
          {

          CSN=1;
          delay_us(1);
          CSN=0;
          delay_us(1);
          CSN=1;
          delay_us(41);
          CC1101_RESET();
          }


          上一頁 1 2 下一頁

          關(guān)鍵詞: CC1101STC89C52無線收

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();