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

單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件設(shè)計(jì)

2013-03-29 02:11:22底群
現(xiàn)代電子技術(shù) 2013年2期
關(guān)鍵詞:指令單片機(jī)實(shí)驗(yàn)教學(xué)

底群

摘 要:主要討論以微型計(jì)算機(jī)為操作平臺、基于Widnows操作系統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件的設(shè)計(jì)。實(shí)現(xiàn)對單片機(jī)教學(xué)實(shí)驗(yàn)的全軟件仿真。針對自主研發(fā)的單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件的特點(diǎn)和實(shí)際實(shí)驗(yàn)教學(xué)過程面臨的問題,詳細(xì)闡述軟件的系統(tǒng)需求分析、建模及各子系統(tǒng)的詳細(xì)設(shè)計(jì)過程。在此重點(diǎn)論述了仿真編譯、仿真運(yùn)行和仿真電路子系統(tǒng)的設(shè)計(jì)思路、相關(guān)算法的設(shè)計(jì)及程序設(shè)計(jì)與實(shí)現(xiàn)。

關(guān) 鍵 詞:仿真軟件; 虛擬實(shí)驗(yàn); 實(shí)驗(yàn)教學(xué); 仿真編譯

中圖分類號:TN964?34 文獻(xiàn)標(biāo)識碼:A 文章編號:1004?373X(2013)02?0039?03

0 引 言

目前,各高校順應(yīng)發(fā)展設(shè)置的單片機(jī)課程是機(jī)電、自動化等電類專業(yè)的一門重要課程,是一門多基礎(chǔ)、多理論的實(shí)踐性課程[1]。在高職單片機(jī)教學(xué)過程中理論教學(xué)的發(fā)展已經(jīng)較為完善,而實(shí)驗(yàn)教學(xué)由于受到經(jīng)費(fèi)的限制,提供的實(shí)驗(yàn)設(shè)備有限,不能滿足學(xué)生的要求。

鑒于以上情況,開發(fā)單片機(jī)教學(xué)實(shí)驗(yàn)的全軟件仿真。可以減少實(shí)驗(yàn)經(jīng)費(fèi)的開銷,又便于增添實(shí)驗(yàn)內(nèi)容,同時(shí)也可借用投影儀更加清晰地為學(xué)生做演示實(shí)驗(yàn),非常有利于學(xué)生加深對所學(xué)理論知識的感性認(rèn)識、掌握基本實(shí)驗(yàn)知識、方法、技能。對于有危險(xiǎn)性的實(shí)驗(yàn),虛擬實(shí)驗(yàn)平臺更具有優(yōu)勢[2]。

1 單片機(jī)實(shí)驗(yàn)教學(xué)軟件的系統(tǒng)組成

由于單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件系統(tǒng)較為復(fù)雜固將其設(shè)計(jì)為如干個(gè)子系統(tǒng),對每個(gè)子系統(tǒng)建模和設(shè)計(jì),最后將它們連接起來構(gòu)成整個(gè)系統(tǒng)模型。圖1說明了系統(tǒng)的組成和各子系統(tǒng)關(guān)系。

圖1 系統(tǒng)模型

考慮到單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件的具體情況,同時(shí)使用結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο笤O(shè)計(jì)2種方法,對于單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件系統(tǒng)的功能模塊采用結(jié)構(gòu)化方法來設(shè)計(jì)。

采用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)軟件中的用戶界面、各個(gè)窗口、菜單、仿真元件等,最后,將各個(gè)子系統(tǒng)結(jié)合在一起, 就構(gòu)成了單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件。

下面對主要功能模塊進(jìn)行論述。

2 仿真編譯子系統(tǒng)的設(shè)計(jì)

實(shí)際的編譯是利用編譯程序從源程序產(chǎn)生目標(biāo)程序的過程。該過程分為5個(gè)階段:詞法分析,語法分析,語義檢查,中間代碼生成,代碼優(yōu)化,目標(biāo)代碼生成。主要是進(jìn)行詞法分析和語法分析,又稱為源程序分析[3]。考慮本軟件的實(shí)際情況,仿真編譯子系統(tǒng)只進(jìn)行詞法分析和語法分析,發(fā)現(xiàn)有語法錯(cuò)誤,給出提示信息,仿真編譯成功后將仿真編譯結(jié)果保存。

(1)詞法分析模塊調(diào)用源程序編輯子系統(tǒng)產(chǎn)生的用戶源程序文件,逐行對文件中用戶輸入的源程序按照單片機(jī)指令系統(tǒng)規(guī)定的符號,如:(“Rn”、“#”、“/”、“@”、“$”、“:”及7種不同尋址方式表示的數(shù)據(jù)或地址、指令轉(zhuǎn)移的偏移量、工作寄存器和特殊功能寄存器的表示符號、44個(gè)指令助記符、7個(gè)偽指令、用戶定義的標(biāo)號和符號常量、回車符)。進(jìn)行詞法分析,判斷用戶源程序中使用的基本符號是否正確,如果不是合法的符號則將錯(cuò)誤所在的位置及錯(cuò)誤的類型反饋給用戶,終止仿真編譯等待用戶修改后再一次運(yùn)行仿真編譯;如果是合法的符號則將每個(gè)符號以及符號的類型保存在string類型數(shù)組cifa[]和int類型數(shù)組type[]中供語法分析程序模塊使用。

(2)語法分析模塊首先定義了51系列單片機(jī)所有指令和偽指令的檢查函數(shù)。然后在詞法分析的基礎(chǔ)上,從數(shù)組cifa[]和數(shù)組type[]中取出用戶輸入的字符根據(jù)單片機(jī)指令的語法格式,字符的前后關(guān)系逐一進(jìn)行處理,并調(diào)用指令和偽指令的檢查函數(shù)判斷:用戶輸入的源程序是否符合語法規(guī)則;標(biāo)號和符號常量的定義與使用是否正確;偽指令的使用是否正確;程序是否以END結(jié)束等。如果存在錯(cuò)誤則將錯(cuò)誤所在的位置及錯(cuò)誤的類型反饋給用戶,終止仿真編譯等待用戶修改后再一次進(jìn)行仿真編譯;如果是正確的指令則將指令進(jìn)行處理(對指令地址、指令I(lǐng)D、指令字節(jié)數(shù)、指令周期、操作數(shù)類型、操作數(shù)的值等進(jìn)行處理)后存入預(yù)先定義的全局?jǐn)?shù)組對象command中。仿真運(yùn)行時(shí)由仿真運(yùn)行子系統(tǒng)調(diào)用。

3 仿真運(yùn)行子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

(1)對51系列單片機(jī)指令系統(tǒng)的111條指令建立對應(yīng)的處理函數(shù),依照地址指針在指令類的數(shù)組對象中查詢到對應(yīng)元素,再根據(jù)指令I(lǐng)D調(diào)用指令的處理函數(shù),完成指令的所有處理功能,返回下一指令地址給地址指針,實(shí)現(xiàn)仿真運(yùn)行子系統(tǒng)的基本需求。

(2)設(shè)計(jì)狀態(tài)掃描程序,查詢中斷申請。當(dāng)有中斷時(shí),在指令處理函數(shù)在完成指令的所有處理功能后進(jìn)行中斷處理。

(3)仿真運(yùn)行子系統(tǒng)與仿真電路建立子系統(tǒng)的信息交換功能的設(shè)計(jì)通過仿真電路子系統(tǒng)與程序仿真運(yùn)行子系統(tǒng)的接口函數(shù)實(shí)現(xiàn)。

當(dāng)仿真運(yùn)行子系統(tǒng)仿真執(zhí)行的指令向單片機(jī)I/O接口發(fā)送數(shù)據(jù),這些數(shù)據(jù)將引起單片機(jī)外接電路及相關(guān)元件狀態(tài)的改變。此時(shí),由仿真運(yùn)行子系統(tǒng)向仿真電路子系統(tǒng)發(fā)送消息,啟動仿真電路狀態(tài)修改進(jìn)程,對仿真電路及元件的狀態(tài)更新。然后修改進(jìn)程結(jié)束將控制權(quán)交還,繼續(xù)仿真運(yùn)行。

如果在仿真運(yùn)行期間仿真電路或元件(僅限按鈕開關(guān))狀態(tài)發(fā)生改變,此時(shí)則由仿真電路子系統(tǒng)向仿真運(yùn)行子系統(tǒng)發(fā)送消息,啟動仿真運(yùn)行狀態(tài)修改進(jìn)程,更新存儲器單元對應(yīng)的內(nèi)部變量。然后修改進(jìn)程結(jié)束將控制權(quán)交還,繼續(xù)仿真運(yùn)行。

4 仿真電路子系統(tǒng)的設(shè)計(jì)

仿真電路子系統(tǒng)在外部,它向用戶提供了一個(gè)可視的虛擬的單片機(jī)實(shí)驗(yàn)平臺,用戶通過這一平臺建立仿真的實(shí)驗(yàn)電路。當(dāng)用戶仿真運(yùn)行實(shí)驗(yàn)源程序時(shí),將再次通過這一平臺進(jìn)行相關(guān)操作,觀察實(shí)驗(yàn)現(xiàn)象。在內(nèi)部,仿真電路子系統(tǒng)對用戶建立的仿真電路進(jìn)行元件的記錄、電路連接的分析、節(jié)點(diǎn)表的建立與維護(hù)、元件(包括單片機(jī)端口)狀態(tài)得計(jì)算,通過發(fā)送消息與仿真運(yùn)行子系統(tǒng)交互。最終達(dá)到在完全軟件仿真的環(huán)境中讓用戶完成單片機(jī)教學(xué)實(shí)驗(yàn),并獲得與真實(shí)實(shí)驗(yàn)條件下相同的實(shí)驗(yàn)結(jié)果。

4.1 仿真元件的設(shè)計(jì)與實(shí)現(xiàn)

元件是電路建立的基礎(chǔ)[4]。對實(shí)驗(yàn)中用到的電器元件(如:51系列單片機(jī)89S51、電阻、電容、發(fā)光二極管、數(shù)碼管、各種開關(guān)、邏輯門電路、譯碼器、存儲器芯片等)設(shè)計(jì)元件類。另外將電源、接地、導(dǎo)線、節(jié)點(diǎn)也作為元件進(jìn)行設(shè)計(jì)。

部分元件以簡化的圖形表現(xiàn),在設(shè)計(jì)元件時(shí)為簡化軟件的設(shè)計(jì),將元件以單元模塊的形式進(jìn)行設(shè)計(jì),即以單元模塊電路的形式將模擬元件簡化為數(shù)字邏輯單元。忽略了電路及元件具體的電流電壓等模擬特性。類似的單元模塊有,復(fù)位模塊、振蕩電路模塊、數(shù)碼管模塊、開關(guān)模塊。

4.2 元件類的設(shè)計(jì)與實(shí)現(xiàn)

首先設(shè)計(jì)出CYuanJian類,它定義了元件共有的基本屬性及方法,例如:在窗口中的位置、元件的線條及填充顏色、元件管腳的坐標(biāo),其次,對元件操作時(shí)的方法,例如:元件的繪制和對其他屬性進(jìn)行設(shè)置等。為了讓元件對象能方便地以數(shù)據(jù)文件的形式在存儲器中存儲和讀取,將CYuanJian類的父類定義為VC++ MFC提供的基類CObject類。這樣就可使用CObject類的成員函數(shù)Serialize()對元件對象進(jìn)行串行化[5]。由于每個(gè)元件的外形均不相同,對元件進(jìn)行繪制的Draw()函數(shù)和元件移動函數(shù)Move()定義為虛函數(shù),利用VC++的多態(tài)性在子類中實(shí)現(xiàn)。同時(shí)這使得CYuanJian類成為了抽象類,CYuanJian類僅用來派生子類,不能實(shí)例化。

對每一個(gè)元件或單元模塊都根據(jù)上述方法建立對應(yīng)的類。元件類的建立是仿真電路建立的基礎(chǔ)。根據(jù)元件的功能要設(shè)計(jì)其自身特有的屬性和方法。由于元件較多受篇幅限制不再一一詳細(xì)敘述。

4.3 電路仿真設(shè)計(jì)與實(shí)現(xiàn)

單片機(jī)電路設(shè)計(jì)在現(xiàn)實(shí)中是非常復(fù)雜的,要考慮眾多因素,如:接口的驅(qū)動能力、布線不良使數(shù)字噪聲影響模擬信號、電源去耦合、高低頻噪聲的處理、信號延時(shí)造成的競爭與冒險(xiǎn)、阻抗匹配等[6]。在電路仿真設(shè)計(jì)時(shí)同樣采用元件設(shè)計(jì)時(shí)的思路,將電路簡化為一個(gè)數(shù)字電路模型。通過元件類中管腳結(jié)點(diǎn)號這一屬性記錄元件的連接信息,再通過結(jié)點(diǎn)表記錄各個(gè)結(jié)點(diǎn)的邏輯電平,最終元件同過結(jié)點(diǎn)的邏輯電平計(jì)算出自己的狀態(tài)。

數(shù)字電路中所有數(shù)字器件天然的按照時(shí)間的推移并行運(yùn)算。輸入的變化導(dǎo)致器件按照內(nèi)部的電路,完成一定的邏輯運(yùn)算并可能導(dǎo)致輸出的改變。實(shí)際電路中各個(gè)器件是并行運(yùn)行的,而程序指令的執(zhí)行是串行的[6]。在軟件仿真中,引腳狀態(tài)的變化,數(shù)字器件的運(yùn)算,只能按照程序中函數(shù)調(diào)用的順序,逐一執(zhí)行,或交替執(zhí)行。在不考慮信號延時(shí)的情況下,程序通過循環(huán),檢測元件電路狀態(tài)最終計(jì)算出電路穩(wěn)定時(shí)的各元件輸出值,達(dá)到與實(shí)際電路一致的目的[8]。電路仿真設(shè)計(jì)主要有以下幾個(gè)部分:

(1)元件的基本操作和元件的連接

單片機(jī)仿真實(shí)驗(yàn)軟件系統(tǒng)通過電路建立菜單中各菜單項(xiàng)及工具欄按鈕向用戶提供操作類型選擇。用戶首先選擇操作類型,主要包括選擇元件、添加元件、設(shè)置結(jié)點(diǎn)、連接元件等。用戶通過鍵盤操作(按下shift鍵)和鼠標(biāo)操作(左鍵單擊、右鍵單擊、雙擊、拖動)進(jìn)行仿真電路的建立或修改,系統(tǒng)獲得Windows消息判斷出鼠標(biāo)和鍵盤事件再結(jié)合操作類型以決定程序如何執(zhí)行;元件的連接反映出用戶期望實(shí)現(xiàn)的電路功能,仿真電路子系統(tǒng)要完成連接線和連接點(diǎn)信息的記錄,元件管腳結(jié)點(diǎn)號的更新,結(jié)點(diǎn)表的建立及更新。

(2)電路初始狀態(tài)的計(jì)算

電路初始狀態(tài)的計(jì)算的主要目的是根據(jù)仿真電路中的具體元件和連接信息計(jì)算出電路各結(jié)點(diǎn)的邏輯電平,進(jìn)而計(jì)算各元件管腳的邏輯電平,最終決定各元件的狀態(tài)。在這里將元件管腳分為輸入型、輸出型和雙向型三類,并設(shè)置優(yōu)先度。建立結(jié)點(diǎn)表時(shí)會將元件管腳的優(yōu)先度傳遞給結(jié)點(diǎn),但電路元件狀態(tài)發(fā)生改變更新結(jié)點(diǎn)表時(shí),對某一結(jié)點(diǎn)的改變要參考優(yōu)先度決定結(jié)點(diǎn)值。并在電路狀態(tài)計(jì)算時(shí)設(shè)計(jì)了一組規(guī)則以保證電路計(jì)算的正確性。電路初始狀態(tài)計(jì)算時(shí)發(fā)現(xiàn)仿真電路違反連接規(guī)則時(shí)停止計(jì)算提示用戶修改。否則遵循計(jì)算規(guī)則進(jìn)行計(jì)算。

(3)電路狀態(tài)的跟蹤

與現(xiàn)實(shí)中的單片機(jī)實(shí)驗(yàn)一樣,在用戶進(jìn)行仿真運(yùn)行時(shí)有兩種情況會改變仿真電路的狀態(tài),一是:正在運(yùn)行的用戶程序改變了單片機(jī)的I/O口。二是:用戶通過鼠標(biāo)操作改變了電路中按鈕開關(guān)或撥動開關(guān)的狀態(tài)。在設(shè)計(jì)時(shí)定義兩個(gè)函數(shù)IOchange()和SWchange(),該函數(shù)采用與電路初始狀態(tài)計(jì)算相似的算法計(jì)算當(dāng)前電路狀態(tài)。仿真電路子系統(tǒng)將重新計(jì)算電路中個(gè)結(jié)點(diǎn)的邏輯值并更新元件管腳的值,同時(shí)發(fā)出消息使所有元件將發(fā)生重繪,在元件重繪時(shí)由元件類自己的成員函數(shù)根據(jù)管腳值計(jì)算元件狀態(tài)繪制對應(yīng)圖形。

5 結(jié) 論

本文在深入分析單片機(jī)實(shí)驗(yàn)教學(xué)需求的基礎(chǔ)上,對單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件建立系統(tǒng)模型并針對功能最為重要的仿真編譯、仿真運(yùn)行和電路仿真三個(gè)子系統(tǒng)的設(shè)計(jì)方法進(jìn)行詳細(xì)的論述。對詞法分析、語法分析、元件操作、元件連接以及電路狀態(tài)計(jì)算跟蹤等重要功能,設(shè)計(jì)了相關(guān)算法。由于單片機(jī)的實(shí)際應(yīng)用涉及到很多領(lǐng)域的相關(guān)知識,本文不是非常成熟和完善。但同時(shí)我們看到單片機(jī)實(shí)驗(yàn)教學(xué)仿真軟件的應(yīng)用在單片機(jī)的教學(xué)過程中有著巨大的使用價(jià)值和深遠(yuǎn)的意義。

參考文獻(xiàn)

[1] 邵春波,張濤.單片機(jī)虛擬實(shí)驗(yàn)平臺的設(shè)計(jì)與實(shí)現(xiàn)[J].臺州學(xué)院學(xué)報(bào),2008(6):7?10.

[2] 封小鈺,余雄.構(gòu)建單片機(jī)虛擬實(shí)驗(yàn)仿真平臺[J].計(jì)算機(jī)與信息技術(shù),2008(4):32?35.

[3] 劉文秀.單片機(jī)應(yīng)用系統(tǒng)仿真策略的研究[J].現(xiàn)代電子技術(shù),2005,28(14):25?27.

[4] 艾莉.基于VB的單片機(jī)虛擬實(shí)驗(yàn)軟件的研制與開發(fā)[D].沈陽:沈陽工業(yè)大學(xué),2006.

[5] TAIBI Toufik. Hybrid object?oriented method (HOOM): the software development poreess [C]// 36th International Conference on Technology of Object?Oriented Languages and Systems. Xian, China: CTOOLS, 2000:8?17.

[6] 吳王平.基于89C51 單片機(jī)的計(jì)算機(jī)仿真系統(tǒng)設(shè)計(jì)[J].電腦知識與技術(shù),2004(32):65?67.

[7] 馬鵬舉,張保平.數(shù)字電路仿真的Java實(shí)現(xiàn)[J].微處理機(jī),2009(1):151?152.

[8] 辛允東.虛擬實(shí)驗(yàn)和真實(shí)實(shí)驗(yàn)的比較研究[J].中國科技信息,2008(10):64?66.

[9] GARRIDO José M. Object?oriented discrete?event simulation with Java: a practical introduction [M]. [S.l.]: Kluwer Academic/ Plenum Publishers, 2001.

[10] HARROLD M J. Testing: a roadmap in the future of software engineering [M]. New York: ACM Press, 2000.

猜你喜歡
指令單片機(jī)實(shí)驗(yàn)教學(xué)
聽我指令:大催眠術(shù)
小議初中化學(xué)演示實(shí)驗(yàn)教學(xué)
甘肅教育(2020年4期)2020-09-11 07:42:36
電容器的實(shí)驗(yàn)教學(xué)
物理之友(2020年12期)2020-07-16 05:39:20
對初中化學(xué)實(shí)驗(yàn)教學(xué)的認(rèn)識和體會
甘肅教育(2020年8期)2020-06-11 06:10:04
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
幾何體在高中數(shù)學(xué)實(shí)驗(yàn)教學(xué)中的應(yīng)用
主站蜘蛛池模板: 欧类av怡春院| 亚洲天堂精品在线| 亚洲熟妇AV日韩熟妇在线| 国产人人乐人人爱| 日韩欧美中文| 欧亚日韩Av| 2020国产免费久久精品99| 日韩欧美中文字幕在线韩免费| 欧美一区二区福利视频| 免费日韩在线视频| 婷婷六月在线| 国产综合网站| 日韩人妻少妇一区二区| 亚洲男人的天堂在线观看| 在线免费不卡视频| 激情综合网激情综合| 国产自产视频一区二区三区| Aⅴ无码专区在线观看| 韩国v欧美v亚洲v日本v| 99在线观看视频免费| 久久精品国产在热久久2019| 亚洲最新在线| 97在线公开视频| 91久久偷偷做嫩草影院免费看| 色老头综合网| 欧美精品亚洲二区| 热久久这里是精品6免费观看| 亚洲成a人片在线观看88| av午夜福利一片免费看| 亚洲精品视频免费看| 亚洲成人手机在线| 久久免费观看视频| 大香伊人久久| 国产天天色| 色婷婷在线播放| 天堂成人在线| 试看120秒男女啪啪免费| 在线观看无码av免费不卡网站| 成人午夜福利视频| 5388国产亚洲欧美在线观看| 秋霞国产在线| 欧美三级日韩三级| 国产精品成人AⅤ在线一二三四 | 亚洲国产天堂久久综合| 91精选国产大片| 美女国内精品自产拍在线播放 | 亚洲视频a| 人妻无码中文字幕第一区| 国产精品内射视频| 99精品热视频这里只有精品7| 国产网站一区二区三区| 中文国产成人久久精品小说| 日韩成人在线一区二区| 无码在线激情片| 99热这里都是国产精品| 无码网站免费观看| 久久香蕉国产线看观看式| 99人体免费视频| 无码日韩精品91超碰| 国产在线观看91精品亚瑟| 国产香蕉97碰碰视频VA碰碰看| 中文字幕在线欧美| 亚洲第一成网站| 欧美一道本| 国产美女精品在线| 第一页亚洲| 日韩欧美国产精品| 亚洲成人黄色网址| 国产免费好大好硬视频| 五月天综合网亚洲综合天堂网| 不卡网亚洲无码| 宅男噜噜噜66国产在线观看| 中美日韩在线网免费毛片视频 | 91人妻在线视频| 亚洲无码日韩一区| 国产乱人乱偷精品视频a人人澡| 中文字幕丝袜一区二区| 国产精品欧美激情| 亚洲国产精品日韩av专区| 欧美一级在线看| 亚洲美女一级毛片| 日本国产精品一区久久久|