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

正文內(nèi)容

智能家居系統(tǒng)設計定稿畢業(yè)論文-資料下載頁

2025-06-28 04:46本頁面
  

【正文】 INEW SMS message indication(顯示新收到的短消息) AT+CPMSPreferred SMS message storage(選擇短信息內(nèi)存)AT+CSCASMS service center address(短消息中心地址)AT+CSCBSelect cell broadcast message messages(選擇蜂窩廣播消息)AT+CSMPSet SMS text mode parameters(設置短信息文本模式參數(shù))AT+CSMPSelect Message Service (選擇短信息服務) 短消息接收子程序設計系統(tǒng)短信接受程序其實就用單片機讀取TC35I的SIM卡內(nèi)新信息的過程。當從短信卡內(nèi)讀取短信息時,首先就是設定短信收發(fā)模式,本次設計使用TEXT模式,然后發(fā)送相應的AT指令,這里使用AT+CMGL指令查詢,在通過AT+CMGR指令讀取。從Text格式中獲取短信信息,在根據(jù)TEXT模式短信格式,提取里面的信息。比對是否是目標手機發(fā)來的控制信息,若是則提取出控制命令,再通過nRF24L01模塊將控制信息發(fā)到輔助控模塊。根據(jù)短信內(nèi)容做出相應的控制操作。具體C語言程序見附錄。這就是短信接受流程,具體的程序流程如圖38所示。C語言程序流程為:(1)發(fā)送AT配置指令使其以TEXT模式收發(fā)信息:USART1_Puts(AT+CMGF=1\r)。(2)發(fā)送AT指令查詢是否有未讀短消息: USART1_Puts(“AT+CMGL=REC UNREAD\r”)。(3)如果有短消息則根據(jù)返回信息發(fā)送讀取AT指令: USART1_Puts(“AT+CMGR=n\r”)。 n為返回的信息位號(4)根據(jù)接受到的來自串口的信息,在時間信息后就是短信內(nèi)容,只需要讀取即可,下面是程序流程圖如圖38所示。進入短信接收程序發(fā)送AT+CMGF=1使 用TEXT模 式查詢有無新消息 AT+CMGLY利用AT+CMGR讀取短信 Text格式分析,并提取發(fā)送方號碼與控制信息 判斷號碼是否與設置一致 發(fā)送控制命令給輔助控制器并顯示命令Y 程序退出NN 提取短信內(nèi)容 查詢命令or控制命令 通過TC35I發(fā)送當家居信息給用戶是查詢命令是控制命令圖38 接收短消息子程序流程圖 短消息發(fā)送子程序設計在本設計中有三種情況要控制器發(fā)送短消息:用戶發(fā)送了錯誤的控制指令;用戶要查詢控制指令;緊急情況報警信息發(fā)送。短消息發(fā)送的內(nèi)容是固定的,是預先設計好的。當發(fā)生上述三種情況時,控制系統(tǒng)就會按照各自的格式把信息發(fā)送到用戶手機。因而在短消息發(fā)送的實現(xiàn)過程中,主要的工作是要設置好短信發(fā)送的模式,本次設計采用簡單的TEXT模式,其次是把要發(fā)送的內(nèi)容加載到要發(fā)送的數(shù)組中,其次就是將發(fā)送所用的SMS服務中心號碼、目標號碼的短信內(nèi)容按照TEXT的格式發(fā)送出去。C語言程序流程為:(1)發(fā)送AT配置指令使其以TEXT模式收發(fā)信息:USART1_Puts(AT+CMGF=1\r)。(2)若返回OK,則發(fā)送AT指令輸入中心號碼: USART1_Puts(AT+CSCA=+86XXXXXXXXXXX\r)。(3)若返回OK,則發(fā)送AT指令輸入目標手機號碼: USART1_Puts(AT+CMGS=+86XXXXXXXXXXX\r)。// AT+CMGS=+86號碼(4)若返回””則可以發(fā)送短信內(nèi)容、以十六進制數(shù)0X1A結(jié)束: USART1_Puts(message)。 USART1_Puts(\x1a\r)。若返回OK,則發(fā)送成功。下面是程序流程圖如圖39所示進入短信發(fā)送程序發(fā)送AT+CMGF=1使 用TEXT模 式Y(jié)利用AT+CSCA 設置信息中心號碼 跟著發(fā)送短信的內(nèi)容最后發(fā)十六進制數(shù):0x1A 程序退出N TC35I模塊返回OK TC35I模塊返回OKYNAT+CMGS設置接收手機號碼 TC35I模塊返回OKNY圖39 發(fā)送短消息流程圖 無線射頻模塊(nRF24L01)通信的實現(xiàn) nRF24L01的初始化配置nRF24L01在正常工作前必須先按需要對其進行配置,它有一個120位(15字節(jié))的配置寄存器,通過配置該寄存器的相應位即可使nRF24L01按要求正常運行。程序一開始就需將這120Bit寫入,當程序運行中需要切換模式等,只需要相應更改某些位即可。nRF24L01配置字的各個位的描述如下圖表32。表32 nRF24L01 配置字的各個位的描述 nRF24L01工作模式設置前面已經(jīng)說過nRF24L01有四種工作模式:接收模式、發(fā)送模式及兩種節(jié)電模式、待機模式、掉電模式。nRF24L01的工作模式由微處理器控制nRF24L01的引腳CE的電平高低以及寄存器的配置來設置。設置nRF24L01工作模式的函數(shù)實現(xiàn)如下表33所示表33 NRF24L01 工作模式設定 nRF24L01與處理器的SPI通信實現(xiàn)nRF24L01所有的配置字都由配置寄存器來定義,這些配置寄存器可通過SPI口訪問。SPI接口設置:SPI接口由SCK,MOSI,MISO及CSN組成。(1)在配置模式下單片機通過SPI接口配置nRF24L01的工作參數(shù);(2)在發(fā)射或接收模式下單片機SPI接口發(fā)送或接收數(shù)據(jù)。與SPI接口的指令共有8個,使用每個指令時必須使CSN變低,用完后將其變高。單片機的控制指令從nRF24L01的MOSI引腳輸入,而nRF24L01的狀態(tài)信息和數(shù)據(jù)信息是從其MISO引腳輸出并送給單片機的。利用SPI傳數(shù)時,他是先傳低位字節(jié),再傳高位字節(jié),并且在傳每個字節(jié)時是從高位字節(jié)傳起的。指令分別是;讀寄存器指令,格式是000A AAAA;寫寄存器指令,格式是001AAAAA(A AAAA代表寄存器在內(nèi)存中的地址;讀Payload指令;寫Payload指令;清發(fā)射堆棧指令;清接收堆棧指令;發(fā)射數(shù)據(jù)再利用;空操作具體時序如下圖310到312所示。圖310 nRF24L01的SPI寫時序圖圖311 nRF24L01的SPI讀時序圖圖312 nRF24L01的空操作時序圖本系統(tǒng)中,主控制器有硬件的SPI的通信接口可以與nRF24L01的SPI接口直接連接。但是輔助控制器AT89S51沒有硬件的SPI接口,所以只有通過通用的I/O口來模擬,~,當MCU欲與nRF24L01進行通信時,通過P0口模擬nRF24L01的SPI總線時序來完成。按照nRF24L01讀寫時序,MCU通過SPI接口向nRF24L0寫入一個字節(jié)的函數(shù)實現(xiàn)為:MCU從nRF24L01讀寫一個字節(jié)數(shù)據(jù)的程序?qū)崿F(xiàn)為:uchar NRF24SPI_Send_Byte(uchar dat){ uchar i。 for (i = 0。 i 8。 i++) // output 8bit { //發(fā)送1位數(shù)據(jù) if (dat amp。 0x80) // output 39。uchar39。, MSB to MOSI MOSI = 1。 else MOSI = 0。 dat = 1。 // shift next bit into SCK = 1。 // Set SCK high.. if (MISO) //MSB讀取1位數(shù)據(jù)capture current MISO bit dat |= 1。 else dat amp。= 0xFE。 SCK = 0。 // ..then set SCK low again } return(dat)。 // return read uchar} nRF24L01數(shù)據(jù)發(fā)送程序設計nRF24L01的發(fā)送模式初始化配置寄存器流程如下表34所示。表34 數(shù)據(jù)發(fā)送配置流程初始化步驟24L01相關(guān)寄存器1)寫 Tx 節(jié)點的地址TX_ADDR2)寫 Rx 節(jié)點的地址(主要是為了使能 Auto Ack)RX_ADDR_P03)使能 AUTO ACKEN_AA4)使能 PIPE 0 EN_RXADDR 5)配置自動重發(fā)次數(shù) SETUP_RETR 6)選擇通信頻率 RF_CH 7)配置發(fā)射參數(shù)(低噪放大器增益、發(fā)射功率、無線速率)RF_SETUP 8 ) 選擇通道0 有效數(shù)據(jù)寬度 Rx_Pw_P0 9)配置 24L01 的基本參數(shù)以及切換工作模式CONFIG增強型 ShockBurstTM發(fā)送模式的設置配置寄存器位PRIM_RX為低;當MCU有數(shù)據(jù)要發(fā)送時接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)(TX_PLD)通過SPI接口寫入nRF24L01發(fā)送數(shù)據(jù)的長度以字節(jié)計數(shù)從MCU寫入TX_FIFO當CSN為低時數(shù)據(jù)被不斷的寫入發(fā)送端發(fā)送完數(shù)據(jù)后將通道0設置為接收模式來接收應答信號其接收地址(RX_ADDR_P0)與接收端地址(TX_ADDR)相同; 設置CE為高啟動發(fā)射CE高電平持續(xù)時間最小為10 us; nRF24L01 ShockBurstTM模式; 如果啟動了自動應答模式自動重發(fā)計數(shù)器不等于0 ENAA_P0=1無線芯片立即進入接收模式如果在有效應答時間范圍內(nèi)收到應答信號則認為數(shù)據(jù)成功發(fā)送到了接收端此時狀態(tài)寄存器的TX_DS位置高并把數(shù)據(jù)從TX_FIFO中清除掉如果在設定時間范圍內(nèi)沒有接收到應答信號則重新發(fā)送數(shù)據(jù)如果自動重發(fā)計數(shù)器 ARC_CNT溢出超過了編程設定的值則狀態(tài)寄存器的MAX_RT位置高不清除TX_FIFO 中的數(shù)據(jù)當MAX_RT或TX_DS為高電平時IRQ引腳產(chǎn)生中斷IRQ中斷通過寫狀態(tài)寄存器來復位;如果CE置低則系統(tǒng)進入待機模式I如果不設置CE為低則系統(tǒng)會發(fā)送TX_FIFO 寄存器中下一包數(shù)據(jù)如果TX_FIFO寄存器為空,并且CE為高,則系統(tǒng)進入待機模式 II;如果系統(tǒng)在待機模式II時,當CE置低后系統(tǒng)立即進入待機模式 I。C語言流程圖如下。端口初始化;A、 STM32的SPI端口初始化函數(shù):SPI2_Init()。B、 51單片機用I/O模擬SPI見上一節(jié)。 寄存器配置,主要配置TX_ADDR、RX_ADDR_P0、EN_AA、EN_RXADDR、SETUP_RETR、RF_CH、RF_SETUP; void TX_Mode(void){ Clr_NRF24L01_CE。 NRF24L01_Write_Buf(SPI_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH)。//寫TX發(fā)送節(jié)點的地址 NRF24L01_Write_Buf(SPI_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH)。 NRF24L01_Write_Reg(SPI_WRITE_REG+EN_AA,0)。//0x01//關(guān)閉NRF24L01的自動應答機制 NRF24L01_Write_Reg(SPI_WRITE_REG+EN_RXADDR,0)。//0x01)。 NRF24L01_Write_Reg(SPI_WRITE_REG+SETUP_RETR,0)。//0x1a)。 NRF24L01_Write_Reg(SPI_WRITE_REG+RF_CH,40)。 NRF24L01_Write_Reg(SPI_WRITE_REG+RF_SETUP,0x0F)。 NRF24L01_Write_Reg(SPI_WRITE_REG+CONFIG,0x0E)。 Set_NRF24L01_CE。 //CE為高,10us后啟動發(fā)送}發(fā)送數(shù)據(jù)通過SPI通信送入NRF24L01的數(shù)據(jù)寄存器。void NRF24L01_TxPacket(u8 *txbuf){ Clr_NRF24L01_CE。 NRF24L01_Write_Buf(SPI_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH)。 NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH)。 RF24L01_Write_Reg(SPI_WRITE_REG+CONFIG,0x0E)。Set_NRF24L01_CE。} 程序流程圖見圖313所示:。發(fā)送程序開始SPI通信接口初始化NRF24L01寄存器配置為發(fā)送狀態(tài)接收端地址、要發(fā)送的內(nèi)容一并寫入啟動NRF24L01發(fā)送 查看是否發(fā)送成功程序結(jié)束YN圖313 nRF24L01無線發(fā)送數(shù)據(jù)配置流程圖 nRF24L01數(shù)據(jù)接收程序設計nRF24L01的接收模式初始化過程即配置寄存器過程如表35所示。 表35 配置寄存器初始化步驟 24L01相關(guān)寄存器 1)寫 Rx 節(jié)點的地址 RX_ADDR_P0 2)使能 AUTO ACK EN_AA 3)使能 PIPE 0 EN_RXADDR 4)選擇通信頻率 RF_CH5) 選
點擊復制文檔內(nèi)容
化學相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1