陳日莉
摘要:該文的研究目的是用Proteus軟件設(shè)計(jì)一個(gè)5位8255脈沖計(jì)數(shù)仿真電路。該電路的實(shí)現(xiàn)用到了主板電路和譯碼電路,文中給出了脈沖計(jì)數(shù)仿真電路和匯編實(shí)現(xiàn)代碼。該文同時(shí)討論了影響檢測(cè)分辨率的相關(guān)因素。該電路已由筆者應(yīng)用在自己的實(shí)踐教學(xué)中,該電路的有效性已得到驗(yàn)證。
關(guān)鍵詞:Proteus;仿真;8255;脈沖計(jì)數(shù)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)31-7519-04
Abstract: The aim of this research is to use Proteus software to design a 5 bit 8255 pulse counting simulation circuit. This circuit is realized by using the motherboard circuit and decoding circuit; this paper also presents pulse counting Simulation Circuit and assembly language implementation code. At the same time, this paper also discussed the related factors which interfere with measuring resolution.The circuit has been used in practice teaching by the author, so the effectiveness has been validated.
Key words: Proteus;simulation;8255; pulse counting
在介紹仿真電路之前,首先需要說(shuō)明一下微型計(jì)算機(jī)的結(jié)構(gòu)組成,以便于能很好地理解仿真接口電路是如何接入和工作的。現(xiàn)在的微型計(jì)算機(jī)基本都采用三總線結(jié)構(gòu) [1]。所有的設(shè)備部件都“掛”在總線上,包括核心部件CPU。這種結(jié)構(gòu)的最大優(yōu)點(diǎn)是可擴(kuò)展性強(qiáng)、可維護(hù)性好,使用成本低。所以,目前市面上的微型計(jì)算機(jī)基本都采用這種結(jié)構(gòu)。該文討論的計(jì)數(shù)器電路屬于I/O電路,下面詳細(xì)介紹該電路。
1 PC主板和譯碼電路
微型計(jì)算機(jī)的部件(設(shè)備)都是通過(guò)總線連接在一起的。我們?cè)O(shè)計(jì)的功能性電路,必須有基本電路的支持,才能完成特定功能。以8086為藍(lán)本的基本實(shí)驗(yàn)仿真電路有:主板和譯碼電路。
1.1主板
主板仿真電路是所有其他仿真電路的基礎(chǔ)電路。我們將這個(gè)電路做成一個(gè)規(guī)范電路,每次上實(shí)驗(yàn)課時(shí)連同已經(jīng)做好的譯碼電路一起發(fā)給學(xué)生,讓學(xué)生在其基礎(chǔ)上,添加設(shè)計(jì)一個(gè)功能接口仿真電路,完成實(shí)驗(yàn)。主板電路根據(jù)地址、數(shù)據(jù)信號(hào)分離三要素原理,CPU的AD0~AD15分別通過(guò)地址鎖存器和數(shù)據(jù)驅(qū)動(dòng)器,接入地址總線A0~A15和數(shù)據(jù)總線D0~D15,地址總線的高4位A15~A19和高8位有效信號(hào)#BHE,通過(guò)另一片鎖存器接入總線。地址鎖存器和數(shù)據(jù)驅(qū)動(dòng)器的控制信號(hào)分別是地址鎖存允許信號(hào)ALE和數(shù)據(jù)允許信號(hào)#DEN。ALE負(fù)責(zé)在T1期間分離出地址信號(hào),并將其鎖定到地址總線上,為系統(tǒng)提供地址信息。#DEN在T2~T4階段接通數(shù)據(jù)驅(qū)動(dòng)器,為系統(tǒng)的數(shù)據(jù)交換提供通道。[2]根據(jù)這一原理設(shè)計(jì)的8086最小模式仿真電路如圖1所示。電路中地址鎖存器使用74LS373芯片,數(shù)據(jù)驅(qū)動(dòng)器使用74LS245芯片。目前,很多資料在講到鎖存器和驅(qū)動(dòng)器時(shí),仍以Intel8282和Intel8286為例。[2]其實(shí),這兩款芯片在市面上已很難找到了,替代它們的一般都是74系列的芯片,比如273,373,244,245等芯片。在8086仿真實(shí)驗(yàn)中,主板電路主要提供三總線信號(hào)。
4 檢測(cè)分辨率分析
現(xiàn)在有一個(gè)問(wèn)題,就是本電路可以計(jì)數(shù)脈沖的最大頻率是多少?也就是檢測(cè)分辨率的問(wèn)題。從讀入第一脈沖,計(jì)數(shù)輸出完畢,到讀取下一個(gè)脈沖,程序一共經(jīng)歷了43條指令,156個(gè)時(shí)鐘周期[3]。那么,該電路計(jì)數(shù)的分辨率應(yīng)該是CPU主頻的1/156。假如CPU的主頻是4.77M,電路的計(jì)數(shù)分辨率應(yīng)該就是30.527K。如果程序中將計(jì)數(shù)循環(huán)改為宏調(diào)用,可節(jié)省32個(gè)時(shí)鐘周期,計(jì)數(shù)分辨率可提高20%。這是一種以空間換時(shí)間的方法,這樣做使程序代碼空間擴(kuò)大44%。關(guān)于程序空間和時(shí)間的問(wèn)題,將另文討論。
5 結(jié)束語(yǔ)
這種仿真電路目前我們已大量用于教學(xué)實(shí)踐中,與傳統(tǒng)的實(shí)驗(yàn)箱實(shí)驗(yàn)相比有著獨(dú)特的優(yōu)越性。
1) 可視化的電路教學(xué)。相對(duì)于實(shí)驗(yàn)箱的“黑盒子”式的電路,仿真電路展示了電路的內(nèi)在聯(lián)系,更加有利于學(xué)習(xí)與理解。
2) 實(shí)驗(yàn)電路設(shè)計(jì)更加靈活。實(shí)驗(yàn)箱電路是已經(jīng)設(shè)計(jì)好的電路,可改變的線路有限,更不允許重新設(shè)計(jì)新的電路。而仿真電路,老師可以根據(jù)教學(xué)進(jìn)度,從易到難,逐步帶領(lǐng)學(xué)生設(shè)計(jì)實(shí)驗(yàn)電路。
3) 實(shí)驗(yàn)?zāi)J降淖兏?。原?lái)的實(shí)驗(yàn)箱電路,所做的只能是“驗(yàn)證型”實(shí)驗(yàn),而仿真電路可以完成“設(shè)計(jì)型”實(shí)驗(yàn),甚至“綜合型”實(shí)驗(yàn)。
最后要強(qiáng)調(diào)的是,該文的電路設(shè)計(jì)主要用于教學(xué),其基本出發(fā)點(diǎn)是使學(xué)生學(xué)習(xí)類似電路設(shè)計(jì)的原理和基本方法。但在教學(xué)中一定要強(qiáng)調(diào)仿真電路與實(shí)際電路之間的差距,比如像電路中一些去耦電容的使用,是需要電路設(shè)計(jì)經(jīng)驗(yàn)和應(yīng)用測(cè)試的。還有實(shí)驗(yàn)室里設(shè)計(jì)的電路和現(xiàn)場(chǎng)使用電路的差距,比如毛刺干擾會(huì)引起檢測(cè)點(diǎn)的誤觸發(fā)等等。只要我們認(rèn)真設(shè)計(jì)每一個(gè)電路和實(shí)驗(yàn)課程,仿真電路教學(xué)應(yīng)用一定會(huì)帶來(lái)喜人的效果。
參考文獻(xiàn):
[1] 譚浩強(qiáng).微機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2001:181-183.
[2] 白素懷.Intel8086十六位微型計(jì)算機(jī)硬件軟件及接口技術(shù)[M].西安:陜西科學(xué)技術(shù)出版社,1986:12-16.
[3] 沈美明,溫冬嬋.IBM-PC匯編語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007:435-453.
[4] 戴梅萼,史嘉權(quán).微型計(jì)算機(jī)計(jì)數(shù)及應(yīng)用[M]. 4版.北京:清華大學(xué)出版社,2008:17-19.
[5] 劉海成.單片機(jī)及應(yīng)用系統(tǒng)設(shè)計(jì)原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2009:32-35.