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

微機原理軟件模擬實驗的設計與實現

2012-09-11 10:17:02黃淑玲
微處理機 2012年6期
關鍵詞:設置信號實驗

黃淑玲

(韓山師范學院物理與電子工程系,潮州 521041)

1 引言

軟件模擬實驗具有傳統實驗不可比擬的幾個優勢[1]:①實現實驗組數無限擴展和實驗的“零”維護保障;②實現實驗教學的“一體化”;③突破傳統實驗對“時、空”的限制;④易于開設新型實驗項目;⑤有助于教育資源的共享和實現跨學科教學。微機原理是一門重要的專業課程。該課程比較抽象,實踐性較強。該課程按大綱要求只開設18學時的實驗,顯然要深入學好這門課程,18學時的實驗是遠遠不夠的。為此,微機原理軟件模擬實驗可以彌補現實情況的不足。

2 微機原理軟件模擬實驗的設計

傳統的微機原理實驗設備包括計算機和其相連的專用實驗箱兩部分,“微機原理軟件模擬實驗”則采用以“軟”代“硬”的設計電路,強調實用性、效益性為主,以最大限度地仿真真實環境,主要實現了“專用實驗箱”的虛擬化,將它“搬”到了“計算機”的顯示器上。要實現實驗箱的虛擬化首先要完成實驗箱中具有獨立功能的所有部件的虛擬化,主要包括虛擬接口芯片的設計以及每個實驗如何調用所需用的硬件芯片、如何執行程序、如何得出結果等。

2.1 虛擬接口芯片的設計

虛擬接口芯片是用一個類來封裝和構造的[2-3]。使得其具有獨立性、擴充性、可重用性和可維護性。根據芯片的功能、特性抽象出能體現這些功能和特性的屬性、方法、事件。芯片的內部屬性與外部通信是通過虛擬芯片的行為來完成的。行為在類中表現為事件與方法。事件是被動行為,由某個內部或外部條件的變化來觸發;方法是主動行為,是組件對自身或外部環境的主動調用。例如對于并行接口8255芯片,用E8255Chip類來封裝8255虛擬接口芯片。E8255Chip類實現了8255可編程并行I/O接口芯片的邏輯功能,它所包含的主要方法和事件如下:

void setPortAdress(int num):設置芯片的端口地址

int getPortAdress():獲取芯片的端口地址

void setWR(short num):設置寫信號

short getWR():獲取寫信號

void setRD(short num):設置讀信號

short getRD():獲取讀信號

void setCS(short num):設置片選信號

short getCS():獲取片選信號

void setA1A0(short num):設置內部地址信號

short getA1A0():獲取內部地址信號

void setConSignal():設置5個控制信號A1 A0/RD/WR/CS

short getConSignal():獲取5個控制信號A1 A0/RD/WR/CS

void setReadConSignal():設置讀端口5個控制信號(A1 A0/RD/WR/CS)

void setWriteConSignal():設置寫端口5個控制信號(A1 A0/RD/WR/CS)

void setPortData(short num):設置端口數據(D0~D7引腳信號)

short getPortData():獲取端口數據(D0~D7引腳信號)

short getE8255Areg():獲取A口數據(PA0~PA7引腳信號)

void setE8255Areg(short num):設置A口數據(PA0~PA7引腳信號)

short getE8255Breg():獲取B口數據(PB0~PB7引腳信號)

void setE8255Breg(short num):設置B口數據(PB0~PB7引腳信號)

short getE8255Creg():獲取C口數據(PC0~PC7引腳信號)

void setE8255Creg(short num):設置C口數據(PC0~PC7引腳信號)

short getE8255Conreg():獲取控制口數據

void setE8255Conreg(short num):設置控制口數據

void setE8255work():設置工作方式

int getE8255AWork():獲取A口工作方式

int getE8255BWork():獲取B口工作方式

void PortReadWrite():進行端口讀寫

void addPropertyChangeListener(PropertyChange-Listener listener):

注冊屬性改變監聽器。

void removePropertyChangeListener(PropertyChangeListener listener):

注銷屬性改變監聽器。

E8255Chip類采用JavaBean組件形式封裝,該組件能產生屬性改變事件PropertyChangeEvent。因為E8255Chip對象能產生 PropertyChangeEvent,同時在 setE8255Areg()、setE8255Breg()和setE8255 Creg()三個方法中都利用firePropertyChange()進行點火操作,firePropertyChange()對所注冊的監聽器發出一個PropertyChangeEvent,也就是說只要端口的數據改變就通知相應的屬性改變事件監聽器PropertyChangeListener,在該監聽器中的 property Change()方法作相應的處理。

2.2 模擬器設計

每一個實驗對應一個模擬器。模擬器仿真執行某一個實驗,它充當CPU的角色,負責調配實驗所需的軟、硬件。軟件是指解釋程序和用戶輸入的源程序,而硬件是指虛擬實驗平臺。模擬器根據用戶在虛擬實驗平臺上的連線,調用解釋程序對匯編源程序進行解釋來仿真運行結果。

模擬器的設計存在共性和個性的地方,模擬器共性的設計就是一些共享方法和共享類的設計。實現連線操作和源程序的編寫方法都屬于共性的部分,由一個獨立的邏輯類組成的虛擬芯片也屬于模擬器共性的部分。實驗數據的輸入和結果輸出部分屬于個性的東西。模擬器設計采用繼承的方法。共性的東西在基類中實現,屬于個性的東西在擴展類中實現。這樣的設計既不會使得方法冗余又能滿足不同實驗的需求。

3 8255輸出實驗模擬器的實現

8255可編程并行I/O接口芯片作為輸出口實驗模擬器由基類Simulator.java和擴展類E8255Led Simulator.java 實現[4-5],這個實驗的接線原理圖如圖1所示。8255芯片的A口作為輸出口,在工作方式0。A口的輸出接到八個LED燈(L0~L7),片選信號CS接地址端口218H-21FH。

圖1 8255芯片輸出實驗接線原理圖

3.1 基類(Simulator.java)

基類主要實現跟連線操作、源程序編寫有關的功能。基類被設計成一個抽象類,update()和propertyChange()方法被設計成抽象方法,它們在擴展類中必須被超越。Simulator類繼承Panel類,實現MouseListener,MouseMotionListener,ProtertyChange-Listener和Runnable四個接口:

abstract public class Simulator extends Panel implements MouseListener,MouseMotionListener,ProtertyChangeListener,Runnable

Simulator類方法如下:

private void Init PinArea():存儲引腳坐標信息

private void Init PinPoint():存儲引腳的屬性

public void InitImage():初始化本實驗所需圖像

public void paint(Graphics g):屏幕輸出

abstract public void update(Graphics g):更新輸出

public int DelLine(int x,int y):刪除一條連線

public void ClearLine():刪除所有連線

public void TwoPinConnection(int from,int to):連接兩個引腳

public void TwoPinCut(int from,int to):斷開兩個引腳

public void run():處理Socket連接

public void mouseClicked(MouseEvent me):處理鼠標點擊事件

public void mouseMoved(MouseEvent me):處理鼠標移動事件

abstract public void propertyChange(Property ChangeEvent pcevent):處理屬性改變事件

3.2 擴展類(E8255LedSimulator.java)

不同的實驗除了采用不同的虛擬硬件之外,它們的數據輸入和結果輸出也不同,有的實驗需要從鍵盤輸入數據,有的實驗通過撥實驗平臺上的開關按鈕向實驗提供輸入數據。有些實驗的結果是輸出到屏幕上,而有些實驗是通過二極管燈顯示實驗的結果。所以對擴展類的設計主要是對這些方法進行編寫。

擴展類繼承了基類所定義的所有實例變量和方法。而且可以定義它自己特有的元素。那么在E8255LedSimulator類中除了對Simulator類的抽象方法update()和propertyChange()進行超越之外,還增加了檢查硬件連線是否正確的方法Check Line()。而數據成員必須增加該實驗所需的虛擬芯片對象。

E8255LedSimulator類通過超越propertyChanger()方法來完成當8255芯片的端口數據改變時所做的事情。因為這個實驗是把A口作為輸出口,所以在propertyChanger()方法中,根據8255芯片的工作方式把A口的輸出送給它的相連端,實現了A口的數據一改變,跟它相連的二極管的數據也相應改變,然后在paint()方法中根據二極管的值點亮或熄滅二極管燈,實現了這個實驗的功能。

模擬器調用解釋程序對匯編源程序進行解釋執行,當執行到out指令時會使端口數據發生改變,從前面介紹的8522虛擬芯片可以知道,端口數據改變就會執行firePropertyChange()方法引發屬性改變事件,從而執行E8255LedSimulator類中的propertyChanger()方法。所以在propertyChanger()方法中主要實現跟8255芯片的A、B、C口相連的端口數據的及時改變。也就是說數據端口改變跟它相連的端也要跟著改變,在這個實驗中,端口A跟L0~L7燈相連,若向A口送0FFH,則L0~L7燈全亮。

4 結束語

軟件模擬實驗的實現加上計算機和網絡資源的普及為虛擬實驗室的開設提供了必要的基礎條件。虛擬實驗室具有仿真性、實時交互性、共享性、可重用性等特點,能夠大大提高學生的動手和創新能力,節約大量的人力和物力,對軟件模擬實驗的研究有著深遠的意義。

[1]Jackson.Johns Hopkins University A VIRTUAL ENGINEERING/SCIENCE LABORATORY[EB/OL].www.jhu.edu/~ virtlab/logic/log_cir.htm.

[2]應時,康立山,陳毓屏,吳霞.基于Java的代碼組件重用技術 JavaBeans[J].微電子學與計算機,2000,17(3):1-5.

[3]陸立巧,閔華松,陳奎生.基于組件技術的虛擬儀器開發方法[J].武漢科技大學學報(自然科學版),2002,25(2):240-245.

[4][美]Bruce Eckel.Java編程思想(第二版)[M].候捷,譯.北京:機械工業出版社,2002.

[5]Herbert Schildt.James Holmes.the ART of JAVA[M].USA:McGraw - Hill,2003.

猜你喜歡
設置信號實驗
記一次有趣的實驗
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
做個怪怪長實驗
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
基于LabVIEW的力加載信號采集與PID控制
本刊欄目設置說明
主站蜘蛛池模板: 国产欧美精品专区一区二区| 国产性精品| 中文字幕va| 亚洲天堂视频在线观看免费| 9啪在线视频| 日本成人福利视频| www成人国产在线观看网站| 亚洲精品少妇熟女| 伊人色在线视频| 亚洲欧美日韩久久精品| 亚洲国产精品国自产拍A| 亚洲床戏一区| 99久久国产综合精品女同| 91精品啪在线观看国产60岁| 日韩视频精品在线| 日韩无码视频网站| 欧美日韩动态图| 国产亚洲精久久久久久久91| 丰满人妻一区二区三区视频| 日韩精品无码免费专网站| 日韩A∨精品日韩精品无码| 免费又黄又爽又猛大片午夜| 国产亚卅精品无码| 色屁屁一区二区三区视频国产| 日韩欧美亚洲国产成人综合| 日韩色图区| 亚洲国产综合第一精品小说| 久久午夜夜伦鲁鲁片不卡| 日韩黄色大片免费看| 91在线播放免费不卡无毒| 亚洲男人在线| 午夜少妇精品视频小电影| 亚洲国产成人精品一二区| 99精品在线视频观看| 黄色不卡视频| 婷婷午夜天| 日韩a在线观看免费观看| 久久中文无码精品| 女人18毛片一级毛片在线 | 欧美第二区| 一级毛片在线播放免费观看| 麻豆精品在线视频| 青青青伊人色综合久久| 亚洲欧美精品一中文字幕| 久久伊人色| 老司机精品99在线播放| 欧美在线网| 国产精品青青| 毛片大全免费观看| jizz亚洲高清在线观看| 亚洲狠狠婷婷综合久久久久| 88国产经典欧美一区二区三区| 思思热精品在线8| 亚洲综合色婷婷| 亚洲高清中文字幕| 97超碰精品成人国产| 91欧美亚洲国产五月天| 天堂成人在线| 国产成人综合网| 免费日韩在线视频| 国产一区二区三区精品久久呦| 国产AV无码专区亚洲A∨毛片| аⅴ资源中文在线天堂| 国产综合日韩另类一区二区| 欧美自慰一级看片免费| 视频二区亚洲精品| 91美女视频在线| 伊伊人成亚洲综合人网7777| 91精品国产自产91精品资源| 国产日韩欧美在线播放| 一级毛片免费高清视频| 亚洲妓女综合网995久久| 国产91视频观看| 亚洲AⅤ无码国产精品| 国产成人亚洲精品无码电影| 亚洲成a人片| 亚洲AⅤ无码国产精品| 欧美精品三级在线| 亚洲精品黄| 亚洲无码久久久久| 啊嗯不日本网站| 国产永久在线观看|