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

數(shù)字邏輯實驗仿真系統(tǒng)中虛擬器件邏輯功能的實現(xiàn)

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

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

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

0 引言

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

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

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

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

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

1 LabVIEW與虛擬儀器編程

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

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

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

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

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

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

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

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

2 利用LabVIEW實現(xiàn)虛擬器件的邏輯功能

本文以半加器為例,分析在LabVIEW中創(chuàng)建半加器邏輯功能函數(shù)DLL的方法。

2.1 創(chuàng)建子VI

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

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

2.2 利用子VI創(chuàng)建DLL

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

簡單歸納制作步驟如下:

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

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

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

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

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

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

3 結束語

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

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

主站蜘蛛池模板: 四虎永久在线视频| 91在线日韩在线播放| 少妇极品熟妇人妻专区视频| 国产精品视频导航| 日韩国产另类| 日韩天堂视频| 中文字幕免费在线视频| 91人人妻人人做人人爽男同| 亚洲精品久综合蜜| 欧美成人区| 日韩精品高清自在线| 日韩午夜伦| 在线欧美a| 久久久久久久久18禁秘| 国产精品久久久久鬼色| 中文字幕一区二区人妻电影| 黄色网页在线播放| 色综合五月| 国产精品白浆在线播放| 国产午夜精品一区二区三| 毛片基地视频| 不卡网亚洲无码| 日韩国产高清无码| 国产欧美专区在线观看| 亚洲综合极品香蕉久久网| 久久a毛片| 国产精品不卡片视频免费观看| 无码'专区第一页| 欧洲欧美人成免费全部视频| 国产一区二区精品高清在线观看| 91久久偷偷做嫩草影院电| 欧美激情第一区| 日韩高清中文字幕| 天堂在线亚洲| 国产欧美视频综合二区 | 黄网站欧美内射| 黄色网址免费在线| 亚洲欧美成人影院| 伊人成人在线| 成人永久免费A∨一级在线播放| 手机在线国产精品| 91在线播放国产| 欧美国产日韩在线| 日韩成人免费网站| 日韩经典精品无码一区二区| 国产无码网站在线观看| 国产经典在线观看一区| 亚洲综合网在线观看| 亚洲a级在线观看| 狠狠色噜噜狠狠狠狠色综合久| 国内精品视频在线| 国产成人8x视频一区二区| 国产在线一区视频| 国产三区二区| 成人免费一级片| 伊人国产无码高清视频| 亚洲三级a| 日本免费a视频| 国产区免费精品视频| 狼友av永久网站免费观看| 2021天堂在线亚洲精品专区| 欧美另类精品一区二区三区| 亚洲色图在线观看| 日韩A∨精品日韩精品无码| 成人午夜视频免费看欧美| 久夜色精品国产噜噜| 99热这里只有精品国产99| 欧美一区二区三区国产精品| 亚洲永久精品ww47国产| 亚洲Av综合日韩精品久久久| 久久综合结合久久狠狠狠97色| 免费看美女毛片| 人人爱天天做夜夜爽| 亚洲制服中文字幕一区二区| 色噜噜综合网| 国产成人欧美| 免费国产黄线在线观看| 亚洲综合天堂网| 国产呦视频免费视频在线观看| 内射人妻无码色AV天堂| av在线无码浏览| 欧美a网站|