第11章 PROTEUS ISIS、KeiluVision2軟件的使用及應(yīng)用實(shí)例_第1頁
第11章 PROTEUS ISIS、KeiluVision2軟件的使用及應(yīng)用實(shí)例_第2頁
第11章 PROTEUS ISIS、KeiluVision2軟件的使用及應(yīng)用實(shí)例_第3頁
第11章 PROTEUS ISIS、KeiluVision2軟件的使用及應(yīng)用實(shí)例_第4頁
第11章 PROTEUS ISIS、KeiluVision2軟件的使用及應(yīng)用實(shí)例_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第11章PROTEUSISIS、KeiluVision2教學(xué)目的(1)學(xué)會(huì)從網(wǎng)絡(luò)獲得Proteus和KeiluVision2IDE集成軟件及二者聯(lián)調(diào)所需的軟件;(2)學(xué)會(huì)Proteus軟件和KeiluVision2IDE軟件的正確安裝;(3)學(xué)會(huì)ProteusISIS原理圖的輸入;(4)學(xué)會(huì)ProteusISIS數(shù)字電路交互式仿真的基本方法;(5)學(xué)會(huì)KeiluVision2IDE開發(fā)平臺(tái)上建立C51程序及匯編程序的流程;(6)學(xué)會(huì)Proteus和KeiluVision2IDE聯(lián)調(diào)的方法、步驟。學(xué)習(xí)重點(diǎn)和難點(diǎn)(1)ProteusISIS輸入原理圖時(shí),如何查找所需元件、如何放置元件、布線、連接端子、元件標(biāo)注、總線標(biāo)注、原理圖標(biāo)注等;(2)ProteusISIS交互式仿真,常見虛擬儀器的使用、常見活性元件如各種開關(guān)的使用;(3)KeilC51各種常用調(diào)試工具的使用;(4)Proteus和KeiluVision2聯(lián)調(diào)時(shí),二者相關(guān)參數(shù)的設(shè)置。目前電子設(shè)計(jì)手段日新月異,由手工設(shè)計(jì)階段到EDA階段,再到虛擬設(shè)計(jì)階段,人們不斷提高設(shè)計(jì)水平與效率。PROTEUS嵌入式系統(tǒng)仿真與開發(fā)平臺(tái)是一款可以實(shí)現(xiàn)數(shù)字電路、模擬電路、微控制器系統(tǒng)仿真及PCB設(shè)計(jì)等功能的EDA軟件。從元件的選取到連線,直至電路的調(diào)試、分析和軟件的編譯,都是在計(jì)算機(jī)中完成,所有的工作先在虛擬環(huán)境下進(jìn)行。基于這一設(shè)計(jì)思想開發(fā)的PROTEUS軟件,可在原理圖設(shè)計(jì)階段對(duì)所設(shè)計(jì)的電路進(jìn)行評(píng)估、驗(yàn)證,看是否達(dá)到設(shè)計(jì)要求的技術(shù)指標(biāo),并可以通過改變?cè)膮?shù)使整個(gè)電路性能達(dá)到最優(yōu)化。這樣就避免了傳統(tǒng)電子電路設(shè)計(jì)中方案更換帶來的多次重復(fù)購買元器件及制板,在節(jié)省設(shè)計(jì)時(shí)間與經(jīng)費(fèi)的同時(shí),提高了設(shè)計(jì)效率與質(zhì)量。PROTEUS軟件提供了三十多個(gè)元器件庫,數(shù)千元器件。元件涉及電阻、電容、二極管、MOS管、變壓器、繼電器、各種放大器、各種激勵(lì)源、300多種微處理器、各種門電路和各種終端等。提供的儀表有交直流電壓表、電流表、邏輯分析儀、定時(shí)/計(jì)數(shù)器和信號(hào)發(fā)生器等虛擬儀器,PROTEUS作為可視化仿真軟件,提供數(shù)碼管、液晶屏、LED、按鈕、鍵盤等外設(shè)。本章基于PROTEUS6.9SP4版本的軟件,通過實(shí)例講解PROTEUS軟件中的最基本的操作、包括原理圖的輸入、電路仿真、軟硬件協(xié)同調(diào)試等。11.0Proteus軟件概述Proteus軟件是英國LabCenterElectronics公司開發(fā)的EDA工具軟件,包括ISIS.EXE(電路原理圖設(shè)計(jì)、電路原理仿真)和ARES.EXE(印刷電路板設(shè)計(jì))兩個(gè)主要程序三大基本功。其中最令人稱贊的是電路原理的仿真功能,除了普通分立器件、小規(guī)模集成器件的仿真功能以外,還具有多種帶有CPU可編程器件的仿真功能,如80C51系列、68系列、PICS系列等;具有多種總線、RS232終端仿真功能;具有電動(dòng)機(jī)、液晶顯示器等特殊器件的仿真功能;對(duì)可編程器件可靈活的外掛各種編譯、編輯工具,使用非常方便。具有多種虛擬儀器幫助完成實(shí)時(shí)仿真調(diào)試,用于課堂教學(xué)也是一種非常好的演示工具。1、軟件的獲取需要Proteus軟件的讀者,可聯(lián)系深圳市風(fēng)標(biāo)數(shù)碼科技有限公司,或到以下網(wǎng)址:或http://www.labcenter.co.uk下載免費(fèi)軟件,或用搜索引擎搜索Proteus6.9下載或更高版本的下載。2、Proteus6.9的安裝雙擊setup.Exe,按屏幕提示,輸入密碼,一路Next,安裝完成后,單擊:程序|proteus6professional|Licencemanager,進(jìn)入labcenterLicenceManager管理界面,如圖11-1所示,在圖11-1中點(diǎn)擊BrowseForKeyFile,在對(duì)話框中選擇已下載的licence.lxk文件,單擊圖11-1左側(cè)任一“黃鑰匙”,點(diǎn)擊Install,單擊Close,proteus6.9安裝完成。圖11-1proteus6.9密匙管理界面11.1ProteusISIS編輯環(huán)境

ProteusISIS智能原理圖輸入系統(tǒng)是PROTEUS系統(tǒng)的中心。該編輯軟件具有較好的人機(jī)交互界面。并且設(shè)計(jì)功能強(qiáng)大,使用方便,易于掌握。11.1.1操作界面ProteusISIS運(yùn)行于windows98/2000/xp環(huán)境,對(duì)PC機(jī)要求不高,一般的配置即可。啟動(dòng)ProteusISIS軟件后,將啟動(dòng)ProteusVSM編輯環(huán)境,如圖11-2所示。在圖11-2中,點(diǎn)狀的柵格區(qū)為編輯窗口;左側(cè)的上方為電路圖瀏覽窗口;下方是元器件列表區(qū)。其中,編輯窗口用于放置元件,進(jìn)行連線,繪制原理圖;瀏覽窗口中的框線表示當(dāng)前編輯窗口顯示的區(qū)域,當(dāng)從對(duì)象選擇器中選擇一個(gè)新的對(duì)象時(shí),在瀏覽窗口中可以預(yù)覽選中的對(duì)象。在預(yù)覽窗口上單擊,將會(huì)以單擊位置為中心刷新編輯窗口。其他情況下,預(yù)覽窗口顯示將要放置的對(duì)象的預(yù)覽。圖11-2ISIS繪制環(huán)境當(dāng)使用選擇或鏡像按鈕時(shí);單擊Generator按鈕,在此模式下對(duì)象選擇器列出各種信號(hào)源(如脈沖信號(hào)源等)單擊Voltageprobe按鈕,可在原理圖中添加電壓探針。當(dāng)電路進(jìn)入仿真模式時(shí),可顯示各種探針處的電壓值。單擊Currentprobe按鈕,可在原理圖中添加電流探針。當(dāng)電路進(jìn)入仿真模式時(shí),可顯示各種探針處的電流值。單擊VirtualInstrument按鈕,在此模式下對(duì)象選擇器列出各種虛擬儀器(如示波器、邏輯分析儀、定時(shí)/計(jì)數(shù)器、模式發(fā)生器等)當(dāng)一個(gè)對(duì)象在選擇器中被選中時(shí);●這種“放置預(yù)覽”特性在下列情況下被激活:●除了上述模塊圖標(biāo)外,系統(tǒng)還提供了以下2D圖形模式圖標(biāo):

2Dgraphicsline按鈕,用于創(chuàng)建元件或表示圖表時(shí)劃線。

2Dgraphicsbox按鈕,用于創(chuàng)建元件或表示圖表時(shí)繪制方框。

2Dgraphicscircle按鈕,用于創(chuàng)建元件或表示圖表時(shí)劃圓。2Dgraphicsarc按鈕,用于創(chuàng)建元件或表示圖表時(shí)繪制弧線。

2Dgraphicspath按鈕為任意形狀圖標(biāo),用于創(chuàng)建元件或表示圖表時(shí)繪制任意形狀圖標(biāo)。

2Dgraphicstext按鈕

為文本編輯圖標(biāo),用于插入各種文字說明。2Dgraphicssymbol按鈕為符號(hào)圖標(biāo),用于選擇各種符號(hào)器件。

Markersforcomponentorigin按鈕為標(biāo)記圖標(biāo),用于產(chǎn)生各種標(biāo)記圖標(biāo)?!駥?duì)于具有方向性的對(duì)象,系統(tǒng)還提供了各種塊旋轉(zhuǎn)按鈕:方向旋轉(zhuǎn)(SetRotation)按鈕,以90°的偏置改變?cè)姆胖梅较?。水平鏡像旋轉(zhuǎn)(HorizontalReflection)按鈕,以Y軸為對(duì)稱軸,按180°的偏置旋轉(zhuǎn)元件。垂直鏡像旋轉(zhuǎn)(VirticalReflection)按鈕,以X軸為對(duì)稱軸,按180°的偏置旋轉(zhuǎn)元件。11.1.2菜單欄和工具欄菜單欄和工具欄如圖11-3所示。ProteusISIS的菜單欄包括File(文件)、View(視圖)、Library(庫)、Tools(工具)、Design(設(shè)計(jì))和Help(幫助)等。單擊任一菜單后都將彈出相應(yīng)的下拉菜單,符合Windows的菜單風(fēng)格。11-3主菜單和主要工具欄File菜單包括常用的文件功能,如打開新的設(shè)計(jì)、加載設(shè)計(jì)、保存設(shè)計(jì)、導(dǎo)入/導(dǎo)出文件、顯示最近使用過的文檔及退出ProteusISIS等。View菜單包括網(wǎng)格的顯示與否、格點(diǎn)的間距設(shè)置、電路圖的縮放及各種工具的顯示與隱藏等。Edit菜單包括操作的撤銷/恢復(fù)、元件的查找與編輯、剪貼/復(fù)制/粘貼及多個(gè)對(duì)象的疊層關(guān)系的設(shè)置等。Library菜單包括元件/圖標(biāo)的添加、創(chuàng)建及庫管理器的調(diào)用。Tools菜單包括實(shí)時(shí)標(biāo)注、實(shí)時(shí)捕捉及自動(dòng)布線等。Design菜單包括編輯設(shè)計(jì)屬性、編輯圖紙屬性及進(jìn)行設(shè)計(jì)注釋等。Graph菜單包括編輯圖形、添加Trace、仿真圖形及一致性分析等。Source菜單包括添加/刪除源文件、定義代碼生成工具及建立外部文本編輯器等。Debug菜單包括啟動(dòng)調(diào)試、執(zhí)行仿真、單步執(zhí)行及彈出窗口重新排布等。Template菜單包括圖形格式、文本格式、設(shè)計(jì)顏色、線條連接點(diǎn)大小和圖形等。System菜單包括設(shè)置自動(dòng)保存時(shí)間間隔、圖紙大小及標(biāo)注字體等Help菜單包括版權(quán)信息、ProteusISIS教程學(xué)習(xí)及實(shí)例。11.1.3編輯環(huán)境的設(shè)置編輯環(huán)境的設(shè)置主要是指模板的選擇、圖紙的選型與光標(biāo)的設(shè)置。繪制電路圖首先要選擇模板,以控制電路圖外觀的信息,如圖形格式、文本格式、設(shè)計(jì)顏色、線條連接點(diǎn)大小和圖形等;然后設(shè)置圖紙的相關(guān)內(nèi)容,如:紙張的型號(hào)、標(biāo)注的字體等。圖紙上的光標(biāo)為放置元件、連接線路帶來很多方便。

1、設(shè)置模板選擇Template→SetDesignDefaults選項(xiàng),設(shè)置設(shè)計(jì)默認(rèn)模板的風(fēng)格,如圖11-4所示。從圖11-4所示可以看出,為滿足不同設(shè)計(jì)者的需要,可以設(shè)置紙張的顏色(PaperColour)、格點(diǎn)顏色(GridDotColour)以及電路仿真時(shí)正、負(fù)、地、邏輯高/低等項(xiàng)目的顏色,同時(shí)還可以設(shè)置隱藏對(duì)象的顯示與否及其顏色,還可以通過FontFaceforDefaultFont的下拉菜單設(shè)計(jì)編輯環(huán)境的默認(rèn)字體等。圖11-4編輯設(shè)計(jì)的默認(rèn)選項(xiàng)2、設(shè)置仿真圖表選擇Template→SetGraphColour選項(xiàng),編輯仿真圖表的風(fēng)格,如圖11-5所示。通過對(duì)話框可設(shè)置仿真圖表的輪廓線(GraphOutline)、底色(Background)、圖形標(biāo)題(Graphtext)等按用戶期望的顏色進(jìn)行設(shè)置,同時(shí)也可對(duì)模擬跟蹤曲線(AnalogueTraces)、不同類型的數(shù)字跟蹤曲線(DigitalTraces)進(jìn)行設(shè)置。3、設(shè)置圖形選擇Template→SetGraphicsStyles選項(xiàng),設(shè)置圖形風(fēng)格,如圖11-6所示。通過這一對(duì)話框可以設(shè)置圖形的風(fēng)格,如線性、線寬、線的顏色及圖形的填充色等。在Style的下拉菜單中可選擇不同的系統(tǒng)圖形風(fēng)格。4、設(shè)置全局文本選擇Template→SetTextStyles選項(xiàng),編輯全局文本風(fēng)格,如圖11-7所示。圖11-6編輯圖形風(fēng)格11-5編輯仿真圖表的風(fēng)格11-7編輯全局字體風(fēng)格5、設(shè)置圖形文本選擇Template→SetGraphicsText選項(xiàng),編輯圖形文本格式,如圖11-8所示。6、設(shè)置文本編輯器選擇System→SetTextEditor選項(xiàng),出現(xiàn)如圖11-9所示的對(duì)話框。在圖11-9所示對(duì)話框中可以對(duì)文本的字體、字形、大小、效果、顏色等進(jìn)行設(shè)置。7、圖紙的選擇選擇System→SetSheetSizes選項(xiàng),將出現(xiàn)如圖11-10所示的對(duì)話框。對(duì)于各種不同應(yīng)用場(chǎng)合的電路設(shè)計(jì),圖紙的大小也不一樣。比如用戶要將圖紙大小更改成標(biāo)準(zhǔn)A4圖紙。將A4的復(fù)選框選中,單擊OK按鈕即可。11-8設(shè)置圖形字體圖11-9設(shè)置文本格式圖11-10設(shè)置圖紙大小8、設(shè)置格點(diǎn)在設(shè)計(jì)電路時(shí),圖紙上的格點(diǎn)為放置元件和連接線路提供了很大的幫組,也使電路圖中元件對(duì)齊、排列更加方便。

①使用View菜單設(shè)置個(gè)點(diǎn)的顯示與隱藏選擇View→Grid(快捷鍵G)選項(xiàng),設(shè)置窗口中格點(diǎn)的顯示與否,如圖11-11所示。

②使用View菜單設(shè)置格點(diǎn)的點(diǎn)距選擇View→Snap10th(Snap50th、Snap100th或Snap500th)選項(xiàng)來調(diào)整間距(默認(rèn)值為Snap100th)。圖11-11格點(diǎn)的顯示與隱藏11.2電路圖的繪制電路設(shè)計(jì)的第一步是原理圖的輸入。PROTEUSISIS原理圖輸入流程如圖11-12所示。繪制電路原理圖主要通過工具箱來完成,因此,熟練使用電路圖繪制工具是快速準(zhǔn)確繪制電路原理圖的前提。下面簡(jiǎn)要介紹PROTEUSISIS原理圖繪制過程。繪制原理圖的首要任務(wù)是從元件庫中選取繪制電路所需元件,當(dāng)啟動(dòng)ISIS的一個(gè)空白頁面時(shí),對(duì)象選擇器是空的。因此,需要使用Component工具箱調(diào)出器件到選擇器,使用Component工具的步驟如下:圖11-12原理圖輸入流程圖1、Component工具

從工具箱中選擇Component圖標(biāo)。

①點(diǎn)選對(duì)象選擇器頂端左側(cè)“P”按鈕,此時(shí)將彈出PickDevice窗口,如圖11-13所示。圖11-13中導(dǎo)航工具目錄(category)下列表參數(shù)的含義:

AnalogICs模擬集成電路庫Capacitors電容庫CMOS4000SeriesCOMS4000系列庫Connectors連接器、插頭插座庫DataConverters數(shù)據(jù)轉(zhuǎn)換庫(ADC、DAC)DebuggingTools調(diào)試工具庫Diodes二極管庫ECL10000SericesECL10000系列庫Electromechanical電動(dòng)機(jī)庫Inductors電感庫圖11-13PackDevice窗口

MicroprocessorICs微處理器庫MemoryICs存儲(chǔ)器庫Miscellaneous其他混合類庫OperationalAmplifiers運(yùn)算放大器庫Optoelectronics光器件庫PLDs&FPGAs可編程邏輯器件Resistors電阻SimulatorPrimitives簡(jiǎn)單模擬期間庫Speakers&Sounders揚(yáng)聲器和音像器件Switches&Relays開關(guān)和繼電器

Switching&Device開關(guān)期間(可控硅)Transistors晶體管TTL74SeriesTTL74系列器件TTL74lsSeriesTTL74LS系列器件

②在Keyword中鍵入一個(gè)或多個(gè)關(guān)鍵字,或使用導(dǎo)航工具目錄(category)和子目錄(subcategory),濾掉不期望出現(xiàn)的元件的同時(shí)定位期望的庫元件。③在結(jié)果列表中雙擊元件,即可將該元件添加到設(shè)計(jì)中④當(dāng)完成元件的提取時(shí),單擊OK按鈕關(guān)閉對(duì)話框,并返回ISIS。2、JunctionDot工具連接點(diǎn)(JunctionDot)用于表示線之間的互連。通常,ISIS將根據(jù)具體情形自動(dòng)添加或刪除連接點(diǎn)。但在有些情形下,可先放置連接點(diǎn),再將連線連到已放置的連接點(diǎn)或從這一連接點(diǎn)引線。放置連接點(diǎn)的步驟如下:

①從ModeSelectortoolbar選擇JunctionDot圖標(biāo)②在編輯窗口期望放置連接點(diǎn)的位置單擊,即可放置連接點(diǎn)。3、WireLabels工具線標(biāo)簽(WireLabels)用于對(duì)一組線或一組引腳編輯網(wǎng)絡(luò)名稱,以及對(duì)特定的網(wǎng)絡(luò)指定網(wǎng)絡(luò)屬性。WireLabels使用步驟如下:①從工具箱中選擇wirelabels圖標(biāo)注意:

①不可將線的標(biāo)簽放置在線以外的對(duì)象上。②一條線可放置多個(gè)線標(biāo)簽。③ISIS將自動(dòng)根據(jù)線或總線的走向調(diào)整“線標(biāo)簽”方位。“線標(biāo)簽”方位也可通過EditWireLabel對(duì)話框進(jìn)行調(diào)整。④在EditWireLabel對(duì)話框單擊labelstring中的文本,并按下del鍵即可刪除“線標(biāo)簽”。⑤在EditWireLabel對(duì)話框單擊Style選項(xiàng)卡可改變“線標(biāo)簽”的風(fēng)格。④單擊OK或按下回車鍵關(guān)閉對(duì)話框,完成線標(biāo)簽的放置和編輯。②如果想要在已存在的線上放置新的標(biāo)簽,則可在期望放置標(biāo)簽的沿線的任一點(diǎn)單擊,或在已存在的標(biāo)簽上單擊,將出現(xiàn)如圖11-14所示的EditWireLabel對(duì)話框。③在對(duì)話框的文本框中鍵入相應(yīng)的文本。圖11-14EditWireLabel對(duì)話框4、TextScripts工具ISIS支持自由格式的文本編輯(TextScripts),放置和編輯腳本的步驟如下:

①從工具箱中選擇Script圖標(biāo)②在編輯窗口期望Script左上角出現(xiàn)的位置單擊,即出現(xiàn)圖11-15對(duì)話框。③在Text區(qū)域鍵入文本。同時(shí)單擊Style制表符,用戶還可以在對(duì)話框中調(diào)整腳本的屬性。④單擊OK按鈕,完成腳本的編輯與放置。單擊Cancel按鈕關(guān)閉對(duì)話框,并取消對(duì)腳本的放置和編輯。圖11-15TextScriptsblock對(duì)話框5、Bus工具ISIS支持在層次模塊間運(yùn)行總線,同時(shí)支持定義庫元件為總線型引腳的功能。BUS工具的使用步驟如下:

①從工具箱中選擇Bus圖標(biāo)②在期望總線起始端(可為總線引腳、一條已存在的總線或空白處)出現(xiàn)的位置單擊。③拖動(dòng)鼠標(biāo),到期望總線路徑拐角處單擊。④在總線的終點(diǎn)(可為總線引腳、一條已存在的總線或空白處)單擊結(jié)束總線的放置。若總線的終點(diǎn)為空白處,則先單擊,然后結(jié)束鼠標(biāo)結(jié)束總線的放置。如圖11-16所示。圖11-16總線的放置小結(jié):(1)對(duì)象類型選擇圖標(biāo):←放置器件:在工具箱選中器件,在編輯窗移動(dòng)鼠標(biāo),點(diǎn)擊左鍵放置器件。←放置節(jié)點(diǎn):當(dāng)兩連線交叉,放置一個(gè)節(jié)點(diǎn)表示連通。←放置網(wǎng)絡(luò)標(biāo)號(hào):電路連線可用網(wǎng)絡(luò)標(biāo)號(hào)替換,具有相同標(biāo)號(hào)的線是連同的?!胖梦谋菊f明:此內(nèi)容是對(duì)電路的說明,與電路的仿真無關(guān)?!胖每偩€:當(dāng)多線并行時(shí)為了簡(jiǎn)化連線可用總線表示?!苿?dòng)鼠標(biāo):點(diǎn)擊此鍵后,取消左鍵的放置功能,但仍可以編輯對(duì)象?!胖米与娐罚寒?dāng)圖紙較小時(shí),可將部分電路以子電路形式畫在另一張圖上?!胖脠D紙內(nèi)部終端:有普通、輸入、輸出、雙向、電源、接地、總線?!胖闷骷_:有普通、反相、正時(shí)鐘、負(fù)時(shí)鐘、短引腳、總線。←放置分析圖:有模擬、數(shù)字、混合、頻率特性、傳輸特性、噪聲分析?!胖娩浺魴C(jī):可以將聲音記錄成文件,可以回放聲音文件?!胖秒娫?、信號(hào)源:有直流電源、正弦信號(hào)源、脈沖信號(hào)源、數(shù)據(jù)文件等?!胖秒妷禾结槪涸诜抡鏁r(shí)顯示網(wǎng)絡(luò)線上的電壓,是圖形分析的信號(hào)輸入點(diǎn)?!胖锰摂M設(shè)備:有示波器、計(jì)數(shù)器、RS232終端、SPI調(diào)試器、I2C調(diào)試器、信號(hào)發(fā)生器、圖形發(fā)生器、直流電壓表、直流電流表、交流電壓表、交流電流表?!胖秒娏魈结槪捍?lián)在指定的網(wǎng)絡(luò)上,顯示電流的大小。(2)調(diào)試對(duì)象選擇圖標(biāo):根據(jù)上面PROTEUSISIS原理圖繪制過程的說明,請(qǐng)讀者參考如圖11-17所示的80C51A/D轉(zhuǎn)換器原理圖自行練習(xí)。圖11-1780C51A/D轉(zhuǎn)換器原理圖圖11-17所示A/D轉(zhuǎn)換電路中所需元件名稱及信息如表11-1所示。表11-1ADC0809模數(shù)轉(zhuǎn)換電路仿真元件信息元件名稱所屬類所屬子類80C51(51系列單片機(jī))MicroprocessorICs8051FamilyCAP(電容)CapacitorsGenericCap-elec(電解電容)Capacitors-Crystal(晶振)Miscellaneous-Res(電阻)Resistors-Pot-hg(滑動(dòng)變阻器)ResistorsVariableResPack-8(排阻)ResistorsResistorsPacksADC0809(模數(shù)轉(zhuǎn)換器)DataCovertersA/DConverters7seg-mpx4-cc-blue(數(shù)碼管共陰4位)Optoelectronics7-segmentDisplay11.3電路分析與仿真仿真就是利用電子器件的數(shù)學(xué)模型通過計(jì)算和分析來表現(xiàn)電路工作狀態(tài)的一種手段。具有成本低,設(shè)計(jì)調(diào)試周期短,避免器件浪費(fèi)等特點(diǎn)。特別適合于實(shí)驗(yàn)教學(xué),可在短時(shí)間內(nèi)讓讀者掌握更多的概念。仿真的真實(shí)程度取決于器件模型的逼真程度,一個(gè)較好的仿真系統(tǒng)雖不能百分之百替代實(shí)際器件的實(shí)驗(yàn),但對(duì)實(shí)際電路的設(shè)計(jì)調(diào)試是有很多幫組的。

仿真分為實(shí)時(shí)仿真和非實(shí)時(shí)仿真。實(shí)時(shí)仿真是利用虛擬儀器(如信號(hào)發(fā)生器、示波器、電壓表、電流表等)實(shí)時(shí)跟蹤電路狀態(tài)變化的仿真模式,在這種模式下必須不停地進(jìn)行分析和計(jì)算工作,和實(shí)際實(shí)驗(yàn)很相似,比較真實(shí),計(jì)算工作量大對(duì)計(jì)算速度有較高的要求,或者說在同樣的機(jī)器速度下被仿真的電路頻率比較低。非實(shí)時(shí)仿真是將分析計(jì)算結(jié)果保持下來繪制成圖表顯示在屏幕上,在觀察分析過程中不再進(jìn)行計(jì)算工作。這種方式可以在比較慢的機(jī)器上仿真比較高的頻率特性,因此分析計(jì)算的時(shí)間可以被拉長(zhǎng)。數(shù)字電路的仿真和模擬電路的仿真有很大的不同,數(shù)字邏輯電路仿真只在時(shí)鐘變化時(shí)捕捉電路的狀態(tài),對(duì)信號(hào)過沖、信號(hào)變形可能忽略而不考慮,計(jì)算工作量大大減小,模擬電路在每個(gè)信號(hào)周期內(nèi)都要進(jìn)行多次的計(jì)算和分析,所以計(jì)算工作量很大,每個(gè)周期的計(jì)算點(diǎn)數(shù)時(shí)可以設(shè)置的,不要設(shè)置的太高。11.3.1實(shí)時(shí)仿真在電路設(shè)計(jì)好后,放置信號(hào)源,放置虛擬儀器、選擇測(cè)試點(diǎn),連接測(cè)量?jī)x表的輸入端到被測(cè)點(diǎn)上,注意信號(hào)源要接地,示波器沒有接地線,測(cè)量結(jié)果是相對(duì)GND的波形,電壓表測(cè)量的是兩條線之間的電位差,電流表則串接在電路中。電壓、電流探針可以作為實(shí)時(shí)工具,在仿真執(zhí)行時(shí)電壓探針顯示的是所指的線相對(duì)于地線GND的值,電流探針顯示的是所指連線的電流,相當(dāng)于串聯(lián)在電路中。在Design菜單下,選擇ConfigurePowerRails彈出對(duì)話框,可以選擇所對(duì)應(yīng)的電壓(如設(shè)置GNDVCC的電壓值等),這樣可以給調(diào)試帶來很大的方便。在System菜單下,選擇SetAnimationOptions彈出對(duì)話框,如圖11-18所示,在AnimationOptions欄有四個(gè)項(xiàng):圖11-18AnimatedCircuitsConfiguration對(duì)話框1)在探針上顯示電壓和電流。

2)顯示引腳邏輯狀態(tài),被選中后在仿真時(shí)數(shù)字電路引腳上會(huì)出現(xiàn)一個(gè)小方格,表示當(dāng)前的邏輯狀態(tài),藍(lán)色表示低電平“0”,紅色表示高電平“1”。3)用顏色顯示電壓值,被選中后仿真時(shí)用線的顏色表示出電壓的高低,淺綠顏色表示低電壓,深紅顏色表示高低壓。4)用箭頭表示顯示電流的方向,被選中后仿真時(shí),線上出現(xiàn)一個(gè)箭頭表示出電流的方向。當(dāng)虛擬儀器連接好后,編輯窗口左下角的可以幫助啟動(dòng)仿真過程,所對(duì)應(yīng)的功能分別是:執(zhí)行、單步執(zhí)行、暫停、停止。

【例11-1】:簡(jiǎn)單電路的仿真。

在圖11-19所示的電路中,只有兩個(gè)器件:滑動(dòng)變阻器(POT-HG,在Resistors庫中)、燈(LAMP,在Optoelectronics庫中)。畫好電路后,點(diǎn)擊Generators圖標(biāo),選擇虛擬直流信號(hào)源DC加載到電路,單擊在電路中放置電流探針,單擊在電路中放置電壓探針,在System菜單下,選擇SetAnimationOptions彈出對(duì)話框如圖11-18,勾選AnimationOptions下最后兩項(xiàng),(ShowWireVoltagebyColour及ShowWireCurrentwithArrows)。連接好后,在編輯窗口左下角點(diǎn)擊,即可仿真運(yùn)行了??梢钥吹诫娐分须娏鞯姆较?,大?。粺魞啥穗妷旱母叩?,點(diǎn)擊電阻兩端的,可看到電路中各參數(shù)的變化。圖11-19簡(jiǎn)單模擬電路的仿真

信號(hào)源:直流電壓源(DC)、正弦信號(hào)源(SINE)、脈沖信號(hào)源(PULSE)、積分波形信號(hào)(EXP)、頻率調(diào)試信號(hào)(SFFE)、手工勾畫任意波形(PWLIN),數(shù)據(jù)文件波形(FILE)、聲音文件波形(AUDIO)等。如圖11-20(a)所示??梢允褂玫奶摂M儀表:示波器(OSCILLOSCOPE)、計(jì)數(shù)器(COUNTERTIME)、RS232終端(VIRTUALTERMINAL)、SPI調(diào)試器(SPIDEBUGGER)、I2C調(diào)試器(I2CDEBUGGER)、信號(hào)發(fā)生器(SIGNALGENERATOR)、直流電壓表(DCVOLTMETER)、直流電流表(DCAMMETER)、交流電壓(ACVOLTMETER)、電流表(ACAMMETER)等。如圖11-20(b)所示圖11-20Proteus中的信號(hào)源及虛擬儀器實(shí)時(shí)仿真常用工具ISIS系統(tǒng)在實(shí)時(shí)仿真調(diào)試過程中,提供了許多有用的工具,常用工具如下:

圖11-21(a)為復(fù)位開關(guān),鼠標(biāo)點(diǎn)擊開關(guān)接通,放開鼠標(biāo)開關(guān)斷開。在開關(guān)和繼電器(Switching&Relays)庫中。

圖11-21(b)為乒乓開關(guān),點(diǎn)擊接通,再點(diǎn)擊斷開。在開關(guān)和繼電器(Switching&Relays)庫中。

圖11-21(c)為多態(tài)開關(guān),點(diǎn)擊一次或改變一個(gè)狀態(tài)。在開關(guān)和繼電器(Switching&Relays)庫中。

圖11-21(d)為邏輯數(shù)據(jù),點(diǎn)擊一次或改變狀態(tài),啟動(dòng)前可設(shè)置為常態(tài)。在調(diào)試工具(Debuggingtools)庫中。

圖11-21(e)為邏輯脈沖,點(diǎn)擊一次輸出一個(gè)脈沖,啟動(dòng)前可設(shè)置為常態(tài)。在調(diào)試工具(Debuggingtools)庫中。

圖11-21(f)邏輯數(shù)據(jù)產(chǎn)生器,有BCD碼和HEX兩種。在調(diào)試工具(Debuggingtools)庫中。圖11-21開關(guān)、按鈕、數(shù)據(jù)撥碼開關(guān)

【例11-2】:矩陣鍵盤的仿真。陣列式鍵盤,可用來和單片機(jī)等可編程器件的連接,通過行或列掃描獲得鍵的位置數(shù)據(jù)(鍵值),數(shù)據(jù)值與鍵盤上的數(shù)字無關(guān)。如圖11-22所示不難看出:“A”行“3”列交叉的鍵是“9”。如果將“列線”4、3、2、1分別接單片機(jī)p1.7~p1.4,將“行線”d、c、b、a分別接單片機(jī)p1.3~p1.0。p1.7~p1.4工作在輸入方式,p1.3~p1.0工作在輸出方式,則鍵“9”的編碼為:p1.3~p1.0為“1110”,讀到的p1.7~p1.4的編碼為:“1011”,所以鍵“9”的編碼是:0BEH。

請(qǐng)讀者自行分析一下其余15個(gè)按鍵的“鍵值”分別是多少?圖11-224×4矩陣鍵盤Proteus交互式仿真圖11.3.2微處理器的仿真在ProteusISIS系統(tǒng)中對(duì)多種微處理器進(jìn)行仿真,是其最突出的特點(diǎn)。在這個(gè)系統(tǒng)中可以通過仿真方式在計(jì)算機(jī)上執(zhí)行各種微處理器的指令,并與所連接的接口電路同時(shí)仿真實(shí)現(xiàn)對(duì)電路的快速調(diào)試。

【例11-3】:Proteus仿真設(shè)計(jì)一個(gè)八位的搶答器。在本例中用到了數(shù)碼管、蜂鳴器、三極管、按鍵這些最普通也是最常用的元器件,也用到了總線和總線分支這種布線方式。我們用80C51單片機(jī)的P1口來驅(qū)動(dòng)一個(gè)數(shù)碼管;用P3口作為八個(gè)搶答信號(hào)的輸入端;用P2.0通過三極管Q1來驅(qū)動(dòng)蜂鳴器;用P2.2作為搶答器復(fù)位信號(hào)的輸入端。電路如圖11-23所示。圖11-23用PROTEUS仿真8位搶答器仿真鏈接1、元器件的查找和放置如何在Proteus自帶的眾多的元器件中找到用戶需要元器件呢?找到后又如何把它放置在原理圖中呢?這是兩個(gè)很關(guān)鍵也很重要的問題!首先,如果不知道所需的這個(gè)元件的英文名稱,那么只能耐心地用分類查找的方式進(jìn)行查找,方法是:在ProteusISIS編輯狀態(tài)下,單擊Library|PickDevice/symbol…P菜單,彈出圖11-24所示窗口,這是一個(gè)元器件查詢窗口,在這個(gè)窗口的左側(cè)是元器件分類窗口(category),我們可以在元器件分類窗口中選擇元器件的類型,比如數(shù)碼管在名為:Optoelectronics的這個(gè)元器件類型庫中,然后在右側(cè)的元器件窗口中選擇名為7SG-DIGITAL的數(shù)碼管,這是一個(gè)共陰極紅色一位數(shù)字的數(shù)碼管。如果知道所要找的元器件的英文名稱什么,那就很簡(jiǎn)單了。比如按鍵的英文名稱為BUTTON,則只要在圖11-24所示窗口的名為Keyword下的文本框中輸入BUTTON再敲回車鍵就可以很快找到這個(gè)元件。當(dāng)找到所需要的元器件后,在圖11-24所示的元器件窗口中用鼠標(biāo)左鍵雙擊這個(gè)元件名就可以把這個(gè)元件加到元件列表窗口中,然后再在元件列表窗口中用鼠標(biāo)左鍵單擊選中這個(gè)元器件,接下來就可以在原理圖中單擊左鍵把這個(gè)元件放在所要放的位置。圖11-24元器件查詢窗口2、軟件編程設(shè)計(jì)好了硬件線路之后,接下來就是軟件編程的問題。如何編寫程序呢?當(dāng)然需要根據(jù)硬件的連接情況和控制要求來編寫程序。程序要達(dá)到的控制要求是:只要一開電源或者主持人按下復(fù)位按鍵,數(shù)碼管就顯示“0”表示可以開始搶答,一旦有搶答信號(hào),就立即判斷出是那一位最先搶答,并把相應(yīng)的位號(hào)送至數(shù)碼管顯示,對(duì)其后的搶答信號(hào)不再響應(yīng),同時(shí)蜂鳴器持續(xù)間隔鳴響,給出音響提示信號(hào)。當(dāng)主持人按下復(fù)位信號(hào)后開始下一輪搶答!程序設(shè)計(jì)流程圖如圖11-25所示。圖11-25搶答器軟件流程圖現(xiàn)給出參考程序:;八位輸入搶答器參考程序清單

ORG0000 JMPBEGIN ;程序開始BEGIN:MOVP2,#0FFH ;P2口置高電平,準(zhǔn)備接收信號(hào)。 MOVR4,#0 ;“R4”的位標(biāo)志值清零。 MOVA,R4 ;“R4”位標(biāo)志值送A寄存器AGAIN:MOVDPTR,#TABLE;共陰極數(shù)碼管代碼表首址送DPTR MOVCA,@A+DPTR;取出顯示”0”的代碼送P口顯示 MOVP1,A LOOP:MOVA,P3;接收P3口的搶答信號(hào)。 CPLA;搶答信號(hào)求反 JZLOOP;如果沒有搶答信號(hào)再返回LOOP繼續(xù)掃描LOOP1:RRCA ;有搶答信號(hào)則逐次移動(dòng)判斷是那一位搶答INCR4 ;每移一次位,R4位標(biāo)志值加1JNCLOOP1 ;如果沒有遇到搶答信號(hào)返回LOOP1繼續(xù)移位MOVA,R4 ;遇到搶答信號(hào)把R4位標(biāo)志的只送AMOVCA,@A+DPTR;找到相應(yīng)位的顯示代碼MOVP1,A ;送P1口顯示LOOP2:JNBP2.2,BEGIN;若主持人按了復(fù)位信號(hào)健則轉(zhuǎn)向程序復(fù)位CPLP2.0;若沒按復(fù)位信號(hào)鍵,則通過P2.2給出高低信號(hào)驅(qū)動(dòng)蜂鳴器MOVR5,#20 ;準(zhǔn)備調(diào)用20次延時(shí)20ms程序LCALLDELAY ;調(diào)用延時(shí)程序SJMPLOOP2 ;P2.2口反復(fù)間隔0.4秒變化,驅(qū)動(dòng)蜂鳴器DELAY:MOVR6,#50;延時(shí)R5×20ms子程序D1:MOVR7,#100DJNZR7,$DJNZR6,D1DJNZR5,DELAYRETTABLE:;共陰極數(shù)碼管代碼表DB3FH,06H,5BH,4FH,66H;01234DB6DH,7DH,07H,7FH,6FH ;46789DB77H,7CH,0B9H,5EH,79H,71h ;ABCDEFEND3、對(duì)微處理器程序的處理分為以下幾個(gè)步驟:(1)添加源程序打開主菜單的Source其中有添加刪除程序、選擇代碼生成工具、設(shè)置外部文本編輯器、建立所有文件等四個(gè)選項(xiàng):

點(diǎn)擊添加/刪除源代碼,出現(xiàn)圖11-27所示對(duì)話框:在SourceCodeFilename中輸入源程序的文件名。圖11-27添加源文件和選擇代碼生成工具窗口←添加/刪除源代碼?!x擇代碼生成工具←選擇外部源文件編輯器←重構(gòu)所有文件(編譯源文件)(2)設(shè)置外部文件編輯器是為了選擇匯編語言的編輯工具,系統(tǒng)隱含的是PROTEUS系統(tǒng)自帶的一個(gè)工具(SRCEDIT.EXE)。如果不喜歡可以修改,通過瀏覽按鈕找到自己喜歡使用的文本編輯工具。操作如下:

①點(diǎn)選Source→SetupExternalTextEditor命令②系統(tǒng)彈出SourceCodeEditorConfiguration對(duì)話框。點(diǎn)選“Browse”按鈕,并使用文本選擇器定位文本編輯器的可執(zhí)行文件,這里我們選用“UltraEdit”作為編輯器。如圖11-28所示。③雙擊“Uedit32”文件,此時(shí)文件的路徑將顯示在Executable中,如圖11-29所示。

定義代碼編譯工具:根據(jù)微處理器的語言類型不同選擇合適的編譯系統(tǒng),當(dāng)按下重構(gòu)所有的選項(xiàng)時(shí)利用這個(gè)工具將匯編語言文本翻譯成機(jī)器代碼(.HEX)文件。點(diǎn)擊source|DefineCodeGenerationTools…,出現(xiàn)圖11-30所示對(duì)話框。圖11-30使用第三方編譯工具設(shè)置圖11-28選擇第三方編輯器圖11-29使用第三方編輯工具設(shè)置(3)編譯程序如果使用系統(tǒng)提供的編輯、編譯工具,當(dāng)添加文件后在Source菜單下就會(huì)出現(xiàn)選擇的文件名,點(diǎn)擊文件名就會(huì)打開編輯器,提供文件修改功能,完成修改后,選擇重構(gòu)所有的選項(xiàng)(buildall),如果文件無錯(cuò)誤就產(chǎn)生了.HEX文件。如果設(shè)置成不使用系統(tǒng)提供的工具后,Source下的所有功能將不需要??衫米x者熟悉的編譯工具,將源程序匯編(編譯)成.hex文件(4)添加和執(zhí)行程序按照?qǐng)D11-23所示,在ISIS中畫好電路后,移動(dòng)鼠標(biāo)到要選中U1(微處理器AT89C52)上點(diǎn)擊左鍵,U1變成紅色表示被選中,再點(diǎn)擊鼠標(biāo)左鍵彈出如下對(duì)話框。在程序文件下選擇所需要的程序文件(.HEX),選擇合適的工作頻率即可確認(rèn),如圖11-31所示。點(diǎn)擊編輯窗口下的仿真按鈕,程序便可以執(zhí)行了?;蛘哌x擇調(diào)試菜單Debug下的執(zhí)行功能即可執(zhí)行。仿真結(jié)果如圖11-32所示,是K5鍵最先按下,LED上顯示5,蜂鳴器“嘟嘟”不停的叫,等待主持人使用的K9鍵按下,搶答器復(fù)位。圖11-32搶答器仿真后的結(jié)果圖11-31單片機(jī)添加程序窗口需要說明的是大多數(shù)專業(yè)編譯器和匯編程序都有完整的集成開發(fā)環(huán)境IDE。如IAR’sEmbeddedWorkbench、Keil’suVision3、Microchip’sMP-LAB和Atmel’sVARstudio。如果用戶使用上述任意一種工具開發(fā)源代碼,可以很容易在IDE中進(jìn)行編輯,生成可執(zhí)行文件(如HEX或BIN或CODE文件)后切換到ProteusVSM,然后進(jìn)行仿真。11.4KeilC51集成開發(fā)環(huán)境

KeilC51是目前世界上最優(yōu)秀、最強(qiáng)大的51系列單片機(jī)開發(fā)應(yīng)用平臺(tái)之一,它集成編輯、編譯、仿真于一體。支持匯編語言、C語言的程序設(shè)計(jì),界面友好,易學(xué)易用。它內(nèi)嵌的仿真調(diào)試軟件可以讓用戶采用模擬仿真和實(shí)時(shí)在線仿真兩種方式對(duì)目標(biāo)系統(tǒng)進(jìn)行開發(fā)。仿真時(shí),除了可以模擬單片機(jī)的I/O口、定時(shí)器、中斷外,甚至可以仿真單片機(jī)的串行通訊。

51系列單片機(jī)使用Keil工具開發(fā)項(xiàng)目和其他軟件工具開發(fā)項(xiàng)目極其相似:

(1)創(chuàng)建一個(gè)項(xiàng)目,從器件庫中選擇目標(biāo)器件配置工具設(shè)置。(2)用C或匯編語言創(chuàng)建源程序。(3)用項(xiàng)目管理器生成用戶應(yīng)用。(4)修改源程序中的錯(cuò)誤。(5)測(cè)試連接應(yīng)用。KeilC51集成開發(fā)環(huán)境的Demo版軟件可以在的相關(guān)網(wǎng)頁下載。之后打開KeilC51文件,并雙擊Setup.exe進(jìn)行安裝。提示選擇Eval(評(píng)估)或Full(完全)方式時(shí),選擇Eval方式安裝,不需要注冊(cè)碼,但有2KB大小的限制。如果用戶購買了完全版的Keilc51軟件(也可以通過其他途徑得到),則選擇Full安裝,代碼量無限制。安裝結(jié)束后,如果用戶想在中文環(huán)境使用,可下載并安裝KeilC51的漢化軟件,并將漢化軟件的中的uv3.exe復(fù)制并粘貼到keil\uv3目錄下,并替換原先的文件即可(本書選用keiluVision2)。完成安裝并啟動(dòng)KeilC51后,即可在圖11-33所示的窗口中完成程序的開發(fā)。圖11-33KeiluVision3IDE的主界面11.4.1建立一個(gè)Keilc51程序現(xiàn)通過建立一個(gè)簡(jiǎn)單的LED流水燈的例子來初步學(xué)習(xí)keilc51的基本用法。硬件參考電路如圖11-34所示。圖11-34流水燈(跑馬燈)電路仿真鏈接

●啟動(dòng)KeilC51軟件。通過雙擊電腦桌面上的KeiluVision2快捷方式圖標(biāo)來啟動(dòng)。

●新建工程。執(zhí)行KeilC51軟件的菜單Project|NewProject…,彈出一個(gè)名為CreateNewProject的對(duì)話框。如圖11-35所示,先選擇一個(gè)合適的文件夾準(zhǔn)備來存放工程文件,比如E:\Project\LedFlash,其中LedFlash是新建的文件夾。建議:今后每新建一個(gè)工程都要在適當(dāng)?shù)拇疟P位置新建一個(gè)文件夾用來保存工程文件,以方便管理,并養(yǎng)成良好的習(xí)慣。最后,為工程取名為L(zhǎng)edFlash,并保存。

●選擇CPU。緊接著,KeilC51提示選擇CPU器件。8051內(nèi)核單片機(jī)最早是由鼎鼎大名的Intel公司發(fā)明的,后來其他廠商如Philips、Atmel、Winbond等先后推出其兼容產(chǎn)品,并在8051的基礎(chǔ)上擴(kuò)展了許多增強(qiáng)功能。在這里可以選擇Atmel公司新推出89S52參見圖11-36。圖11-36為項(xiàng)目選擇CPU器件圖11-35新建KeilC51工程接下來彈出一個(gè)如圖11-37所示的對(duì)話框。該對(duì)話框提示用戶是否要把標(biāo)準(zhǔn)8051的啟動(dòng)代碼添加到工程中去。KeilC51既支持C語言編程也支持匯編語言編程。如果打算用匯編語言寫程序,則應(yīng)當(dāng)選擇“否(N)”。如果打算用C語言寫程序,一般也選擇“否(N)”,但是,如果用到了某些增強(qiáng)功能需要初始化配置時(shí),則可以選擇“是(Y)”。在這里,我們選擇“否(N)”,即不添加啟動(dòng)代碼。至此,一個(gè)空的KeilC51工程建立完畢。圖11-37選擇是否要添加啟動(dòng)代碼執(zhí)行菜單File|New…,出現(xiàn)一個(gè)名為Textn(其中n表示序號(hào))的文檔。接著執(zhí)行菜單File|Save,彈出一個(gè)名為SaveAs的對(duì)話框。將文件名改為main.c,然后保存,參見圖11-38。注意:擴(kuò)展名“.c”不可省略。添加源程序文件到工程中?,F(xiàn)在,一個(gè)空的源程序文件main.c已經(jīng)建立,但是這個(gè)文件與剛才新建的工程之間并沒有什么內(nèi)在聯(lián)系。我們需要把它添加到工程中去。單擊KeilC51軟件左邊項(xiàng)目工作窗口“Target1”上的“+”,將其展開。然后右擊“SourceGroup1”文件夾,會(huì)彈出如圖11-39所示的選擇菜單。單擊其中的“AddFilestoGroup‘SourceGroup1’”項(xiàng),將彈出如圖11-40所示的對(duì)話框。圖11-38保存新建的源程序文件“.c”不可省略圖11-39準(zhǔn)備添加源程序文件到工程中圖11-40向工程中添加源程序文件現(xiàn)在開始輸入源程序。先最大化“main.c”源程序窗口,然后請(qǐng)按下面給出的參考程序清單11.1輸入程序代碼。程序清單11.1

#include<reg51.h> #defineucharunsignedchar #defineuintunsignedint

ucharcodedisplay[72]={ 0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, 0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00, 0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF, 0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F, 0x9F,0xCF,0xE7,0xF3,0xF9,0xFC,0xFF, 0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF, 0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF, 0xAA,0x55,0x18,0xFF,0xF0,0x0F, 0x00,0xFF,0x00,0xFF};voiddelayms(uint);//延時(shí)函數(shù)的聲明voidmain(void){uchari;while(1){for(i=0;i<72;i++){P1=display[i];delayms(350);//延時(shí),設(shè)實(shí)參為350}}//endofwhile}//endofmainvoiddelayms(uintms)//延時(shí)子程序{uchark;while(ms--){for(k=0;k<120;k++);}}單擊KeilC51工具欄的“”圖標(biāo),彈出名為OptionsforTarget‘Target1’的對(duì)話框。單擊Output標(biāo)簽頁,選中CreateHEXFile項(xiàng),然后“確定”。參見圖11-41。圖11-41編譯環(huán)境設(shè)置單擊工具欄的按鈕“”編譯當(dāng)前源程序。編譯結(jié)果會(huì)顯示在輸出窗口內(nèi)。如果是“0Error(s),0Warning(s).”就表示程序沒有問題了(至少是在語法上不存在問題了)。如果存在錯(cuò)誤或警告,請(qǐng)仔細(xì)檢查程序是否與參考程序清單一致。修改后,再編譯,直到通過為止。編譯后的結(jié)果會(huì)生成IntelHEX格式的程序LedFlash.hex文件。該文件可以被專門的芯片燒寫工具(編程器)載入并最終燒錄到具體的芯片中。如果用PROTEUS做仿真調(diào)試,可按圖11-32跑馬燈電路在PROTEUSISIS平臺(tái)下畫好電路,鼠標(biāo)指向微處理器89C52,右鍵點(diǎn)擊,這時(shí)89C52變紅色,左鍵點(diǎn)擊,彈出對(duì)話框,在ProgramFile:欄選擇剛才生成的LedFlash.hex,點(diǎn)擊OK鍵,如圖11-42所示。點(diǎn)擊控制按鈕“”中的“”即可進(jìn)行仿真了。圖11-42在PROTEUSISIS下給單片機(jī)添加程序11.4.2新建A51匯編工程KeilC51軟件也支持A51匯編語言編程。建立A51工程的操作步驟與建立C51工程基本相同,但有兩個(gè)要點(diǎn)請(qǐng)注意:

新建的源程序文件名要以“.A51”或“.ASM”作為后綴。A51源程序添加到工程中時(shí),文件類型要選擇“AsmSourcefile(*.s*;*.src;*.a*)”。如圖11-43所示。其它操作步驟都跟建立C51工程相同。有興趣的讀者,請(qǐng)按如下程序清單輸入程序代碼圖11-43向工程中添加匯編語言源程序文件程序清單如下:

ORG 0000H AJMP MAIN ORG 0030HMAIN: MOVP1,#0FFH;;closedisplayMOVr2,#low(LEDCODE1-LEDCODE)MOVDPTR,#LEDCODELOP1:MOVA,#0MOVCA,@A+DPTRCPLAMOVP1,ALCALLDELAYINCDPTRDJNZR2,LOP1LJMPMAIN

;延時(shí)子程序

DELAY: MOVR7,#0FAHDELAY_1: MOVR6,#0FAHDELAY_2: NOP NOP NOP NOP NOP DJNZ R6,DELAY_2 DJNZ R7,DELAY_1 RETLEDCODE:DB81H,42H,24H,18H,00H;;--><---DB18H,24H,42H,81H,00H;;<----->DB80H,40H,20H,10H,08H,04H,02H,01H,00H;;|----->DB01H,02H,04H,08H,10H,20H,40H,80H,00H;<------|DB80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,00HDB0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,00HDB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,00HDB55H,55H,0AAH,55H,0AAH,00HLEDCODE1:DB00HEND11.5在KeilC51下調(diào)試程序

KeilC51的調(diào)試功能非常強(qiáng)大,本節(jié)我們先做一個(gè)初步了解,等以后再慢慢體會(huì)?,F(xiàn)在仍然以LED跑馬燈程序?yàn)槔?,來具體了解如何進(jìn)行仿真操作。11.5.1進(jìn)入仿真狀態(tài)如果程序編譯通過,就可以仿真了。在仿真之前,有一項(xiàng)參數(shù)最好配置一下,仍然按“”圖標(biāo)進(jìn)入編譯環(huán)境設(shè)置,找到“Xtal(MHz)”項(xiàng),填入11.0592。最后點(diǎn)擊“確定”。進(jìn)入仿真狀態(tài)很簡(jiǎn)單,直接點(diǎn)擊工具欄紅色的“”圖標(biāo)。11.5.2認(rèn)識(shí)各個(gè)仿真窗口1、源程序窗口KeilC51調(diào)試界面的中間是源程序窗口,參見圖11-44所示。黃色箭頭“”所指為當(dāng)前即將執(zhí)行但還沒有執(zhí)行的代碼。以深灰色標(biāo)記的程序行是可以執(zhí)行的代碼(當(dāng)然,在調(diào)試過程中未必一定要去執(zhí)行)。以淺灰色標(biāo)記的程序行不可作為代碼來執(zhí)行,它們是注釋、空行、標(biāo)號(hào)或ROM數(shù)據(jù)表。以綠色標(biāo)記的程序行表示曾經(jīng)執(zhí)行過的代碼。2、寄存器窗口KeilC51調(diào)試界面的左邊是寄存器窗口,參見圖11-45所示。8051的工作寄存器(R0~R7)和系統(tǒng)寄存器(a、b、sp、dptr、PC、psw)都列出來了。Value欄顯示的是寄存器的當(dāng)前數(shù)值。如果在調(diào)試過程中某個(gè)寄存器的值有變化,則會(huì)用藍(lán)色的背景標(biāo)記。單擊psw寄存器左邊的“+”,展開后還可以看到其每一位的情況。圖11-44KeilC51源程序窗口圖11-45KeilC51寄存器窗口3、匯編窗口單擊工具欄的“”圖標(biāo),源程序窗口會(huì)自動(dòng)切換成匯編窗口,參見圖11-46所示。在匯編窗口里,我們可以看到每條指令的存儲(chǔ)地址和編碼等信息。再次單擊“”,回到源程序窗口。4、存儲(chǔ)器窗口單擊工具欄的“”圖標(biāo),將顯示出存儲(chǔ)器窗口,參見圖11-47所示。8051單片機(jī)的存儲(chǔ)器分為多個(gè)不同的邏輯空間。如果要觀察代碼存儲(chǔ)器的內(nèi)容,就在地址欄Address:內(nèi)輸入C:地址,例如:C:0000H。同理,觀察內(nèi)部數(shù)據(jù)存儲(chǔ)器輸入I:地址,觀察外部數(shù)據(jù)存儲(chǔ)器輸入X:地址。拖動(dòng)存儲(chǔ)器窗口右邊的滾動(dòng)條可觀察其它存儲(chǔ)單元。存儲(chǔ)器窗口有“Memory#1~Memory#4”共4個(gè)觀察子窗口,可以用來分別觀察代碼存儲(chǔ)器、內(nèi)部數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器。存儲(chǔ)器的內(nèi)容是可以修改的。用鼠標(biāo)右擊打算要修改的存儲(chǔ)單元,選擇ModifyMemoryat…項(xiàng),彈出修改對(duì)話框,可以隨意修改存儲(chǔ)單元的內(nèi)容。圖11-46KeilC51匯編窗口圖11-47KeilC51存儲(chǔ)器窗5、變量觀察和堆棧窗口

單擊工具欄的“”圖標(biāo),將顯示變量觀察和堆棧窗口(Watch&CallStackWindow),參見圖11-48。在Locals標(biāo)簽頁,會(huì)自動(dòng)顯示局部變量的名稱和數(shù)值。在C語言程序的函數(shù)中,每一對(duì)花括號(hào)“{}”內(nèi)定義變量都是局部變量,能夠自動(dòng)顯示。在“Watch”標(biāo)簽頁內(nèi),先用鼠標(biāo)點(diǎn)擊一次“typeF2toedit”,再按功能鍵“F2”,輸入所要觀察的局部或全局變量的名稱,回車后就能顯示出當(dāng)前數(shù)值。在“CallStack”標(biāo)簽頁內(nèi),可以實(shí)時(shí)地觀察到堆棧的使用情況。圖11-48KeilC51變量觀察和堆棧窗口11.5.3程序的運(yùn)行控制KeilC51能夠?qū)崿F(xiàn)程序單步和全速運(yùn)行,具體由工具欄上的按鈕來實(shí)現(xiàn):

復(fù)位按鈕“”:?jiǎn)螕舸藞D標(biāo),能夠使程序復(fù)位,程序?qū)牡刂稢:0000H處執(zhí)行。

全速運(yùn)行“”:?jiǎn)螕舸藞D標(biāo),能夠使程序全速運(yùn)行。

停止運(yùn)行“”:該圖標(biāo)原來是灰色(不可操作),在進(jìn)入全速運(yùn)行狀態(tài)后會(huì)變成紅色。如果要停下來,則可以按此圖標(biāo)。

單步進(jìn)入“”:按此圖標(biāo)可以實(shí)現(xiàn)程序的單步執(zhí)行。在遇到函數(shù)調(diào)用時(shí),會(huì)跟蹤進(jìn)入函數(shù)體。

單步跳過“”:?jiǎn)尾綀?zhí)行,遇到函數(shù)時(shí)視作“1條指令”來執(zhí)行,不會(huì)跟蹤進(jìn)入。

單步跳出“”:在調(diào)試C語言程序時(shí),如果希望從某個(gè)函數(shù)中提前返回,則可以按此圖標(biāo)。

執(zhí)行到光標(biāo)“”:用鼠標(biāo)單擊某條可執(zhí)行的代碼(深灰色標(biāo)記的程序行)。然后按此圖標(biāo),則程序開始全速執(zhí)行,當(dāng)遇到光標(biāo)所在的行時(shí),會(huì)自動(dòng)停下來。如果單擊不可執(zhí)行的程序行(有淺灰色標(biāo)記),試圖讓程序執(zhí)行到該行,是不允許的,“”圖標(biāo)也會(huì)立即變成灰色,不讓您操作。

設(shè)置/清除斷點(diǎn)“”:KeilC51支持?jǐn)帱c(diǎn)設(shè)置功能。單擊需要設(shè)置斷點(diǎn)的行,再單擊此圖標(biāo),我們會(huì)看到該行被一個(gè)紅色的小方塊標(biāo)記。當(dāng)程序全速運(yùn)行時(shí)遇到斷點(diǎn),便會(huì)自動(dòng)停下來。KeilC51允許在同一個(gè)程序里設(shè)置多個(gè)斷點(diǎn)。清除某個(gè)斷點(diǎn)的方法是,將光標(biāo)停在該行上,再按一次“”圖標(biāo)。另外一種設(shè)置/清除斷點(diǎn)的快捷方法是,用鼠標(biāo)在目標(biāo)程序行的空白處雙擊,您不妨試一試。

清除所有斷點(diǎn)“”:如果設(shè)置了多個(gè)斷點(diǎn),想一并清除,則可以按此圖標(biāo)。11.5.4外圍設(shè)備訪問

KeilC51的一大特色是在仿真調(diào)試時(shí)支持對(duì)外圍設(shè)備的訪問。單擊菜單“Peripherals”,會(huì)彈出外圍設(shè)備菜單。在Peripherals菜單里列出了標(biāo)準(zhǔn)8051的外圍設(shè)備(相對(duì)于CPU內(nèi)核而言):中斷、I/O端口、串行口和定時(shí)器等。現(xiàn)在執(zhí)行菜單“Peripherals|I/O-Ports|Port1”,彈出P1端口的界面。在位0~7中,用√表示高電平,無√表示低電平。執(zhí)行菜單“Peripherals|Timer|Timer0”,彈出定時(shí)器T0的界面。參見圖11-49所示。彈出的外圍設(shè)備菜單是可以操作的,不妨試試。圖11-49外圍設(shè)備中的P1和T0對(duì)話框11.6Protues6.9與keilC51V7.50的聯(lián)調(diào)11

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論