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

正文內(nèi)容

基于modbus協(xié)議的通訊系統(tǒng)(參考版)

2025-08-04 21:33本頁面
  

【正文】 // CSN high, terminate SPI munication return(reg_val)。 // Select register to read from.. reg_val = SPI_RW(0)。 CSN = 0。 // ..then set SCK low again 下降沿讀回?cái)?shù)據(jù) } return(date)。 // Set SCK high..上升沿給出數(shù)據(jù) date |= MISO。, MSB to MOSI date = (date 1)。 // output 39。bit_ctr++) // output 8bit { MOSI = (date amp。 for(bit_ctr=0。 write_(0x01)。 write_(0x0c)。 lcden=0。 lcden=0。 lcden=1。 P0=date。 29 lcden=0。 lcden=1。 P0=。y)。x) for(y=111。 for(。 uchar code table[]=:。 sbit TX_DS =sta^5。 //B 機(jī)地址 //***************************************NRF24L01 寄存器指令 ******************************************************* define READ_REG 0x00 // 讀寄存器指令 define WRITE_REG 0x20 // 寫寄存器指令 define RD_RX_PLOAD 0x61 // 讀取接收數(shù)據(jù)指令 define WR_TX_PLOAD 0xA0 // 寫待發(fā)數(shù)據(jù)指令 define FLUSH_TX 0xE1 // 清除發(fā)送 FIFO 指令 define FLUSH_RX 0xE2 // 清除接收 FIFO 指令 define REUSE_TX_PL 0xE3 // 定義重復(fù)裝載數(shù)據(jù)指令 define NOP 0xFF // 保留 //*************************************SPI(nRF24L01)寄存器地址 **************************************************** define CONFIG 0x00 // 配置收發(fā)狀態(tài), CRC 校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式 define EN_AA 0x01 // 自動(dòng)應(yīng)答功能設(shè)置 28 define EN_RXADDR 0x02 // 可用信道設(shè)置 define SETUP_AW 0x03 // 收發(fā)地址寬度設(shè)置 define SETUP_RETR 0x04 // 自動(dòng)重發(fā)功能設(shè)置 define RF_CH 0x05 // 工作頻率設(shè)置 define RF_SETUP 0x06 // 發(fā)射速率、功耗功能設(shè)置 define STATUS 0x07 // 狀態(tài)寄存器 define OBSERVE_TX 0x08 // 發(fā)送監(jiān)測功能 define CD 0x09 // 地址檢測 define RX_ADDR_P0 0x0A // 頻道 0 接收數(shù)據(jù)地址 define RX_ADDR_P1 0x0B // 頻道 1 接收數(shù)據(jù)地址 define RX_ADDR_P2 0x0C // 頻道 2 接收數(shù)據(jù)地址 define RX_ADDR_P3 0x0D // 頻道 3 接收數(shù)據(jù)地址 define RX_ADDR_P4 0x0E // 頻道 4 接收數(shù)據(jù)地址 define RX_ADDR_P5 0x0F // 頻道 5 接收數(shù)據(jù)地址 define TX_ADDR 0x10 // 發(fā)送地址寄存器 define RX_PW_P0 0x11 // 接收頻道 0 接收數(shù)據(jù)長度 define RX_PW_P1 0x12 // 接收頻道 0 接收數(shù)據(jù)長度 define RX_PW_P2 0x13 // 接收頻道 0 接收數(shù)據(jù)長度 define RX_PW_P3 0x14 // 接收頻道 0 接收數(shù)據(jù)長度 define RX_PW_P4 0x15 // 接收頻道 0 接收數(shù)據(jù)長度 define RX_PW_P5 0x16 // 接收頻道 0 接收數(shù)據(jù)長度 define FIFO_STATUS 0x17 // FIFO 棧入棧出狀態(tài)寄存器設(shè)置 //****************************************************************************************** uchar bdata sta。 //*********************************************NRF24L01************************************* define TX_ADR_WIDTH 5 // 5 uints TX address width 發(fā)送地址的寬度 define RX_ADR_WIDTH 5 // 5 uints RX address width 接收地址的寬度 define TX_PLOAD_WIDTH 4 // 4 uints TX payload 發(fā)送數(shù)據(jù)寬度 define RX_PLOAD_WIDTH 4 // 4 uints RX payload uchar const A_ADR[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}。 sbit lcdrw=P2^1。 sbit s6=P1^5。 sbit s4=P1^3。 sbit s2=P1^1。 sbit CSN =P3^4。 sbit SCK =P3^6。 25 附錄一: 系統(tǒng)總原理圖和 PCB 圖 26 PCB圖如下: 27 附錄二: 單片機(jī) A 機(jī) 程序 include define uchar unsigned char define uint unsigned int //****************************************NRF24L01 端口定義 *************************************** sbit MISO =P3^5。 此外,感謝所有 我的關(guān)心和幫助的老師及朋友 ,他們在我成長的道路 上給力我信心和勇氣,使我跨過一道道難關(guān)。在此我特別感謝感謝我 的 指導(dǎo)老師翁國云,一個(gè)月來幫我定題、分析、指導(dǎo);當(dāng)我遇到問題時(shí)孜孜不倦教導(dǎo)我、幫助我, 在完成論文過程中給我 細(xì)心的指導(dǎo)和詳細(xì)的批改, 使我得以完成這個(gè)設(shè)計(jì)。 ⑶ 隨著 信息高速發(fā)達(dá) ,已經(jīng)有更加優(yōu)化 的通訊如: 嵌入式工業(yè)以太網(wǎng)網(wǎng)絡(luò)通信、 zigbee 無線網(wǎng)絡(luò)通信、 wifi 無線網(wǎng)絡(luò)通信等等 ; 關(guān)于通訊 我們需要 面向未來 繼續(xù)努力 。 22 不足和展望 雖然此次設(shè)計(jì)經(jīng)過調(diào)試運(yùn)行已經(jīng)基本達(dá)到了預(yù)期的效果,運(yùn)行結(jié)果表 明該裝置在技術(shù)上有一定的可靠性,但是由于作者本身的研究經(jīng)驗(yàn)和其它客觀條件的限制,設(shè)計(jì)中難免存在許多有待進(jìn)一步開發(fā)改進(jìn)的地方,另外尚有許多理論問題和工程應(yīng)用問題需要進(jìn)一步的探索和研究,就研究和發(fā)展?fàn)顩r來看今后仍需在以下幾個(gè)方面努力: ⑴ 溫度采集方面由于 DS18B20 芯片的局限性精確度不能達(dá)到一定的高度。 ⑶ 設(shè)計(jì)了一個(gè)基于 Modus 通訊協(xié)議的單片機(jī)通信系統(tǒng)。 ⑵ 較詳細(xì)地分析了 Modus 協(xié)議的基本內(nèi)容和工作原理, 在實(shí)現(xiàn) Modbus 通信協(xié)議的基礎(chǔ)上為了預(yù)防干擾,提高系統(tǒng)穩(wěn)定性,防止系統(tǒng)程序跑飛而造成不可預(yù)測的錯(cuò)誤等,在軟件方面做出了一些優(yōu)化系統(tǒng)設(shè)計(jì) 。 本次設(shè)計(jì)功能基本實(shí)現(xiàn): A 機(jī)通過無線模塊控制 B 機(jī)實(shí)現(xiàn)溫度或者時(shí)鐘顯示 實(shí)現(xiàn)短距離無線通訊 , B 機(jī)還做為從機(jī)通過 Modbus 與 PC機(jī)通訊,將從 A 機(jī)無線獲得的時(shí)鐘信號和 溫度信號傳輸給上位機(jī)顯示 實(shí)現(xiàn)長距離有線通訊 。 串口主機(jī)( PC 機(jī))顯示 本次設(shè)計(jì)沒有進(jìn)行上位機(jī)編程,而是通過串口調(diào)試工具來看看數(shù)據(jù) 有沒有有效地進(jìn)行傳輸串口調(diào)試結(jié)果如圖 62 所示: Rs232485 B 機(jī) 5v 電池盒 A機(jī) 5v 電池盒 A 機(jī) B 機(jī) 串口線 數(shù)碼管顯示 18B20 溫度感器 24l01 無線模塊 24l01 無線模塊 按鍵模塊 1620 液晶顯示 MAX232 芯片 MAX485 芯片 52 單片機(jī) 21 圖 63 PC機(jī)顯示 我們發(fā)送: [01][03][01][00][01][00][25][C0] 注釋:讀從機(jī)溫度 [01][03][02][00][01][00][DD][AA] 注釋:讀從機(jī)時(shí)鐘的小時(shí) [01][03][03][00][01][00][8C][CA] 注釋:讀從機(jī)時(shí)鐘的分鐘 串口接收 : [01][03][02][00][AC][25][C0] 注釋:溫度值回應(yīng)給主機(jī) ( ℃)[01][03][02][00][0B][DD][AA] 注釋:小時(shí)值回應(yīng)給主機(jī)( 8 小時(shí)) [01][03][02][00][24][8C][CA] 注釋:分鐘值回應(yīng)給主機(jī)( 48 分鐘) 03 對應(yīng)讀度模擬寄存器 功能; [D5]、 [08]、 [30]就是分別發(fā)送三次命令后讀出的模擬量;轉(zhuǎn)化為十進(jìn)制后為 213 代表 ℃; 8 代表 8 小時(shí); 48 代表 48 分鐘。 B 機(jī)主要有:數(shù)碼管顯示模塊、 52 單片機(jī)芯片、 18B20 溫度傳感器、 NRF24L01 無線模塊、 5v 電池 。 實(shí)物整體外觀 實(shí)物主要分為 A 機(jī)、 B 機(jī)、 Rs232485 三個(gè)模塊 。除此之外還介紹了 A 機(jī)流程圖和說明、 B 機(jī)流程圖和說明 。另外數(shù)碼管顯示部分和無線部分處理分別使用 Timer0 中斷和無線接收中斷。 程序 流程圖如 54 所示: 檢查 Uart0 數(shù)據(jù)開始 設(shè)備地址、偶校正確否? CRC 校驗(yàn)正確? 接受地址偏移寄存器清零 偶校驗(yàn)清零 結(jié)束 功能碼為03 否? N N N:結(jié)束或看是否為其它功能 Y Y Y 讀取保存寄存器開始 讀取接收的邏輯地址 讀取地址長度 對接收緩沖區(qū)做 CRC校驗(yàn) 對應(yīng)邏輯地址處理數(shù)據(jù),需要將溫度、時(shí)鐘的時(shí)、分 等數(shù)據(jù)對應(yīng)給發(fā)送緩沖區(qū) 將設(shè)備地址、命令號、返回字節(jié)數(shù)對應(yīng)給發(fā)送緩沖區(qū) 對緩沖區(qū)數(shù)據(jù)進(jìn)行 CRC 計(jì)算 開始發(fā)送緩沖區(qū)第一個(gè)數(shù)據(jù) 17 圖 54 A機(jī)流程圖 B 機(jī)流程圖 和說明 B 機(jī)的功能是 依據(jù) A 機(jī)命令使它顯示溫度還是時(shí)鐘,在主機(jī) ( PC 機(jī))命令下再把溫度和時(shí)鐘信號通過 Modbus 協(xié)議基于 485 接口響應(yīng)讀取給主機(jī)。 在這里我們對 從機(jī)( B機(jī))發(fā)來的 溫度,時(shí)鐘 數(shù)據(jù) 進(jìn)行處理 ; 處理完后 再 把這些數(shù)據(jù)和設(shè)備地址、命令號、返回字節(jié)數(shù)回 應(yīng)給發(fā)送緩沖區(qū),再對緩沖區(qū)數(shù)據(jù)進(jìn)行 CRC 校驗(yàn)計(jì)算 。 接下來判定 第二個(gè)數(shù)據(jù)( 即 功能碼) , 該設(shè)計(jì)中除了 [03]還擴(kuò)展了 [01][05][06]等功能碼 以提高代碼可移植性 , 對其掃描檢測 ,如果是 [03]則進(jìn)入讀取保存寄存器子函數(shù) ;在 讀取保存寄存器 子函數(shù)里 ,分別 讀出 接收緩沖區(qū)的第三、第四個(gè)數(shù)據(jù)對應(yīng) 得邏輯地址和 第五、第六個(gè)數(shù)據(jù)對應(yīng)的 邏輯地址長度 。具體 程序流程圖如 52 下所示: 1ms Timer1 中斷開始 重裝初值 1ms 標(biāo)志位設(shè)為 1 結(jié)束 定時(shí)處理開始 1ms 標(biāo)志 =1? 清零 1ms 標(biāo)志 通訊超時(shí)否? 485 置為接收 接受地址偏移寄存器清零 偶校驗(yàn)清零 結(jié)束 Y N Y N 15 圖 52發(fā)送和接收緩沖區(qū)數(shù)據(jù)處理 ⑶ 主機(jī)發(fā)送數(shù)據(jù)包 和 從 機(jī)響應(yīng)主機(jī) 數(shù)據(jù)包 的 具體 軟件 實(shí)現(xiàn)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1