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

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

?? exp.c

?? 無線收發(fā)模塊NRF24E1的開發(fā)源碼
?? C
字號:
/*=====================================================================
 * 
 * nRF24E1-Quick-Dev快速開發(fā)系統(tǒng)源代碼
 * 2003.7.1
 * 功能:
 * 1.nRF24E1的初始化控制
 * 2.nRF24E1的數(shù)據(jù)發(fā)射與數(shù)據(jù)接收
 * 3.串口通信 
 * 4.由 Keil C51 V6.10 and V7.05 編譯通過
 *
 * 迅通科技保留版權(quán)  
 * 版本: 1.1 
 * 
 *==============================================================================
*/
#include <reg24e1.h>
#include <intrins.h>
#include <absacc.h>
#include "ISD51.h"
/*  S1-S4  */
sbit S1       = P0^3;
sbit S2       = P0^0;
sbit S3       = P1^1;
sbit S4       = P1^0;

/*  LED1-LED4  */
sbit LED1      = P0^7;
sbit LED2      = P0^6;
sbit LED3      = P0^5;
sbit LED4      = P0^4;

unsigned char bdata KeyByte;
sbit L1        = KeyByte^0;
sbit L2        = KeyByte^1;
sbit L3        = KeyByte^2;
sbit L4        = KeyByte^3;

struct RFConfig
{
    unsigned char n;
    unsigned char buf[15];
};

typedef struct RFConfig RFConfig;

#define ADDR_INDEX  8   // Index to address bytes in RFConfig.buf 
#define ADDR_COUNT  4   // Number of address bytes


const RFConfig tconf =
{
    15,
    0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xaa, 0xbb, 0x12, 0x34, 0x83, 0x4f, 0x04
};

const RFConfig rconf =
{
    15,
    0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xaa, 0xbb, 0x12, 0x34, 0x83, 0x4f, 0x05
};

void Delay100us(volatile unsigned char n)
{
    unsigned char i;
    while(n--)
        for(i=0;i<35;i++)
            ;
}

void Delayms(volatile unsigned char n)
{
    unsigned char j;
    while(n--)
        for(j=0;j<10;j++)
	    	Delay100us(10);

}

unsigned char SpiReadWrite(unsigned char b)
{
    EXIF &= ~0x20;                  // Clear SPI interrupt
    SPI_DATA = b;                   // Move byte to send to SPI data register
    while((EXIF & 0x20) == 0x00)    // Wait until SPI hs finished transmitting
        ;
    return SPI_DATA;
}

void InitADC(void)
{
    ADCCON = 0x20;                  // Channel 0, NPD=1, ADCRUN=0, EXTREF=0
    ADCSTATIC &= 0x1c;
    ADCSTATIC |= 0x03;              // 12bit
    ADCCON &= ~0x80;                // Start..
    ADCCON |= 0x80;                 // ..new conversion
}

void InitPWM(void)
{
    P0_ALT = 0x80;                  // Enable PWM output
    PWMCON = 0xc0;                  // Enable 8 bit PWM with minimum prescaler
}

unsigned char ReceivePacket()
{
    unsigned char b;
    CE = 1;
    while(DR1 == 0)
        ;
    b = SpiReadWrite(0);
    CE = 0;
    return b;
}

void TransmitPacket(unsigned char b)
{
    unsigned char i;
    CE = 1;
    Delay100us(0);
    for(i=0;i<ADDR_COUNT;i++)
        SpiReadWrite(tconf.buf[ADDR_INDEX+i]);
    SpiReadWrite(b);
    CE = 0;
    Delay100us(3);                  // Wait ~300us   
}

unsigned char ReadADC(void)
{
    unsigned char b;

    while((EXIF & 0x10) == 0)       // Wait until ADC conversion complete
        ;
    EXIF &= ~0x10;                  // Clear ADC completion bit
    b = ADCDATAH;                   // Read ADC data
    ADCCON &= ~0x80;                // Start..
    ADCCON |= 0x80;                 // ..new conversion
    return b;
}

void WritePWM(unsigned char b)
{
    PWMDUTY = b;
}

void PutChar0(char c)
{
    while(!TI)
        ;
    TI = 0;
    SBUF = c;
}

void PutString(const char *s)
{
    while(*s != 0)
        PutChar0(*s++);
}

void Init_Receiver(void)
{
    unsigned char b;

    CS = 1;
    Delay100us(0);
    for(b=0;b<rconf.n;b++)
    {
        SpiReadWrite(rconf.buf[b]);
    }
    CS = 0;
    
    CE = 1;
}	

void Receiver(void)
{
    unsigned char b;
    CS = 1;
    Delay100us(0);
    for(b=0;b<rconf.n;b++)
    {
        SpiReadWrite(rconf.buf[b]);
    }
    CS = 0;
    for(;;)
    {
        b = ReceivePacket();
        PutChar0(b);
//      WritePWM(b);
    }
}

void Transmitter(void)
{
    unsigned char b;
    
    CS = 1;
    Delay100us(0);
    for(b=0;b<tconf.n;b++)
    {
        SpiReadWrite(tconf.buf[b]);
    }
    CS = 0;
//  for(;;)
//  {
//      b = ReadADC();              // Read ADC
//	b= KeyByte;
        b= 0x55;
        PutChar0(b);		    // To serial port	
        TransmitPacket(b);          // Transmit data
//   }
}
void light(void)
{LED1=0;
 LED2=0;
 LED3=0;
 LED4=0;
}

void KeyScan(void)
{

    if (S1==0)                           //switch 1 haveing been pushed 
    {
    	L1=0; 
    	light();				 // ON LED1
    }    	
    if (S2==0)                           //switch 1 haveing been pushed 
    {
    	L2=0; 
    	light();				 // ON LED2
    }    	
    if (S3==0)                           //switch 1 haveing been pushed 
    {
    	L3=0; 
    	light();				 // ON LED3
    }    	
    if (S4==0)                           //switch 1 haveing been pushed 
    {
    	L4=0; 
    	light();				 // ON LED4
    }    	
                
}	

void Init(void)
{

//  Port ini
    P0_ALT = 0x06;  // Select alternate functions on pins P0.1 and P0.2,  TXD RXD 
    P0_DIR = 0x09;                  // P0.0, P0.3 is input(S1, S2), the rest output
    P0 = 0xF0;                      // P0.7-P0.4 = 1 for OFF LED1-LED4    
    P1_DIR = 0x03;		   			// P0.0, P0.3 is input(S3, S4),

	LED1=1;
	LED2=1;
	LED3=1;
	LED4=1;
    
    PWR_UP = 1;                     // Turn on Radio
    Delay100us(30);                 // Wait > 3ms 
    SPICLK = 0;                     // Max SPI clock (XTAL/8)
    SPI_CTRL = 0x02;                // Connect internal SPI controller to Radio

//  serial communication ini
     T2CON   = 0x34;      /* Use Timer 2 as baudrate generator  */

    RCAP2H  = 0xFF;
    RCAP2L  = 0xF7;      //* 57600 baud @ 16MHz  
    CKCON |= 0x10;  // T1M=1 (/4 timer clock)
    SCON = 0x52;    // Serial mode1, enable receiver
   
    EA = 1;              /* Enable global interrupt flag       */
}    



void main(void)
{
    Init();
    KeyByte=0xff;
//  PutString("Hello World!\n"); 
//  Receiver();  
//  InitADC();

    Init_Receiver();

    LED1=0;
    Delayms(20);  
    LED1=1;

    LED2=0;
    Delayms(20);  
    LED2=1;

    LED3=0;
    Delayms(20);  
    LED3=1;
 
    LED4=0;
    Delayms(20);  
    LED4=1;

    while(1)
    {  
	    #if 1   // init ISD51 only when the uVision2 Debugger tries to connect
        ISDcheck();      // initialize uVision2 Debugger and continue program run
        #endif
    	if (DR1 == 1)
    	{
    		KeyByte = SpiReadWrite(0);
        	if (L1==0)                           //switch 1 haveing been pushed 
    		{
    			light();			     // ON LED1
    		}    	
        	if (L2==0)                           //switch 1 haveing been pushed 
    		{
    			light();			     // ON LED2
    		}    	
        	if (L3==0)                           //switch 1 haveing been pushed 
    		{
    			light();			     // ON LED3
    		}    	
        	if (L4==0)                           //switch 1 haveing been pushed 
    		{
    			light();			     // ON LED4
    		}    	
    		
    		PutChar0(KeyByte);		     // To serial port	
    		Delayms(20);    	    	
        	KeyByte=0xff;
    		LED1=1;
    		LED2=1;
    		LED3=1;
    		LED4=1;    	    	
    	}
    	
    	KeyScan();    	
    	if (KeyByte!=0xff)
    	{
    		Transmitter();
    		Delayms(20);    	    	
        	KeyByte=0xff;
    		Init_Receiver();	    	   		    		
    		LED1=1;
    		LED2=1;
    		LED3=1;
    		LED4=1;    
    	}    	    	
    }       
 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合视频一区二区三区高清| 欧美精品一区二区三区在线| 欧美高清dvd| 国产精品免费久久久久| 青青草国产精品亚洲专区无| 成人三级在线视频| 日韩精品一区在线| 亚洲国产日韩在线一区模特| 国产资源精品在线观看| 欧美日韩精品一区二区三区蜜桃| 国产精品久久久久久久久果冻传媒| 视频一区国产视频| 91福利视频在线| 国产精品伦一区| 国产老妇另类xxxxx| 欧美一区二区三区色| 一区二区在线免费观看| 成人18视频日本| 久久九九99视频| 免费精品视频在线| 56国语精品自产拍在线观看| 亚洲人成人一区二区在线观看 | 91精品免费观看| 国产精品白丝在线| 国产成人啪免费观看软件| 日韩久久久久久| 免费的国产精品| 日韩午夜在线观看| 日本视频免费一区| 欧美二区三区的天堂| 亚洲国产一区在线观看| 在线观看亚洲a| 一区二区三区在线观看网站| 91一区二区在线| 亚洲男人的天堂在线aⅴ视频| 国产69精品久久99不卡| 日本一区二区三区高清不卡| 高清久久久久久| 国产精品色哟哟| 99视频在线观看一区三区| 国产精品久久一级| 色哟哟在线观看一区二区三区| 日韩美女精品在线| 91首页免费视频| 亚洲国产成人av网| 欧美国产一区二区在线观看| 国产一区二区三区在线观看免费 | 蜜臀久久99精品久久久久久9| 欧美精品日韩一本| 蜜臀av在线播放一区二区三区| 欧美大尺度电影在线| 极品美女销魂一区二区三区免费| 欧美精品一区二区三| 成人在线视频首页| 一区二区中文字幕在线| 欧美亚洲国产一区二区三区| 视频一区二区国产| 久久久欧美精品sm网站| 丁香一区二区三区| 亚洲一区二区在线视频| 欧美精品成人一区二区三区四区| 久久精品国产色蜜蜜麻豆| 久久人人爽爽爽人久久久| 国产aⅴ综合色| 一区二区三区高清不卡| 欧美一级高清大全免费观看| 高清av一区二区| 亚洲国产精品人人做人人爽| 精品久久久久久久久久久久久久久久久 | 亚洲午夜久久久久久久久电影网| 777久久久精品| 极品少妇xxxx精品少妇| 樱花草国产18久久久久| 久久综合久久99| 日本道精品一区二区三区| 久久国产视频网| 亚洲视频1区2区| 欧美一区二区三区免费在线看| 成人久久视频在线观看| 日韩精品一级二级| 综合久久国产九一剧情麻豆| 日韩免费成人网| 在线精品亚洲一区二区不卡| 国产一区高清在线| 午夜精品视频一区| 中文字幕一区二区在线播放| 日韩精品中文字幕在线一区| 91黄色免费版| 成人教育av在线| 久久99热这里只有精品| 午夜欧美大尺度福利影院在线看| 国产精品免费看片| 日韩三级视频中文字幕| 欧美视频一区二区| 91社区在线播放| 国产夫妻精品视频| 久久精品国产成人一区二区三区 | 91小视频在线| 国产成人午夜精品影院观看视频| 日韩av一区二区三区| 亚洲在线视频免费观看| 中文字幕中文字幕在线一区| 国产日韩欧美精品综合| 欧美白人最猛性xxxxx69交| 欧美日韩精品一区视频| 在线观看日韩电影| 色域天天综合网| 91理论电影在线观看| 不卡影院免费观看| 国产成人免费视频| 国产在线播放一区| 久久精品国产一区二区三 | 亚洲成人激情自拍| 亚洲精品乱码久久久久久日本蜜臀| 国产精品视频在线看| 国产午夜精品久久| 国产欧美视频一区二区三区| 久久久亚洲欧洲日产国码αv| 日韩免费视频一区二区| 日韩色在线观看| 欧美白人最猛性xxxxx69交| 精品成人a区在线观看| 欧美成人三级在线| 久久精品一区二区三区不卡| 久久男人中文字幕资源站| xnxx国产精品| 国产欧美日韩综合| 自拍偷自拍亚洲精品播放| 中文字幕在线一区| 亚洲欧美日韩国产成人精品影院| 亚洲男帅同性gay1069| 亚洲一区二区三区四区不卡| 午夜久久福利影院| 日韩国产欧美视频| 极品尤物av久久免费看| 国产成人av资源| 色婷婷av一区二区三区软件| 欧美色成人综合| 日韩一级黄色大片| 久久久久高清精品| 中文字幕一区二区日韩精品绯色| 亚洲女子a中天字幕| 午夜激情一区二区| 韩国女主播一区二区三区| 成人av电影在线播放| 欧美艳星brazzers| 日韩欧美一级二级三级久久久| 久久久精品tv| 亚洲视频免费看| 毛片av一区二区三区| 成人自拍视频在线观看| 欧美三级资源在线| 久久只精品国产| 一区2区3区在线看| 极品尤物av久久免费看| 91麻豆自制传媒国产之光| 91.麻豆视频| 成人免费一区二区三区在线观看| 视频一区二区不卡| 成人一区二区视频| 欧美精品色一区二区三区| 久久九九影视网| 首页亚洲欧美制服丝腿| 成人动漫一区二区三区| 91精品国产色综合久久不卡电影| 国产精品乱码人人做人人爱| 视频一区二区不卡| 91在线码无精品| 久久久午夜电影| 婷婷综合五月天| 91免费视频大全| 久久一二三国产| 丝袜国产日韩另类美女| av在线这里只有精品| 精品国产髙清在线看国产毛片| 一区二区免费在线| 成人综合婷婷国产精品久久免费| 日韩亚洲欧美中文三级| 一区二区三区四区高清精品免费观看 | 福利一区福利二区| 日韩色视频在线观看| 亚洲一本大道在线| 97超碰欧美中文字幕| 国产亚洲女人久久久久毛片| 蜜桃视频在线观看一区| 欧美性受xxxx黑人xyx| 最新日韩在线视频| 国产91精品在线观看| 久久久五月婷婷| 狠狠v欧美v日韩v亚洲ⅴ| 欧美精品久久久久久久久老牛影院 | 成人激情黄色小说| 久久―日本道色综合久久| 久久国产视频网| 精品国产网站在线观看| 免费在线成人网| 日韩欧美精品三级| 麻豆成人在线观看| 日韩三级精品电影久久久 | 中文字幕永久在线不卡|