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

正文內(nèi)容

基于單片機的液位控制系統(tǒng)的設(shè)計論文-資料下載頁

2025-06-27 20:05本頁面
  

【正文】 先軟件上將P0口寄存器置為0xFF,延遲適當時間后adRD復(fù)位,輸出A/D轉(zhuǎn)換結(jié)果,隨之通過P0口讀入數(shù)據(jù),還原adRD為高,該階段結(jié)束。兩個階段中可加如適當?shù)难舆t,以滿足ADC0804 100ns的轉(zhuǎn)換時間。 電機控制模塊軟件設(shè)計本設(shè)計采用單片機主控芯片控制繼電器外圍電路,用于驅(qū)動電機的啟動與關(guān)停。其程序流程圖如圖43所示。以下是液位檢測與電機控制部分源程序代碼:check_lq(){ad_start()。_nop_()。_nop_()。_nop_()。ad_read()。if(prelq=uplq amp。amp。 key==1){RELAY=1。key=0。makemark(1)。}else if(prelq=downlq amp。amp。 key==0){RELAY=0。key=1。makemark(0)。}}啟動A/D轉(zhuǎn)換讀取液位數(shù)據(jù)開始實際液位≥高警戒液位且電機已啟動關(guān)閉電機記錄數(shù)據(jù)實際液位≤低警戒液位且電機關(guān)閉返回啟動電機記錄數(shù)據(jù)是否是否圖43 液位檢測流程圖 通信協(xié)議及通信模塊軟件設(shè)計1) 通信協(xié)議為了使PC上位機與設(shè)備實現(xiàn)有意義的通信,設(shè)計了簡單的通信協(xié)議。通信波特率設(shè)計為4800bps,過高的波特率在沒有檢糾錯方式的情況下易發(fā)生數(shù)據(jù)的丟失,過低的波特率會使傳輸變慢;8位有效數(shù)據(jù)位;無奇偶校驗位;1位停止位。傳送以字節(jié)為單位,發(fā)送命令與數(shù)據(jù)。通信協(xié)議命令控制字如表43。軟件設(shè)計上,系統(tǒng)以查詢的方式檢測上位機的命令控制字,并及時進入各響應(yīng)函數(shù)予以響應(yīng)。通信檢測流程如圖44所示。表43 通信協(xié)議上位機命令控制字含 義下位機命令控制字含 義0x00請求聯(lián)機檢測0xF0響應(yīng)聯(lián)機檢測成功0x01讀系統(tǒng)時間0xF1響應(yīng)寫時間指令,發(fā)送7字節(jié)時間數(shù)據(jù)0x02設(shè)置系統(tǒng)時間0xF2響應(yīng)度時間指令,接收7字節(jié)時間數(shù)據(jù)0x03讀當前液位0xF3響應(yīng)讀當前液位指令,發(fā)送1字節(jié)液位數(shù)據(jù)0x04讀記錄數(shù)據(jù)0xF4響應(yīng)讀記錄數(shù)據(jù)指令,發(fā)送2字節(jié)數(shù)據(jù)量及相應(yīng)數(shù)據(jù)0x05讀液位上下限0xF5響應(yīng)讀液位上下限指令,發(fā)送2字節(jié)液位上下限數(shù)據(jù)0x06設(shè)置液位上下限0xF6響應(yīng)設(shè)置液位上下限指令,接收2字節(jié)液位上下限數(shù)據(jù)0x07讀當前液位及電機狀態(tài)0xF7響應(yīng)讀當前液位及電機狀態(tài)指令,發(fā)送2字節(jié)液位數(shù)據(jù)及電機狀態(tài)開始判斷是否有通信請求通信響應(yīng)處理返回判斷請求信息是否滿足條件1滿足條件n響應(yīng)處理1響應(yīng)處理n… …圖44 通信檢測流程圖2)通信模塊的控制該模塊在控制上設(shè)計兩個函數(shù),一個是發(fā)送函數(shù),另一個是接收函數(shù)。由于采用半雙工的通信方式,需要控制變量E的置位與復(fù)位轉(zhuǎn)換發(fā)送與接收的狀態(tài)。發(fā)送的過程:置E為1,使系統(tǒng)處于發(fā)送數(shù)據(jù)狀態(tài);將數(shù)據(jù)寫入串行通信緩沖區(qū)SBUF;等待,直到發(fā)送完畢,將E清0,返回接收狀態(tài)。接收過程:清零E,使系統(tǒng)處于接收狀態(tài);等待,直到接收完畢,讀串行通信緩沖區(qū)SBUF;繼續(xù)保持接收狀態(tài)。這兩個子程序在其他函數(shù)需要進行串口通信時調(diào)用即可實現(xiàn)與上位機的串行通信。 時間模塊軟件設(shè)計DS1302內(nèi)部寄存器的定義直接影響著軟件的設(shè)計,大概可分為時間控制寄存器和內(nèi)部RAM寄存器。其中:l CH: 時鐘停止位寄存器2的第7位12/24小時標志CH=0 振蕩器工作允許bit7=1,12小時模式CH=1 振蕩器停止bit7=0,24小時模式l WP: 寫保護位寄存器2的第5位:AM/PM定義WP=0 寄存器數(shù)據(jù)能夠?qū)懭?AP=1 下午模式WP=1 寄存器數(shù)據(jù)不能寫入 AP=0 上午模式l TCS: 涓流充電選擇DS:二極管選擇位TCS=1010 使能涓流充電 DS=01 選擇一個二極管TCS=其它 禁止涓流充電 DS=10 選擇兩個二極管DS=00 或11, 即使TCS=1010, 充電功能也被禁止l RS: 涓流充電電阻選擇位表44 RS狀態(tài)標志及含義RS位電阻典型值00無無01R12KΩ10R24KΩ11R38KΩ由于DS1302數(shù)據(jù)傳輸方式為串行移位輸入輸出。地址、數(shù)據(jù)的寫操作流程是相同的。地址沒有讀操作。無論是讀還是寫,二者結(jié)構(gòu)類似。讀寫的核心是產(chǎn)生SCLK移位信號與移位,讀操作是將數(shù)據(jù)從DS1302的I/O口移入單片機,寫操作是將數(shù)據(jù)從單片機移入DS1302時鐘芯片。我們最終處理的對象是時間數(shù)據(jù)或狀態(tài)數(shù)據(jù),在獲取數(shù)據(jù)時,首先寫入地址,然后讀取數(shù)據(jù);寫入數(shù)據(jù)時,先寫入地址,再輸出數(shù)據(jù)。完成時間的模塊軟件的設(shè)計。DS1302讀寫程序如下:ds_read(){uchar j。iodat=0x00。for(j=8。j0。j){iodat=iodat1。odat7=IO_DATA。_nop_()。SCLK=1。_nop_()。SCLK=0。}}ds_write(uchar ad){uchar i。ddat=ad。for(i=8。i0。i){IO_DATA=ddat0。_nop_()。SCLK=1。_nop_()。ddat=ddat1。SCLK=0。}}51系列單片機中有片外存儲器讀寫的指令MOVX,無需用戶復(fù)雜的控制、輸入出處操作,故不再陳述。 上位機軟件設(shè)計 上位機軟件開發(fā)編譯環(huán)境VC++是Microsoft(微軟)開發(fā)的在Windows平臺下構(gòu)建32位應(yīng)用程序的強大而又復(fù)雜的可視化開發(fā)平臺,它是世界上使用最多的開發(fā)工具之一。VC++的應(yīng)用非常廣泛,從桌面應(yīng)用程序到服務(wù)器端軟件,從系統(tǒng)軟件到應(yīng)用軟件,從單擊程序到分布式應(yīng)用程序,從圖形圖像處理到游戲的開發(fā),VC++無處不在。目前,在VC++發(fā)展歷程下已有了產(chǎn)生了多個版本。版本的更新帶來了更美觀的操作界面,更人性化的操作方式,增強了某些模塊的功能。同時,面向不同開發(fā)對象推出了多項產(chǎn)品。VC++,但是其以界面簡潔、占用資源少、操作方便、相關(guān)資料豐富等優(yōu)點,仍為廣大程序開發(fā)人員使用。本系統(tǒng)上位機軟件使用VC++ 。上位機軟件設(shè)計要求:上位機軟件是操作人員與設(shè)計系統(tǒng)交互的一個平臺。系統(tǒng)的大多數(shù)輔助功能通過上位機軟件與系統(tǒng)設(shè)備通信控制完成。上位機軟件在已有的系統(tǒng)軟硬件基礎(chǔ)上有較大的開發(fā)空間,強大功能的上位機軟件是整個系統(tǒng)不可缺少的一部分。因此,此次設(shè)計的上位機軟件具有如下功能:1) 能夠與系統(tǒng)設(shè)備進行建立通信連接。2) 能夠?qū)崟r監(jiān)控系統(tǒng)設(shè)備獲取的液位、電機狀態(tài)等參數(shù)。3) 能夠獲取系統(tǒng)設(shè)備當前液位、系統(tǒng)時間、高低液位警戒線等參數(shù)。4) 能夠設(shè)置系統(tǒng)設(shè)備液位、系統(tǒng)時間、高低液位警戒線等參數(shù)。5) 能夠讀取系統(tǒng)設(shè)備記錄的數(shù)據(jù)。6) 能夠?qū)σ呀?jīng)獲取的數(shù)據(jù)進行顯示、保存、數(shù)據(jù)處理(包括數(shù)值分析及繪圖)。 上位機軟件的界面設(shè)計直觀、人性的界面設(shè)計能夠為軟件使用者帶來很多的方便,同時也能夠為其留下深刻的印象。界面的設(shè)計與軟件的功能息息相關(guān),具有良好的層次結(jié)構(gòu),使軟件使用者更容易上手。在滿足上文上位機軟件的要求下,設(shè)計了一個主窗口,四頁標簽子窗口的設(shè)計。主窗口與各個標簽頁的子窗口的相關(guān)功能見表45:表45 界面功能描述標簽對象功能主窗口關(guān)閉按鈕用來關(guān)閉程序。實時液位組框啟動按鈕按下后用以顯示實時液位。電機狀態(tài)組框啟動按鈕按下后用以顯示實時電機開啟/關(guān)閉狀態(tài)。啟動按鈕啟動實時監(jiān)控,初始時不可用,待串口打開成功且聯(lián)機成功后變?yōu)榭捎脿顟B(tài)。標簽一(串口聯(lián)機)串口號選擇組合框用以選擇串行口,選擇范圍COM1COM8打開串口在串口號選擇后,使用此按鈕串口硬件建立連接;在串口打開時,該按鈕顯示為 關(guān)閉串口,用來斷開串口的連接。聯(lián)機檢測按鈕該按鈕初始時不可用,在打開串口后為可用狀態(tài),用來與系統(tǒng)設(shè)備進行連接,并顯示聯(lián)機狀態(tài)。標簽二(時間選項)讀取設(shè)備時間按鈕該按鈕初始時不可用,在打開串口且聯(lián)機成功后變?yōu)榭捎?。用來讀取系統(tǒng)設(shè)備時間并顯示。設(shè)置系統(tǒng)時間按鈕該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。用來向系統(tǒng)設(shè)備寫入PC機當前時間。設(shè)置指定時間按鈕該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用。用來向系統(tǒng)寫入日期時間系列組合框選定時間。時間日期系列組合框選定時間日期,用以設(shè)定指定時間按鈕時間的寫入。設(shè)定范圍為2000年1月1日0時0分至2099年12月31日23時59分之間。標簽三(液位選項)讀取當前液位按鈕該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。讀取系統(tǒng)設(shè)備當前液位及顯示。讀取液位參數(shù)按鈕該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。讀取系統(tǒng)設(shè)備當前高低液位警戒線及顯示。設(shè)置參數(shù)按鈕該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。設(shè)置系統(tǒng)設(shè)備高低液位警戒線,設(shè)置數(shù)據(jù)由上下液位滑塊提供。上液位滑塊確定上液位參數(shù),設(shè)置范圍:大于當前下液位滑塊參數(shù)值,小于5米。下液位滑塊確定下液位參數(shù),設(shè)置范圍:小于當前上液位滑塊參數(shù),大于0米。標簽四(數(shù)據(jù)選項)讀取數(shù)據(jù)按鈕該按鈕初始時不可用,在打開串口且聯(lián)機成功后為可用狀態(tài)。讀取系統(tǒng)設(shè)備記錄數(shù)據(jù)。完成后顯示接收記錄數(shù)據(jù)項目數(shù)。保存按鈕保存接收數(shù)據(jù)為文本文件,默認文件名為Rec**.txt。(**為數(shù)字,可自行增加)選擇路徑按鈕變更文件保存路徑,默認路徑為C:\COMDATA\數(shù)據(jù)顯示列表框用以顯示讀取數(shù)據(jù)。計算耗水量按鈕使用接收數(shù)據(jù)計算耗水量繪圖按鈕使用接收數(shù)據(jù)繪制圖形界面設(shè)計效果如圖45所示。圖45 上位機軟件界面效果圖 上位機串口通信功能的實現(xiàn)在VC++中,最基本的串口操作是使用Windows API(Application Programming Interface)完成的。Windows 這個多作業(yè)系統(tǒng)除了協(xié)調(diào)應(yīng)用程序的執(zhí)行、分配內(nèi)存、管理資源之外,它同時也是一個很大的服務(wù)中心,調(diào)用這個服務(wù)中心的各種服務(wù)(每一種服務(wù)就是一個函數(shù)),可以幫應(yīng)用程式達到開啟視窗、描繪圖形、使用周邊設(shè)備等目的,由于這些函數(shù)服務(wù)的對象是應(yīng)用程序(Application),簡稱API。通過使用API函數(shù)控制實現(xiàn)串口通信要復(fù)雜一些,但是可以進行深層次的使用。微軟沒有為串口操作提供相應(yīng)直接的MFC(Microsoft Foundation Classes)類。然而微軟提供了串口編程控件MSComm(Microsoft Communications Control)。MSComm是微軟公司提供的簡化Windows下串行通信編程的ActiveX控件,為應(yīng)用程序提供了通過串行口收發(fā)數(shù)據(jù)的簡便方法。MSComm控件在編程時比較方便,程序員不必去花時間了解較為復(fù)雜的API函數(shù)。它提供一系列標準通信命令的使用接口,利用它可以建立與串口的連接,并可以通過串口連接到其他通信設(shè)備,發(fā)送命令,交換數(shù)據(jù)以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯誤。在本設(shè)計中,便使用了MSComm控件進行串口編程。下面就程序中使用的MSComm控件的主要屬性作以說明。1) CommPort屬性功能:設(shè)置并返回端口號說明:串口號設(shè)置返回范圍從1到16。2) RThreshold屬性功能:在MSComm控件設(shè)置CommEvent屬性為ComEvRecevie并產(chǎn)生OnComm事件之前,設(shè)置并返回要接受的字符數(shù)。說明:接收緩沖區(qū)接收到指定字符時差生OnComm事件。當指定字符設(shè)置為零,不產(chǎn)生OnComm事件。3) Settings屬性功能:設(shè)置返回波特率、奇偶校驗、數(shù)據(jù)位、停止位參數(shù)。說明:設(shè)置時以字符串常量或字符串指針傳遞參數(shù)。格式為“BBB,P,D,S”BBBB為波特率,P為奇偶校驗,D為數(shù)據(jù)位數(shù),S為停止位數(shù)。4) InPut屬性功能:從接受區(qū)內(nèi)讀取數(shù)據(jù)。說明:返回數(shù)據(jù)類型為VARIANT型變量,該屬性在串口沒有打開時不能用,在運行時只讀。當InputMode屬性為0時,變量中含有String型數(shù)據(jù);當InputMode屬性為1時,變量中含有Byte型數(shù)據(jù);5) OutPut屬性功能:想緩沖區(qū)寫數(shù)據(jù),發(fā)送緩沖區(qū)當前數(shù)據(jù)。說明:寫入緩沖區(qū)變量類型為VARIANT。發(fā)送二進制數(shù)據(jù)時,將Byte型數(shù)據(jù)放入VARIANT型變量中。6) PortOpen屬性功能:打開或關(guān)閉串口,或者返回串口開、關(guān)狀態(tài)說明:傳入?yún)?shù)為BOOL行,為TRUE時,打開串口;為FALSE時關(guān)閉串口。串口的使用需要初始化,一般初始化需要以下幾個步驟:1) 選擇串口號2) 選擇輸入方式3) 設(shè)置輸入輸出緩沖區(qū)大小4) 設(shè)置波特率、奇偶校驗、數(shù)據(jù)位數(shù)、停止位數(shù)參數(shù)5) 打開串口6) 設(shè)置接收緩沖區(qū)接收多少數(shù)據(jù)響應(yīng)OnComm事件7) 設(shè)置當前接受區(qū)長度8) 先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)在串口初始化完成根據(jù)設(shè)置響應(yīng)OnComm事件,在OnComm事件處理函數(shù)中對數(shù)據(jù)進行相應(yīng)的處理。在此次上位機軟件中OnComm事件處理的思路是這樣的:由于采用的是主從式通信方式,在某個功能按鈕按下后,上位機使用SetOutPut函數(shù)發(fā)送指令,等待系統(tǒng)設(shè)備的響應(yīng),待接收到設(shè)備響應(yīng)時,響應(yīng)OnComm事件,根據(jù)返回的指令設(shè)置下一次響應(yīng)OnComm事件的字符數(shù)或發(fā)送相應(yīng)的數(shù)據(jù)。這樣設(shè)計的優(yōu)點是結(jié)合
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1