免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
調(diào)試51+nrf905無線模塊,可以保證穩(wěn)定的收發(fā),正在完善中。。 (www.ouravr...
下面把接收部分的代碼發(fā)上來:
#include <reg52.h>
#include <ABSACC.h>
#include <intrins.h>
#include <stdio.h>
#define  uchar unsigned char 
#define uint unsigned int 
sbit Led1=P2^0;
sbit Led2=P2^1;
sbit Key=P3^7;
uchar count;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //0~~F段碼

//--------------------------------------------------------------------------------------------------------------
#define BYTE_BIT0        0x01
#define BYTE_BIT1        0x02
#define BYTE_BIT2        0x04
#define BYTE_BIT3        0x08
#define BYTE_BIT4        0x10
#define BYTE_BIT5        0x20
#define BYTE_BIT6        0x40
#define BYTE_BIT7        0x80

bdata unsigned  char DATA_BUF;
#define DATA7        ((DATA_BUF&BYTE_BIT7) != 0)
#define DATA0   ((DATA_BUF&BYTE_BIT0) != 0)
sbit        flag        =DATA_BUF^7;
sbit        flag1        =DATA_BUF^0;
//--------------------------------------------------------------------------------------------------------------
#define TxRxBuf_Len 4
unsigned char TxRxBuffer[TxRxBuf_Len];
//-----------------------------------------------------NRF905端口配置-------------------------------------------
sbit        TXEN=P1^0;
sbit        TRX_CE=P3^2;
sbit        PWR=P1^1;
sbit        MISO=P1^6;
sbit        MOSI=P1^5;
sbit        SCK=P1^7;
sbit        CSN=P1^3;
sbit        AM=P1^4;
sbit        DR=P3^3;
sbit        CD=P1^2;
//----------------------------------------------------數(shù)碼管位選IO---------------------------------------------
sbit        led1=P2^1;
sbit        led0=P2^0;
sbit        led2=P2^2;
sbit        led3=P2^3;
//--------------------------------------------------------------------------------------------------------------
//uchar seg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};         //0~~9段碼
//---------------------------------------------------------------------------------------------------------------
#define WC                0x00
#define RC                0x10
#define WTP                0x20
#define RTP                0x21
#define WTA                0x22
#define RTA                0x23
#define RRP                0x24
//--------------------------------------------NRF905寄存器配置--------------------------------------------------
unsigned char idata RFConf[11]=
{
          0x00,                             //配置命令//
         0x4c,
        0x0c,
        0x44,0x04,0x04,
        0xcc,0xcc,0xcc,0xcc,
        0x58,                            //CRC充許,8位CRC校驗,外部時鐘信號不使能,16M晶振
};
//----------------------------------------------延時---------------------------------------------------------------
void Delay(uchar n)
{
        uint k;
        while(n--)
        for(k=0;k<8;k++);
}
//-----------------------------------------------------------------------------------------------------------------
void delay1(uint i)
{
        for(;i>0;i--);   
}
//---------------------------------------------------SPI讀函數(shù)-----------------------------------------------------
unsigned char SpiRead(void)
{
        unsigned char j;
        for (j=0;j<8;j++)
        {
        DATA_BUF=DATA_BUF<<1;
                SCK=1;
                if (MISO)        //讀取最高位,保存至最末尾,通過左移位完成整個字節(jié)
                {
                        DATA_BUF|=BYTE_BIT0;
                }
                else
                {
                        DATA_BUF&=~BYTE_BIT0;
                }
                SCK=0;
         }
         return DATA_BUF;
}
//---------------------------------------------------SPI寫函數(shù)----------------------------------------------------
void SpiWrite(unsigned char send)
{
        unsigned char i;
        DATA_BUF=send;
        for (i=0;i<8;i++)
        {
                if (DATA7)        //總是發(fā)送最高位
                {
                        MOSI=1;
                }
                else
                {
                        MOSI=0;
                }
                SCK=1;
                DATA_BUF=DATA_BUF<<1;
                SCK=0;
        }
}
//-----------------------------------------------初始化nRF905-----------------------------------------------------
void nRF905Init(void)
{
   CSN=1;                                                // Spi         disable
        SCK=0;                                                // Spi clock line init low
        DR=0;                                                // Init DR for input
        AM=0;                                                // Init AM for input
        CD=0;                                                // Init CD for input
        PWR=1;                                        // nRF905 power on
        TRX_CE=0;                                        // Set nRF905 in standby mode
        TXEN=0;                                        // set radio in Rx mode
}
//-----------------------------------------------NRF905初始化寄存器-----------------------------------------------------
void Config905(void)
{
        uchar i;
        CSN=0;                                                // Spi enable for write a spi command
        //SpiWrite(WC);                                // Write config command寫放配置命令
        for (i=0;i<11;i++)        // Write configration words  寫放配置字
        {
           SpiWrite(RFConf[i]);
        }
        CSN=1;                                        // Disable Spi
}
//-----------------------------------------------設(shè)置發(fā)送狀態(tài)---------------------------------------------------
void SetRxMode(void)
{
        TXEN=0;
        TRX_CE=1;
        Delay(1);                                         // delay for mode change(>=650us)
}
//-------------------------------------------------判斷數(shù)據(jù)接收狀態(tài)-----------------------------------------------------
unsigned char CheckDR(void)                //檢查是否有新數(shù)據(jù)傳入 Data Ready
{
        if (DR=1&&TRX_CE==1 && TXEN==0)
        {
       // Delay(50)  ;
                return 1;
        }
        else
        {
                return 0;
        }
}
//----------------------------------------------------讀NRF905接收數(shù)據(jù)------------------------------------------------------------
void RxPacket(void)                                                
{
        uchar i;
    Delay(1);
//        TRX_CE=0;                                        // Set nRF905 in standby mode
    Delay(100);
    TRX_CE=0;
        CSN=0;                                                // Spi enable for write a spi command
    Delay(1);
        SpiWrite(RRP);
        for (i = 0 ;i < 4 ;i++)
        { 
                TxRxBuffer[i]=SpiRead();                // Read data and save to buffer       
        }
        CSN=1;
          Delay(10);
        TRX_CE=1;                                                        
}
//--------------------------------------------------------數(shù)據(jù)接收------------------------------------------------
void  RX(void)
{
          SetRxMode();                        // Set nRF905 in Rx mode
          while (CheckDR()==0);
                  Delay(10);
                    RxPacket();
                  Delay(10);
}

//-----------------------------------------------------------------------------------------------------------------

void delay50ms()
{
        uchar i,j;
        for(i=5;i>0;i--)
          for(j=200;j>0;j--);
}

//--------------------------------顯示子函數(shù)--------------------------------------------------------------------------
void display()
{
        uchar highcount,lowcount;
        highcount=count/10;
        lowcount=count%10;
        P0=table[highcount];
        Led1=1;
        Led2=0;
        delay50ms();

        P0=table[lowcount];
        Led1=0;
        Led2=1;
        delay50ms();
}

//-----------------------------------------------------------------------------------------------------------------
void main(void)
{
                uchar k;
                count=0;
        nRF905Init();
             Config905();
                while(1)
                {
                        for(k=30;k>0;k--)
                        {
                                display();
                        }
                        RX();
                        Delay(10);
                        CSN=0;         
                        if(TxRxBuffer[0])
                        {        
                                count=TxRxBuffer[0];
                                display();
                        }
                }
}

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
NRF24L01 調(diào)試[轉(zhuǎn)]
7279鍵盤顯示程序
關(guān)于NRF24L01無線模塊的C52雙向通訊C程序(中文詳解)
DS3231高精度時鐘模塊程序
基于51單片機設(shè)計的智能溫控風(fēng)扇(程序 電路圖)
74hc164驅(qū)動共陰數(shù)碼管與共陽數(shù)碼管
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服