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

正文內(nèi)容

基于單片機的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計畢業(yè)設(shè)計說明書-資料下載頁

2024-08-28 17:49本頁面

【導(dǎo)讀】進(jìn)行的研究、設(shè)計工作后獨立完成的。除了文中特別加以標(biāo)注和致謝的。地方外,說明書中不包含其他人己經(jīng)發(fā)表或撰寫過的研究成果。本人完全意識到本聲明的法律后果由本人承擔(dān)。限或下限時蜂鳴器報警,LED燈閃爍報警。根據(jù)遠(yuǎn)程監(jiān)控系統(tǒng)的主要功能,提出了設(shè)計方案并進(jìn)行了論證。硬件部分包括單片機最小系統(tǒng)、矩陣鍵盤模塊、無線收。發(fā)模塊、顯示模塊、報警模塊五個部分。單片機選用宏晶科技公司的STC89C52;軟件采用了模塊化的設(shè)計方法,主要分為主程序、無線發(fā)射模塊子程。序、無線接收子程序、按鍵檢測子程序、液晶顯示子程序、報警模塊子程序六部分。過1000或小于10的時候蜂鳴器和發(fā)光二極管同時報警。

  

【正文】 **********************************************/ /************************************************** 函數(shù) : init_io() 描述 : 初始化 IO /**************************************************/ void init_io(void) { CE = 0。 // 待機 CSN = 1。 // SPI 禁止 SCK = 0。 // SPI 時鐘置低 基于 單片機的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計 26 IRQ = 1。 // 中斷復(fù)位 } /**************************************************/ /******延時子程序 *********/ void delay(uint z) { uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。 } /************************************************** 函數(shù): SPI_RW() 描述: 根據(jù) SPI 協(xié)議,寫一字節(jié)數(shù)據(jù)到 nRF24L01,同時從 nRF24L01 讀出一字節(jié) /**************************************************/ uchar SPI_RW(uchar byte) { uchar i。 for(i=0。 i8。 i++) // 循環(huán) 8 次 { MOSI = (byte amp。 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() 鹽城工學(xué)院本科生畢業(yè)設(shè)計說明書 ( 2020) 27 描述: 寫數(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ā)送地址 /**************************************************/ 基于 單片機的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計 28 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。 ibytes。 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。 ibytes。 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) 鹽城工學(xué)院本科生畢業(yè)設(shè)計說明書 ( 2020) 29 { 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 基于 單片機的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計 30 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ā)
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1