freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于nrf24l01的無線音樂播放器設(shè)計(jì)畢業(yè)論文-資料下載頁

2025-07-01 14:38本頁面

【導(dǎo)讀】本文介紹了一種基于nRF24l01的無線音樂播放器設(shè)計(jì)方案。通信技術(shù),設(shè)計(jì)的電路以單片機(jī)和無線通信模塊為核心,并輔以外圍電路。其工作過程是按鍵選擇后,通過無線模塊發(fā)射相應(yīng)的數(shù)據(jù),由另一無線模塊接收的數(shù)據(jù)后播放不同的音樂。該系統(tǒng)實(shí)現(xiàn)了無線控制。音樂播放器的歌曲播放選擇和歌曲名的顯示。本系統(tǒng)的優(yōu)點(diǎn)是電路簡單,性能可靠,實(shí)時(shí)性好,操作簡。單,編程容易等。

  

【正文】 用于寫數(shù)據(jù), reg為寄存器地址, pBuf為待寫入數(shù)據(jù)地址, bytes待入寫數(shù)據(jù)個(gè)數(shù) /**************************************************/ uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes) { uchar status,byte_ctr。 CSN = 0。 status = SPI_RW(reg)。 for(byte_ctr=0。 byte_ctrbytes。 byte_ctr++) SPI_RW(*pBuf++)。 CSN = 1。 return(status)。 } /**************************************************/ void RF_INIT(void) { SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。 // 寫本地地址 nRF24L01 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)。 // 寫接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x00)。 // 頻道 0自動(dòng)應(yīng)答, Ack應(yīng)答允許 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01)。 // 允許接收地址只有頻道 0 SPI_RW_Reg(WRITE_REG + RF_CH, 40)。 // 設(shè)置信道工作在 ,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 // 發(fā)射功率最大值 0dBm, 發(fā)射速率 :1Mbps, LNA_HCURR低噪聲放大器增益 SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH)。 // 設(shè)置接收數(shù)據(jù)長度和發(fā)射數(shù)據(jù)長度一致 } /*****************************發(fā)送設(shè)置 *******************************/ void TX_Mode1(void) { CE=0。 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH)。 // 寫數(shù)據(jù)到 SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。 // PWR_UP上電 , 2字節(jié) CRC校驗(yàn), 本科畢業(yè)論文 30 設(shè)置為發(fā)送模式 CE=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 CE=0。 } /***********************************主函數(shù) ******************************/ void main() { init_io()。 RF_INIT()。 while(1) { uchar temp。 temp=P2。 temp=temp amp。 0x0f。 //讀入并屏蔽掉高位 if (temp!=0x0f) //說明有鍵輸入 ; { delay_ms(20)。 //延時(shí) 20MS, 消除鍵盤抖動(dòng) ; temp=P2。 temp=temp amp。 0x0f。 if (temp!=0x0f) //有鍵 { temp=P2。 temp=temp amp。 0x0f。 switch(temp) // switch是散轉(zhuǎn)指令 , 是根據(jù) temp的內(nèi)容而跳轉(zhuǎn) { case 0x0e: tx_buf[0]=0XFF。 break。 case 0x0d: tx_buf[0]=0XFE。 break。 case 0x0b: tx_buf[0]=0XFD。 本科畢業(yè)論文 31 break。 case 0x07: tx_buf[0]=0XFC。 break。 default:break。 } } } if(!(tx_buf[0]==0x00)) { TX_Mode1()。 delay_ms(2)。 SPI_RW_Reg(FLUSH_TX,0)。 SPI_RW_Reg(WRITE_REG+STATUS,0xff)。 tx_buf[0]=0x00。 } } } 2. 接收 程序代碼: include include include include include unsigned char temp。 unsigned char timer0h,timer0l,time。 unsigned char k,key,ST。 /***************************************************/ define uint unsigned int define uchar unsigned char define TX_ADR_WIDTH 5 // 5 字節(jié) TX(RX) 地址寬度 define TX_PLOAD_WIDTH 1 // 1字節(jié)發(fā)送數(shù)據(jù)寬度 uchar const TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}。 //定義一個(gè)靜態(tài)發(fā)射地址 TX_ADDRESS uchar rx_buf[TX_PLOAD_WIDTH]。 uchar tx_buf[TX_PLOAD_WIDTH]={0x00}。 /***************IO端口定義 ***********************************/ sbit CE = P1^0。 sbit SCK= P1^1。 本科畢業(yè)論文 32 sbit MISO= P1^2。 sbit IRQ = P1^3。 sbit MOSI= P1^4。 sbit CSN= P1^5。 sbit BELL=P2^0。//蜂鳴器 /***************狀態(tài)標(biāo)志 ***********************************/ uchar bdata sta。//可位尋址的單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器 sbit RX_DR =sta^6。 sbit TX_DS =sta^5。 sbit MAX_RT =sta^4。 /******************初始化 SPI********************************/ void init_io(void) { CE=0。 // 芯片使能 CSN=1。 // 片選 SCK=0。 // 啟動(dòng)時(shí)鐘 } /*********************************毫秒延時(shí) **********************/ void delay_ms(unsigned int x) { unsigned int i,j。 i=0。 for(i=0。ix。i++) { j=100。 while(j)。 } } /************************************************** 函數(shù) : SPI_RW()。NRF24L01的 SPI寫時(shí)序 功能 : 根據(jù) SPI協(xié)議向 nRF24L01寫入一個(gè)字節(jié)數(shù)據(jù),并在寫數(shù)據(jù)時(shí)返回讀取的 nRF24L01的數(shù)據(jù) /**************************************************/ uchar SPI_RW(uchar byte) { uchar bit_ctr。 for(bit_ctr=0。bit_ctr8。bit_ctr++) { 本科畢業(yè)論文 33 MOSI = (byte amp。 0x80)。 byte = (byte 1)。 SCK = 1。 byte |= MISO。 SCK = 0。 } return(byte)。 } /************************************************** 函數(shù) : SPI_RW_Reg()。 功能: 把 value 值寫入 reg寄存器 /**************************************************/ uchar SPI_RW_Reg(uchar reg, uchar value) { uchar status。 CSN = 0。 // CSN低 , SPI使能 status = SPI_RW(reg)。 //選擇寄存器 SPI_RW(value)。 // 寫入 value值 CSN = 1。 // CSN為高, SPI關(guān)閉 return(status)。 // 返回 nRF24L01狀態(tài)寄存器的值 } /************************************************** 函數(shù) : SPI_Read()。 功能 : 從 NRF24L01的 reg寄存器讀一個(gè)字節(jié)數(shù)據(jù) /**************************************************/ uchar SPI_Read(uchar reg) { uchar reg_val。 CSN = 0。 SPI_RW(reg)。 reg_val = SPI_RW(0)。 CSN = 1。 return(reg_val)。 } /************************************************** 函數(shù) : SPI_Read_Buf()。 功能 : 本科畢業(yè)論文 34 用于接收時(shí)讀取 FIFO緩沖區(qū)中的值, reg為寄存器地址, pBuf為待讀出數(shù)據(jù)地址,bytes讀出數(shù)據(jù)個(gè)數(shù) /**************************************************/ uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bytes) { uchar status,byte_ctr。 CSN = 0。 status = SPI_RW(reg)。 for(byte_ctr=0。byte_ctrbytes。byte_ctr++) pBuf[byte_ctr] = SPI_RW(0)。 CSN = 1。 return(status)。 } /*************************************
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1