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

正文內容

畢業(yè)設計-基于單片機的多功能環(huán)境檢測系統(tǒng)設計(參考版)

2025-06-09 02:34本頁面
  

【正文】 //設置字符串長度與緩沖。 begin viewstring:=″″。 var I,j:integer。 Buffer:Pointer。由于時間倉促,本設計難免有考慮不完善之處,敬請指正。這樣就能獨立并很好的完成一項任務了。從這次的畢 業(yè)設計中我學會了怎樣去獨立的思考和完成一項任務,以及怎樣去面對和了解我所未知的東西,從何下手,怎樣解決。程老師在我遇到挫折與困難時總是能給我足夠的信心與動力和一些建設性的指導意見,使我終于完成了這個對我來說蔚為艱巨的任務。 健雄職業(yè)技術學院畢業(yè)設計(論文) 32致謝 無論是做畢業(yè)設計還是寫論文對我來說都是第一次,我對串口通信的了解只是一些基本知識,而缺乏真正的實踐經驗。根據溫室內作物生長的需要,對溫室環(huán)境因子進行實時監(jiān)測控制,主要完成了 溫、濕度及光線狀況環(huán)境監(jiān)測系統(tǒng)的上位機軟件的設計 , 本設計可實時測量某一具體空間中任意一點的溫度、濕度數據以及光線狀況,能在小型終端設備的 LCD上顯示,還能通過串口通信在微機上實現實時數據的顯示、分析和圖形打印等功能。其運行界面如圖 59所示,報表界面如圖 510所示。用戶設置窗體只有以管理員登錄的用戶才有權利修改,否則彈出該窗體的按鈕是灰色的不能實現如上操作。新的密碼需要輸入兩次,如果兩次輸入的新密碼不一樣,則系統(tǒng)會彈出對話框提示密碼沒有修改成功。 圖 57 系統(tǒng)主界面截圖 用戶設置 模塊 用戶設定窗體主要是便于管理員和用戶隨時修改登錄密碼和增減用戶名并相應修改管理權限的功能。溫室環(huán)境的監(jiān)測,環(huán)境參數的設置輸出以及溫健雄職業(yè)技術學院畢業(yè)設計(論文) 27室內各個設備的運行狀況都要在這里實現。 上位機程序的開發(fā)設計 本系統(tǒng)流程 圖如圖 55 所示: 健雄職業(yè)技術學院畢業(yè)設計(論文) 25登 錄 模 塊手 動 輸 入 用 戶 名驗 證 用 戶 權 限系 統(tǒng) 主 界 面外 部 執(zhí) 行 機 構 模塊歷 史 數 據 查 詢 模塊用 戶 設 置 模 塊否是數 據 顯 示 模 塊 圖 55 系統(tǒng)流程圖 系統(tǒng)登錄模塊 軟件運行之后,首先就是進入用戶登錄窗體,本界面實現的功能是用戶輸入用戶名和密碼,根據不同的用戶登錄選擇不同的操作主界面功能,并進入系統(tǒng)進行相應操作。在 PC機串行端口通信時,使用了十幾條線進行信號傳輸。這種方法的優(yōu)點是程序響應及時,可靠性高。 OnComm事件還可以檢查和處理通信錯誤。在許多情況下,在事件發(fā)生時需要得到通知,例如,在串口接收緩沖區(qū)中有字符,或者 CD或 RTS線上一個字符到達或一個事件發(fā)生時。在 Delphi中實現事件驅動方法時,要控件的變量,以后針對此對象操作即可。對于較簡單的通信任務,可通過查詢串行 12的 CommEvent屬性來了解最近發(fā)生的事件或錯誤并進行相應的處理。在 Delphi中,用戶用設置屬性值和編寫方法就可以進行操作。該控件串行通信功能的實現實際上是調用了 WindOWS的 API函數,再由 Comm. dry解釋并傳送給設備驅動程序。實踐中大家通常采用的數據/命令幀的格式有兩種,如表 5表 52所示。然后上位機向下位機發(fā)送命令幀,下位機接收執(zhí)行命令幀。 通 信 開 始發(fā) 送 命 令 幀 , 開 啟串 口 監(jiān) 視 線 程 , 等待 應 答 幀超 時 否有 應 答 幀 否接 收 應 答 幀應 用 程 序 接 收否是否是 圖 53 上位機發(fā)送命令,接收回應流程圖 (2)下位機接收命令/發(fā)送應答流程 在通信過程中,下位機一直處于接收狀態(tài),隨時準備接收上位機發(fā)來的命令幀。上位機接收到正確應 答后會繼續(xù)發(fā)送下一幀命令,而不會向下位機發(fā)送任何表示正確接收的命令。若下位機沒有收到上位機的呼叫信號就不會向上位機發(fā)出應答信號,那么上位機將繼續(xù)呼叫下位機,直到下位機有應答為止。 因此在本監(jiān)測軟件的通信流程為:上位機首先呼叫下位機,下位機若接收到呼叫則向上位機發(fā)出應答信號。當上位機遇到除第一種情況以外的其它三種情況時,常規(guī)做法會重發(fā)命令幀,但在本監(jiān)測軟件中就不允許重發(fā),因為引起后三種情況的原因有很多,如下位機沒有正確接收到上位機的命令幀:下位機執(zhí)行命令時出錯:下位機雖然執(zhí)行完命令,但上位機接收的應答幀有誤:下位機死機等等,如果對這些情況逐一處理就會令上位機程序疲于重發(fā)同一命令而無暇顧及輪詢,從而影響監(jiān)測效率。 具體協(xié)議表如下: 健雄職業(yè)技術學院畢業(yè)設計(論文) 21步驟 上位機 方向 單片機 1 待機狀態(tài) 待機狀態(tài) 2 發(fā)送“ EE” 未收到數據不動作 3 兩秒鐘內未接收“ DD”顯示通信失敗,返回步驟 1 如果收到數據回復“ DD” 表示收到 4 開始接收數據 發(fā)送當前溫濕度,光線狀況數據 5 回復“ CC”表示收到每秒重復步驟 2— 5周期一次 返回步驟 1待機狀態(tài) 通信流程的設計 通常我們判斷上位機所發(fā)出的命令信息是否被下位機正確接收到的依據是下位機的應答。這也就是說,通信中數據的傳輸存在著不可確定性,即一方通信設備向另一方發(fā)完數據后,并不知道另一方是否正確收到。 RS485只對物理接口的電氣特性做規(guī)定,因此需要用戶建立自己的高層通信協(xié)議。應該考慮使用負載能力更的 RS485協(xié)議。 通信協(xié)議的設計 l、通信模型的設計 在確定通信流程與通信格式之前,應該首先明確通信方式,即明確上、下位機之間將采用什么組網形式及什么通信規(guī)約的問題。 串口通信在本系統(tǒng)中的實現 串口通信模塊是本遠程監(jiān)測軟件的重要組成部分之一,是上位機與下位機進行正常通信的重要依據。 (4)使用簡便,用戶無需了解編程語言,便可輕松地設計和開發(fā)數據庫應用程序。 (2)支持長文件名,并可以在文件名內加空格,使文件便于理解、查找。倒與其它的關系型數據庫管理系統(tǒng)相比, Access2021 具有以下優(yōu)點 : (l)存儲文件單一。 Access2021 中的宏可以實現操作的自動化,使操作更加簡單、快捷。用戶只需簡單的操作就可建立數據庫中所使用的各種基本表、窗體和報表。 Access2021 具有完整的數據庫應用開發(fā)工具,用戶可以方便地設計、修改、瀏覽一個記錄數據的基本表;可以在表數據中進行各種篩選和查詢操作;可以設計和使用各種窗體以實現數據顯示和操作;可以根據表數據設計打印各種報表;對表進行一系列特定的操作。關閉串口的代碼如下: procedure TForml. FormClose(Sender; TObj ect: var Action: TCIoseAction); begin ml. StopComm; end; 健雄職業(yè)技術學院畢業(yè)設計(論文) 19第五章 上位機軟件設計 系統(tǒng)設計概述 本軟件采用模塊化設計方案,以系統(tǒng)主界面模塊為主導,實現用戶等級管理等主要功能,這樣可以使整個軟件結構層次化,且更易于維護和升級。利用 SPCOMM串口控件向下位機發(fā)送數據代碼如下: //發(fā)送數據和控制子程序 procedure senddata; var i:integer; mflg: Boolean; begin mflg: =true; for i: =l to 8 do begin if not fm ml writemdata(sendbutter, i)then begin 健雄職業(yè)技術學院畢業(yè)設計(論文) 18Commflg=false; break; end; end; end; (4)接收數據 在編寫基于串口的計算機工業(yè)測控時,通常需要由下位機向 PC機發(fā)送數據以使 PC機了解系統(tǒng)的測試數據或下位機的運行狀態(tài),并進而控制下位機的行為 [11]。否則需重新建立握手信號。代碼如下: // 初始化并 打開串口 : Comml. BaudRate: =9600; //波特率 9600bps Comml. Parity: =None; //奇偶檢驗無 Comml. ByteSize: =8: //數據位 8 Comml. StopBits: =l; //停止位 1 Comml. StartComm: //打開串口 (2)建立握手信號 實現 PC機與單片機之間的通信,首先要調通它們之間的握手信號,握手信號可以隨意選擇某特定字符串,當 Pc發(fā)出這樣一幀數據后,通過接收事件能收到單片機返回的這一幀數據或特定的某字符串,則表示握手成功,系統(tǒng)通信正常。當 PC發(fā)出 (F0,01,FF,FF,01,F0)后 8051能收到一幀 (F0,01,FF,FF,01,F0),表示數據通信握手成功 ,兩者之間就可以按照協(xié)議相互傳輸數據。 SPComm 的使用 以實現 PC 機與單片機 8051 之間的通信為例 ,首先要調通他們之間的握手信號。OnReceiveError:procedure(Sender: TObject。BufferLength:Word) of object 當輸入緩存有數據時將觸發(fā)該事件 ,在這里可以對從串口收到的數據進行處理。 事件 OnReceiveData:procedure(Sender:TObject。 dwSizeofDataToWrite:Word ):boolean用于發(fā)送一個字符串到寫線程 ,發(fā)送成功返回 True,發(fā)送失敗返回 False,執(zhí)行此函數將立即得到返回值 ,發(fā)送操作隨后執(zhí)行。 StopComm 過程用于關閉串口 ,沒有返回值。不能產生讀進程 。不能夠安裝 通信緩存 。打開串口錯誤 。 方法 Startm 方法用于打開串口 ,當打開失敗時通常會報錯。 SendDataEmpty:這是一個布爾屬性 ,為 True 時表示發(fā)送緩存為空 ,或者發(fā)送隊列健雄職業(yè)技術學院畢業(yè)設計(論文) 16里沒有信息 。 Parity:奇偶校驗位。 ParityCheck:奇偶校驗。 圖 41 安裝 SPComm 控件 SPComm 的主要屬性 ,方法和事件 屬性 CommName:填寫 COM1,COM2? 等串口的名字 ,在打開串口前 ,必須填寫好此值。如圖 41 安裝后 ,在 System 控件面板中將出現一個紅色控件 COM。 SPComm 控件 從互聯網能下載 SPComm 控件。 健雄職業(yè)技術學院畢業(yè)設計(論文) 15第四章 使用 SPComm 控件實現串口通信 Delphi可以利用的眾多串行通信控件中 ,SPComm控件可謂是最簡單 ,功能比較強大的一種 。 函數聲明形式: BOOL CMyCom: WriteMyCom(char*bur,DWORD dwBufLen) 參數含義: buf為待發(fā)命令的緩沖區(qū)指針, dwBufLen待發(fā)字符。程序根據串口配置情況調用 CreateFile0函數打開串口,隨后啟動串口監(jiān)視線程等待應答數據。從用戶角度講上位機串口通信模塊的使用流程一般分四個步驟,即“初始化并打開串口 監(jiān)視串口 讀寫串口 關閉串口 ” 。 串口 類的開發(fā) 串口類是對通信 API 函數進行最一般的封裝,以便能夠應用于不同的串口應用程序開發(fā)中。 ReadFile0和 writeFile(i)函數是否為異步操作模式是由 CreateFile函數決定的。例如,線程可以在不同的端口上同時執(zhí)行 I/ O操作,甚至可以在同一端口上同時進行讀寫操作。在異步執(zhí)行時,即使操作還未完成,調用的函數也會立即返回。在同步執(zhí)行時,函數直到操作完成后才返回。寫函數不論在聲明形式上還是在使用方法上都與 ReadFile0十分相似,具體可以查看 MSDN幫助文檔。 ReadFile0函數第四個參數,在讀操作之前應置為 0。讀/寫串口 API函數: win32中使用 ReadFile0函數或者 ReadFileEx0數從串口中讀取數據。在這種情況下,超時規(guī)定的是操作的完成時間,而不是讀/寫函數的返回時間。寫操作只支持總超時,而讀操作兩種超時均支持。超時有兩種:間隔超時和總超時。 Windows用陽緩沖區(qū)來暫存串行口輸入和輸出的數據,如果通信的速率較高,則應該設置較大的緩沖區(qū).調用 SctupCommOi函數可以設置串行口的輸入和輸出緩沖區(qū)的大小 。一般在CreateFile0打開串行口后,就調用 GetCommState()i函 l數來獲取串行口的初始配置修改串行口的配置,應該先修改 DCB結構,然后再調用 SetCommState0函數用指定的 DCB結構來設置串行口 [3]。在查詢或配置串行口的屬性時,都要用 DCB結構來作為緩沖區(qū)。 (2)串口的初始化 在打開串口后,常常需要對串口進行一些初始化工作,這需要通過一個 DCB結構來進行。如果打開成功的話會返回一個串口的句柄,應用程序應對這個句柄判斷其有效性。通信 API函數所涉及的操作包括串口的打開、關閉、初始化與讀寫等。在面向對象方法下通常使用串口類 (即串口函數庫 ),這樣編程效率即
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1