首页 STC11L02E 单片机和NRF24L01无线模块程序

STC11L02E 单片机和NRF24L01无线模块程序

举报
开通vip

STC11L02E 单片机和NRF24L01无线模块程序STC11L02E 单片机和NRF24L01无线模块程序 /**************************************************/ //单片机 STC11L02E //zzq #include #include #define uchar unsigned char // Define interface to nRF24L01 // Define SPI pins sbit CE = P3^1; // Chip Enable pin signal (output...

STC11L02E 单片机和NRF24L01无线模块程序
STC11L02E 单片机和NRF24L01无线模块程序 /**************************************************/ //单片机 STC11L02E //zzq #include #include #define uchar unsigned char // Define interface to nRF24L01 // Define SPI pins sbit CE = P3^1; // Chip Enable pin signal (output) sbit CSN = P3^3; // Slave Select pin, (output to CSN, nRF24L01) sbit SCK = P3^4; // Master Out, Slave In pin (output) sbit MOSI = P3^5; // Serial Clock pin, (output) sbit MISO = P3^7; // Master In, Slave Out pin (input) sbit IRQ = P3^2; // Interrupt signal, from nRF24L01 (input) // SPI(nRF24L01) commands #define READ_REG 0x00 // Define read command to register #define WRITE_REG 0x20 // Define write command to register #define RD_RX_PLOAD 0x61 // Define RX payload register address #define WR_TX_PLOAD 0xA0 // Define TX payload register address #define FLUSH_TX 0xE1 // Define flush TX register command #define FLUSH_RX 0xE2 // Define flush RX register command #define REUSE_TX_PL 0xE3 // Define reuse TX payload register command #define NOP 0xFF // Define No Operation, might be used to read status register // SPI(nRF24L01) registers(addresses) #define CONFIG 0x00 // 'Config' register address #define EN_AA 0x01 // 'Enable Auto Acknowledgment' register address #define EN_RXADDR 0x02 // 'Enabled RX addresses' register address #define SETUP_AW 0x03 // 'Setup address width' register address #define SETUP_RETR 0x04 // 'Setup Auto. Retrans' register address #define RF_CH 0x05 // 'RF channel' register address #define RF_SETUP 0x06 // 'RF setup' register address #define STATUS 0x07 // 'Status' register address #define OBSERVE_TX 0x08 // 'Observe TX' register address #define CD 0x09 // 'Carrier Detect' register address #define RX_ADDR_P0 0x0A // 'RX address pipe0' register address #define RX_ADDR_P1 0x0B // 'RX address pipe1' register address #define RX_ADDR_P2 0x0C // 'RX address pipe2' register address #define RX_ADDR_P3 0x0D // 'RX address pipe3' register address #define RX_ADDR_P4 0x0E // 'RX address pipe4' register address #define RX_ADDR_P5 0x0F // 'RX address pipe5' register address #define TX_ADDR 0x10 // 'TX address' register address #define RX_PW_P0 0x11 // 'RX payload width, pipe0' register address #define RX_PW_P1 0x12 // 'RX payload width, pipe1' register address #define RX_PW_P2 0x13 // 'RX payload width, pipe2' register address #define RX_PW_P3 0x14 // 'RX payload width, pipe3' register address #define RX_PW_P4 0x15 // 'RX payload width, pipe4' register address #define RX_PW_P5 0x16 // 'RX payload width, pipe5' register address #define FIFO_STATUS 0x17 // 'FIFO Status Register' register address /***************************************************/ #define TX_ADR_WIDTH 5 // 5字节宽度的发送/接收地址 #define TX_PLOAD_WIDTH 4 // 数据通道有效数据宽度 #define LED P1 sbit UP = P3^0; sbit DOWN= P3^6; uchar code Disp[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88}; //uchar code Disp[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制 uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}; // 定义一个静态发送地址 uchar RX_BUF[TX_PLOAD_WIDTH]; uchar TX_BUF[TX_PLOAD_WIDTH]; uchar flag; uchar DATA = 0x01; uchar bdata sta; sbit RX_DR = sta^6; sbit TX_DS = sta^5; sbit MAX_RT = sta^4; /**************************************************/ void delay1us (void) { _nop_(); _nop_(); } /************************************************** 函数: init_io() 描述: 初始化IO /**************************************************/ void init_io(void) { CE = 0; // 待机 CSN = 1; // SPI禁止 SCK = 0; // SPI时钟置低 IRQ = 1; // 中断复位 LED = 0xff; // 关闭指示灯 } /**************************************************/ /************************************************** 函数:delay_ms() 描述: 延迟x毫秒 /**************************************************/ void delay_ms(uchar x) { uchar i, j; i = 0; for(i=0; i word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 _1713858020426_0,写一字节数据到nRF24L01,同时从nRF24L01 读出一字节 /**************************************************/ uchar SPI_RW(uchar byte) { uchar i; for(i=0; i<8; i++) // 循环8次 { MOSI = (byte & 0x80); // byte最高位输出到MOSI byte <<= 1; // 低一位移位到最高位 SCK = 1; // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据 delay1us(); byte |= MISO; // 读MISO到byte最低位 delay1us(); SCK = 0; // SCK置低 } return(byte); // 返回读出的一字节 } /**************************************************/ /************************************************** 函数:SPI_RW_Reg() 描述: 写数据value到reg寄存器 /**************************************************/ uchar SPI_RW_Reg(uchar reg, uchar value) { uchar status; CSN = 0; // CSN置低,开始传输数据 status = SPI_RW(reg); // 选择寄存器,同时返回状态字 SPI_RW(value); // 然后写数据到该寄存器 CSN = 1; // CSN拉高,结束数据传输 return(status); // 返回状态寄存器 } /**************************************************/ /************************************************** 函数:SPI_Read() 描述: 从reg寄存器读一字节 /**************************************************/ uchar SPI_Read(uchar reg) { uchar reg_val; CSN = 0; // CSN置低,开始传输数据 SPI_RW(reg); // 选择寄存器 reg_val = SPI_RW(0); // 然后从该寄存器读数据 CSN = 1; // CSN拉高,结束数据传输 return(reg_val); // 返回寄存器数据 } /**************************************************/ /************************************************** 函数:SPI_Read_Buf() 描述: 从reg寄存器读出bytes个字节,通常用来读取接收通道 数据或接收/发送地址 /**************************************************/ uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN = 0; // CSN置低,开始传输数据 status = SPI_RW(reg); // 选择寄存器,同时返回状态字 for(i=0; i
本文档为【STC11L02E 单片机和NRF24L01无线模块程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_219945
暂无简介~
格式:doc
大小:40KB
软件:Word
页数:0
分类:生产制造
上传时间:2017-10-16
浏览量:22