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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usbfortest.c

?? 24l01無線模塊的C51的發(fā)送程序
?? C
字號:
/*福州天虹電腦科技有限公司 蘇秋錦2011年2月*/
#include <reg51.h> 
#include <max7219.h>
//#include <74Ls165.h>
#include <api.h>

/*數(shù)據(jù)字顯示說明*/
//10-A|11-b|12-c|13-d|14-e|15-F|16-H|17-J|18-L|19-n|20-P|21-q|22-U|23-[|24-]|25--|26-=|27-三橫|28-┤|29-├|30-E|31-h|31-空|33-N



#define uchar unsigned char

/***************************************************/
#define TX_ADR_WIDTH   5  // 5字節(jié)寬度的發(fā)送/接收地址
#define TX_PLOAD_WIDTH 4  // 數(shù)據(jù)通道有效數(shù)據(jù)寬度
#define LED P2

uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01};  // 定義一個靜態(tài)發(fā)送地址
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;
/**************************************************/

/**************************************************
函數(shù): init_io()

描述:
    初始化IO
/**************************************************/
void init_io(void)
{
	CE  = 0;        // 待機
	CSN = 1;        // SPI禁止
	SCK = 0;        // SPI時鐘置低
	IRQ = 1;        // 中斷復(fù)位
	LED = 0xff;		// 關(guān)閉指示燈
}
/**************************************************/

/**************************************************
函數(shù):delay_ms()

描述:
    延遲x毫秒
/**************************************************/
void delay_ms(uchar x)
{
    uchar i, j;
    i = 0;
    for(i=0; i<x; i++)
    {
       j = 250;
       while(--j);
	   j = 250;
       while(--j);
    }
}
/**************************************************/

/**************************************************
函數(shù):SPI_RW()

描述:
    根據(jù)SPI協(xié)議,寫一字節(jié)數(shù)據(jù)到nRF24L01,同時從nRF24L01
	讀出一字節(jié)
/**************************************************/
uchar SPI_RW(uchar byte)
{
	uchar i;
   	for(i=0; i<8; i++)          // 循環(huán)8次
   	{
   		MOSI = (byte & 0x80);   // byte最高位輸出到MOSI
   		byte <<= 1;             // 低一位移位到最高位
   		SCK = 1;                // 拉高SCK,nRF24L01從MOSI讀入1位數(shù)據(jù),同時從MISO輸出1位數(shù)據(jù)
   		byte |= MISO;       	// 讀MISO到byte最低位
   		SCK = 0;            	// SCK置低
   	}
    return(byte);           	// 返回讀出的一字節(jié)
}
/**************************************************/

/**************************************************
函數(shù):SPI_RW_Reg()

描述:
    寫數(shù)據(jù)value到reg寄存器
/**************************************************/
uchar SPI_RW_Reg(uchar reg, uchar value)
{
	uchar status;
  	CSN = 0;                   // CSN置低,開始傳輸數(shù)據(jù)
  	status = SPI_RW(reg);      // 選擇寄存器,同時返回狀態(tài)字
  	SPI_RW(value);             // 然后寫數(shù)據(jù)到該寄存器
  	CSN = 1;                   // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(status);            // 返回狀態(tài)寄存器
}
/**************************************************/

/**************************************************
函數(shù):SPI_Read()

描述:
    從reg寄存器讀一字節(jié)
/**************************************************/
uchar SPI_Read(uchar reg)
{
	uchar reg_val;
  	CSN = 0;                    // CSN置低,開始傳輸數(shù)據(jù)
  	SPI_RW(reg);                // 選擇寄存器
  	reg_val = SPI_RW(0);        // 然后從該寄存器讀數(shù)據(jù)
  	CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(reg_val);            // 返回寄存器數(shù)據(jù)
}
/**************************************************/

/**************************************************
函數(shù):SPI_Read_Buf()

描述:
    從reg寄存器讀出bytes個字節(jié),通常用來讀取接收通道
	數(shù)據(jù)或接收/發(fā)送地址
/**************************************************/
uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes)
{
	uchar status, i;
  	CSN = 0;                    // CSN置低,開始傳輸數(shù)據(jù)
  	status = SPI_RW(reg);       // 選擇寄存器,同時返回狀態(tài)字
  	for(i=0; i<bytes; i++)
    	pBuf[i] = SPI_RW(0);    // 逐個字節(jié)從nRF24L01讀出
  	CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(status);             // 返回狀態(tài)寄存器
}
/**************************************************/

/**************************************************
函數(shù):SPI_Write_Buf()

描述:
    把pBuf緩存中的數(shù)據(jù)寫入到nRF24L01,通常用來寫入發(fā)
	射通道數(shù)據(jù)或接收/發(fā)送地址
/**************************************************/
uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes)
{
	uchar status, i;
  	CSN = 0;                    // CSN置低,開始傳輸數(shù)據(jù)
  	status = SPI_RW(reg);       // 選擇寄存器,同時返回狀態(tài)字
  	for(i=0; i<bytes; i++)
    	SPI_RW(pBuf[i]);        // 逐個字節(jié)寫入nRF24L01
  	CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(status);             // 返回狀態(tài)寄存器
}
/**************************************************/

/**************************************************
函數(shù):RX_Mode()

描述:
    這個函數(shù)設(shè)置nRF24L01為接收模式,等待接收發(fā)送設(shè)備的數(shù)據(jù)包
/**************************************************/
void RX_Mode(void)
{
	CE = 0;
  	SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 接收設(shè)備接收通道0使用和發(fā)送設(shè)備相同的發(fā)送地址
  	SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);               // 使能接收通道0自動應(yīng)答
  	SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);           // 使能接收通道0
  	SPI_RW_Reg(WRITE_REG + RF_CH, 40);                 // 選擇射頻通道0x40
  	SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // 接收通道0選擇和發(fā)送通道相同有效數(shù)據(jù)寬度
  	SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);            // 數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益
  	SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);              // CRC使能,16位CRC校驗,上電,接收模式
  	CE = 1;                                            // 拉高CE啟動接收設(shè)備
}
/**************************************************/

/**************************************************
函數(shù):TX_Mode()

描述:
    這個函數(shù)設(shè)置nRF24L01為發(fā)送模式,(CE=1持續(xù)至少10us),
	130us后啟動發(fā)射,數(shù)據(jù)發(fā)送結(jié)束后,發(fā)送模塊自動轉(zhuǎn)入接收
	模式等待應(yīng)答信號。
/**************************************************/
void TX_Mode(uchar * BUF)
{
	CE = 0;
  	SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);     // 寫入發(fā)送地址
  	SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 為了應(yīng)答接收設(shè)備,接收通道0地址和發(fā)送地址相同
  	SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH);                  // 寫數(shù)據(jù)包到TX FIFO
  	SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);       // 使能接收通道0自動應(yīng)答
  	SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);   // 使能接收通道0
  	SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a);  // 自動重發(fā)延時等待250us+86us,自動重發(fā)10次
  	SPI_RW_Reg(WRITE_REG + RF_CH, 40);         // 選擇射頻通道0x40
  	SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);    // 數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益
  	SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);      // CRC使能,16位CRC校驗,上電
	CE = 1;
}
/**************************************************/

/**************************************************
函數(shù):Check_ACK()

描述:
    檢查接收設(shè)備有無接收到數(shù)據(jù)包,設(shè)定沒有收到應(yīng)答信
	號是否重發(fā)
/**************************************************/
uchar Check_ACK(bit clear)
{
	while(IRQ);
	sta = SPI_RW(NOP);                    // 返回狀態(tài)寄存器
	if(MAX_RT)
		if(clear)                         // 是否清除TX FIFO,沒有清除在復(fù)位MAX_RT中斷標(biāo)志后重發(fā)
			SPI_RW(FLUSH_TX);
	SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除TX_DS或MAX_RT中斷標(biāo)志
	IRQ = 1;
	if(TX_DS)
		return(0x00);
	else
		return(0xff);
}
/**************************************************/

/**************************************************
函數(shù):CheckButtons()

描述:
    檢查按鍵是否按下,按下則發(fā)送一字節(jié)數(shù)據(jù)
/*************************************************
void CheckButtons()
{
	P2 |= 0x00;
	if(!(P2 & 0x01))		            // 讀取P2^0狀態(tài)
	{
		delay_ms(20);
		if(!(P2 & 0x01))			    // 讀取P2^0狀態(tài)
		{
			TX_BUF[0] = ~DATA;          // 數(shù)據(jù)送到緩存
			TX_Mode(TX_BUF);			// 把nRF24L01設(shè)置為發(fā)送模式并發(fā)送數(shù)據(jù)
			LED = ~DATA;		        // 數(shù)據(jù)送到LED顯示
			Check_ACK(1);               // 等待發(fā)送完畢,清除TX FIFO
			delay_ms(250);
			delay_ms(250);
			LED = 0xff;			        // 關(guān)閉LED
			RX_Mode();			        // 設(shè)置為接收模式
			while(!(P2 & 0x01));
			DATA <<= 1;
			if(!DATA)
				DATA = 0x01;
		}
	}
}		*/

/**************************************************/

/**************************************************
函數(shù):main()

描述:
    主函數(shù)
/**************************************************/
void main(void)
{	
	Init_Max7219();		          //初始化LED
    Disp_Max7219(25,25,25,25,25,25,25,25);	 //顯示LED
	init_io();		              // 初始化IO
	Beep_Right();

	RX_Mode();		              // 設(shè)置為接收模式

	while(1)
	{
	   //--------發(fā)送數(shù)據(jù)--------

      Disp_Max7219(5,14,19,13,32,32,32,32);	 //顯示SEND
			TX_BUF[0] = ~DATA;          // 數(shù)據(jù)送到緩存
			TX_Mode(TX_BUF);			// 把nRF24L01設(shè)置為發(fā)送模式并發(fā)送數(shù)據(jù)
			LED = ~DATA;		        // 數(shù)據(jù)送到LED顯示
			Check_ACK(1);               // 等待發(fā)送完畢,清除TX FIFO
            delay_l();
			delay_l();
			LED = 0xff;			        // 關(guān)閉LED
			RX_Mode();			        // 設(shè)置為接收模式

  		    DATA <<= 1;
			if(!DATA)
				DATA = 0x01;
									
      Disp_Max7219(25,25,25,25,25,25,25,25);	 //顯示LED

		sta = SPI_Read(STATUS);	  // 讀狀態(tài)寄存器
	    if(RX_DR)				  // 判斷是否接受到數(shù)據(jù)
		{
			SPI_Read_Buf(RD_RX_PLOAD, RX_BUF, TX_PLOAD_WIDTH);  // 從RX FIFO讀出數(shù)據(jù)
			flag = 1;
		}
		SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除RX_DS中斷標(biāo)志
		if(flag)		           // 接受完成
		{
			flag = 0;		       // 清標(biāo)志
			LED = RX_BUF[0];	   // 數(shù)據(jù)送到LED顯示
			delay_ms(250);
			delay_ms(250);
  			LED = 0xff;		       // 關(guān)閉LED
		}
	}
}
/**************************************************/



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线视频| ㊣最新国产の精品bt伙计久久| 91极品视觉盛宴| 成人动漫一区二区三区| 久久国产人妖系列| 精品在线一区二区| 色婷婷激情一区二区三区| 免费视频一区二区| 欧美aaaaaa午夜精品| 日韩激情在线观看| 日本午夜精品视频在线观看| 五月天亚洲精品| 日韩精品成人一区二区在线| 婷婷国产v国产偷v亚洲高清| 天堂成人国产精品一区| 日韩av电影免费观看高清完整版 | 宅男噜噜噜66一区二区66| 欧美视频在线观看一区二区| 欧美日韩久久一区二区| 欧美一区二区三区免费在线看 | 亚洲视频 欧洲视频| 亚洲天堂av一区| 亚洲黄色性网站| 亚洲电影视频在线| 日本vs亚洲vs韩国一区三区二区 | 亚洲日本乱码在线观看| 亚洲品质自拍视频| 亚洲福利一二三区| 蜜桃av噜噜一区二区三区小说| 久久成人久久鬼色| 国产精品系列在线观看| 91在线无精精品入口| 91国偷自产一区二区使用方法| 欧美三级韩国三级日本一级| 91麻豆精品国产91久久久久久 | 亚洲视频资源在线| 亚洲国产一区二区三区青草影视| 日本中文一区二区三区| 国产成人精品亚洲日本在线桃色 | 日韩欧美国产1| 国产三级精品视频| 亚洲老妇xxxxxx| 日韩高清不卡一区二区| 国产在线精品视频| 91视频在线观看免费| 欧美男人的天堂一二区| 久久综合久久综合九色| 国产精品久久久久久福利一牛影视| 亚洲一区二区在线播放相泽| 激情五月激情综合网| 成年人国产精品| 制服.丝袜.亚洲.中文.综合| 精品久久久久久久一区二区蜜臀| 国产精品三级电影| 日韩电影在线免费看| 国产精品888| 精品污污网站免费看| 久久精品视频免费观看| 亚洲一区二区三区国产| 国产成人av一区二区三区在线观看| 91福利国产成人精品照片| 亚洲精品在线一区二区| 亚洲免费av高清| 国产一区二区电影| 欧美日韩成人综合在线一区二区 | 偷拍一区二区三区| 国产成人精品免费网站| 7777精品伊人久久久大香线蕉超级流畅| 国产亚洲一本大道中文在线| 亚洲电影一级片| av日韩在线网站| 26uuu色噜噜精品一区二区| 亚洲综合色在线| 成人免费毛片嘿嘿连载视频| 日韩欧美一区二区在线视频| 亚洲精选视频在线| 懂色av一区二区三区免费看| 欧美一级午夜免费电影| 亚洲精品国产无套在线观| 国产激情91久久精品导航| 91精品国产综合久久香蕉麻豆| 亚洲天堂免费在线观看视频| 国产一区福利在线| 7777精品伊人久久久大香线蕉的 | 国产传媒欧美日韩成人| 欧美美女视频在线观看| 亚洲欧美日韩在线不卡| 风间由美性色一区二区三区| 日韩欧美中文字幕精品| 日本va欧美va精品| 欧美福利电影网| 亚洲成人av电影在线| 91久久精品一区二区三区| 国产精品国产三级国产a| 福利一区二区在线观看| 精品日韩在线观看| 日本不卡高清视频| 欧美一区二区久久| 日韩成人免费看| 欧美电影一区二区| 亚洲成人激情综合网| 欧美无砖专区一中文字| 亚洲在线视频免费观看| 在线看一区二区| 一区二区三区不卡视频| 一本到一区二区三区| 亚洲欧美怡红院| 99精品欧美一区| 亚洲男同1069视频| 色婷婷久久久久swag精品| 亚洲免费资源在线播放| 色综合久久精品| 亚洲一区在线观看视频| 欧美精品自拍偷拍| 五月激情综合色| 欧美一区二视频| 国内精品伊人久久久久影院对白| 欧美成人三级在线| 国产suv一区二区三区88区| 国产欧美一区二区三区鸳鸯浴| 国产99久久久国产精品潘金| 久久精品夜色噜噜亚洲a∨| 国产精品2024| 中文字幕欧美激情| 99久久国产免费看| 夜夜嗨av一区二区三区网页| 精品视频一区三区九区| 日本不卡免费在线视频| 久久综合狠狠综合久久综合88| 国产成人精品一区二区三区四区| 国产精品久久久久久亚洲伦 | 91麻豆精品久久久久蜜臀| 开心九九激情九九欧美日韩精美视频电影 | 欧美另类高清zo欧美| 久久黄色级2电影| 欧美激情一区二区三区不卡| 91啪亚洲精品| 五月天欧美精品| 久久久久久9999| 成人va在线观看| 亚洲第四色夜色| 精品国产乱码久久久久久影片| 风间由美一区二区三区在线观看 | 国产麻豆午夜三级精品| 国产精品成人免费精品自在线观看| 色综合一区二区| 日韩av一级电影| 国产日韩三级在线| 欧美午夜理伦三级在线观看| 日韩成人免费在线| 国产欧美日韩在线观看| 欧美揉bbbbb揉bbbbb| 国内精品国产成人国产三级粉色| 国产精品卡一卡二| 在线观看国产精品网站| 九九久久精品视频| 一区二区三区在线视频播放| 欧美一级xxx| 色哟哟国产精品免费观看| 蜜桃av噜噜一区| 亚洲精品综合在线| 久久免费视频色| 欧美日韩中文国产| 懂色av一区二区三区蜜臀 | 91久久久免费一区二区| 国模少妇一区二区三区| 亚洲午夜三级在线| 国产亚洲婷婷免费| 91精品国产综合久久久蜜臀粉嫩| 成人精品国产免费网站| 裸体一区二区三区| 亚洲综合偷拍欧美一区色| 国产欧美综合色| 精品久久久久久久久久久久久久久久久 | 天使萌一区二区三区免费观看| 亚洲国产精品v| 欧美一卡二卡在线观看| 在线视频欧美精品| 成人激情开心网| 韩国三级中文字幕hd久久精品| 午夜欧美一区二区三区在线播放| 国产精品区一区二区三| 日韩精品一区二区三区视频播放| 色婷婷综合久久久中文一区二区| 国产精品一区免费在线观看| 日韩国产成人精品| 亚洲无人区一区| 国产精品成人免费精品自在线观看| 久久蜜桃一区二区| 日韩免费性生活视频播放| 欧美日韩亚洲综合一区 | 国产精品色在线| 国产亚洲一区二区三区| 26uuu国产日韩综合| 日韩欧美激情一区| 在线播放视频一区| 欧美日韩一区二区三区在线| 色8久久人人97超碰香蕉987| 成人午夜私人影院| 国产成人亚洲综合色影视|