新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > RF1100SE單片機C8051F310程序

        RF1100SE單片機C8051F310程序

        作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
        #include

        #include
        #include
        #include
        #include

        本文引用地址:http://www.104case.com/article/201611/324042.htm

        #define uint unsigned int
        #define uchar unsigned char

        #define BUSY SPI0CFG&0x80//SPI接口檢測

        code uchar PaTabel[]={0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60};//配置功率
        uchar send_buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
        //要發(fā)送的有效數(shù)據(jù),其中第一個為數(shù)據(jù)的長度
        uchar rx_buf[8]={0}; //接收的數(shù)據(jù)緩存

        //引腳定義*********************************************************************************
        #define CSN_HIGH CSN=1
        #define CSN_LOW CSN=0
        sbit GDO0 =P0^6;
        sbit CSN =P0^3;
        sbit MISO =P0^1; //為了檢測是否穩(wěn)定
        sbit c=P0^7;
        //*****************************************************************************************
        #define WRITE_BURST 0x40 //連續(xù)寫入多個字節(jié),即為突發(fā)訪問
        #define READ_SINGLE 0x80 //讀一個字節(jié)
        #define READ_BURST 0xC0 //連續(xù)讀多個字節(jié)
        #define BYTES_IN_RXFIFO 0x7F //接收緩沖區(qū)的有效字節(jié)數(shù)
        #define CRC_OK 0x80 //CRC校驗通過位標(biāo)志
        //*****************************************************************************************
        //RF1100SE寄存器地址
        #define IOCFG2 0x00
        #define IOCFG1 0x01
        #define IOCFG0 0x02
        #define FIFOTHR 0x03
        #define SYNC1 0x04
        #define SYNC0 0x05
        #define PKTLEN 0x06
        #define PKTCTRL1 0x07
        #define PKTCTRL0 0x08
        #define ADDR 0x09
        #define CHANNR 0x0a
        #define FSCTRL1 0x0b
        #define FSCTRL0 0x0c
        #define FREQ2 0x0d
        #define FREQ1 0x0e
        #define FREQ0 0x0f

        //配置寄存器
        #define MDMCFG4 0x10
        #define MDMCFG3 0x11
        #define MDMCFG2 0x12
        #define MDMCFG1 0x13
        #define MDMCFG0 0x14
        #define DEVIATN 0x15
        #define MCSM2 0x16
        #define MCSM1 0x17
        #define MCSM0 0x18
        #define FOCCFG 0x19
        #define BSCFG 0x1a
        #define AGCTRL2 0x1b
        #define AGCTRL1 0x1c
        #define AGCTRL0 0x1d
        #define WOREVT1 0x1e
        #define WOREVT0 0x1f

        #define WORCTRL 0x20
        #define FREND1 0x21
        #define FREND0 0x22
        #define FSCAL3 0x23
        #define FSCAL2 0x24
        #define FSCAL1 0x25
        #define FSCAL0 0x26
        #define RCCTRL1 0x27
        #define RCCTRL0 0x28
        #define FSTEST 0x29
        #define PTEST 0x2a
        #define AGCTEST 0x2b
        #define TEST2 0x2c
        #define TEST1 0x2d
        #define TEST0 0x2e

        //狀態(tài)寄存器
        #define PARTNUM 0x30
        #define VERSION 0x31
        #define FREQEST 0x32
        #define LQI 0x33
        #define RSSI 0x34
        #define MARCSTATE 0x35
        #define WORTIME1 0x36
        #define WORTIME0 0x37
        #define PKTSTATUS 0x38
        #define VCOVCDAC 0x39
        #define TXBYTES 0x3a
        #define RXBYTES 0x3b
        #define PATABLE 0x3e
        #define TX_FIFO 0x3f
        #define RX_FIFO 0x3f

        //控制命令寄存器
        #define SRES 0x30//重啟芯片
        #define SFSTXON 0x31//開啟和校準(zhǔn)頻率合成器
        #define SXOFF 0x32//關(guān)閉晶體振蕩器
        #define SCAL 0x33//校準(zhǔn)頻率合成器并關(guān)斷
        #define SRX 0x34//啟用RX
        #define STX 0x35//空閑狀態(tài)時啟用TX
        #define SIDLE 0x36//離開RX/TX關(guān)斷頻率合成器并離開電磁波激活模式
        #define SAFC 0x37//運行頻率合成器的AFC調(diào)節(jié)
        #define SWOR 0x38//運行自動RX選舉序列
        #define SPWD 0x39//當(dāng)CSn為高時進入功率降低模式
        #define SFRX 0x3a//沖洗RX_FIFO緩沖
        #define SFTX 0x3b//沖洗TX_FIFO緩沖
        #define SWORRST 0x3c//重新設(shè)置真實時間時鐘
        #define SNOP 0x3d//附加:軟件擴充為兩個字節(jié)

        //函數(shù)聲明*********************************************************************************
        void sysclk(void);
        void pio(void);
        void SPI(void);
        void Interrupt_int(void);
        void delay(uint i);
        void dat_int(void);
        //*****************************************************************************************
        uchar SPI_RW(uchar byte); //用SPI讀寫一字節(jié)的數(shù)據(jù)
        void SPI_WR_Strobe(uchar strobe); //寫入濾波命令
        void POWER_UP_RESET_CC1100(void); //上電復(fù)位
        uchar SPI_RW_Reg(uchar reg,uchar value); //向寄存器寫一字節(jié)的數(shù)據(jù),同時返回狀態(tài)字
        uchar SPI_Read_Reg(uchar reg); //從寄存器讀一字節(jié)的數(shù)據(jù)
        uchar SPI_Read_Buf(uchar reg,uchar *pBuf,uchar bytes); //從reg連續(xù)讀出bytes字節(jié)的數(shù)據(jù)
        uchar SPI_RW_Buf(uchar reg,uchar *pBuf,uchar bytes); //向reg連續(xù)寫入bytes字節(jié)的數(shù)據(jù)
        uchar RF1100CE_RxPacket(uchar *rx_buf,uchar *length); //接收函數(shù)
        void RF1100CE_TxPacket(uchar *tx_buf,uchar size); //發(fā)送函數(shù)
        void RF1100CE_Config(void); //RF1100CE的配置函數(shù)
        //*****************************************************************************************
        void main(void) //主程序
        {uchar sta=0;
        PCA0MD &= ~0x40;// 關(guān)閉看門狗
        pio();
        sysclk();
        dat_int();
        SPI(); //SPI0DAT是SPI的數(shù)據(jù)寄存器
        Interrupt_int();
        EA=0;

        POWER_UP_RESET_CC1100();
        RF1100CE_Config(); //RF1100CE的配置函數(shù)
        SPI_RW_Buf(PATABLE,PaTabel,8); //對設(shè)備進行功率配置
        delay(6000);

        while(1)
        {

        RF1100CE_TxPacket(send_buf,8); //發(fā)送函數(shù)
        c=1;
        delay(100);

        if(sta&0xff)
        {
        CSN_LOW;
        SPI_RW(SFTX); //清除發(fā)送寄存器的值
        CSN_HIGH;
        }
        }
        }

        void dat_int(void)
        {
        CSN_LOW;
        _nop_();
        CSN_HIGH;
        c=0;
        }


        上一頁 1 2 下一頁

        關(guān)鍵詞: RF1100SE單片機C8051F31

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 南丰县| 翁源县| 桃园县| 漯河市| 彰化市| 五大连池市| 工布江达县| 白河县| 北宁市| 丹阳市| 靖西县| 永仁县| 马公市| 托里县| 裕民县| 青海省| 罗城| 石河子市| 临夏市| 桃园县| 交城县| 星座| 陆川县| 横峰县| 拉萨市| 县级市| 南乐县| 西乌珠穆沁旗| 永泰县| 察隅县| 舒兰市| 保康县| 廊坊市| 绩溪县| 会东县| 吴旗县| 志丹县| 昌黎县| 浑源县| 榆社县| 灌云县|