• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Proteus仿真軟件在微機(jī)原理與接口技術(shù)課程實(shí)驗(yàn)教學(xué)中的應(yīng)用

      2015-12-29 00:00:00李珍香李全福
      計(jì)算機(jī)教育 2015年9期

      摘要:針對微機(jī)原理與接口技術(shù)課程傳統(tǒng)實(shí)驗(yàn)教學(xué)中存在的問題,引入基于Proteus的虛擬仿真工具。通過4x4的16位矩陣鍵盤和一個(gè)7段數(shù)碼管構(gòu)成的輸入顯示實(shí)例,介紹在Proteus中仿真設(shè)計(jì)8086硬件電路原理圖和軟件的方法。

      關(guān)鍵詞:Proteus;EMU8086;微機(jī)原理與接口技術(shù);仿真實(shí)驗(yàn)

      0 引 言

      微機(jī)原理與接口技術(shù)是我國高校工科電類專業(yè)的重要專業(yè)基礎(chǔ)課,是培養(yǎng)學(xué)生具有微機(jī)軟、硬件設(shè)計(jì)與應(yīng)用能力及工程意識(shí)和工程素養(yǎng)的必修課,也是學(xué)生今后從事智能控制和微機(jī)開發(fā)的重要入門課程,其教學(xué)質(zhì)量的好壞,直接影響學(xué)生的就業(yè)。該課程內(nèi)容主要包含匯編編程和接口兩大部分,理論性和實(shí)踐性都很強(qiáng)且很抽象,特別是接口部分,不同芯片的引腳數(shù)目多,工作方式也較復(fù)雜,學(xué)生需通過親自動(dòng)手實(shí)驗(yàn)才能理解和掌握。目前普通高校的很多學(xué)生感覺該課程較難學(xué)習(xí),對接口芯片缺乏感性認(rèn)識(shí),面對實(shí)驗(yàn)設(shè)備望而生畏,對具體的實(shí)驗(yàn)或項(xiàng)目不知如何下手。另外,由于硬件實(shí)驗(yàn)設(shè)備所固有的結(jié)構(gòu)固定、資源有限、高成本、高損耗、低壽命等缺點(diǎn),使部分學(xué)校實(shí)驗(yàn)設(shè)備不足。因此,如何改善實(shí)驗(yàn)環(huán)境,激發(fā)學(xué)生學(xué)習(xí)興趣,提高教學(xué)效果,是該課程實(shí)驗(yàn)教學(xué)改革中的一個(gè)重要課題。

      1 Proteus+EMU8086仿真實(shí)驗(yàn)平臺(tái)

      Proteus是英國Labcenter electronics公司研發(fā)的多功能EDA軟件,由原理圖編輯與仿真軟件包ISIS和布線編輯軟件包ARES兩部分組成,是目前唯一能將電路仿真、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),Proteus7.5 SP3以上版本新增對8086 CPU及相關(guān)接口芯片的仿真功能;另外,Proteus還提供有示波器、交直流電壓/電流表、邏輯分析儀、信號(hào)發(fā)生器、虛擬終端等很多虛擬儀器,是一個(gè)全開放性的仿真實(shí)驗(yàn)平臺(tái),相當(dāng)于一個(gè)設(shè)備齊全的綜合實(shí)驗(yàn)室,筆者使用的是Proteus7.8軟件。

      對于8086,Proteus本身未對其提供編譯器,需通過外部添加,將編寫好的源程序加入工程,然后編譯并生成可執(zhí)行程序后完成。筆者介紹的內(nèi)容通過外加EMU8086編譯器實(shí)現(xiàn)。EMU8086將文本編輯器、編譯器、反編譯器、真調(diào)試、虛擬設(shè)備和驅(qū)動(dòng)器集成為一體,是一個(gè)可在Windows環(huán)境下運(yùn)行的8086 CPU匯編真軟件。

      2 Proteus仿真8086 CPU性設(shè)置

      8086 CPU有最大和最小兩種工作模式,Proteus仿真8086僅支持最小模式,因?yàn)镻roteus本身沒有給8086提供編譯器和內(nèi)存貯器,所以需要做一些設(shè)置,如8086的時(shí)鐘、內(nèi)存的起始地址和大小、外部程序加載到內(nèi)存的地址段等。圖1是Proteus為8086 CPU設(shè)置屬性的界面。

      Proteus為8086設(shè)定的時(shí)鐘頻率默認(rèn)是IMHz;要加載到模型內(nèi)部存儲(chǔ)器中的程序文件只能是擴(kuò)展名為.bin或是與DOS兼容的.com或.exe文件;指定外部程序加載到內(nèi)存中的起始地址為OOOOOH,程序下載到內(nèi)存的起始地址為OOOOH,仿真內(nèi)存儲(chǔ)區(qū)大小為10000H,用戶也可以通過編輯元件對話框?qū)?086的這些屬性進(jìn)行修改。

      3 Proteus仿真實(shí)例

      3.1 功能描述

      通過16個(gè)button構(gòu)成4x4的16位矩陣鍵盤和一個(gè)7段數(shù)碼管構(gòu)成的簡單輸入顯示系統(tǒng),實(shí)現(xiàn)矩陣鍵盤的輸入與數(shù)碼管的顯示相對應(yīng)。即16(0-15)個(gè)鍵盤的輸入對應(yīng)在數(shù)碼管上顯示16進(jìn)制數(shù)中的O-F這16個(gè)數(shù)字符號(hào)。

      3.2 原理圖設(shè)計(jì)

      3.2.1 8086最小模式默認(rèn)電路

      在Protcus仿真8086最小模式電路中,RESET固定接低電平表示不復(fù)位,READY固定接高電平表示外部設(shè)備始終就緒,▅固定接高電平表示采用最小模式;其他AD[0-15]、A[16-19]、ALE、▆、▄ 、▅等信號(hào)直接引出,以用于擴(kuò)展使用。

      3.2.2 原理圖設(shè)計(jì)

      4x4鍵盤原理圖設(shè)計(jì)主要包含CPU、鍵盤電路、顯示電路三大模塊,如圖2所示,其中CPU模塊由8086 CPU、兩片地址鎖存器74HC373邏輯和一片74HC138譯碼電路構(gòu)成;鍵盤電路4x4的矩陣鍵盤實(shí)現(xiàn)按鍵輸入,由C口的低四位和高四位分別連接4x4鍵盤的行、列信號(hào)線實(shí)現(xiàn);顯示模塊由7段數(shù)碼管構(gòu)成,數(shù)碼管采用靜態(tài)共陰接法。74LS138的4個(gè)引腳El、C、B、A分別與其中一片74HC373輸出的A15、A14、 A13、A12相連,8255A的CS與74LS138的Yo相連。這樣,所形成的8255A的4個(gè)端口地址就分別為:8000H、8002H、8004H、8006Hn

      8086CPU的外部數(shù)據(jù)總線為16條,其中數(shù)據(jù)總線的低8位總對應(yīng)一個(gè)偶地址,高8位總塒應(yīng)一個(gè)奇地址。在8255A和8086 CPU相連時(shí),若將8255A的數(shù)據(jù)線D7~Do接到8086CPU數(shù)據(jù)總線低8位上時(shí),從CPU角度看,要求8255A的端口地址應(yīng)為偶地址,這樣才能保訌E對8255A的端口讀/寫能在一個(gè)總線周期內(nèi)完成;故將8255A的A1和Ao分別與8086數(shù)據(jù)總線的A2和A1對應(yīng)相連,而將8086地址總線的A0總設(shè)為0。Proteus也遵從這樣的規(guī)定,所以,所形成的8255A的端口地址為4個(gè)相鄰的偶地址。

      3.3 軟件設(shè)計(jì)

      8255A的初始化方式控制字為88H(A口方式0輸出,PCO-PC3方式O輸出,PC4-PC7方式0輸入)。

      程序整體上采用查詢傳送方式,通過不斷掃描鍵盤、讀取鍵碼、換算鍵值,最終通過顯示模塊讀出結(jié)果,如果讀出的鍵碼非法,則重新掃描。在源程序中,行號(hào)存放于BX中,按鍵掃描時(shí),若BX=O,表示掃描第一行,第一行輸出低電平(PCo置0);行值存放于AL的低四位,列值存放于AL的高四位,讀出列值后若都為高電平,則表明無鍵按下;若其中有低電平時(shí),再比較判斷其為AL的高四位(用3、2、1、0值代替)中的哪一位,判斷出是哪一位后,再將AL置為對應(yīng)位的值(即為列號(hào));將BX+I后的結(jié)果值回送BX,繼續(xù)掃描下一行,依此類推,掃描16個(gè)按鍵。

      源程序中的鍵值定義如下:

      TABLE DB OCOH,OF9H,OA4H,OBOH,99H,92H,82H,OF8H,80H,90H,88H,83H,OC6H

      OAIH,86H,8EH……;0-F間的16個(gè)16進(jìn)制數(shù)字

      TABLE變量的偏移地址存放于DI中,通過行列號(hào)計(jì)算得出鍵值。鍵值的計(jì)算方法為:鍵值=行號(hào)(在BL中)×4+列號(hào)(在AL中)。最后將鍵值送給BL,將[DI]所指向的內(nèi)容與BL內(nèi)容相加后的值賦給寄存器AL,然后通過8255A的A口輸出在數(shù)碼管上對應(yīng)顯示鍵值。

      3.4 仿真調(diào)試與運(yùn)行

      在Proteus中通過“Build ALL”匯編、連接生成可執(zhí)行文件后,再點(diǎn)擊窗口左下角的運(yùn)行按鈕,系統(tǒng)進(jìn)入仿真狀態(tài)。當(dāng)按下某一按鍵時(shí),7段數(shù)碼管顯示其對應(yīng)的16進(jìn)制形式的按鍵值。圖3和圖4為分別按下“0”鍵和“F”鍵時(shí)的對應(yīng)顯示結(jié)果仿真圖。

      4 教學(xué)實(shí)踐經(jīng)驗(yàn)與體會(huì)

      通過教學(xué)實(shí)踐,在微機(jī)原理與接口技術(shù)課程中引入Proteus仿真實(shí)驗(yàn)可帶來以下好處。

      (1) Proteus操作簡單,使用和調(diào)試都很方便。在Proteus中設(shè)計(jì)的原理圖可以自由分配接口芯片的端口地址,這能很好地克服實(shí)物實(shí)驗(yàn)箱結(jié)構(gòu)固定、資源有限的缺點(diǎn),讓學(xué)生真正有做硬件的感覺,同時(shí),所提供的示波器、邏輯分析儀、信號(hào)發(fā)生器等虛擬儀器可用于課程的相關(guān)應(yīng)用中,便于開發(fā)一些實(shí)用系統(tǒng)。

      (2)Proteus臺(tái)節(jié)節(jié)約成本,開放性好。Proteus不僅避免了實(shí)物實(shí)驗(yàn)箱價(jià)格昂貴、易損壞等缺點(diǎn),而且還克服了由于實(shí)物實(shí)驗(yàn)箱是成品,學(xué)生很難參與其中的細(xì)節(jié)設(shè)計(jì)和擴(kuò)展設(shè)計(jì)不足問題,學(xué)生可以不受任何時(shí)間和空間的限制,充分發(fā)揮自己的想象和思維,自己搭建硬件和編寫程序,進(jìn)行綜合創(chuàng)新性設(shè)計(jì)。

      (3) Proteus能提高教學(xué)效果并增強(qiáng)學(xué)生的實(shí)驗(yàn)?zāi)芰?。通過Proteus,教師一方面可以在課堂上邊講解理論知識(shí),邊進(jìn)行實(shí)例演示,并針對性地展示各基本模塊的硬件連線和軟件控制方法,做到理論與實(shí)踐相結(jié)合,給學(xué)生以直觀的認(rèn)知,啟發(fā)了學(xué)生的思維;另一方面,通過教學(xué)研究,可對知識(shí)點(diǎn)進(jìn)行拆分和綜合,可以設(shè)計(jì)出基于Proteus仿真的實(shí)驗(yàn)項(xiàng)目和綜合實(shí)訓(xùn)課題。這些都能大大激發(fā)學(xué)生的學(xué)習(xí)熱情并加深對課程知識(shí)點(diǎn)的理解,還能容納一些新知識(shí)和內(nèi)容,給教學(xué)實(shí)踐帶來很多新思路和方法,大大增強(qiáng)教學(xué)效果。

      我們還應(yīng)該認(rèn)識(shí)到,Proteus畢竟是一個(gè)仿真軟件,通過其仿真實(shí)驗(yàn)與在實(shí)物實(shí)驗(yàn)箱上實(shí)現(xiàn)還是有差別的。實(shí)際電路運(yùn)行時(shí)表現(xiàn)出的各種電氣特征由芯片、元器件、電路連線、運(yùn)行環(huán)境等多種因素共同決定,而Proteus是通過軟件模擬這些電路特性的,其運(yùn)行結(jié)果取決于仿真軟件的設(shè)計(jì)和PC機(jī)本身的運(yùn)算速度等因素,而且,有一些芯片功能還不完善(譬如8259A中斷接口芯片)。因此,在Proteus環(huán)境下能正常運(yùn)行的仿真系統(tǒng),其電路設(shè)計(jì)在實(shí)際應(yīng)用中未必能成功進(jìn)行。在實(shí)際教學(xué)中,最好能將實(shí)物實(shí)驗(yàn)與Proteus仿真實(shí)驗(yàn)結(jié)合起來使用。

      利津县| 子洲县| 北票市| 嘉义县| 溆浦县| 五家渠市| 宣汉县| 界首市| 临清市| 巴东县| 正定县| 长丰县| 南部县| 昌江| 谢通门县| 通山县| 新宁县| 曲沃县| 太康县| 翁源县| 旬阳县| 呼图壁县| 南京市| 西林县| 承德市| 灵丘县| 永川市| 金坛市| 淮北市| 洪洞县| 阳春市| 扶余县| 孝昌县| 望都县| 娄底市| 沧源| 德清县| 蒲城县| 长春市| 茶陵县| 扎兰屯市|