亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c1000txman.c

?? 在典型系統應用中CC1000要與微控器相連該微控器必須能夠 通過三串行配置口PDATAPCLK和PALE控制CC1000改變不同模式
?? C
字號:



#include<reg51.h>
#include<stdio.h>
#include<stdlib.h> 

#define uchar unsigned char
#define uint unsigned int



sfr P4=0xc0;

sbit PALE=P2^3; //定義P1.0

sbit PDATA=P2^4; //定義P1.0

sbit PCLK=P2^2; //定義P1.0

sbit DCLK=P3^2; //定義P1.0

sbit DIO=P2^1; //定義P1.0

sbit DENG=P4^0; //定義P1.0







#define CC1000_MAIN            0x00
#define CC1000_FREQ_2A         0x01
#define CC1000_FREQ_1A         0x02
#define CC1000_FREQ_0A         0x03
#define CC1000_FREQ_2B         0x04
#define CC1000_FREQ_1B         0x05
#define CC1000_FREQ_0B         0x06
#define CC1000_FSEP1           0x07
#define CC1000_FSEP0           0x08
#define CC1000_CURRENT         0x09
#define CC1000_FRONT_END       0x0A
#define CC1000_PA_POW          0x0B
#define CC1000_PLL             0x0C
#define CC1000_LOCK            0x0D
#define CC1000_CAL             0x0E
#define CC1000_MODEM2          0x0F
#define CC1000_MODEM1          0x10
#define CC1000_MODEM0          0x11
#define CC1000_MATCH           0x12
#define CC1000_FSCTRL          0x13
#define CC1000_FSHAPE7         0x14
#define CC1000_FSHAPE6         0x15
#define CC1000_FSHAPE5         0x16
#define CC1000_FSHAPE4         0x17
#define CC1000_FSHAPE3         0x18
#define CC1000_FSHAPE2         0x19
#define CC1000_FSHAPE1         0x1A
#define CC1000_FSDELAY         0x1B
#define CC1000_PRESCALER       0x1C
#define CC1000_TEST6           0x40
#define CC1000_TEST5           0x41
#define CC1000_TEST4           0x42
#define CC1000_TEST3           0x43
#define CC1000_TEST2           0x44
#define CC1000_TEST1           0x45
#define CC1000_TEST0           0x46



void NOP(){}



void delay1mS(uchar time)
{
 uchar i;
 uchar j;
 for(j=0;j<time;j++)
 {
  for(i=0;i<220;i++)
   NOP();
 }
}


/****************************************************************************/
/*   CC1000    寫內部寄存器子程序             
/****************************************************************************/
void WriteToCC1000Register(char Register, char DATA)
{
 char i;
 PCLK=1;
 PDATA=1;
 PALE=0;
 Register=(Register<<1)+0x01;
 for(i=8;i>0;i--)
 {
  if(Register&0x80)PDATA=1;
  else PDATA=0;
  PCLK=0;
  Register<<=1;
  NOP();
  PCLK=1;                               
 }

 NOP();
 PCLK=1;
 PALE=1;
 for(i=8;i>0;i--)
 {
  if(DATA&0x80)PDATA=1;
  else PDATA=0;
  PCLK=0;
  DATA<<=1;
  NOP();
  PCLK=1;                                
 }

 NOP();
 PCLK=1;
 PDATA=1;
}




/****************************************************************************/
/*   CC1000    讀內部寄存器子程序             
/****************************************************************************/
char ReadfromCC1000Register(char addr)
{
  char Result=0;
  char i;
  PCLK=1;
  PDATA=1;
  PALE=0;
  addr=addr<<1;
  for(i=8;i>0;i--)
  {
   if(addr&0x80)PDATA=1;
    else PDATA=0;
    PCLK=0;
    addr<<=1;
 
    NOP();
    PCLK=1;                                
  }
  PDATA=1;
  NOP();
  PCLK=1;
  PALE=1;
  for(i=8;i>0;i--)
  {
   PCLK=0;
   Result=(Result<<1)|PDATA;
  
   NOP(); 
   PCLK=1; 
     NOP();                      
 }
 PCLK=1;
 return(Result);
}




/****************************************************************************/
/*  This routine puts the CC1000 into RX mode . When switching to  */
/*  RX from PD, use WakeupC1000ToRX first                                   */
/****************************************************************************/

void CC1000_init()
{
 char cal_complete;
 //char time;
 WriteToCC1000Register(CC1000_PA_POW,0x00); 
 WriteToCC1000Register(CC1000_MAIN,0x3f);
 //P1=ReadfromCC1000Register(CC1000_MAIN);

 WriteToCC1000Register(CC1000_MAIN,0x3a);          //RXTX=0;F_REQ=0(RX:Register A ,TX:Register B);RX_PD=1;TX_PD=1;FS_PD=1;CORE_PD=0;BIAS_PD=1;REST_N=0

 
 WriteToCC1000Register(CC1000_MAIN,0x3b);       
 //cal_complete=ReadfromCC1000Register(CC1000_MAIN);
// cal_complete=0;
// WriteToCC1000Register(CC1000_MAIN,cal_complete);
 //P1=ReadfromCC1000Register(CC1000_MAIN);

 delay1mS(5);
 
// WriteToCC1000Register(CC1000_MAIN,0x01);
// writes 24-bit frequency value used for RX to 433.302 MHz.
// Check CC1000 data sheet for equations used to find
// 0x580000.
 WriteToCC1000Register(CC1000_FREQ_2A,0x58); 
 //P0=ReadfromCC1000Register(CC1000_FREQ_2A);     
 WriteToCC1000Register(CC1000_FREQ_1A,0x00);
 WriteToCC1000Register(CC1000_FREQ_0A,0x00);
// writes 24-bit frequency value used for TX to 433.302 MHz.
// Check CC1000 data sheet for equations used to find
// 0x580625.
 WriteToCC1000Register(CC1000_FREQ_2B,0x58);       
 WriteToCC1000Register(CC1000_FREQ_1B,0x06);
 WriteToCC1000Register(CC1000_FREQ_0B,0x25);
// sets frequency separation between 0 value and 1 value
//設定誤碼率
 WriteToCC1000Register(CC1000_FSEP1,0x03);
 WriteToCC1000Register(CC1000_FSEP0,0x55);
 WriteToCC1000Register(CC1000_CURRENT,0x44);
// sets some internal current levels, and enables RSSI output to pin
 WriteToCC1000Register(CC1000_FRONT_END,0x00);
 WriteToCC1000Register(CC1000_PA_POW,0xff);
// sets the PLL reference divider to divide by 6
 WriteToCC1000Register(CC1000_PLL,0x60);   
// sets External LNA control lock indicator to output on the CHP_OUT pin                  
 WriteToCC1000Register(CC1000_LOCK,0xa0);
 WriteToCC1000Register(CC1000_CAL,0x26);   
// sets threshold level for peak detector (not used in this design) 
 WriteToCC1000Register(CC1000_MODEM2,0x16);    
// sets the averaging filter to free-running and controlled by writes
// to bit 4 of this register.
// Sets averaging filter sensitivity to .6dB worst-case loss of sensitivity
 WriteToCC1000Register(CC1000_MODEM1,0x67); 
// baud rate to 4.8k, NRZ, and crystal freq. to 11.0592 MHz
 WriteToCC1000Register(CC1000_MODEM0,0x54);            
// sets capacitor array values for RX and TX
 WriteToCC1000Register(CC1000_MATCH,0x70); 
// disables dithering and data shaping  
 WriteToCC1000Register(CC1000_FSCTRL,0x01); 
// sets prescaling to nominal values  
/*
 WriteToCC1000Register(CC1000_FSHAPE7,0x1c);
 WriteToCC1000Register(CC1000_FSHAPE6,0x16);
 WriteToCC1000Register(CC1000_FSHAPE5,0x10);
 WriteToCC1000Register(CC1000_FSHAPE4,0x0a);
 WriteToCC1000Register(CC1000_FSHAPE3,0x06);
 WriteToCC1000Register(CC1000_FSHAPE2,0x03);
 WriteToCC1000Register(CC1000_FSHAPE1,0x01);
*/
 WriteToCC1000Register(CC1000_FSDELAY,0x1f);
 WriteToCC1000Register(CC1000_PRESCALER,0x00);

// sets charge pump current scaling factor, which determines the bandwidth
// of the PLL.
// WriteToCC1000Register(CC1000_TEST4,0x25);
// Calibration Process
// RX Calibration
// set transceiver to RX mode



WriteToCC1000Register(CC1000_TEST4 ,0x3f);
 
WriteToCC1000Register(CC1000_MAIN,0x11);
WriteToCC1000Register(CC1000_CAL,0xa6);
WriteToCC1000Register(CC1000_CURRENT,0x44);// RX mode current


/*
 for(time=0;time<100;time++){
cal_complete =ReadfromCC1000Register(CC1000_CAL);
 P1=cal_complete;
 if(!(cal_complete & 0x08))
 P0=time;
 else break;
 }


*/



 cal_complete = 0;
 do
 {
  cal_complete =ReadfromCC1000Register(CC1000_CAL);
  /*
  P1=cal_complete;
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
  */

 }
 while(!(cal_complete & 0x08)); // spin until calibration is complete

 WriteToCC1000Register(CC1000_CAL,0x26);

// TX Calibration
 WriteToCC1000Register(CC1000_MAIN,0xE1);
 WriteToCC1000Register(CC1000_CAL,0xa6);
 
 
 WriteToCC1000Register(CC1000_CURRENT,0x81);// TX mode current
 WriteToCC1000Register(CC1000_PA_POW,0x00);
 WriteToCC1000Register(CC1000_PLL,0x60);   
// calibration



 
 cal_complete = 0;
 do
 {
  cal_complete =ReadfromCC1000Register(CC1000_CAL);
 
 }
 while(!(cal_complete & 0x08)); // spin until calibration is complete
 WriteToCC1000Register(CC1000_CAL,0x26);
 WriteToCC1000Register(CC1000_MAIN,0x3d);
 WriteToCC1000Register(CC1000_PA_POW,0xff);


   DENG=0;


}

//-----------------------------------------------------------------------------
// C1000_RX_MODE
//-----------------------------------------------------------------------------
// C1000_RX_MODE sets the transceiver to RX mode and
// then initializes the 250 microsecond counter
// that gets incremented in the ADC ISR.
void C1000_RX_MODE(void)
{
WriteToCC1000Register(CC1000_PA_POW,0x00); 
 WriteToCC1000Register(CC1000_MAIN,0x11); // set to RX mode
 WriteToCC1000Register(CC1000_CURRENT,0x44); // set RX current level
 WriteToCC1000Register(CC1000_PLL,0x60);   
 WriteToCC1000Register(CC1000_PA_POW,0xff); // no  outputpower needed 
}


//-----------------------------------------------------------------------------
// C1000_TX_MODE
//-----------------------------------------------------------------------------
// C1000_TX_MODE sets the transceiver to TX mode and
// then initializes the 250 microsecond counter
void C1000_TX_MODE(void)
{
WriteToCC1000Register(CC1000_PA_POW,0x00); 
 WriteToCC1000Register(CC1000_MAIN,0xe1); // set to TX mode
 WriteToCC1000Register(CC1000_PLL,0x60); 
 WriteToCC1000Register(CC1000_CURRENT,0x81); // set TX current level
 
 WriteToCC1000Register(CC1000_PA_POW,0xff); // no  outputpower needed 
}

void TX(char TXDATA)
{
 char i;

 for(i=8;i>0;i--)
 {
  while(DCLK==1);
  if(TXDATA&0x80)DIO=1;
  else DIO=0;
  TXDATA<<=1;
  while(DCLK==0);

 }
}



void main(){ 


   CC1000_init();
	//while(1){
	C1000_RX_MODE();
delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);
 delay1mS(250);

//}

   C1000_TX_MODE(); 
   while(1){
	
      TX(0xa5);
       delay1mS(250); 
	 }

}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一成人在线| 欧美激情艳妇裸体舞| 亚洲小少妇裸体bbw| 在线观看区一区二| 亚洲小少妇裸体bbw| 欧美人xxxx| 精品一二三四在线| 久久综合色婷婷| 成人av网站在线| 伊人婷婷欧美激情| 制服丝袜成人动漫| 国产自产2019最新不卡| 国产人成亚洲第一网站在线播放 | 乱一区二区av| 久久午夜国产精品| 99久久综合国产精品| 依依成人综合视频| 日韩午夜av电影| 国产精品66部| 亚洲综合色噜噜狠狠| 91.xcao| 国产专区综合网| 亚洲欧美日韩久久精品| 在线播放日韩导航| 国产99久久久久| 亚洲一区二区欧美| 久久影院视频免费| 日本乱码高清不卡字幕| 久久成人精品无人区| 国产精品福利一区| 这里是久久伊人| 国产成都精品91一区二区三| 亚洲午夜一二三区视频| 久久久噜噜噜久久中文字幕色伊伊| 成人蜜臀av电影| 日韩国产欧美三级| 国产精品短视频| 91精品国产91综合久久蜜臀| 99久久久久免费精品国产| 午夜国产精品影院在线观看| 国产精品免费人成网站| 欧美日韩国产不卡| 成人激情午夜影院| 六月丁香婷婷色狠狠久久| 亚洲激情男女视频| 久久久久久久综合色一本| 欧美午夜片在线看| 高清av一区二区| 麻豆精品视频在线观看视频| 亚洲天堂中文字幕| 日韩一区二区在线看| 色视频成人在线观看免| 国产成人免费视频一区| 老司机精品视频线观看86| 一区二区三区中文字幕在线观看| 久久夜色精品国产噜噜av| 欧美日韩一区二区不卡| av中文一区二区三区| 国产一区二区在线电影| 日本va欧美va瓶| 亚洲永久精品大片| 综合久久综合久久| 国产蜜臀av在线一区二区三区| 91精品国产高清一区二区三区| 精品视频在线看| 在线观看日韩精品| 色婷婷综合五月| 91片黄在线观看| 成人国产免费视频| 福利视频网站一区二区三区| 国产一区二区三区在线观看精品| 免费在线观看不卡| 日韩国产精品久久久| 日韩精品一卡二卡三卡四卡无卡| 亚洲女与黑人做爰| 亚洲人123区| 一区二区三区四区视频精品免费| 国产精品国产三级国产有无不卡 | 亚洲国产成人一区二区三区| 国产日韩av一区二区| 亚洲国产精品激情在线观看| 欧美激情在线免费观看| 久久久久久一二三区| 国产亚洲精久久久久久| 欧美激情综合五月色丁香| 欧美国产精品一区二区三区| 国产视频在线观看一区二区三区| 国产日韩欧美激情| 国产精品久久综合| 亚洲色图色小说| 亚洲精品视频免费看| 国产伦精品一区二区三区免费迷 | 久久嫩草精品久久久久| 精品国免费一区二区三区| 精品国产一区二区三区忘忧草| 精品对白一区国产伦| 久久久精品日韩欧美| 亚洲国产精品高清| 国产成人在线免费| 不卡一区中文字幕| 欧美三级乱人伦电影| 91精品国产欧美一区二区18| 日韩欧美国产麻豆| 中文字幕av在线一区二区三区| 亚洲欧美自拍偷拍色图| 亚洲国产美女搞黄色| 老司机精品视频导航| 国产成人av网站| 日本精品视频一区二区三区| 欧美老肥妇做.爰bbww视频| 欧美草草影院在线视频| 国产女同性恋一区二区| 樱花草国产18久久久久| 日本欧美加勒比视频| 国产伦精品一区二区三区免费迷| 91丨porny丨在线| 欧美一区二区三区爱爱| 亚洲国产精品t66y| 午夜av一区二区| 国产麻豆精品在线| 日本高清无吗v一区| 欧美成人精品1314www| 国产精品久久午夜夜伦鲁鲁| 天堂精品中文字幕在线| 成人黄色在线网站| 制服丝袜日韩国产| 亚洲手机成人高清视频| 国产一区二区三区四区在线观看| 在线观看成人免费视频| 国产欧美日韩在线| 欧美aaaaa成人免费观看视频| 91丨九色porny丨蝌蚪| 精品久久久久久久人人人人传媒| 亚洲你懂的在线视频| 国产精品一区二区黑丝| 欧美日本在线播放| 亚洲色图欧美偷拍| 国产精品亚洲成人| 日韩欧美成人一区| 亚洲成人av一区| 91网页版在线| 国产视频一区在线播放| 免费欧美高清视频| 欧美日韩在线观看一区二区| 国产精品天美传媒沈樵| 韩国在线一区二区| 欧美精品三级在线观看| 中文字幕一区二区三区在线不卡| 亚洲成av人**亚洲成av**| 91视频xxxx| 国产欧美日本一区二区三区| 日韩电影在线免费| 激情综合网天天干| 日韩你懂的在线观看| 亚洲综合无码一区二区| 风间由美中文字幕在线看视频国产欧美| 91婷婷韩国欧美一区二区| 久久精品一二三| 三级欧美韩日大片在线看| 成人app下载| 久久久久免费观看| 国产高清精品久久久久| 日韩欧美国产综合| 午夜精品久久久久久久蜜桃app| 91首页免费视频| 亚洲国产成人午夜在线一区| 久久99精品国产麻豆婷婷洗澡| 欧美日本在线看| 一区二区三区四区高清精品免费观看| 95精品视频在线| 国产精品萝li| 国产激情视频一区二区在线观看 | 成人app下载| 国产欧美日韩三区| 午夜国产精品一区| 日韩午夜电影av| 婷婷综合五月天| 精品视频一区 二区 三区| 午夜av一区二区三区| 欧美美女黄视频| 亚洲蜜臀av乱码久久精品| a级精品国产片在线观看| 中文字幕精品三区| 国产很黄免费观看久久| 精品免费国产一区二区三区四区| 精品一区二区三区av| 精品国免费一区二区三区| 国产在线视视频有精品| 欧美一卡二卡三卡四卡| 日本欧美在线看| 欧美一区二区日韩一区二区| 蜜臀av性久久久久蜜臀av麻豆| 久久久久久亚洲综合| 国产成人av电影免费在线观看| 国产午夜亚洲精品理论片色戒| 美国一区二区三区在线播放| 中文字幕第一区第二区| 99这里只有久久精品视频| 亚洲精品午夜久久久| 日韩天堂在线观看|