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

正文內容

基于單片機的無線防盜系統畢業(yè)設(編輯修改稿)

2025-07-16 17:38 本頁面
 

【文章內容簡介】 WRITE_REG 0x20 // 寫寄存器指令define RD_RX_PLOAD 0x61 // 讀取接收數據指令define WR_TX_PLOAD 0xA0 // 寫待發(fā)數據指令define FLUSH_TX 0xE1 // 沖洗發(fā)送 FIFO指令define FLUSH_RX 0xE2 // 沖洗接收 FIFO指令define REUSE_TX_PL 0xE3 // 定義重復裝載數據指令define NOP 0xFF // 保留//*************************************SPI(nRF24L01)寄存器地址****************************************************define CONFIG 0x00 // 配置收發(fā)狀態(tài),CRC校驗模式以及收發(fā)狀態(tài)響應方式define EN_AA 0x01 // 自動應答功能設置define EN_RXADDR 0x02 // 可用信道設置define SETUP_AW 0x03 // 收發(fā)地址寬度設置define SETUP_RETR 0x04 // 自動重發(fā)功能設置define RF_CH 0x05 // 工作頻率設置define RF_SETUP 0x06 // 發(fā)射速率、功耗功能設置define STATUS 0x07 // 狀態(tài)寄存器define OBSERVE_TX 0x08 // 發(fā)送監(jiān)測功能define CD 0x09 // 地址檢測define RX_ADDR_P0 0x0A // 頻道0接收數據地址define RX_ADDR_P1 0x0B // 頻道1接收數據地址define RX_ADDR_P2 0x0C // 頻道2接收數據地址define RX_ADDR_P3 0x0D // 頻道3接收數據地址define RX_ADDR_P4 0x0E // 頻道4接收數據地址define RX_ADDR_P5 0x0F // 頻道5接收數據地址define TX_ADDR 0x10 // 發(fā)送地址寄存器define RX_PW_P0 0x11 // 接收頻道0接收數據長度define RX_PW_P1 0x12 // 接收頻道0接收數據長度define RX_PW_P2 0x13 // 接收頻道0接收數據長度define RX_PW_P3 0x14 // 接收頻道0接收數據長度define RX_PW_P4 0x15 // 接收頻道0接收數據長度define RX_PW_P5 0x16 // 接收頻道0接收數據長度define FIFO_STATUS 0x17 // FIFO棧入棧出狀態(tài)寄存器設置//uchar TX_ADDRESS[TX_ADR_WIDTH]= {0x01,0x20,0x20,0x20,0x20}。 //本地地址//uchar RX_ADDRESS[RX_ADR_WIDTH]= {0x01,0x20,0x20,0x20,0x20}。 //接收地址uchar TX_ADDRESS1[RX_ADR_WIDTH]={0x02,0x20,0x20,0x20,0x20}。 //本地地址1uchar bdata sta。 //狀態(tài)標志sbit RX_DR =sta^6。sbit TX_DS =sta^5。sbit MAX_RT =sta^4。/******************************************************************************************/*延時函數/******************************************************************************************/void inerDelay_us(unsigned char n){for(。n0。n)_nop_()。}/****************************************************************************************************/*函數:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI寫時序/****************************************************************************************************/uint SPI_RW(uint ucharx){uint bit_ctr。for(bit_ctr=0。bit_ctr8。bit_ctr++) // output 8bit{MOSI = (ucharx amp。 0x80)。 // output 39。uchar39。, MSB to MOSIucharx = (ucharx 1)。 // shift next bit into MSB..SCK = 1。 // Set SCK high..ucharx |= MISO。 // capture current MISO bitSCK = 0。 // ..then set SCK low again}return(ucharx)。 // return read uchar}/*********************************************************************************************************/*函數:uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能: 用于寫數據:為寄存器地址,pBuf:為待寫入數據地址,uchars:寫入數據的個數 /*********************************************************************************************************/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_ctruchars。 uchar_ctr++) //SPI_RW(*pBuf++)。CSN = 1。 //關閉SPIreturn(status)。 //}/****************************************************************************************************//*功能:NRF24L01讀寫寄存器函數/****************************************************************************************************/uint SPI_RW_Reg(uchar reg, uchar value){uint status。CSN = 0。 // CSN low, init SPI transactionstatus = SPI_RW(reg)。 // select registerSPI_RW(value)。 // ..and write value to it..CSN = 1。 // CSN high againreturn(status)。 // return nRF24L01 status uchar}/***********************************************************************************************************/*函數:void nRF24L01_TxPacket(unsigned char * tx_buf)/*功能:發(fā)送 tx_buf中數據/**********************************************************************************************************/void nRF24L01_TxPacket(uchar * tx_buf){CE=0。 //StandBy I模式SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, TX_ADDRESS1, TX_ADR_WIDTH)。 // 裝載接收端地址 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH)。 // 裝載數據// SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。CE=0。 // IRQ收發(fā)完成中斷響應,16位CRC,主發(fā)送CE=1。 //置高CE,激發(fā)數據發(fā)送inerDelay_us(70)。CE=0。CE=1。inerDelay_us(70)。}void init_NRF24L01(void){inerDelay_us(100)。CE=0。 // chip enableCSN=1。 // Spi disableSCK=0。 // Spi clock line init highSPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS1, TX_ADR_WIDTH)。 // 寫本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS1, TX_ADR_WIDTH)。 // 寫接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x03)。 // 頻道0和頻道1自動 ACK應答允許 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x03)。 // 允許接收地址有頻道0和頻道1SPI_RW_Reg(WRITE_REG + RF_CH, 0)。 // ,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH)。 //設置0通道接收數據長度,本次設置為5字節(jié)SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH)。 //設置1通道接收數據長度,本次設置為5字節(jié)SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 //設置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dBSPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。 // IRQ收發(fā)完成中斷響應,16位CRC ,主發(fā)送CE=1。}//*************************此部分為人體接近模塊主函數************************//*****************************************************************************includesbit led=P3^7。sbit hw=P3^4。define led_on() led=0define led_off() led=1void delay_ms(uint x){uchar i,j。while(x){for(i=0。i4。i++)for(j=0。jj++)。}}void main(){uchar tx_buf[]={1,1,1}。// uchar TX[]={0,0,0}。hw=1。led_off()。init_NRF24L01()。while(1){if(hw==1){delay_ms(100)。led_on()。nRF24L01_TxPacket(tx_buf)。delay_ms(100)。led_off()。SPI_RW_Reg(WRITE_REG+STATUS,0XFF)。 //清除標志}}} 主機模塊C代碼/************************************************/ /////////// LCD顯示驅動函數 ************************************************/ include include define uchar unsigned chardefine uint unsigned int/********595引腳定義**********/sbit SCLK=P1^0。sbit RCK=P1^2。sbit SI=P1^1。/********LCD引腳定義*********/sbit rs = P1^5。sbit rw = P1^4。sbit ep = P1^3。/********MS級延時函數*****************/delay_ms(uchar ms){ // 延時子程序uchar i。while(ms){for(i = 0。 i i++){_nop_()。_nop_()。_nop_()。_nop_()。}}}/***********74HC595驅動函數*****************
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1