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

正文內(nèi)容

基于rs-485總線的數(shù)據(jù)通信與遠(yuǎn)程控制-資料下載頁(yè)

2025-06-27 18:54本頁(yè)面
  

【正文】 信階段后,發(fā)送的數(shù)據(jù)字 符串,按 4 字節(jié) 定 長(zhǎng)數(shù)據(jù)發(fā)送。這是因?yàn)楸鞠到y(tǒng)中,通信字節(jié)很短就能完成所有操作。另外在讀取 溫度和控制開關(guān)狀態(tài)的兩個(gè)數(shù)據(jù)中,溫度值以二進(jìn)制表示只須二個(gè)字節(jié)就行了, 開關(guān)狀態(tài)量其實(shí)只須一個(gè)字節(jié)就行了,這里多出多個(gè)字節(jié)可以作為其它功能的預(yù) 留 數(shù) 據(jù) 。最后 還加入 一個(gè)字 節(jié)的檢驗(yàn)碼,這里采用求和校驗(yàn)碼 。如果校驗(yàn)碼 錯(cuò) 誤, 說(shuō)明傳輸過(guò)程中數(shù)據(jù)發(fā)生了錯(cuò)誤,因此必須重新發(fā)送數(shù)據(jù)。本系統(tǒng)字符串格式如 下: 0xXX, ① , ② , ③ , ④ ,h1h2 其中: 0xXX:為呼叫從機(jī)地 址。 ①:數(shù) 據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá)。在讀取溫度時(shí),為溫度 值 的 最 高 位 ;在控制 開關(guān)狀態(tài)時(shí),為 允許控制字, 即約定為 0x50 時(shí),為允許控 制, 其 它 字 符 為不 允許控制。 ②:數(shù)據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá)。在讀取溫度時(shí),為溫度 值 的 最 低位 ;在控制 開關(guān)狀態(tài)時(shí),為 預(yù)留字。 ③: 數(shù)據(jù)字段, 英文字母或數(shù)字, 按約定方式表達(dá),為預(yù)留字。 ④:數(shù)據(jù)字段,英文字母或數(shù) 字,按約定方式表達(dá)。在讀取溫度時(shí),為預(yù)留 字 ; 在 控 制開 關(guān)狀態(tài)時(shí),為 要被 更新的開關(guān)狀態(tài)。 h1h2:為 ① , ② , ③ , ④數(shù)據(jù)字段代碼的校驗(yàn)和。 主 機(jī) 通信程 序流程圖如圖 31 所示,從機(jī)通信程 序流程圖如圖 32 所示。 18 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 圖 31 主 機(jī) 通 信 程 序 流 程 圖 19 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 從機(jī)通信流程 序流程圖 接收到主機(jī)發(fā) 來(lái)的地址字節(jié) N 是本機(jī)地址 Y 發(fā)送本機(jī)地址 N 接收到 主機(jī)命令 Y N 發(fā)送不 空閑代碼 N 超時(shí) 現(xiàn)在空閑嗎 Y 發(fā)送空閑代碼 讀 是讀還是寫 寫 發(fā)送5個(gè)字符 最后一位為 校驗(yàn)位 N N 接收5個(gè)字符 校驗(yàn)正確 Y 校驗(yàn)正確 Y 結(jié)束 圖 32 從 機(jī) 通 信 程 序 流 程 圖 20 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 計(jì)算機(jī)主機(jī)界面程序設(shè)計(jì) 在 計(jì) 算機(jī)主機(jī)界面程序設(shè)計(jì) 中, 主要是 為了在實(shí)現(xiàn)計(jì)算機(jī)與 單片機(jī)通信的 過(guò)程 中,獲取相關(guān)數(shù)據(jù)并及時(shí)顯示出來(lái),或者發(fā)送開關(guān)狀態(tài)字節(jié)控制開關(guān)狀態(tài),因此 主界面中需獲取數(shù)據(jù)按鈕和數(shù)據(jù)顯示窗口,需控制遠(yuǎn)程開關(guān)按鈕和設(shè)置遠(yuǎn)程開關(guān) 狀 態(tài) 的 設(shè) 置窗口,另外為 了方便調(diào)試,還可以設(shè)置簡(jiǎn)捷的調(diào)試窗口。如圖 33 所 示 為 RS485 通信 計(jì)算機(jī) 主機(jī)控制 窗口的簡(jiǎn)裝版 。 圖 33 RS485 通 信 計(jì) 算 機(jī) 主 機(jī) 控 制 窗 口 簡(jiǎn) 裝 版 第 一 組窗口為遠(yuǎn)程 溫度獲取窗口,首先需要用戶輸入遠(yuǎn)程地址,然后按下獲 取 遠(yuǎn) 程 溫 度 按 鈕 , 即 可 與 遠(yuǎn) 程 地 址 通 信 , 并 獲 取 該 地 址 當(dāng) 前 檢 測(cè) 溫 度 , 顯 示 在 面板 上 。 如 果 選中自動(dòng) 獲取溫度,則計(jì) 算機(jī)主機(jī)每隔 1 秒獲取該遠(yuǎn)程地址當(dāng)前檢測(cè)溫 度 并 及 時(shí) 顯示 出來(lái)。 第 二 組窗口為遠(yuǎn)程距離 獲取窗口,同樣首先需要用戶輸入遠(yuǎn)程地址,然后按 下 獲取遠(yuǎn)程距離按鈕,即可與遠(yuǎn)程地址通信,并獲取該地址當(dāng)前檢測(cè)距離,顯示在 21 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 面 板 上 。 如果選中自動(dòng) 獲取距離 ,則計(jì)算機(jī) 主機(jī)每隔 1 秒獲取該遠(yuǎn)程地址當(dāng) 前檢 測(cè) 距 離 并 及時(shí)顯示 出來(lái)。 第 三 組 窗口為遠(yuǎn)程 開關(guān)控制 窗 口,同樣首先需要用戶輸入遠(yuǎn)程地址,然后設(shè) 置 各個(gè)開關(guān)狀態(tài),設(shè)置完畢后,按下控制遠(yuǎn)程開關(guān)按鈕,即可與該輸入的遠(yuǎn)程地址 進(jìn) 行 數(shù) 據(jù) 通信 ,發(fā) 出開 關(guān)控制數(shù)據(jù),從而控制 該遠(yuǎn)程地址開關(guān)狀態(tài)。 第四組窗口為手工調(diào)試控制窗口,在此可以進(jìn)行自定義的控制命令與收發(fā)內(nèi) 容 。正 常 情況 下為只讀方式,如果需要手工調(diào)試,則得選中手動(dòng)調(diào)試控制復(fù)選框 。 另 外 點(diǎn)擊更多設(shè)置按鈕,可以更詳細(xì)的設(shè)置通信 模式以及顯示收發(fā)內(nèi)容。 用 戶 界面最下端為狀 態(tài)欄,顯示當(dāng)前串口 設(shè)置狀態(tài)。 整 個(gè) 計(jì)算機(jī) 主機(jī)程序中的串口通信 ,采用 API 編程。將在下面的系統(tǒng) 程序設(shè) 計(jì) 中 做 詳 細(xì) 介紹 。 有 時(shí) 候?yàn)榱烁嘣O(shè)置通信 的狀態(tài),或者計(jì)算機(jī)與計(jì)算機(jī) 通信,以及數(shù)據(jù)的收 發(fā) 方 式 等,就 需要比較 詳細(xì) 的設(shè) 置窗口了,這里由于 RS485 通信計(jì)算機(jī) 主機(jī)控 制窗 口簡(jiǎn)裝版窗口比較小,可以直接在同一界面上設(shè)計(jì),只要在需要用時(shí)點(diǎn)擊更多設(shè) 置 即 可擴(kuò) 大窗口。從而進(jìn) 行更多設(shè) 置 [9] 。當(dāng) 然在不需要更多設(shè)置時(shí),只需隱藏更 多 設(shè) 置 即 可 。如圖 34 所示為 RS485 通信計(jì)算機(jī) 主機(jī)控制 窗口擴(kuò)展版。在這里 可以 根據(jù)需要,打開或者關(guān)閉串口,設(shè)置通信串口號(hào),以及波特率等。并且為了方便 調(diào)試,把數(shù)據(jù)接收、發(fā)送窗口擴(kuò)大,有利于查看通信數(shù)據(jù)內(nèi)容,并且設(shè)置了數(shù)據(jù) 接 收 與 發(fā) 送的格式,這樣 在多計(jì)算機(jī)中也可以更方便,更快捷的收發(fā)數(shù)據(jù) 了。 圖 34 RS485 通 信 計(jì) 算 機(jī) 主 機(jī) 控 制 窗 口 擴(kuò) 展 版 其 基 本程 序流程圖如圖 35 所示: 22 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 圖 35 計(jì) 算 機(jī) 主 機(jī) 程 序 流 程 圖 計(jì)算機(jī)主機(jī)串口 API 編程步驟 Windows API(Windows Application Programming Interface,Windows 應(yīng)用程 序 編程接口) ,是所有 Windows 應(yīng)用程序的根本之所在。簡(jiǎn)單地說(shuō),API 就是一系 列 的例程,應(yīng)用程序通過(guò)調(diào)用這些例程來(lái)請(qǐng)求操作系統(tǒng)完成一些低級(jí)服務(wù)。在 Windows 這樣 的圖 形 用戶 界 面 中 ,應(yīng) 用 于 程序 的窗 口 、圖 標(biāo)、 菜單 和對(duì) 話 框等 就 是 由 API 來(lái)管理 和維 護(hù)的。 本 系 統(tǒng)計(jì)算機(jī) 主機(jī)串口通信 采用 API 函數(shù) 編程,大致步驟如下: (1) 打開串口 句柄 :CreateFile 函數(shù) (2) 建立串口通信 事件:CreateEvent 函數(shù) (3) 初始 化串口 ,設(shè) 置串口參數(shù):SetCommState 函數(shù) (4) 建立讀數(shù)據(jù)的 監(jiān)視線 程 (5) 寫數(shù)據(jù) :用 WriteFile 函數(shù) (6) 結(jié)束時(shí)關(guān)閉端口 23 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 溫度采集與顯示從機(jī)程序設(shè)計(jì) 溫 度 采集與 顯示 從機(jī)程序流程圖如圖 36 所示。 圖 36 溫 度 采 集 與 顯 示 從 機(jī) 程 序 流 程 圖 多路開關(guān)控制從機(jī)程序設(shè)計(jì) 多 路 開關(guān)控制 從機(jī)程序流程圖 如圖 37 所示。 圖 37 多 路 開 關(guān) 控 制 從 機(jī) 程 序 流 程 圖 24 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 數(shù)據(jù)校驗(yàn) 奇偶校驗(yàn) 最 簡(jiǎn) 單的檢錯(cuò)方法是“奇偶校驗(yàn)” ,即在傳送字符的各位之外,再傳送 1 位奇/ 偶 校 驗(yàn)位 ??刹捎?奇校驗(yàn) 或者偶校驗(yàn) 。 奇 校 驗(yàn):所 有傳送的數(shù) 位(含字符的各數(shù)位和校驗(yàn)位)中, “1”的個(gè)數(shù)為 奇數(shù) 。 偶 校 驗(yàn):所 有傳送的數(shù) 位(含字 符的各數(shù)位和校驗(yàn)位)中, “1”的個(gè)數(shù)為 偶 數(shù) 。 奇 偶 校驗(yàn) 能夠檢測(cè)出信息傳輸過(guò)程中的部分誤碼(1 位誤碼能檢出,2 位 及 2 位 以 上誤 碼不能 檢出) ,同時(shí),它不能糾錯(cuò)。在發(fā)現(xiàn) 錯(cuò)誤后,只能要求重發(fā)。但由 于其實(shí)現(xiàn)簡(jiǎn)單,仍得到了廣泛使用。有些檢錯(cuò)方法,具有自動(dòng)糾錯(cuò)能力。如循環(huán) 冗 余 碼(CRC)檢錯(cuò)等。 求和校驗(yàn) 另 外 一點(diǎn)比較 簡(jiǎn)單的檢錯(cuò)方法 為求和校驗(yàn),即在傳送數(shù)據(jù)時(shí),將所有數(shù)據(jù) 求和 而 得 到 的 一個(gè)字 節(jié)。同樣,這種 方 法也不能糾錯(cuò),在發(fā)現(xiàn) 錯(cuò)誤后,只能要求重 發(fā) 。 循環(huán)冗余碼校驗(yàn) 循 環(huán) 冗余碼校驗(yàn) 英文名稱為 Cyclical Redundancy Check,簡(jiǎn)稱 CRC。它是 利 用 除 法 及 余 數(shù)的 原理 來(lái)做錯(cuò)誤偵測(cè)(Error Detecting)的。 實(shí)際應(yīng)用時(shí),發(fā)送裝置計(jì) 算 出 CRC 值并隨數(shù)據(jù)一 同發(fā)送給接收裝置, 接收裝置對(duì)收到的數(shù)據(jù) 重新計(jì)算 CRC, 并 與 收 到 的 CRC 相對(duì)較,若兩個(gè) CRC 值不同,則說(shuō)明數(shù)據(jù)通訊出現(xiàn)錯(cuò)誤。 根 據(jù) 應(yīng)用 環(huán)境與習(xí)慣的不 同,CRC 又可分為以下幾種標(biāo)準(zhǔn) : ① CRC 12 碼; ② CRC 16 碼; ③ CRC CCITT 碼; ④ CRC 32 碼。 CRC12 碼通常 用來(lái)傳 送 6bit 字符串。CRC16 及 CRCCCITT 碼則是用來(lái) 傳 送 8bit 字符, 其中 CRC16 為美國(guó)采用, CRCCCITT 為歐洲國(guó)家所采用。 而 CRC32 碼 大 都 被 采用在一 種稱為 PointtoPoint 的同步傳輸中。 下 面 以最常 用的 CRC16 為例說(shuō)明其生成過(guò)程。 CRC16 碼由兩 個(gè)字節(jié)構(gòu)成,在開始時(shí) CRC 寄存器的每一位都預(yù)置為 1,然 后 把 CRC 寄存器與 8bit 的數(shù)據(jù)進(jìn)行異或,之后對(duì) CRC 寄存器從高到低進(jìn)行移 位 , 25 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 在 最 高 位(MSB)的位置補(bǔ)零,而 最低位(LSB,移位后已經(jīng)被移出 CRC 寄存 器 ) 如 果 為 1,則把寄存器與 預(yù)定義的多項(xiàng)式碼進(jìn)行異或,否則如果 LSB 為零, 則無(wú) 需 進(jìn) 行 異 或。重復(fù)上述 的由高至低 的移位 8 次,第一個(gè) 8bit 數(shù)據(jù)處理完畢, 用此 時(shí) CRC 寄存器的 值與下一個(gè) 8bit 數(shù)據(jù)異或并進(jìn)行如前一個(gè)數(shù)據(jù) 似的 8 次移位。 所 有 的 字符 處理完成后,CRC 寄存器內(nèi)的 值即為最終的 CRC 值。 下 面 為 CRC 的計(jì)算 過(guò)程: (1) 設(shè)置 CRC 寄存器, 并給 其賦值 0xFFFF。 (2) 將數(shù)據(jù)的 第一個(gè) 8bit 字 符與 16 位 CRC 寄存器的低 8 位進(jìn)行異或, 把 并 結(jié)果存 入 CRC 寄存器。 (3) CRC 寄存器向 右移 一位,MSB 補(bǔ)零,移出并檢查 LSB。 (4) 如果 LSB 為 0,重復(fù)第三步;若 LSB 為 1,CRC 寄存器與多項(xiàng)式碼相 異 或。 (5) 重復(fù)第 3 與第 4 步, 直到 8 次移位全部完成。此時(shí)一個(gè) 8bit 的數(shù) 據(jù)處 理完畢。 (6) 重復(fù)第 2 到第 5 步, 直到所有數(shù)據(jù)全 部處理完成。 (7) 最終 CRC 寄存器的內(nèi) 容即為 CRC 值 [10] 。 26 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 4. 系統(tǒng)調(diào)試 硬件調(diào)試 在 設(shè) 計(jì) 好整個(gè)系統(tǒng) 硬件 電路 圖,做出實(shí)物后,需要進(jìn)行調(diào)試,以確定各硬件模 塊 正 常 工 作。對(duì)于各單片 機(jī)模 塊的調(diào)試直接用數(shù)碼管顯示 4 位數(shù)據(jù)即可。首先將 各 I/O 口 直接輸出高電平(0xFF) ,則數(shù)碼管全部導(dǎo)通,顯示為“.”,結(jié) 果 調(diào) 試 正 常 ,說(shuō) 明單片 機(jī)工作 正常。然后寫入每隔一秒變化一次的 4 位數(shù)碼顯示 程 序 , 調(diào) 試 也 正 常,說(shuō)明數(shù)碼管顯示也 正 常 [1] 。 在 確 定硬件都 正常工作 的情況下,現(xiàn)在可以寫入各單片機(jī)工作任務(wù)程序,這 里 先不進(jìn)行數(shù)據(jù)通信,在工作任務(wù)程序調(diào)試通過(guò)后,可以加入通信程序。在溫度采 集與顯示從機(jī)中,首先要保證程序能正常采集溫度并正確顯示出來(lái)。寫入程序并 執(zhí)行,每隔一次采集一次溫度值,并顯示出來(lái),調(diào)試順利通過(guò)。在開頭狀態(tài)控制 從 機(jī) 中 ,首 先要保證程序能正??刂崎_關(guān)狀態(tài)。寫入程序并執(zhí)行 ,即直接從 P0 口 輸 出 開關(guān) 狀態(tài)字,經(jīng)過(guò) 74LS373 鎖存器輸出,從而控制 開頭狀態(tài)。調(diào)試順利通 過(guò) 。 通信調(diào)試 接 下 來(lái)是在編制好的協(xié)議基礎(chǔ)上, 行計(jì)算機(jī) 主機(jī)與單片機(jī)數(shù)據(jù) 通信模塊的調(diào) 進(jìn) 試 。 首 先 調(diào)試計(jì)算機(jī) 主機(jī)發(fā) 送數(shù)據(jù)與 接收數(shù)據(jù)程序。這里用來(lái)了 API 函數(shù)編 程, 直 接 將 計(jì) 算機(jī)的 COM1 與 COM2 用兩根導(dǎo)線連接進(jìn)行通信,在 COM 中,2 為接 收 數(shù) 據(jù) 口 ,3 為發(fā) 送數(shù)據(jù) 口,兩個(gè) COM 的 3 端口交 叉連接即可 。也就是 COM1 的 2 口 接 COM2 的 3 口,COM1 的 3 口接 COM2 的 2 口。這里暫時(shí)可以不接 第 5 端 口 的 地 線。然后運(yùn)行 API 編好 的程序, 在上述圖 所示的 RS485 通信計(jì) 算 機(jī) 主 機(jī) 控 制 窗 口擴(kuò) 展 版 中 右部 分 , 運(yùn)行 兩 個(gè) 該 界面 程 序 ,串 行 口 分 別選 擇 COM COM2, 接著可以在 COM1 發(fā)送窗口寫入一串字符串,按發(fā)送按鈕,在 COM2 界 面 程 序 的 接收數(shù)據(jù) 窗口將顯示 接收到 COM1 發(fā)送來(lái)的數(shù)據(jù)內(nèi) 容;同樣在 COM2 發(fā) 送 窗 口 寫 入一串字符串,按發(fā)送按鈕,在 COM1 界面程序的接收數(shù)據(jù)窗口將顯示 接 收 到 COM2 發(fā)送來(lái)的數(shù)據(jù)內(nèi) 容 。這里說(shuō)明在默認(rèn)狀態(tài)下的通信正常。 現(xiàn) 在 可 以進(jìn)行 計(jì)算 機(jī) 與 單片 機(jī)通信 調(diào) 試 , 假設(shè)從 機(jī)地址 為 02。主機(jī) 發(fā)送數(shù) 據(jù) 內(nèi) 容 格 式 如下: 地址位 命令字 數(shù)據(jù) 1 數(shù)據(jù) 2 數(shù)據(jù) 3 數(shù)據(jù) 4 校驗(yàn)和 其 中: 27 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 地 址 位 :從機(jī)地 址標(biāo)志號(hào)碼 命
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1