wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区
標題:
基于51單片機的無線投票器程序設(shè)計發(fā)射板程序
[打印本頁]
作者:
初秋夜微涼
時間:
2017-6-11 10:07
標題:
基于51單片機的無線投票器程序設(shè)計發(fā)射板程序
基于51單片機的無線投票器程序設(shè)計發(fā)射板系統(tǒng)源代碼
/*--------------------------------------------------------------------------------------------------------------------
#include <reg52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned char uint;
//****************************************NRF24L01端口定義***************************************
sbit MISO =P1^5;
sbit MOSI =P1^4;
sbit SCK =P1^3;
sbit CE =P1^1;
sbit CSN =P1^2;
sbit IRQ =P1^6;
sbit LCD_RS =P2^5;
sbit LCD_RW =P2^6;
sbit LCD_E =P2^7;
//************************************按鍵***************************************************
sbit KEY1=P3^1;
sbit KEY2=P3^3;
sbit KEY3=P3^5;
//************************************數(shù)碼管位選*********************************************
sbit led1=P3^2;
sbit led2=P3^4;
sbit led3=P3^6;
//*********************************************NRF24L01*************************************
#define TX_ADR_WIDTH 5 // 5 uints TX address width
#define RX_ADR_WIDTH 5 // 5 uints RX address width
#define TX_PLOAD_WIDTH 20 // 20 uints TX payload
#define RX_PLOAD_WIDTH 20 // 20 uints TX payload
#define LCD_DATA P0
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址
//***************************************NRF24L01寄存器指令*******************************************************
#define READ_REG 0x00 // 讀寄存器指令
#define WRITE_REG 0x20 // 寫寄存器指令
#define RD_RX_PLOAD 0x61 // 讀取接收數(shù)據(jù)指令
#define WR_TX_PLOAD 0xA0 // 寫待發(fā)數(shù)據(jù)指令
#define FLUSH_TX 0xE1 // 沖洗發(fā)送 FIFO指令
#define FLUSH_RX 0xE2 // 沖洗接收 FIFO指令
#define REUSE_TX_PL 0xE3 // 定義重復(fù)裝載數(shù)據(jù)指令
#define NOP 0xFF // 保留
//*************************************SPI(nRF24L01)寄存器地址****************************************************
#define CONFIG 0x00 // 配置收發(fā)狀態(tài),CRC校驗?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式
#define EN_AA 0x01 // 自動應(yīng)答功能設(shè)置
#define EN_RXADDR 0x02 // 可用信道設(shè)置
#define SETUP_AW 0x03 // 收發(fā)地址寬度設(shè)置
#define SETUP_RETR 0x04 // 自動重發(fā)功能設(shè)置
#define RF_CH 0x05 // 工作頻率設(shè)置
#define RF_SETUP 0x06 // 發(fā)射速率、功耗功能設(shè)置
#define STATUS 0x07 // 狀態(tài)寄存器
#define OBSERVE_TX 0x08 // 發(fā)送監(jiān)測功能
#define CD 0x09 // 地址檢測
#define RX_ADDR_P0 0x0A // 頻道0接收數(shù)據(jù)地址
#define RX_ADDR_P1 0x0B // 頻道1接收數(shù)據(jù)地址
#define RX_ADDR_P2 0x0C // 頻道2接收數(shù)據(jù)地址
#define RX_ADDR_P3 0x0D // 頻道3接收數(shù)據(jù)地址
#define RX_ADDR_P4 0x0E // 頻道4接收數(shù)據(jù)地址
#define RX_ADDR_P5 0x0F // 頻道5接收數(shù)據(jù)地址
#define TX_ADDR 0x10 // 發(fā)送地址寄存器
#define RX_PW_P0 0x11 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P1 0x12 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P2 0x13 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P3 0x14 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P4 0x15 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P5 0x16 // 接收頻道0接收數(shù)據(jù)長度
#define FIFO_STATUS 0x17 // FIFO棧入棧出狀態(tài)寄存器設(shè)置
//**************************************************************************************
void Delay(unsigned int s);
void inerDelay_us(unsigned char n);
void init_NRF24L01(void);
uint SPI_RW(uint uchar);
uchar SPI_Read(uchar reg);
void SetRX_Mode(void);
uint SPI_RW_Reg(uchar reg, uchar value);
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
void nRF24L01_TxPacket(unsigned char * tx_buf);
//*****************************************長延時*****************************************
void Delay(unsigned int s)
{
unsigned int i;
for(i=0; i<s; i++);
for(i=0; i<s; i++);
}
//******************************************************************************************
uint bdata sta; //狀態(tài)標志
sbit RX_DR =sta^6;
sbit TX_DS =sta^5;
sbit MAX_RT =sta^4;
/******************************************************************************************
/*延時函數(shù)
/******************************************************************************************/
void inerDelay_us(unsigned char n)
{
for(;n>0;n--)
_nop_();
}
//****************************************************************************************
/*NRF24L01初始化
//***************************************************************************************/
void init_NRF24L01(void)
{
inerDelay_us(100);
CE=0; // chip enable
CSN=1; // Spi disable
SCK=0; //
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 寫本地地址
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 寫接收端地址
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 頻道0自動 ACK應(yīng)答允許
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允許接收地址只有頻道0,如果需要多頻道可以參考Page21
SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致
SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為32字節(jié)
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB
}
/****************************************************************************************************
/*函數(shù):uint SPI_RW(uint uchar)
/*功能:NRF24L01的SPI寫時序
/****************************************************************************************************/
uint SPI_RW(uint uchar)
{
uint bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
{
MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI
uchar = (uchar << 1); // shift next bit into MSB..
SCK = 1; // Set SCK high..
uchar |= MISO; // capture current MISO bit
SCK = 0; // ..then set SCK low again
}
return(uchar); // return read uchar
}
/****************************************************************************************************
/*函數(shù):uchar SPI_Read(uchar reg)
/*功能:NRF24L01的SPI時序
/****************************************************************************************************/
uchar SPI_Read(uchar reg)
{
uchar reg_val;
CSN = 0; // CSN low, initialize SPI communication...
SPI_RW(reg); // Select register to read from..
reg_val = SPI_RW(0); // ..then read registervalue
CSN = 1; // CSN high, terminate SPI communication
return(reg_val); // return register value
}
/****************************************************************************************************/
/*功能:NRF24L01讀寫寄存器函數(shù)
/****************************************************************************************************/
uint SPI_RW_Reg(uchar reg, uchar value)
{
uint status;
CSN = 0; // CSN low, init SPI transaction
status = SPI_RW(reg); // select register
SPI_RW(value); // ..and write value to it..
CSN = 1; // CSN high again
return(status); // return nRF24L01 status uchar
}
/****************************************************************************************************/
/*函數(shù):uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*功能: 用于讀數(shù)據(jù),reg:為寄存器地址,pBuf:為待讀出數(shù)據(jù)地址,uchars:讀出數(shù)據(jù)的個數(shù)
/****************************************************************************************************/
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
uint status,uchar_ctr;
CSN = 0; // Set CSN low, init SPI tranaction
status = SPI_RW(reg); // Select register to write to and read status uchar
for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)
pBuf[uchar_ctr] = SPI_RW(0); //
CSN = 1;
return(status); // return nRF24L01 status uchar
}
/*********************************************************************************************************
/*函數(shù):uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*功能: 用于寫數(shù)據(jù):為寄存器地址,pBuf:為待寫入數(shù)據(jù)地址,uchars:寫入數(shù)據(jù)的個數(shù)
/*********************************************************************************************************/
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
uint status,uchar_ctr;
CSN = 0; //SPI使能
status = SPI_RW(reg);
for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) //
SPI_RW(*pBuf++);
CSN = 1; //關(guān)閉SPI
return(status); //
}
/****************************************************************************************************/
/*函數(shù):void SetRX_Mode(void)
/*功能:數(shù)據(jù)接收配置
/****************************************************************************************************/
void SetRX_Mode(void)
{
CE=0;
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // IRQ收發(fā)完成中斷響應(yīng),16位CRC ,主接收
CE = 1;
inerDelay_us(130);
}
/******************************************************************************************************/
/*函數(shù):unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
/*功能:數(shù)據(jù)讀取后放如rx_buf接收緩沖區(qū)中
/******************************************************************************************************/
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
{
unsigned char revale=0;
sta=SPI_Read(STATUS); // 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況
if(RX_DR) // 判斷是否接收到數(shù)據(jù)
{
CE = 0; //SPI使能
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
revale =1; //讀取數(shù)據(jù)完成標志
}
SPI_RW_Reg(WRITE_REG+STATUS,sta); //接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標志
return revale;
}
/***********************************************************************************************************
/*函數(shù):void nRF24L01_TxPacket(unsigned char * tx_buf)
/*功能:發(fā)送 tx_buf中數(shù)據(jù)
/**********************************************************************************************************/
void nRF24L01_TxPacket(unsigned char * tx_buf)
{
CE=0; //StandBy I模式
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 裝載接收端地址
SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // 裝載數(shù)據(jù)
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送
CE=1; //置高CE,激發(fā)數(shù)據(jù)發(fā)送
inerDelay_us(10);
}
//************************************主函數(shù)************************************************************
void main(void)
{
unsigned char tf =0;
unsigned char TxBuf[20]={0}; //
unsigned char RxBuf[20]={0};
init_NRF24L01() ;
while(1)
{
if(KEY1 ==0 )
{
TxBuf[1] = 2 ;
led1=0;
}
else
{
led1=1;
TxBuf[1] = 1 ;
}
if(KEY2 ==0 )
{
TxBuf[2] =2 ;
led2=0;
}
else
{
led2=1;
TxBuf[2] = 1 ;
}
if(KEY3 ==0 )
{
TxBuf[3] =2 ;
led3=0;
}
else
{
led3=1;
TxBuf[3] = 1 ;
}
nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data
TxBuf[1] = 0x00;
TxBuf[2] = 0x00;
TxBuf[3] = 0x00;
Delay(1000);
SetRX_Mode();
Delay(1000);
nRF24L01_RxPacket(RxBuf);
Delay(1000);
}
}
附錄3:接收板系統(tǒng)源代碼
#include <reg52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned char uint;
//****************************************NRF24L01端口定義***************************************
sbit MISO =P1^5;
sbit MOSI =P1^4;
sbit SCK =P1^3;
sbit CE =P1^1;
sbit CSN =P1^2;
sbit IRQ =P1^6;
sbit LCD_RS =P2^5;
sbit LCD_RW =P2^6;
sbit LCD_E =P2^7;
//************************************按鍵***************************************************
sbit KEY1=P3^1;
sbit KEY2=P3^3;
sbit KEY3=P3^5;
//************************************數(shù)碼管位選*********************************************
sbit led1=P3^2;
sbit led2=P3^4;
sbit led3=P3^6;
//*********************************************NRF24L01*************************************
#define TX_ADR_WIDTH 5 // 5 uints TX address width
#define RX_ADR_WIDTH 5 // 5 uints RX address width
#define TX_PLOAD_WIDTH 20 // 20 uints TX payload
#define RX_PLOAD_WIDTH 20 // 20 uints TX payload
#define LCD_DATA P0
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址
//***************************************NRF24L01寄存器指令*******************************************************
#define READ_REG 0x00 // 讀寄存器指令
#define WRITE_REG 0x20 // 寫寄存器指令
#define RD_RX_PLOAD 0x61 // 讀取接收數(shù)據(jù)指令
#define WR_TX_PLOAD 0xA0 // 寫待發(fā)數(shù)據(jù)指令
#define FLUSH_TX 0xE1 // 沖洗發(fā)送 FIFO指令
#define FLUSH_RX 0xE2 // 沖洗接收 FIFO指令
#define REUSE_TX_PL 0xE3 // 定義重復(fù)裝載數(shù)據(jù)指令
#define NOP 0xFF // 保留
//*************************************SPI(nRF24L01)寄存器地址****************************************************
#define CONFIG 0x00 // 配置收發(fā)狀態(tài),CRC校驗?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式
#define EN_AA 0x01 // 自動應(yīng)答功能設(shè)置
#define EN_RXADDR 0x02 // 可用信道設(shè)置
#define SETUP_AW 0x03 // 收發(fā)地址寬度設(shè)置
#define SETUP_RETR 0x04 // 自動重發(fā)功能設(shè)置
#define RF_CH 0x05 // 工作頻率設(shè)置
#define RF_SETUP 0x06 // 發(fā)射速率、功耗功能設(shè)置
#define STATUS 0x07 // 狀態(tài)寄存器
#define OBSERVE_TX 0x08 // 發(fā)送監(jiān)測功能
#define CD 0x09 // 地址檢測
#define RX_ADDR_P0 0x0A // 頻道0接收數(shù)據(jù)地址
#define RX_ADDR_P1 0x0B // 頻道1接收數(shù)據(jù)地址
#define RX_ADDR_P2 0x0C // 頻道2接收數(shù)據(jù)地址
#define RX_ADDR_P3 0x0D // 頻道3接收數(shù)據(jù)地址
#define RX_ADDR_P4 0x0E // 頻道4接收數(shù)據(jù)地址
#define RX_ADDR_P5 0x0F // 頻道5接收數(shù)據(jù)地址
#define TX_ADDR 0x10 // 發(fā)送地址寄存器
#define RX_PW_P0 0x11 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P1 0x12 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P2 0x13 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P3 0x14 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P4 0x15 // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P5 0x16 // 接收頻道0接收數(shù)據(jù)長度
#define FIFO_STATUS 0x17 // FIFO棧入棧出狀態(tài)寄存器設(shè)置
//**************************************************************************************
void Delay(unsigned int s);
void inerDelay_us(unsigned char n);
void init_NRF24L01(void);
uint SPI_RW(uint uchar);
uchar SPI_Read(uchar reg);
void SetRX_Mode(void);
uint SPI_RW_Reg(uchar reg, uchar value);
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
void nRF24L01_TxPacket(unsigned char * tx_buf);
void delay5ms(void); //誤差 0us
void LCD_WriteData(uchar LCD_1602_DATA); /********LCD1602數(shù)據(jù)寫入***********/
void LCD_WriteCom(uchar LCD_1602_COM); /********LCD1602命令寫入***********/
void lcd_1602_word(uchar Adress_Com,uchar Num_Adat,uchar *Adress_Data); /*1602字符顯示函數(shù),變量依次為字符顯示首地址,顯示字符長度,所顯示的字符*/
void InitLcd();
//*****************************************長延時*****************************************
void Delay(unsigned int s)
{
unsigned int i;
for(i=0; i<s; i++);
for(i=0; i<s; i++);
}
//******************************************************************************************
uint bdata sta; //狀態(tài)標志
sbit RX_DR =sta^6;
sbit TX_DS =sta^5;
sbit MAX_RT =sta^4;
/******************************************************************************************
/*延時函數(shù)
/******************************************************************************************/
void inerDelay_us(unsigned char n)
{
for(;n>0;n--)
_nop_();
}
//****************************************************************************************
/*NRF24L01初始化
//***************************************************************************************/
void init_NRF24L01(void)
{
inerDelay_us(100);
CE=0; // chip enable
CSN=1; // Spi disable
SCK=0; //
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 寫本地地址
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 寫接收端地址
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 頻道0自動 ACK應(yīng)答允許
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允許接收地址只有頻道0,如果需要多頻道可以參考Page21
SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致
SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為32字節(jié)
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB
}
/****************************************************************************************************
/*函數(shù):uint SPI_RW(uint uchar)
/*功能:NRF24L01的SPI寫時序
/****************************************************************************************************/
uint SPI_RW(uint uchar)
{
uint bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
{
MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI
uchar = (uchar << 1); // shift next bit into MSB..
SCK = 1; // Set SCK high..
uchar |= MISO; // capture current MISO bit
SCK = 0; // ..then set SCK low again
}
return(uchar); // return read uchar
}
/****************************************************************************************************
/*函數(shù):uchar SPI_Read(uchar reg)
/*功能:NRF24L01的SPI時序
/****************************************************************************************************/
uchar SPI_Read(uchar reg)
{
uchar reg_val;
CSN = 0; // CSN low, initialize SPI communication...
SPI_RW(reg); // Select register to read from..
reg_val = SPI_RW(0); // ..then read registervalue
CSN = 1; // CSN high, terminate SPI communication
return(reg_val); // return register value
}
/****************************************************************************************************/
/*功能:NRF24L01讀寫寄存器函數(shù)
/****************************************************************************************************/
uint SPI_RW_Reg(uchar reg, uchar value)
{
uint status;
CSN = 0; // CSN low, init SPI transaction
status = SPI_RW(reg); // select register
SPI_RW(value); // ..and write value to it..
CSN = 1; // CSN high again
return(status); // return nRF24L01 status uchar
}
/****************************************************************************************************/
/*函數(shù):uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*功能: 用于讀數(shù)據(jù),reg:為寄存器地址,pBuf:為待讀出數(shù)據(jù)地址,uchars:讀出數(shù)據(jù)的個數(shù)
/****************************************************************************************************/
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
uint status,uchar_ctr;
CSN = 0; // Set CSN low, init SPI tranaction
status = SPI_RW(reg); // Select register to write to and read status uchar
for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)
pBuf[uchar_ctr] = SPI_RW(0); //
CSN = 1;
return(status); // return nRF24L01 status uchar
}
/*********************************************************************************************************
/*函數(shù):uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
/*功能: 用于寫數(shù)據(jù):為寄存器地址,pBuf:為待寫入數(shù)據(jù)地址,uchars:寫入數(shù)據(jù)的個數(shù)
/*********************************************************************************************************/
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)
{
uint status,uchar_ctr;
CSN = 0; //SPI使能
status = SPI_RW(reg);
for(uchar_ctr=0; uchar_ctr<uchars; uchar_ctr++) //
SPI_RW(*pBuf++);
CSN = 1; //關(guān)閉SPI
return(status); //
}
/****************************************************************************************************/
/*函數(shù):void SetRX_Mode(void)
/*功能:數(shù)據(jù)接收配置
/****************************************************************************************************/
void SetRX_Mode(void)
{
CE=0;
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // IRQ收發(fā)完成中斷響應(yīng),16位CRC ,主接收
CE = 1;
inerDelay_us(130);
}
/******************************************************************************************************/
/*函數(shù):unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
/*功能:數(shù)據(jù)讀取后放如rx_buf接收緩沖區(qū)中
/******************************************************************************************************/
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
{
unsigned char revale=0;
sta=SPI_Read(STATUS); // 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況
if(RX_DR) // 判斷是否接收到數(shù)據(jù)
{
CE = 0; //SPI使能
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
revale =1; //讀取數(shù)據(jù)完成標志
}
SPI_RW_Reg(WRITE_REG+STATUS,sta); //接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標志
return revale;
}
/***********************************************************************************************************
/*函數(shù):void nRF24L01_TxPacket(unsigned char * tx_buf)
/*功能:發(fā)送 tx_buf中數(shù)據(jù)
/**********************************************************************************************************/
void nRF24L01_TxPacket(unsigned char * tx_buf)
{
CE=0; //StandBy I模式
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 裝載接收端地址
SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // 裝載數(shù)據(jù)
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送
CE=1; //置高CE,激發(fā)數(shù)據(jù)發(fā)送
inerDelay_us(10);
}
//************************************主函數(shù)************************************************************
void main(void)
{ uchar n;
unsigned char tf =0;
unsigned char TxBuf[20]={0}; //
unsigned char RxBuf[20]={0};
InitLcd();
init_NRF24L01() ;
lcd_1602_word(0x80,16,"*****Loading****");
lcd_1602_word(0xc0,16,"*****Loading****");
while(1)
{
SetRX_Mode();
RxBuf[1] = 0x00;
RxBuf[2] = 0x00;
RxBuf[3] = 0x00;
Delay(1000);
nRF24L01_RxPacket(RxBuf);
n=RxBuf[1]+RxBuf[2]+RxBuf[3];
if(n>4)
{
lcd_1602_word(0x80,16,"**Pass****Pass**");
lcd_1602_word(0xc0,16,"**Pass****Pass**");
}
if(n==3)
{
lcd_1602_word(0x80,16,"**Down****Down**");
lcd_1602_word(0xc0,16,"**Down****Down**");
}
n=0;
RxBuf[1] = 0x00;
RxBuf[2] = 0x00;
RxBuf[3] = 0x00;
Delay(1000); //old is '1000'
}
}
void lcd_1602_word(uchar Adress_Com,uchar Num_Adat,uchar *Adress_Data)
{
uchar i;
uchar Data_Word;
LCD_WriteCom(Adress_Com);
for(i=0;i<Num_Adat;i++)
{
Data_Word=*Adress_Data;
LCD_WriteData(Data_Word);
Adress_Data++;
}
}
/***************1602函數(shù)*******************/
void LCD_WriteData(uchar LCD_1602_DATA) /********LCD1602數(shù)據(jù)寫入***********/
{
delay5ms(); //操作前短暫延時,保證信號穩(wěn)定
LCD_E=0;
LCD_RS=1;
LCD_RW=0;
_nop_();
LCD_E=1;
LCD_DATA=LCD_1602_DATA;
LCD_E=0;
LCD_RS=0;
}
/********LCD1602命令寫入***********/
void LCD_WriteCom(uchar LCD_1602_COM)
{
delay5ms();//操作前短暫延時,保證信號穩(wěn)定
LCD_E=0;
LCD_RS=0;
LCD_RW=0;
_nop_();
LCD_E=1;
LCD_DATA=LCD_1602_COM;
LCD_E=0;
LCD_RS=0;
}
void InitLcd()
{
delay5ms();
delay5ms();
LCD_WriteCom(0x38); //display mode
LCD_WriteCom(0x38); //display mode
LCD_WriteCom(0x38); //display mode
LCD_WriteCom(0x06); //顯示光標移動位置
LCD_WriteCom(0x0c); //顯示開及光標設(shè)置
LCD_WriteCom(0x01); //顯示清屏
delay5ms();
delay5ms();
}
void delay5ms(void) //誤差 0us
{
unsigned char a,b;
for(b=185;b>0;b--)
for(a=12;a>0;a--);
}
復(fù)制代碼
基于51單片機的無線投票表決器程序設(shè)計.rar
2017-6-11 10:06 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
17.02 KB, 下載次數(shù): 16, 下載積分: 黑幣 -5
歡迎光臨 (http://m.izizhuan.cn/bbs/)
Powered by Discuz! X3.1
日韩电影第一页
|
亚洲熟女一区二区
|
日韩免费不卡av
|
欧美久久久久免费
|
久久久午夜精品
|
欧美一区网站
|
成人在线视频国产
|
日本视频在线免费观看
|
九九爱在线视频观看免费视频
|
中文字幕一区二区免费
|
国产jjizz一区二区三区视频
|
国产成人精品视频免费看
|
精品不卡在线
|
日韩女优人人人人射在线视频
|
亚洲精品www
|
欧美性猛交xxxx富婆弯腰
|
成人性视频网站
|
亚洲精品1区
|
欧美禁忌电影
|
xxxxx.日韩
|
成人av福利
|
视频在线91
|
黑料不打烊so导航
|
亚洲日本电影
|
av片在线免费
|
9a蜜桃久久久久久免费
|
国产69精品久久久久99
|
亚洲欧美精品伊人久久
|
欧美日本在线视频
|
亚洲一二三区在线观看
|
91看片淫黄大片一级在线观看
|
久久蜜桃资源一区二区老牛
|
精品不卡一区
|
精品视频在线播放一区二区三区
|
xxx.xxx欧美
|
午夜伦理在线
|
亚在线播放中文视频
|
国产大学生自拍
|
成人啪啪18免费游戏链接
|
欧美极品欧美精品欧美
|
欧美中文字幕第一页
|
国产一区二区三区丝袜
|
欧美一区二区不卡视频
|
亚洲va国产天堂va久久en
|
欧美激情一区二区三区不卡
|
人禽交欧美网站免费
|
亚洲tv在线观看
|
国产成人免费av
|
欧美精品电影免费在线观看
|
日韩一区二区三区三四区视频在线观看
|
亚洲电影在线播放
|
一区二区三区在线视频观看
|
国产精品不卡在线
|
国产精品久久久爽爽爽麻豆色哟哟
|
99久久亚洲一区二区三区青草
|
国产一区在线观看麻豆
|
日本91福利区
|
日本成人在线电影网
|
天堂一区二区在线
|
爽爽淫人综合网网站
|
99精品视频免费观看视频
|
午夜国产精品视频
|
亚洲国内自拍
|
久久精品伊人
|
青青草国产成人av片免费
|
精品国产百合女同互慰
|
日韩欧美色综合
|
制服视频三区第一页精品
|
欧美日韩极品在线观看一区
|
欧美高清视频不卡网
|
国产精品日本
|
一区二区影视
|
亚洲大胆视频
|
久久综合导航
|
国产乱码精品一区二区三区忘忧草
|
精品一区二区在线免费观看
|
国产精品主播直播
|
91在线观看视频
|
久久不射2019中文字幕
|
久久久777
|
韩国成人在线视频
|
bt欧美亚洲午夜电影天堂
|
久久久99精品免费观看
|
亚洲视频在线一区观看
|
欧美色视频日本高清在线观看
|
色婷婷国产精品综合在线观看
|
欧美午夜电影一区
|
在线播放国产精品二区一二区四区
|
91麻豆精品国产91
|
日韩av在线影院
|
久久影院中文字幕
|
日本老师69xxx
|
亚洲最大的成人网
|
亚洲国产欧美日韩
|
99在线精品免费视频
|
亚洲视频一二三四
|
亚洲成人av免费在线观看
|
老司机福利在线观看
|
国产一级一片免费播放放a
|
欧美性受xxx黑人xyx性爽
|
亚洲第一免费视频
|
国产精品爱久久久久久久小说
|
麻豆美女网站
|
国产精品影院在线
|
户外露出一区二区三区
|
国产精品qvod
|
国产精品草草
|
国产精品一品视频
|
亚洲欧美一区二区不卡
|
欧美日韩在线播
|
中文字幕亚洲欧美日韩高清
|
日本欧美国产在线
|
久久人人爽爽人人爽人人片av
|
成年人三级视频
|
欧美成人三级在线播放
|
五月婷婷欧美激情
|
国产精品午夜一区二区
|
欧美亚洲另类在线观看
|
国产精品久久久久久精
|
av网站网址在线观看
|
国产一区2区在线观看
|
亚洲精品网址
|
刘亦菲一区二区三区免费看
|
日本高清在线观看wwwww色
|
亚洲优女在线
|
国产精品一区二区三区av麻
|
久久精品三级
|
国产精品国产a级
|
91精品国产91久久久久久一区二区
|
国产精品久久久久久久av电影
|
一区二区久久精品66国产精品
|
综合欧美亚洲
|
在线播放日韩
|
91亚洲精品乱码久久久久久蜜桃
|
性欧美疯狂xxxxbbbb
|
亚洲激情在线观看
|
国产精品久久77777
|
国产又爽又黄ai换脸
|
国产三级精品三级在线
|
九九久久免费视频
|
久久久久免费网站
|
亚洲女人天堂在线
|
久久精品国产精品亚洲毛片
|
欧美破处大片在线视频
|
久久精品一区四区
|
日韩欧美在线观看一区二区三区
|
性欧美xxxx
|
最新视频 - x88av
|
免费污网站在线观看
|
99国产精品一区二区三区
|
www污污网站在线看
|
国产精品一品
|
女主播福利一区
|
中文字幕第一页久久
|
国产视频久久久久
|
99精品国产一区二区
|
爱情岛论坛成人
|
国产特黄大片aaaa毛片
|
小视频在线播放
|
wwww亚洲
|
精品av久久久久电影
|
亚洲日本电影在线
|
中文字幕无线精品亚洲乱码一区
|
男人天堂一区二区
|
在线免费毛片
|
亚洲一区二区三区在线免费
|
日本不卡一区二区
|
色悠悠久久综合
|
欧美精品videosex极品1
|
亚洲美女激情视频
|
亚洲在线免费看
|
亚洲免费av一区
|
国产一区二区网站
|
波多野结衣av在线播放
|
色综合久久久
|
久久超级碰视频
|
欧美一区二区三区喷汁尤物
|
成人免费xxxxx在线观看
|
中文字幕22页
|
国产成人av免费看
|
毛片在线能看
|
久久五月天小说
|
亚洲精品视频一区
|
久久久欧美精品
|
99999精品视频
|
国产精品成人久久久
|
国产美女极品在线
|
青青视频一区二区
|
国产精品天美传媒
|
欧美成在线视频
|
久久精品免费一区二区
|
久草热在线观看
|
视频黄页在线
|
99久久精品费精品国产风间由美
|
亚洲精品免费在线播放
|
欧美亚洲成人xxx
|
亚洲欧美自拍另类日韩
|
亚洲国产综合网
|
国产在线高清视频
|
在线观看日韩av电影
|
日本韩国欧美三级
|
国产不卡一区二区在线观看
|
91久久免费视频
|
国产精品欧美韩国日本久久
|
在线成人视屏
|
成人av网站免费
|
日韩在线免费观看视频
|
好吊妞无缓冲视频观看
|
亚洲字幕av一区二区三区四区
|
精华区一区二区三区
|
亚洲性人人天天夜夜摸
|
欧美日韩日本视频
|
日本一区二区三区免费看
|
五月婷婷一区二区
|
影音先锋可以看的网站
|
日韩综合精品
|
欧美在线观看18
|
蜜桃av久久久亚洲精品
|
久久久一区二区三区四区
|
欧美写真视频一区
|
国语对白精品一区二区
|
欧美人妖巨大在线
|
亚洲午夜在线观看
|
国产乱码77777777
|
国产免费a∨片在线观看不卡
|
激情欧美一区
|
欧美精品一区二区精品网
|
特级黄色录像片
|
国产成人精品一区二区无码呦
|
黄视频在线免费看
|
成人黄色综合网站
|
97在线看福利
|
男生裸体视频网站
|
成人av小说网
|
91精彩在线视频
|
国产精品婷婷
|
亚洲精品小视频
|
无码aⅴ精品一区二区三区浪潮
|
天天干在线观看
|
成人国产精选
|
亚洲欧美一区二区三区极速播放
|
久久精品国产亚洲一区二区
|
91极品尤物在线播放国产
|
欧美a一片xxxx片
|
奇米777国产一区国产二区
|
福利视频一区二区
|
亚洲精品欧洲精品
|
亚洲精品.www
|
91精品一久久香蕉国产线看观看
|
亚洲男人的天堂网
|
精品蜜桃一区二区三区
|
www.国产成人
|
av成人福利
|
国产精品第四页
|
国产精品一区二区三区精品
|
污污片在线免费视频
|
成人性生交大片免费
|
7m第一福利500精品视频
|
丰满的亚洲女人毛茸茸
|
你懂的免费在线观看视频网站
|
麻豆一区二区三
|
97激碰免费视频
|
亚洲综合视频网站
|
av在线免费观看网
|
99久久99久久精品免费观看
|
久热精品在线视频
|
爱爱的免费视频
|
在线理论视频
|
国产激情精品久久久第一区二区
|
日本久久久久久久
|
久久网免费视频
|
成人观看网址
|
亚洲综合清纯丝袜自拍
|
日韩偷拍一区二区
|
亚洲综合在线免费
|
国产中文精品久高清在线不
|
亚洲国产精品嫩草影院久久
|
中文字幕在线视频一区二区三区
|
www.天堂乱色
|
日韩中文字幕麻豆
|
日韩美女主播视频
|
成人毛片一区二区三区
|
亚洲成人高清
|
欧美高清hd18日本
|
97人人爽人人
|
日韩黄色网址
|
国产成人精品免费看
|
亚洲r级在线观看
|
国产又粗又猛又黄又爽
|
成人自拍在线
|
亚洲国产日韩欧美在线图片
|
理论片大全免费理伦片
|
黄色av网址在线免费观看
|
91麻豆国产在线观看
|
久久99欧美
|
中文字幕先锋av影音资源网
|
我不卡伦不卡影院
|
欧美理论电影在线观看
|
国产在线视频卡一卡二
|
成人免费毛片嘿嘿连载视频…
|
精品视频一区二区三区免费
|
亚洲xxx在线观看
|
亚洲嫩模一区
|
欧美国产激情二区三区
|
偷拍盗摄高潮叫床对白清晰
|
秋霞午夜剧场
|
久久99蜜桃精品
|
高清av免费一区中文字幕
|
亚洲黄色在线观看视频
|
小说区亚洲自拍另类图片专区
|
日韩最新免费不卡
|
国产精品第九页
|
欧美高清一级片
|
亚洲日本中文字幕免费在线不卡
|
亚洲精品成人av久久
|
深爱激情五月婷婷
|
国产一区二区三区四区三区四
|
4p变态网欧美系列
|
国产一区二区女内射
|
操欧美老女人
|
97免费视频在线
|
国产精品国产一区二区三区四区
|
精品一区二区三区中文字幕
|
亚洲第一视频网站
|
亚洲女同二女同志奶水
|
你懂得影院夜精品a
|
欧美一区二区三区在线
|
51调教丨国产调教视频
|
毛片在线网站
|
日韩一区二区不卡
|
欧洲美熟女乱又伦
|
国产韩日精品
|
日韩精品日韩在线观看
|
青青操视频在线播放
|
国产成年精品
|
色吧影院999
|
成人精品在线看
|
国产探花在线精品一区二区
|
欧美成人午夜激情视频
|
影音先锋黄色网址
|
日韩中文首页
|
91精品久久久久久久久青青
|
最新中文乱码字字幕在线
|
天堂蜜桃91精品
|
日本一区二区在线视频
|
4kfree性满足欧美hd18
|
成人免费小视频
|
91免费视频污
|
中国色在线日|韩
|
日韩国产一区三区
|
中文字幕一区二区三区精品
|
精品国产不卡
|
国产欧美va欧美va香蕉在线
|
亲爱的老师6电影韩剧
|
国产精品影视网
|
17c丨国产丨精品视频
|
欧洲亚洲在线
|
欧美伊人久久久久久久久影院
|
国产免费一区二区三区网站免费
|
日韩午夜视频在线
|
久久久成人av
|
99国产精品99
|
喷水一区二区三区
|
992tv成人免费观看
|
成人精品一区二区
|
91精选在线观看
|
久久久美女视频
|
国产精品精品
|
国产精品视频一区二区三区经
|
四虎成人在线视频
|
亚洲国产一区二区a毛片
|
日本丰满少妇裸体自慰
|
日韩高清在线观看一区二区
|
午夜精品久久久99热福利
|
中文字幕麻豆
|
99久久99久久综合
|
日本77777
|
3d欧美精品动漫xxxx无尽
|
深夜福利国产精品
|
成人综合社区
|
久久亚洲一级片
|
亚洲欧美日本一区二区
|
欧美啪啪网站
|
欧美一区二区三区精品电影
|
国产精品自产拍在线网站
|
国产精品无码永久免费888
|
亚洲视频 中文字幕
|
盗摄系列偷拍视频精品tp
|
国产欧美日韩丝袜精品一区
|
影音av资源站
|
色狠狠色狠狠综合
|
国产女片a归国片aa
|
综合av在线
|
在线成人性视频
|
caoporn97在线视频
|
日韩在线视频免费观看
|
四虎永久免费
|
亚洲视频一区二区免费在线观看
|
国产成人福利在线
|
国产精品99久久
|