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

正文內(nèi)容

基于usb的實時數(shù)據(jù)采集系統(tǒng)設(shè)計畢業(yè)論文-資料下載頁

2025-02-26 10:30本頁面

【導(dǎo)讀】摘要本論文討論了一種外置的基于通用串行總線的實時數(shù)據(jù)采集系統(tǒng)的設(shè)計。容包含該系統(tǒng)基本硬件,數(shù)據(jù)傳輸及應(yīng)用軟件的設(shè)計。式傳輸,遵循協(xié)議。其驅(qū)動程序完成應(yīng)用程序與操作系統(tǒng)的USB接口功能,由UA301. 數(shù)據(jù)采集卡軟盤提供。應(yīng)用程序完成對外部采集設(shè)備進(jìn)行控制以及從外設(shè)獲取數(shù)據(jù)并顯。示,分析,處理和保存。本采集系統(tǒng)采用USB傳輸,支持即插即用,使用方便。力,可完成單通道和三通道模擬信號的采集。USB傳輸接口可完全滿足采集數(shù)據(jù)實時傳送。采集功能,系統(tǒng)界面友好,簡潔易用。

  

【正文】 ems[5]Text= + DateTimeToStr(Now())。 // 采樣時間初始化 Sample_Time = MyIniFileReadInteger(TIME_SET,TIME,10)。 Sample_Interval = MyIniFileReadInteger(TIME_SET,Interval,20)。 // USB 采樣信息 CH_NUM = MyIniFileReadInteger(USB_SET,CH_NUM,1)。 CH_NO = MyIniFileReadInteger(USB_SET,CH_NO,0)。 CH_RATE = MyIniFileReadInteger(USB_SET,CH_RATE,100)。 CH_GAIN = MyIniFileReadInteger(USB_SET,CH_GAIN,1)。 MyIniFileFree()。 //初始化曲線控件 Real_ChartAnimatedZoom =true。 Real_ChartAnimatedZoomSteps =6。 Real_ChartUndoZoom()。 Real_ChartTitleTextAdd(實時運行采樣曲線 )。 // 調(diào)整系統(tǒng)可視信息的位置 Main_PanelAlign = alClient。 Status_PanelAlign = alBottom。 Real_ChartAlign = alClient。 Face_PanelAlign = alClient。 Face_PanelBringToFront()。 Sample_PanelAlign = alClient。 IMG_FaceAlign = alClient。 IMG_FacePictureLoadFromFile(AnsiString(ExtractFilePath(ApplicationExeName)) + \\)。 Face_PanelVisible = false。 VTODATA=。 // 電壓與數(shù)字量的比值 } 主界面功能鍵模塊 1. 開始檢測模塊 按鈕“開始檢測”代碼實現(xiàn)數(shù)據(jù)采集卡的檢測以及底層設(shè)備的初始化,實現(xiàn)定義相關(guān)庫函數(shù),之后觸發(fā)采樣定時器,即可開始數(shù)據(jù)采集了 第 30 頁 共 40 頁 “開始檢測”按鈕的 OnClick 事件代碼: void __fastcall TF_Main::BB_Test_BeginClick(TObject *Sender) { // 開始檢測 , 定義 USB 相關(guān)庫函數(shù) HANDLE (*OpenUA300)(void)。 // 打開 USB void (*ssinit)(HANDLE hUsbAd)。 // 單通道初始化 void (*minit)(HANDLE hUsbAd,short fch,short chn,short gain)。// 多通道初始化 hUSBAD = LoadLibrary()。 // 打開 DLL 文件 (FARPROC amp。)OpenUA300 = GetProcAddress(hUSBAD,OpenUA300)。 // 打開 USB (FARPROC amp。)ssinit = GetProcAddress(hUSBAD,ssinit)。 // 單通道初始化 (FARPROC amp。)minit = GetProcAddress(hUSBAD,minit)。 // 多通道初始化 USB = OpenUA300()。 // 打開 USB 端口 if (CH_NUM==1) ssinit(USB)。 // 單通道初始化 if (CH_NUM==3) minit(USB,CH_NO,3,CH_GAIN)。 // 多通道初始化 STimer = 0。 // 采樣計時器清零 Real_ChartSeries[0]Clear()。 SAM_TimerEnabled = true。 // 采樣定 時器 Test_TimerInterval = Sample_Interval。 // 設(shè)置采樣間隔時間 Test_TimerEnabled = true。 //設(shè)置有效,開始采集數(shù)據(jù) BB_Test_RefreshEnabled = false。 // 采樣間隔定時器 } 代碼開始調(diào)用 實現(xiàn)單與多通道的初始化,之后調(diào)用“ USB = OpenUA300()”打開 USB 端口, 設(shè)置采樣定時和采樣間隔時間有效,觸發(fā)采樣定時器和計時器。 運行示例如圖 413: 圖中黑線為隨機圖樣,非采集數(shù)據(jù)。 圖 413:開始檢測示例圖 第 31 頁 共 40 頁 定時器( Test_Timer)有效,觸發(fā) Test_Timer 的 OnTimer 事件,開始采集數(shù)據(jù)。 OnTimer 事件代碼如下: void __fastcall TF_Main::Test_TimerTimer(TObject *Sender) { // 開始檢測,定時器有效 short Mdata[4096]。 Test_TimerEnabled = false。 short int (*ssad)(HANDLE hUsbAd,short int adch,short int gain)。 void (*readdata)(HANDLE hUsbAd, short *addat,unsigned short fcode, long leng)。 float RAD。 AnsiString ADS=。 (FARPROC amp。)ssad = GetProcAddress(hUSBAD,ssad)。 // 單通道采樣 (FARPROC amp。)readdata = GetProcAddress(hUSBAD,readdata)。 // 單通道采樣 if (CH_NUM==1) // 單通道初始化 { RAD = (ssad(hUSBAD,CH_NO,0)2048)* VTODATA。 // 讀通道 CH_NO ADS = FloatToStr(RAD).SubString(1,8) + V。 // 轉(zhuǎn)換為 STR Sample_Txt_MemoLinesAdd(ADS)。 // 加入 MEMO StatusBarPanelsItems[3]Text = 正在進(jìn)行單通道采樣 。 Real_ChartSeries[0]AddY(RAD,IntToStr(STimer)+S,3)。 //DateTimeToStr(Now()),3)。 //單通道采樣曲 線顯示 } if (CH_NUM==3) // 多通道初始化 { readdata(USB,Mdata,6000/CH_RATE,256)。 // 100KHZ int j=0。 //for(int i=0。i8。i++) // { ADS = 。 for(int ch=0。ch3。ch++) { RAD = (Mdata[j++]2048)* VTODATA。 ADS = ADS + FloatToStr(RAD).SubString(1,8).Trim() + V 。 Real_ChartSeries[ch]AddY(RAD,IntToStr(STimer)+S,3)。 // 多通道數(shù)據(jù)采集曲線方式顯示 } Sample_Txt_MemoLinesAdd(ADS)。 // 加入 MEMO // } StatusBarPanelsItems[3]Text = 正在進(jìn)行多通道采樣 。 } Test_TimerEnabled = true。 } 第 32 頁 共 40 頁 采樣計時的 SAM_Timer 的 OnTimer 事件代碼為: void __fastcall TF_Main::SAM_TimerTimer(TObject *Sender) { // 采樣計時器 SAM_TimerEnabled = false。 STimer = STimer + 1。 if (STimer = Sample_Time) { SAM_TimerEnabled = false。 Test_TimerEnabled = false。 StatusBarPanelsItems[3]Text = 采樣結(jié)束 。 } else SAM_TimerEnabled = true。 } 在數(shù)據(jù)實時顯示中刷新,包括文本數(shù)據(jù)和曲線數(shù)據(jù) 顯示時刷新。刷新是在這些過程進(jìn)行中中斷重新開始,使定時器和計時器清零并使得文本框和曲線顯示框也清零。 “刷新”按鈕的 OnClick 事件代碼為: void __fastcall TF_Main::BB_Test_RefreshClick(TObject *Sender) { // 刷新 STimer = 0。 // 采樣計時器清零 // for (int i=0。iReal_ChartSeries[0]Count()。i++) // Real_ChartSeries[0]Delete(i)。 Real_ChartSeries[0]Clear()。 Sample_Txt_MemoClear()。 Real_ChartDesignInfo 。 SAM_TimerEnabled = true。 // 采樣定時器 Test_TimerInterval = Sample_Interval。 // 設(shè)置采樣間隔時間 Test_TimerEnabled = true。 // 采樣間隔定時器 } 點擊“開始檢測” 后運行結(jié)果如圖 413 所示:(默認(rèn)文本方式顯示) 第 33 頁 共 40 頁 圖 414:文本顯示(多通道)采樣示例 顯示切換按鈕的功能是實現(xiàn)采集數(shù)據(jù)的兩種顯示方式之間的切換。 顯示方式按鈕的 OnClick 事件代碼為: void __fastcall TF_Main::BB_Test_ConvClick(TObject *Sender) { // 曲線 /文本切換 if (BB_Test_Conv(曲線 )0) { BB_Test_ConvCaption = 文本方式 。 Real_ChartVisible = true。 Real_ChartEnabled = true。 Sample_Txt_MemoVisible = false。 Sample_Txt_MemoEnabled = false。 } else { BB_Test_ConvCaption = 曲線方式 。 Sample_Txt_MemoVisible = true。 Sample_Txt_MemoEnabled = true。 Real_ChartVisible = false。 Real_ChartEnabled = false。 } } 顯示方式切換的代碼較簡單,使一種方式可視且為真的時候使得另一種 顯示方式不可視且其布爾值為假即可。 第 34 頁 共 40 頁 顯示方式切換如圖 415所示,圖示為圖 414
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1