999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數字邏輯實驗仿真系統中虛擬器件邏輯功能的實現

2007-12-31 00:00:00
計算機時代 2007年10期

摘 要:在利用VC開發數字邏輯實驗仿真系統時,有大量的虛擬實驗元件(儀器)的邏輯功能需要編程實現。利用圖形化編程語言LabVIEW編寫虛擬元件邏輯功能的DLL函數,可以大大節省代碼編寫與調試工作量。文章結合實例分析歸納了LabVIEW中DLL函數的制作方法與技巧。

關鍵詞:LabVlEW;圖形化編程語言;DLL函數;虛擬儀器

0 引言

VR技術的蓬勃發展推動了“虛擬實驗室”的發展。在教學或科研領域廣泛開展虛擬實驗具有重要的意義,如:①能彌補實驗經費不足;②能實現資源無損重復利用;③能打破實驗受時空的限制;④能實現對實驗的微觀控制等等。在進行數字邏輯課程教學時,筆者需要組織學生進行各種數字邏輯實驗,但受物理條件的限制無法正常開展硬件實驗;雖然EDA技術的發展,EDA實驗室也提供了相關的實驗功能,但EDA實驗室的組建需要大筆經費,這受到了經濟上的限制。為此,筆者以EDA技術為基礎,設計了一個數字邏輯電路虛擬實驗平臺模型,并用VC作為主要開發工具實現該平臺。該實驗平臺模型如圖1所示。

該模型中虛擬實驗平臺是一個實現人機交互的圖形界面,主要完成數據的采集和結果的輸出顯示。

后臺計算程序是一個數據處理模塊,負責完成兩方面的工作:一方面將用戶編輯輸入的電路轉換成模擬數據;另一方面,利用用戶輸入的外部激勵信號和控制命令驅動電路,進行模擬計算得出模擬結果。

虛擬設備庫中包含了數字邏輯實驗中所要用到的所有設備,包括各種電源器件、顯示器件(各種指示燈等)、基本門電路、集成芯片、各種儀器(如示波器)等。所有這些虛擬器件都需要為其建立相應的對象模型。對上述的虛擬元件建立的模型是E=(N,F,I,O),其中,N為元件的類型名稱,F為元件的功能,I、O是元件的輸入輸出端口。

VC作為一種面向對象的語言,同時具備強大的圖像處理能力,從而成為了開發的首選工具,借助于Microsoft出色的MFC類庫和應用程序框架,能夠輕易實現對象的存儲與表示。然而,直接使用VC來編寫代碼實現虛擬設備庫中大量器件的邏輯功能,其工作十分煩瑣。為此筆者選擇采用LabVIE來編制虛擬器件的邏輯功能函數并生成DLL函數以供VC中調用,從而簡化這部分代碼的編寫與調試。

1 LabVIEW與虛擬儀器編程

1.1虛擬儀器是計算機仿真的基本元件

虛擬儀器(Virtual Instrument,簡稱Ⅵ)是LabVIEW首先提出的創新概念。所謂虛擬儀器,是在以通用計算機為核心的硬件平臺上,由用戶設計定義、具有虛擬面板、測試功能由測試軟件實現的一種計算機儀器系統。它利用PC計算機顯示器(CRT)的顯示功能模擬傳統儀器的控制面板,以多種形式表達輸出檢測結果,利用PC計算機強大的軟件功能實現信號數據的運算、分析、處理,由I/O接口設備完成信號的采集、測量與調理,從而完成各種測試功能。“虛擬”二字主要包含兩方面的含義:

第一,虛擬儀器的面板是虛擬的。

第二,虛擬儀器測量功能由軟件編程來實現。

最初LabVIEW提出的虛擬儀器概念實際是一種程序設計思想,目前虛擬儀器概念已經發展成為一種創新的儀器設計思想。這種思想可以簡單表述為:一個VI可以由前面板、數據流圖和圖標連接端口組成,前面板相當于真實物理儀器的操作面板,而數據流框圖就相當于儀器的電路結構,前面板和數據流框圖有各自的設計窗口,而圖標連接端口則負責前面板窗口和框圖窗口之間的數據傳輸與交換。

1.2 LabVlEW是圖形化的虛擬儀器編程語言

LabVIEW(Laboratory Virtual Instrument EngineeringWorkbench,實驗室虛擬儀器工程平臺)是美國m公司(NationalInstrumem Company)最先于1986年發布的一種基于G語言(Graphics Language,圖形化編程語言)的虛擬儀器軟件開發工具,到目前LabVIEW已經發展到8.0版本。可以說虛擬儀器是與LabVIEW同步誕生的。目前已有多種的虛擬儀器的軟件開發工具,如C、Visual C++、Visual Basic、Labwindows/CVI等屬于文本式編程語言,而LabVIEW,HPVEE則屬于圖形化編程語言。LabVIEW以其強大的便捷的圖形化編程方式贏得了包括航空、航天、通信、汽車、半導體、生物醫學等世界范圍眾多領域的廣泛應用,從大學實驗室到工廠,從探索研究到技術集成,我們都可以發現LabVIEW應用的成果和開發的產品。

LabVIEW為虛擬儀器設計者提供了一個便捷、輕松的設計環境,利用它,設計者可以像搭積木一樣,輕松組建一個測量系統和構造自己的儀器面板,而無需進行任何繁瑣的代碼編寫。而且用LabVIEW設計的虛擬儀器可以脫離LabVIEW環境使用。LabVIEW提供了大量與外部代碼或軟件進行連接的機制,諸如DLLs(動態鏈接庫)、DDE(共享庫)、ActiveX等,這就使得利用LabVIEW與Visual C++組合開發虛擬實驗室系統成為可能。

2 利用LabVIEW實現虛擬器件的邏輯功能

本文以半加器為例,分析在LabVIEW中創建半加器邏輯功能函數DLL的方法。

2.1 創建子VI

LabVIEW中的子VI(subVI)相當于文本編程語言中的函數、過程和子程序,就是可以被其他的VI調用的VI。要在VC或其他文本編程語言程序調用LabVIEW的子VI,首先要利用子VI創建DLL函數。

子Vl的創建過程與普通Vl的創建過程基本相同,即都是通過前面板來定義用戶界面,用程序框圖(block diagram)來定義程序流程。創建好的半加器VI的前面板和程序框圖如圖2、圖3所示。從一個普通VI構造子VI的重要工作是定義它的圖標和連接器。子VI的圖標是作為被其他VI調用時出現在程序框圖中的圖標,而連接器則定義了子VI作為子函數(過程)具有的輸入輸出參數類型與個數。對制作被文本語言調用的DLL函數來說,定義連接器是必須的。因為半加器有兩個輸入和兩個輸出,所以在定義它的連接器時應選擇一個兩輸入兩輸出的模板。未定義的連接器各個端子都是空白的,通過將各個端子與前面板中相應的控制器或指示器關聯后,連接器的端子變了顏色。用沒有定義連接器的子VI創建的DLL函數將是一個沒有任何輸入、輸出參數的函數。因此創建DLL前一定要將子VI的連接器定義好。

2.2 利用子VI創建DLL

創建好子Ⅵ后,就可以利用它來制作DLL了。工作開始之前要打開包含了以上子VI的項目。如果原來的子VI是單獨建立的則新建一個項目,然后將子VI添加到新項目中并保存該項目。注意一定要先保存項目,未經保存的項目是無法創建DLL或EXE的。

簡單歸納制作步驟如下:

(1)打開項目后,在項目瀏覽器(Project Explorer)中展開“My Computer”。

(2)右擊其中的“Build specification”,從快捷菜單中選擇New->Shared Library命令打開Shared Library Property對話框(如圖3)。通過該對話框為即將創建的DLL配置參數,其中最重要的就是Shared Library Information和Source Files兩類參數。前者用于指定輸出的DLL文件路徑等信息,后者則指出用于制作DLL函數的源子VI文件。

(3)在Shared Library Information面板設置生成的目標文件信息。用戶要特別關注兩個參數:Target filename和SharedLibrary destination directory,前者是生成的DLL文件名,后者是存放DLL文件的目錄路徑。值得注意的是Windows環境所用的DLL是以.dll為擴展名,而在Mac OS中用的擴展名是,framework,Linux中則是.SO。

(4)在Source files面板中指定將導出DLL的VI;即要從Project Files列表中將既定的VI文件添加到Exported Vis列表中。LabVIEW會根據加入的子VI自動生成DLL函數原型void HalfAdder(unsigned char A,unsigned char B,unsigned char*Y,unsigned char*C)。

在此用戶可以對該函數作進一步配置。如果原來的子VI明明存在數據輸入輸出,而在此卻發現函數原型中沒有任何輸入輸出參數或者參數的數目與子VI中的輸入輸出端口不相符,則說明在創建子VI的時候沒有定義連接器或連接器定義不正確,需重新定義子VI的連接器。

(5)相關參數配置好后便可以執行創建“Build”命令,LabVIEW會根據參數生成相關的文件(如圖4)。其中在VC中調用該函數時要用到的有三個文件dll、h和lib文件。

3 結束語

正確創建DLL后,在VC中就可以按其它DLL函數的調用方法一樣,使用LabVIEW中導出的函數了。以此為基礎,筆者利用LabVIEW生成了數字邏輯實驗仿真系統中所需的各種虛擬器件(包括邏輯門、譯碼器、觸發器、移位寄存器、計數器等)的邏輯功能函數。

充分利用LabVIEW圖形化編程的便捷陸,通過圖形圖標的拖動與組合便輕松組裝出一個個具有特定功能的程序,大大簡化了開發人員代碼編寫與調試的工作。

主站蜘蛛池模板: 久久人妻系列无码一区| 99re热精品视频国产免费| 国产特级毛片| 亚洲欧美自拍一区| 精品国产成人高清在线| 精品免费在线视频| 熟女视频91| 超清无码熟妇人妻AV在线绿巨人| 久久精品人人做人人综合试看| 激情综合图区| 日韩精品免费在线视频| 国产精品部在线观看| 国产九九精品视频| 爱色欧美亚洲综合图区| 国产精品无码一二三视频| 国产欧美一区二区三区视频在线观看| 午夜国产理论| 久久9966精品国产免费| 久久精品国产精品国产一区| 久久午夜夜伦鲁鲁片无码免费| 91久久精品日日躁夜夜躁欧美| 国产丝袜91| 全色黄大色大片免费久久老太| 日韩毛片免费观看| 日本三级欧美三级| 秋霞午夜国产精品成人片| 精品人妻无码中字系列| 不卡无码网| 综合五月天网| 99草精品视频| 欧洲亚洲一区| 久久免费精品琪琪| 日本伊人色综合网| 午夜视频www| 精品国产成人av免费| 波多野吉衣一区二区三区av| 91口爆吞精国产对白第三集| 欧美国产菊爆免费观看| 日韩 欧美 国产 精品 综合| 国内丰满少妇猛烈精品播| 99精品影院| 少妇精品久久久一区二区三区| 亚洲水蜜桃久久综合网站| 亚洲综合色在线| 色哟哟国产精品一区二区| 国产一级精品毛片基地| 中文字幕久久波多野结衣| 亚洲日韩图片专区第1页| 欧美第二区| 国产特一级毛片| 欧美精品啪啪| 欧洲欧美人成免费全部视频| 欧美国产日本高清不卡| 乱人伦99久久| 亚洲欧美另类日本| 午夜精品一区二区蜜桃| 欧美第一页在线| 日本欧美视频在线观看| 欧美日韩成人在线观看| 中文字幕1区2区| 2019年国产精品自拍不卡| 99热在线只有精品| 成人精品亚洲| 国产免费久久精品99re丫丫一| 国产精品无码AV中文| 久精品色妇丰满人妻| 成人一区在线| 久久久91人妻无码精品蜜桃HD| 亚洲精品第一页不卡| 亚洲小视频网站| 永久毛片在线播| 国产亚洲精| 国产地址二永久伊甸园| 亚洲成A人V欧美综合天堂| 毛片基地视频| 久草视频福利在线观看| 伦精品一区二区三区视频| 亚洲人成日本在线观看| 国产精品综合久久久| 丁香综合在线| 亚洲第一极品精品无码| 国产日韩丝袜一二三区|