版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE129TMS320LF2407DSP結(jié)構(gòu)、原理及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)重慶大學(xué)――美國(guó)德州儀器公司數(shù)字信號(hào)處理解決方案實(shí)驗(yàn)室2003年8月
前言 美國(guó)TI公司推出的DSP微控制器TMS320LF2407芯片具有低成本、低功耗、高性能的處理能力,是電機(jī)數(shù)字化控制的升級(jí)產(chǎn)品,體現(xiàn)了單芯片微控制器工業(yè)的新趨勢(shì)。隨著數(shù)字信號(hào)處理這一新學(xué)科的飛速發(fā)展及教學(xué)的需要,特編寫(xiě)了此實(shí)驗(yàn)指導(dǎo)書(shū)。 DSP理論和技術(shù)是目前電子技術(shù)和IT領(lǐng)域中的一門(mén)基本工程理論與核心技術(shù),它既有較為完整的理論體系,又以最快的速度形成自己的產(chǎn)業(yè)。實(shí)際上,數(shù)字信號(hào)處理是緊緊圍繞著理論、實(shí)現(xiàn)及應(yīng)用三方面迅速發(fā)展起來(lái)的,它以眾多的學(xué)科為理論基礎(chǔ),其成果又滲透到眾多學(xué)科,成為理論與實(shí)踐并重、在高新技術(shù)領(lǐng)域中占有重要地位的新興學(xué)科。DSP器件的出現(xiàn),為數(shù)字電路方法實(shí)現(xiàn)工程系統(tǒng)提供了堅(jiān)實(shí)的技術(shù)基礎(chǔ)。在數(shù)字信號(hào)處理的工程領(lǐng)域中,工程實(shí)際更關(guān)心的是DSP應(yīng)用技術(shù),所以,檢驗(yàn)數(shù)字信號(hào)處理理論和技術(shù)的基本工程標(biāo)準(zhǔn),就是能否在工程實(shí)際中應(yīng)用先進(jìn)的理論,將理論變成一種實(shí)際應(yīng)用技術(shù)。作為工程應(yīng)用技術(shù),其理論意義體現(xiàn)在應(yīng)用中。如果不能在工程實(shí)際中應(yīng)用,再好的理論也是沒(méi)有用的。因此,對(duì)于學(xué)生來(lái)說(shuō),DSP技術(shù)的學(xué)習(xí),必須以應(yīng)用為目標(biāo),必須在相應(yīng)的理論基礎(chǔ)之上,應(yīng)用DSP技術(shù)。為此,本實(shí)驗(yàn)指導(dǎo)書(shū)通過(guò)提供一些基本實(shí)驗(yàn)幫助學(xué)生迅速學(xué)會(huì)如何應(yīng)用DSP技術(shù)和方法,從而達(dá)到學(xué)習(xí)DSP應(yīng)用開(kāi)發(fā)技術(shù)的目的。 本書(shū)結(jié)合編者的開(kāi)發(fā)應(yīng)用試驗(yàn),選用TI公司的DSP微控制器TMS320LF2407芯片為實(shí)驗(yàn)對(duì)象,以CodeComposerStudio(CCS)-TMS320集成調(diào)試環(huán)境、XDS510硬件仿真器以及自制2047實(shí)驗(yàn)裝置作為該芯片的開(kāi)發(fā)硬件和軟件工作平臺(tái)和工具,為數(shù)字信號(hào)處理器的開(kāi)發(fā)創(chuàng)建了較好的軟、硬件的工作環(huán)境,在幫助學(xué)生熟悉DSP微控制器TMS320LF2407芯片應(yīng)用與開(kāi)發(fā)的基本技能和匯編程序調(diào)試技巧的基礎(chǔ)上,更為方便地應(yīng)用所學(xué)知識(shí)并在控制應(yīng)用系統(tǒng)的產(chǎn)品設(shè)計(jì)的開(kāi)發(fā)得到充分的展示,以求學(xué)生在未來(lái)能夠順利地投入到開(kāi)發(fā)產(chǎn)品的工作中,并能夠通過(guò)各種渠道,如公司產(chǎn)品技術(shù)手冊(cè)和網(wǎng)上查詢(xún),以獲得最新器件、最佳技術(shù)來(lái)為設(shè)計(jì)自己的產(chǎn)品系統(tǒng)服務(wù)。 盡管在編寫(xiě)本書(shū)時(shí)竭盡全力,但由于編者的水平和所掌握資料有限,不妥及錯(cuò)誤之處在所難免,懇切希望讀者給予批評(píng)指正。 編者 2003年8月于重慶大學(xué)
目錄前言實(shí)驗(yàn)須知概述實(shí)驗(yàn)一 TMS320LF2407DSP實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)及CC’C2000軟件應(yīng)用實(shí)驗(yàn)二 常用指令操作實(shí)驗(yàn)實(shí)驗(yàn)三 “追燈”式電路控制實(shí)驗(yàn)四 按鍵計(jì)數(shù)器實(shí)驗(yàn)五 鍵盤(pán)和LED發(fā)光二極管顯示電路實(shí)驗(yàn)六 模/數(shù)轉(zhuǎn)換模塊(ADC)的應(yīng)用實(shí)驗(yàn)七 串行外設(shè)接口模塊(SPI)的應(yīng)用實(shí)驗(yàn)八 串行通信接口模塊(SCI)的應(yīng)用實(shí)驗(yàn)九 TMS320LF2407與圖形液晶顯示模塊接口的應(yīng)用實(shí)驗(yàn)十 I2C串行日歷時(shí)鐘與TMS320LF2407的接口應(yīng)用附錄一DSP器件仿真開(kāi)發(fā)技術(shù)基礎(chǔ)附錄二TMS320LF2407DSP實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)附錄三DSP微控制器TMS320LF2407芯片簡(jiǎn)介附錄四XDS510仿真開(kāi)發(fā)系統(tǒng)的基本操作技術(shù)附錄五程序開(kāi)發(fā)平臺(tái)CodeComposer參考文獻(xiàn)實(shí)驗(yàn)須知一.實(shí)驗(yàn)前的準(zhǔn)備實(shí)驗(yàn)?zāi)芊耥樌M(jìn)行并收到預(yù)期的效果,學(xué)生事先預(yù)習(xí)準(zhǔn)備是非常重要的一環(huán)。因此,要求每一位學(xué)生在每次實(shí)驗(yàn)課前認(rèn)真閱讀實(shí)驗(yàn)指導(dǎo)書(shū)及相關(guān)教材和參考書(shū)中相關(guān)內(nèi)容,弄清實(shí)驗(yàn)原理、運(yùn)行方式、基本概念和操作指令,明確實(shí)驗(yàn)?zāi)康暮鸵饬x、實(shí)驗(yàn)的主要內(nèi)容和相關(guān)內(nèi)容及實(shí)驗(yàn)方法、步驟。二.實(shí)驗(yàn)課紀(jì)律及次序1.學(xué)生按實(shí)驗(yàn)課教師的安排進(jìn)入實(shí)驗(yàn)室后,應(yīng)遵守實(shí)驗(yàn)室紀(jì)律。2.實(shí)驗(yàn)課開(kāi)始應(yīng)認(rèn)真聽(tīng)取指導(dǎo)教師對(duì)實(shí)驗(yàn)的介紹。3.分組后應(yīng)事先檢查實(shí)驗(yàn)設(shè)備是否齊全和完好。如發(fā)現(xiàn)問(wèn)題,應(yīng)報(bào)告指導(dǎo)教師。4.根據(jù)實(shí)驗(yàn)指導(dǎo)書(shū)的實(shí)驗(yàn)內(nèi)容要求,要求學(xué)生自己設(shè)計(jì)方案,完成調(diào)試,實(shí)驗(yàn)課指導(dǎo)老師只作基本思想和注意事項(xiàng)介紹。三.實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)報(bào)告是實(shí)驗(yàn)工作的全面總結(jié)。用簡(jiǎn)單的文字形式將實(shí)驗(yàn)結(jié)果完整、真實(shí)地表達(dá)出來(lái)。報(bào)告要求文理通順,字跡端正、清楚,圖表清晰,結(jié)論正確,分析合理,討論中肯。實(shí)驗(yàn)報(bào)告應(yīng)包括以下內(nèi)容:1.摘要2.方案設(shè)計(jì)、原理敘述3.硬件介紹,包括框圖與原理圖4.軟件設(shè)計(jì),包括流程圖、源程序及程序注釋5.解決問(wèn)題的心得體會(huì)及對(duì)該實(shí)驗(yàn)的建設(shè)性意見(jiàn)
概述一.?dāng)?shù)字信號(hào)處理的理論數(shù)字信號(hào)處理在理論上所涉及的范圍極其廣泛。在數(shù)學(xué)領(lǐng)域中,微積分、概率統(tǒng)計(jì)、隨機(jī)過(guò)程、高等代數(shù)、數(shù)值分析、近世代數(shù)、復(fù)變函數(shù)等等都是它的基本工具,網(wǎng)絡(luò)理論、信號(hào)與系統(tǒng)等均是它的理論基礎(chǔ)。在學(xué)科發(fā)展上,數(shù)字信號(hào)處理又和最優(yōu)控制、通信理論、故障診斷等緊緊相連,近年來(lái)又成為人工智能、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)等新興學(xué)科的理論基礎(chǔ)之一,其算法的實(shí)現(xiàn)(無(wú)論是硬件和軟件)又和計(jì)算機(jī)學(xué)科及微電子技術(shù)密不可分。因此可以說(shuō),數(shù)字信號(hào)處理是把經(jīng)典的理論系統(tǒng)(如數(shù)學(xué)、系統(tǒng))作為自己的理論基礎(chǔ),同時(shí)又使自己成為一系列新興學(xué)科的理論基礎(chǔ)。信號(hào)處理的理論和算法是密不可分的。把一個(gè)好的信號(hào)處理理論用于工程實(shí)際,須要輔以相應(yīng)的算法以達(dá)到高速、高效及簡(jiǎn)單易行的目的。例如,F(xiàn)FT算法的提出使DFT理論得以推廣,Levinson算法的提出使Toeplitz矩陣的求解變得很容易,從而使參數(shù)模型譜估計(jì)技術(shù)得到廣泛應(yīng)用。數(shù)字信號(hào)處理中所涉及的信號(hào)包括確定性信號(hào)、平穩(wěn)隨機(jī)信號(hào)、時(shí)變信號(hào)、一維及多維信號(hào)、單通道及多通道信號(hào)。所涉及到的系統(tǒng)也包括一維系統(tǒng)、二維系統(tǒng)、多通道系統(tǒng),對(duì)每一類(lèi)特定的信號(hào)與系統(tǒng),所涉及理論的各個(gè)方面又有不同的內(nèi)容。伴隨著通信技術(shù)、電子技術(shù)及計(jì)算機(jī)的飛速發(fā)展,數(shù)字信號(hào)處理的理論也在不斷地豐富和完善,各種新算法、新理論正在不斷地被提出,可以預(yù)計(jì)不久的將來(lái),數(shù)字信號(hào)處理的理論將獲得更快地發(fā)展。二.?dāng)?shù)字信號(hào)處理的實(shí)現(xiàn)信號(hào)處理的實(shí)現(xiàn)可分為“軟件實(shí)現(xiàn)”與“硬件實(shí)現(xiàn)”兩種,但這種區(qū)分方法是不嚴(yán)密的,因?yàn)?,無(wú)論用什么語(yǔ)言編寫(xiě)的信號(hào)處理的程序都需要基本的硬件支持才能運(yùn)行。同樣,除個(gè)別特殊的DSP芯片外,任何硬件的信號(hào)處理裝置也必須配有相應(yīng)的軟件才能工作。因此,信號(hào)處理的硬件和軟件實(shí)際上是密不可分的。由于以PC機(jī)為代表的個(gè)人計(jì)算機(jī)已成為最通用的學(xué)習(xí)和科研工具,因此人們習(xí)慣把在通用機(jī)上執(zhí)行信號(hào)處理的程序視為“軟件實(shí)現(xiàn)”,而把使用一些通用或?qū)S肐C芯片構(gòu)成的能完成某種信號(hào)處理功能的方式稱(chēng)為“硬件實(shí)現(xiàn)”。因此,信號(hào)處理的硬件實(shí)現(xiàn)指的是:根據(jù)自己實(shí)際任務(wù)的需要,選用最合適的IC芯片,設(shè)計(jì)并完成一個(gè)“最佳”的信號(hào)處理系統(tǒng),再配上適合該芯片語(yǔ)言及任務(wù)要求的軟件,從而達(dá)到信號(hào)處理的目的。對(duì)于一個(gè)DSP系統(tǒng),其核心任務(wù)是實(shí)現(xiàn)對(duì)輸入信號(hào)的數(shù)字處理,即使用數(shù)字計(jì)算的方法實(shí)現(xiàn)一個(gè)信號(hào)處理系統(tǒng)。因此,數(shù)字信號(hào)處理系統(tǒng)的核心器件必然是具有計(jì)算功能的器件。在現(xiàn)代電子技術(shù)中,可以完成計(jì)算任務(wù)的器件有單片機(jī)和DSP器件。此外,近年來(lái)開(kāi)始出現(xiàn)了專(zhuān)用于數(shù)字信號(hào)處理的SOC器件。從數(shù)字信號(hào)處理的角度看,也可以把PC機(jī)看成是一個(gè)重要的處理器件。實(shí)際上,目前廣泛使用的多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)就是PC機(jī)作為數(shù)字信號(hào)處理應(yīng)用的最好例子。PC機(jī)系統(tǒng)PC機(jī)系統(tǒng)作為數(shù)字信號(hào)處理的最大優(yōu)勢(shì)就是系統(tǒng)資源豐富,其中包括硬件和軟件資源,可以使用各種編程技術(shù)和應(yīng)用軟件。例如使用PC機(jī)進(jìn)行語(yǔ)音處理就相當(dāng)方便,不須要開(kāi)發(fā)任何硬件系統(tǒng),只須利用PC機(jī)的多媒體設(shè)備、驅(qū)動(dòng)軟件,就可進(jìn)行系統(tǒng)開(kāi)發(fā)。所以,自IEEEDSPComm.于1979年推出第一個(gè)信號(hào)處理軟件包以來(lái),有相當(dāng)多的應(yīng)用系統(tǒng)都是以PC機(jī)為基本系統(tǒng)開(kāi)發(fā)完成的。使用PC機(jī)完成DPS系統(tǒng)的缺點(diǎn)是系統(tǒng)體積大,同時(shí)由于系統(tǒng)采用的是微處理器和PIC總線,再考慮操作系統(tǒng)引起的延遲,使系統(tǒng)信號(hào)處理速度受到了一定的限制。單片機(jī)目前單片機(jī)的發(fā)展速度很快,其功能也很強(qiáng)。從結(jié)構(gòu)上看,單片機(jī)的系統(tǒng)管理資源沒(méi)有微處理器豐富,但卻具有多種用戶(hù)電路。因此,如果系統(tǒng)不需要復(fù)雜的管理,就可以充分依靠單片機(jī)的硬件環(huán)境配以信號(hào)處理軟件可用于工程實(shí)際,如數(shù)字控制、醫(yī)療儀器等。總的來(lái)說(shuō),用單片機(jī)可以實(shí)現(xiàn)各種數(shù)字信號(hào)處理系統(tǒng),實(shí)際上,任何單片機(jī)組成的系統(tǒng),都可以看作是一個(gè)數(shù)字信號(hào)處理系統(tǒng)。但如果系統(tǒng)復(fù)雜、時(shí)實(shí)性要求強(qiáng),則單片機(jī)就顯得能力不足了。因此,在比較簡(jiǎn)單的系統(tǒng)中可以使用單片機(jī)作為數(shù)字信號(hào)處理器,而要進(jìn)行復(fù)雜計(jì)算時(shí)(例如實(shí)現(xiàn)DVD解碼),就必須使用DSP器件。DSP器件DSP芯片是一種具有特殊結(jié)構(gòu)的微處理器。為了達(dá)到快速進(jìn)行數(shù)字信號(hào)處理的目的,DSP芯片一般都具有程序和數(shù)據(jù)分開(kāi)的總線結(jié)構(gòu)、流水線操作功能、單周期完成乘法的硬件乘法器以及配有適合于數(shù)字信號(hào)處理的指令集等。因而,要實(shí)現(xiàn)復(fù)雜數(shù)學(xué)計(jì)算、或需要進(jìn)行高速數(shù)學(xué)處理的數(shù)字信號(hào)處理系統(tǒng)(例如語(yǔ)音識(shí)別、圖像實(shí)時(shí)處理、多媒體處理等),就只能使用DSP器件才能完成系統(tǒng)功能。例如目前迅速發(fā)展的軟件無(wú)線電技術(shù)、移動(dòng)通信技術(shù)和多媒體技術(shù),就是DSP器件數(shù)字信號(hào)處理能力的最好證明。目前市場(chǎng)上的DSP芯片以美國(guó)德州儀器公司(TI)的TMS320LF240X系列為主,該公司的DSP芯片形成一個(gè)功能、門(mén)類(lèi)較為齊全的大“家族”,已形成一個(gè)具有較大潛力的產(chǎn)業(yè)與市場(chǎng)。利用特殊用途的DSP芯片現(xiàn)在國(guó)際上已推出專(zhuān)門(mén)用于FFT、FIR濾波、卷積、相關(guān)等專(zhuān)用芯片,其軟件算法已在芯片內(nèi)部用硬件電路實(shí)現(xiàn),使用者給出輸入數(shù)據(jù),可在輸出端直接得到結(jié)果。DSP的VLSI實(shí)現(xiàn)使用PC機(jī)、單片機(jī)和DSP器件實(shí)現(xiàn)數(shù)字信號(hào)處理系統(tǒng)的一個(gè)共同問(wèn)題是沒(méi)有脫離串行計(jì)算的范圍,因此,在使用這些技術(shù)實(shí)現(xiàn)數(shù)字信號(hào)處理系統(tǒng)時(shí),都不可避免地遇到對(duì)復(fù)雜系統(tǒng)的處理速度限制。這主要就是因?yàn)橄到y(tǒng)的形成是通過(guò)軟件對(duì)硬件的控制來(lái)完成的,而串行系統(tǒng)的軟件執(zhí)行速度無(wú)法與并行系統(tǒng)相比擬。為了克服軟件執(zhí)行的串行計(jì)算缺陷,近年來(lái)出現(xiàn)了使用硬件實(shí)現(xiàn)數(shù)字信號(hào)處理的技術(shù)。所謂使用硬件電路實(shí)現(xiàn)數(shù)字信號(hào)處理系統(tǒng),就是通過(guò)數(shù)字邏輯電路直接形成數(shù)字信號(hào)處理系統(tǒng),而不是通過(guò)使用以CPU為核心的器件實(shí)現(xiàn)數(shù)字信號(hào)處理系統(tǒng)。這種技術(shù)就是目前正以極高速度發(fā)展的VLSI數(shù)字信號(hào)處理技術(shù)。DSP的VLIS實(shí)現(xiàn)賦予了數(shù)字信號(hào)處理技術(shù)更快的速度。不過(guò),由于DSP系統(tǒng)的復(fù)雜性,DSP的VLSI實(shí)現(xiàn)方案目前還無(wú)法實(shí)現(xiàn)與DSP器件相匹敵的系統(tǒng)。隨著計(jì)算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,SOC(片上系統(tǒng))已經(jīng)成為電子技術(shù)應(yīng)用的重要發(fā)展方向,這就帶動(dòng)了VLSI技術(shù)以實(shí)現(xiàn)DSP系統(tǒng)的迅速發(fā)展。三.?dāng)?shù)字信號(hào)處理的應(yīng)用 數(shù)字信號(hào)處理一經(jīng)問(wèn)世,便吸引了很多學(xué)科的研究者,并把它應(yīng)用于自己的研究領(lǐng)域??梢哉f(shuō),數(shù)字信號(hào)處理是應(yīng)用最快、成效最為顯著的新學(xué)科之一。在語(yǔ)音、雷達(dá)、聲納、地震、圖像、通信系統(tǒng)、系統(tǒng)控制、生物醫(yī)學(xué)工程、機(jī)械振動(dòng)、遙感遙測(cè)、地質(zhì)勘探、航空航天、電力系統(tǒng)、故障檢測(cè)、自動(dòng)化儀器等眾多領(lǐng)域都獲得了極其廣泛的應(yīng)用,它有效地推動(dòng)了眾多工程技術(shù)領(lǐng)域的技術(shù)改造和學(xué)科發(fā)展。毫不夸張地說(shuō),只要使用計(jì)算機(jī)(通用機(jī)、專(zhuān)用機(jī)、單片機(jī)、或一個(gè)簡(jiǎn)單的CPU)與數(shù)據(jù)打交道,就必然要應(yīng)用數(shù)字信號(hào)處理技術(shù)。因此,這一新興學(xué)科有著極其美好的發(fā)展前景。四.實(shí)驗(yàn)環(huán)境說(shuō)明本實(shí)驗(yàn)指導(dǎo)書(shū)中所需實(shí)驗(yàn)環(huán)境以及軟硬件工具包括:?實(shí)驗(yàn)必備的硬件配置?軟件使用工具1.實(shí)驗(yàn)必備的硬件配置1.1PC個(gè)人電腦 用于聯(lián)機(jī)調(diào)試程序,本指導(dǎo)書(shū)中所有實(shí)驗(yàn)均在PC機(jī)上完成。1.2直流穩(wěn)壓電源 為實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)提供所需電源。1.3示波器 用來(lái)觀測(cè)各種高低頻或數(shù)字信號(hào)波形。1.4XDS(硬件仿真器) XDS仿真器是開(kāi)發(fā)DSP器件的必備工具,硬件特點(diǎn):支持TMS320LF240X系列任意型號(hào)DSP器件;具備JTAG/MPSD兩種標(biāo)準(zhǔn)的仿真接口;3.3V/5V兼容仿真接口電平;不占用目標(biāo)系統(tǒng)任何資源,全空間仿真;支持多片DSP器件并行調(diào)試。軟件特點(diǎn):全面支持CodeComposerStudio;支持DSP/BIOS及RTDX;軟/硬斷點(diǎn),實(shí)時(shí)單步/斷點(diǎn);方便地裝載/卸載程序和數(shù)據(jù);方便地檢查/修改所有寄存器;實(shí)時(shí)監(jiān)控運(yùn)行狀態(tài)及多個(gè)變量;多種圖形方式顯示數(shù)據(jù)。1.5TMS320LF2407實(shí)驗(yàn)箱 本實(shí)驗(yàn)室根據(jù)DSP微控制器TMS320LF2407芯片的外部擴(kuò)展能力,設(shè)計(jì)制作了開(kāi)發(fā)功能強(qiáng)大的實(shí)驗(yàn)箱,為T(mén)MS320LF2407芯片的開(kāi)發(fā)應(yīng)用提供了方便。圖1為實(shí)驗(yàn)板元器件布局示意圖,該實(shí)驗(yàn)板充分利用了TMS320LF2407芯片的所有資源,提供了豐富的DSP外圍電路,硬件采用模塊化設(shè)計(jì),結(jié)構(gòu)簡(jiǎn)單,各模塊之間可靈活組合,操作方便、直觀,用途廣泛?,F(xiàn)將部件用途、外部接口功能、跳針設(shè)置、部分插座引腳說(shuō)明如下:圖1實(shí)驗(yàn)板元器件布局示意圖(1)K0~K4――鍵盤(pán):由五只按鍵(K0~K4)組成,最左邊為RESET-KEY(系統(tǒng)復(fù)位鍵),在實(shí)驗(yàn)時(shí)可方便地進(jìn)行手動(dòng)復(fù)位;為了使硬件設(shè)計(jì)簡(jiǎn)單化,將K1~K44個(gè)按鍵一端直接接“地”,另一端分別鏈接TMS320LF2407芯片的IOPF3~IOPF6引腳,應(yīng)用TMS320LF2407芯片基本的I/O口功能,查詢(xún)IOPF3~IOPF6引腳(作為輸入線)的值。當(dāng)有按鍵被按下時(shí),所鏈接的對(duì)應(yīng)引腳為低電平“0”輸入。(2)U10――74HC273(鎖存器):存儲(chǔ)TMS320LF2407芯片輸出端口信號(hào)并驅(qū)動(dòng)相應(yīng)引腳發(fā)光二極管。(3)SW-DIP8――8位DIP撥碼開(kāi)關(guān):撥動(dòng)開(kāi)關(guān)處于“NO”時(shí),可以任意接通74HC273上相應(yīng)管腳,以便驅(qū)動(dòng)相鏈接的8只LED發(fā)光二極管。(4)LED0~LED7――電平指示:由8只發(fā)光二極管和8只限流電阻組成,作為實(shí)驗(yàn)時(shí)的開(kāi)關(guān)量輸出顯示。若發(fā)光二極管亮,表示發(fā)光二極管接收的信號(hào)為高電平“1”;若發(fā)光二極管不亮,表示發(fā)光二極管接收的信號(hào)為低電平“0”。實(shí)驗(yàn)時(shí)可根據(jù)每只發(fā)光二極管的亮、滅情況來(lái)判斷輸出的開(kāi)關(guān)量是否與程序要求相符。(5)U5――TMS320LF2407DSP芯片:具有低成本、低功耗、高性能的處理能力,是電機(jī)數(shù)字化控制的升級(jí)產(chǎn)品。(詳細(xì)說(shuō)明參見(jiàn)附錄三)(6)RP1――排電阻:仿真器插頭上拉電阻等。(7)XL1――COH-050(晶體振蕩器):提供實(shí)驗(yàn)中各種芯片的時(shí)鐘信號(hào)。(8)R63――可調(diào)電阻:用于調(diào)節(jié)A/D轉(zhuǎn)換低電平參考輸入的大小。(9)AMP1、AMP2-MCP604(運(yùn)算放大器):用于放大、隔離TMS320LF2407與輸入的模擬信號(hào)。(10)R8――可調(diào)電阻:用于調(diào)節(jié)提升電壓的大小。(11)R49――可調(diào)電阻:用于調(diào)節(jié)A/D轉(zhuǎn)換高電平參考輸入的大小。(12)U4――CY7C1021(RAM):隨機(jī)存儲(chǔ)器RAM,保存數(shù)據(jù)。(13)P5――MG-12232液晶顯示器:該液晶顯示器分為E1、E2兩邊,每邊又分為第0~3頁(yè),每頁(yè)占8行、62列,每列對(duì)應(yīng)D0D7引腳送出一個(gè)8位數(shù)據(jù)。一般而言,顯示一個(gè)漢字的點(diǎn)陣為16行×16列;顯示一個(gè)字母或數(shù)字的點(diǎn)陣為16行×8列。(14)U1――MAX232(RS-232驅(qū)動(dòng)芯片、電平轉(zhuǎn)換芯片):提供DSP與PC機(jī)之間RS232異步通信接口的驅(qū)動(dòng)。RS-232電平與TTL電平轉(zhuǎn)換。(15)U2――MAX485(RS-485驅(qū)動(dòng)芯片):提供DSP與PC機(jī)之間RS-485異步通信接口的驅(qū)動(dòng)。RS-485信號(hào)與TTL電平轉(zhuǎn)換。(16)D4――電源指示:燈亮表示+5V工作電源接通。(17)U7――TPS77633(DSP電源芯片):由于TMS320LF2407為3.3V供電,采用該芯片將5V電壓降為3.3V電壓,供DSP芯片使用。(18)U12――MCP2551(CAN驅(qū)動(dòng)器芯片):驅(qū)動(dòng)CAN總線(19)U11――PCF8583(I2C總線接口/日歷時(shí)鐘)芯片:保存日歷時(shí)鐘,掉電可保存數(shù)據(jù)。(20)U3――24LC256(I2C總線接口/串行EEPROM)芯片:可以作為串行EEPROM使用。(21)U9――MAX5121(單通道SPI串行數(shù)模轉(zhuǎn)換)芯片:可輸出單極性和雙極性的電壓。表1外部接口功能表符號(hào)實(shí)際含義功能介紹P1CANCAN通訊接口P2RS-232RS-232串行通訊接口P3ACIN16路交流采樣輸入P4CDIN210路直流采樣輸入P5LCD液晶顯示接口P6RS-485RS-485通訊接口P7D/AOUT1路或2路模擬量輸出P8PWM_CAP6路脈寬調(diào)制(PWM)輸出,3路捕獲單元(CAP)輸入P9I/OOUT8路開(kāi)關(guān)量輸出P10POWER+5V直流電源輸入口J2JTAG仿真器接口SW1SW_DIP8DIP撥碼開(kāi)關(guān)圖2跳針引腳定義圖2跳針引腳定義 跳針引腳定義如圖2所示。表2跳針設(shè)置符號(hào)實(shí)際含義引腳定義默認(rèn)設(shè)置功能介紹123JP1PDSPSPDSDS連1和2程序區(qū)和數(shù)據(jù)區(qū)選擇JP2MCPVCCMP/MCGND連1和2JP3BOOTVCCBOOTGND連1和2JP5VCCP+5VVCCPGND連1和2JP6RXDRXD232RXDRXD485連1和2RS-232通訊JP7TXDTXD232TXDTXD485連1和2RS-232通訊JP8OSCSAGNDOSDOUT1連3和2D/A雙極性輸出JP9VREFLCSREFVREFLREFL連1和2A/D低電平參考選擇表3插座引腳詳細(xì)說(shuō)明功能介紹各引腳定義(未標(biāo)注的引腳表示未用)P1CAN通訊接口2CANL3GND7CANHP2RS-232串行通訊接口2T2OO3T2IO5GNDP36路交流采樣輸入接1ADIN02ADIN13ADIN25ADIN86ADIN97ADIN10其余引腳為AGNDP410路直流采樣輸入接口1ADCIN032ADCIN043ADCIN054ADCIN065ADCIN076ADCIN117ADCIN128ADCIN139ADCIN1410ADCIN15其余引腳為AGNDP6RS-485通訊接口1BB2GND3AAP72路模擬量輸出接口1DOUT12GND3DOUT2P86路PWM輸出和3路CAP輸入接口1PWM12PWM23PWM34PWM45PWM56PWM68CAP19CAP210CAP3其余引腳為GNDP98路開(kāi)關(guān)量輸出接口1IOOUT02IOOUT13IOOUT24IOOUT35IOOUT46IOOUT57IOOUT68IOOUT79、10GNDP10+5V直流電源輸入口1、2+5V3、4GND2.軟件使用工具2.1CodeComposerStudio CodeComposerStudio是TI公司為以TMS320LF240X系列DSP器件為目標(biāo)系統(tǒng)所配備的功能強(qiáng)大的軟件集成開(kāi)發(fā)環(huán)境。2.2調(diào)試環(huán)境代碼編譯器CC 調(diào)試環(huán)境代碼編譯器CC是一個(gè)獨(dú)立的軟件,但是可以集成在CodeComposerStudio環(huán)境中運(yùn)行,實(shí)現(xiàn)C代碼或匯編代碼的執(zhí)行和調(diào)試。2.3硬件仿真器(XDS)Driver軟件 由于Windows操作系統(tǒng)本身不支持硬件仿真器,故在使用硬件仿真器前必須安裝仿真器驅(qū)動(dòng)程序,并可通過(guò)CC的Setup選項(xiàng)對(duì)它進(jìn)行設(shè)置。五.調(diào)試環(huán)境DSP目標(biāo)系統(tǒng)軟件既可由高級(jí)語(yǔ)言編寫(xiě),也可由匯編語(yǔ)言編寫(xiě)。高級(jí)語(yǔ)言編寫(xiě)的軟件最好是由C語(yǔ)言編寫(xiě),這不僅是由于C語(yǔ)言自身的優(yōu)點(diǎn),而且是由于TI公司提供了最佳的ANSIC語(yǔ)言編譯軟件。該編譯軟件可將用C語(yǔ)言編寫(xiě)的信號(hào)處理軟件轉(zhuǎn)變成TMS320LF240X系列的匯編語(yǔ)言。無(wú)論是直接用匯編語(yǔ)言編寫(xiě)的信號(hào)處理軟件還是由C語(yǔ)言經(jīng)編譯后轉(zhuǎn)變成的匯編語(yǔ)言軟件,都要再經(jīng)過(guò)TMS320LF240X系列的編譯器轉(zhuǎn)變成機(jī)器碼,以生成目標(biāo)文件,將該目標(biāo)文件及各子程序經(jīng)鏈接后生成可在TMS320LF240X系列DSP芯片上運(yùn)行的可執(zhí)行文件,該執(zhí)行文件放置在DSP芯片的程序存儲(chǔ)器內(nèi)即可執(zhí)行。 在系統(tǒng)設(shè)計(jì)中,無(wú)論是軟件還是硬件都必須經(jīng)過(guò)調(diào)試階段。由于TMS320LF240X系列產(chǎn)品是一個(gè)單片的微處理器,如同其它通用單片機(jī)一樣,硬件與軟件的調(diào)試必須有相應(yīng)的開(kāi)發(fā)系統(tǒng)來(lái)支持。TI公司提供了不同用途和不同水平的開(kāi)發(fā)支持工具。以下分別介紹本實(shí)驗(yàn)室所提供的開(kāi)發(fā)工具。1.軟件仿真器(Simulator) TMS320LF240X系列的軟件仿真器(Simulator)是一個(gè)軟件程序,它運(yùn)行在一個(gè)用于調(diào)試的主計(jì)算機(jī)上,可模擬TMS320的整個(gè)指令系統(tǒng),從而達(dá)到程序檢驗(yàn)和開(kāi)發(fā)的目的。其特點(diǎn)是: ?在主機(jī)上非實(shí)時(shí)地執(zhí)行用戶(hù)編寫(xiě)的DSP程序; ?可檢查和改寫(xiě)寄存器的內(nèi)容; ?對(duì)數(shù)據(jù)與程序存儲(chǔ)區(qū)的內(nèi)容可顯示及讀寫(xiě); ?可跟蹤累加器(ACC)、程序計(jì)數(shù)器(PC)及輔助寄存器(AR0~AR7); ?可單步執(zhí)行,可在程序中設(shè)置斷點(diǎn),可設(shè)置及響應(yīng)用戶(hù)的中斷; ?可仿真外圍設(shè)備及緩沖區(qū)。2.調(diào)試環(huán)境代碼編譯器CC調(diào)試環(huán)境代碼編譯器CC是TI公司提供的一款C語(yǔ)言編譯器,它可將用標(biāo)準(zhǔn)C語(yǔ)言編寫(xiě)的源文件轉(zhuǎn)換成高效的TMS320LF240X系列的匯編語(yǔ)言源文件,再經(jīng)編譯鏈接后即可生成可執(zhí)行文件。實(shí)際上該編譯器使用了國(guó)際上最流行的編譯技術(shù),提供的是綜合的公用程序,使得一連串的編輯、前置處理、匯編/編譯、鏈接/定位、調(diào)試、裝入目標(biāo)系統(tǒng)的工作可以一氣呵成,加速程序代碼的產(chǎn)生,其基本特征:?有可視化Windows界面風(fēng)格和鼠標(biāo)操作模式;?具有C語(yǔ)言級(jí)和匯編語(yǔ)言級(jí)的調(diào)試功能;?有快速的軟件仿真;?有日志文件選項(xiàng);?有功能強(qiáng)大的宏語(yǔ)言;?可設(shè)置復(fù)雜的條件斷點(diǎn);?具有在任意時(shí)刻中斷的能力;?調(diào)試時(shí)可選擇實(shí)時(shí)模式;?可作內(nèi)存驗(yàn)證。3.系統(tǒng)仿真器(XDS) DSP學(xué)科本身有著相當(dāng)豐富的理論,因此,要把這些理論及與之相對(duì)應(yīng)的算法在高度復(fù)雜的DSP芯片上實(shí)時(shí)實(shí)現(xiàn)并將其用于一個(gè)特定的設(shè)計(jì)任務(wù)是有一定難度的。它一方面需要掌握DSP的理論及DSP芯片的性能,另一方面需要一套完整的軟硬件開(kāi)發(fā)工具,而這樣的開(kāi)發(fā)工具是比較昂貴的。為了加速DSP的普及和應(yīng)用,本實(shí)驗(yàn)室選用XDS510硬件仿真器作為學(xué)習(xí)DSP的硬件平臺(tái)。 系統(tǒng)仿真器(XDS)是一個(gè)全系列的仿真器,可用以在系統(tǒng)水平的高度(即非局部)對(duì)所設(shè)計(jì)的DSP系統(tǒng)作集成和調(diào)試。TI既給出了一般的在線仿真器(XDS/22)又給出了世界上第一個(gè)基于掃描的在系統(tǒng)(in-system)仿真器(XDS510)。由下面的介紹可以看出,XDS是一個(gè)較為全面的系統(tǒng)軟件及硬件開(kāi)發(fā)設(shè)備。其中XDS510的主要特點(diǎn)是: ?通過(guò)該仿真器,可全速地運(yùn)行所設(shè)計(jì)的目標(biāo)系統(tǒng),并可以檢查所希望知道的系統(tǒng)硬件與軟件特征及狀態(tài); ?系統(tǒng)可全速運(yùn)行,可斷點(diǎn)運(yùn)行,可單步運(yùn)行; ?既可用軟件設(shè)置斷點(diǎn)及程序跟蹤,也可用硬件設(shè)置斷點(diǎn)及程序跟蹤; ?具有高級(jí)語(yǔ)言的調(diào)試接口; ?可對(duì)系統(tǒng)上DSP的所有寄存器及存儲(chǔ)器作讀寫(xiě)操作; ?可測(cè)量系統(tǒng)的執(zhí)行時(shí)間; ?工作在PC機(jī)上,有著友好的操作界面。 通過(guò)一系列循序漸進(jìn)的實(shí)驗(yàn)安排,使同學(xué)們對(duì)DSP的一般開(kāi)發(fā)流程能夠有一個(gè)較全面的認(rèn)識(shí)了解,能夠了解TMS320LF2407DSP實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)的硬件結(jié)構(gòu),學(xué)習(xí)TMS320LF2407DSP的編程語(yǔ)言,掌握TMS320LF2407DSP的編程方法、調(diào)試方法及使用方法,最后能夠參照已有的樣本程序在對(duì)TMS320LF2407DSP有一定認(rèn)識(shí)的基礎(chǔ)上自己設(shè)計(jì)一個(gè)較完整的TMS320LF2407DSP實(shí)驗(yàn)。 一個(gè)DSP應(yīng)用系統(tǒng),它的硬件電路設(shè)計(jì)完成后,接著便是軟件編寫(xiě)及仿真調(diào)試。對(duì)于初學(xué)者入門(mén)學(xué)習(xí)應(yīng)以匯編語(yǔ)言為主。由于C語(yǔ)言是高級(jí)語(yǔ)言,使得編程者在編程時(shí)不必過(guò)份了解DSP芯片的內(nèi)部結(jié)構(gòu)和編程算法,僅僅使用常人的思維去書(shū)寫(xiě)程序,只要遵循C語(yǔ)言的編程規(guī)范,在短期內(nèi)就可以完成程序的編制,效率提高數(shù)倍,尤其是在浮點(diǎn)數(shù)運(yùn)算和數(shù)據(jù)處理方面更是令匯編語(yǔ)言望塵莫及。為此,除實(shí)驗(yàn)一、二外,其它實(shí)驗(yàn)均提供了C語(yǔ)言和匯編語(yǔ)言?xún)煞N參考程序,以便同學(xué)們選擇使用;也可嘗試C和匯編語(yǔ)言混合編程的方法。實(shí)驗(yàn)一TMS320LF2407DSP實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)及CC軟件應(yīng)用一.實(shí)驗(yàn)說(shuō)明 在本書(shū)的程序設(shè)計(jì)實(shí)例中,是以DSP微控制器TMS320LF24x芯片作為設(shè)計(jì)對(duì)象,以TMS320LF2407芯片構(gòu)成的實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)作為目標(biāo)系統(tǒng);用XDS510硬件仿真器通過(guò)JTAG接口與開(kāi)發(fā)調(diào)試主機(jī)聯(lián)接,來(lái)建立程序的聯(lián)機(jī)調(diào)試環(huán)境。 Windows版的CodeComposer(簡(jiǎn)稱(chēng)CC)是一個(gè)功能強(qiáng)大的高級(jí)語(yǔ)言交互式調(diào)試器,它具有較多的菜單命令,對(duì)于經(jīng)常用到的調(diào)試操作提供了相應(yīng)的工具按鈕。CC的功能非常豐富,不可能對(duì)其所有功能全面介紹,本著從簡(jiǎn)單實(shí)用角度出發(fā),本次實(shí)驗(yàn)將以一個(gè)程序例子,說(shuō)明如何使用CC’C2000來(lái)開(kāi)發(fā)簡(jiǎn)單的匯編程序、編譯并使用仿真器運(yùn)行這一程序。同學(xué)們也可以根據(jù)自己的應(yīng)用問(wèn)題,嘗試創(chuàng)建新的項(xiàng)目、新的工作組和新的源文件。二.實(shí)驗(yàn)?zāi)康恼J(rèn)識(shí)TMS320LF2407DSP實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)的硬件結(jié)構(gòu)了解TMS320LF2407DSP應(yīng)用程序的開(kāi)發(fā)調(diào)試流程學(xué)習(xí)使用CC’C2000調(diào)試TMS320LF2407DSP程序三.實(shí)驗(yàn)內(nèi)容1.預(yù)習(xí)附錄四、五中的相關(guān)內(nèi)容2.CC’C2000使用操作練習(xí)四.實(shí)驗(yàn)操作練習(xí) 下面將引導(dǎo)同學(xué)們利用CC’C2000建立一個(gè)簡(jiǎn)單的項(xiàng)目,并且進(jìn)行一些基本的調(diào)試,以幫助同學(xué)們盡快地熟悉集成開(kāi)發(fā)環(huán)境CC’C2000典型的使用方法。 1.實(shí)驗(yàn)設(shè)備鏈接 在聯(lián)機(jī)調(diào)試時(shí),需要將調(diào)試主機(jī)PC、XDP硬件仿真器及待調(diào)試的目標(biāo)系統(tǒng)按如下方法進(jìn)行鏈接: ??用JTAG排線電纜兩端鏈接的仿真頭分別插入實(shí)驗(yàn)板上的J2插座引腳和仿真器; ?用并口電纜將PC主機(jī)并行口與仿真器相連; ?將穩(wěn)壓電源的輸出調(diào)為+5V分別引入P10插座引腳的1、2和3、4中; ?將+5VDC/1.5A電源原邊接220V交流電壓,副邊鏈接仿真器外接電源插孔(針對(duì)XDSPP仿真器)。 2.集成調(diào)試軟件安裝(已安裝好,不需要重做) 在Windows2000操作系統(tǒng)之下,安裝CC4.10版本的CC的全過(guò)程參見(jiàn)附錄五。3.仿真器軟件Driver安裝(參見(jiàn)附錄四)仿真器運(yùn)行環(huán)境設(shè)置對(duì)計(jì)算機(jī)運(yùn)行環(huán)境作某些設(shè)置的目的是讓CC按照用戶(hù)的各項(xiàng)具體要求進(jìn)行DSP的程序調(diào)試。具體操作方法參見(jiàn)附錄四。CC’C2000的簡(jiǎn)單應(yīng)用CC’C2000是CC的核心部分,用于創(chuàng)建和管理項(xiàng)目,為開(kāi)發(fā)人員提供自動(dòng)化程序高、操作簡(jiǎn)便的符號(hào)化調(diào)試工作平臺(tái)。在CC’C2000中的用戶(hù)文件是組織成項(xiàng)目的。因此,使用CC’C2000的第一件事是創(chuàng)建新的項(xiàng)目,以說(shuō)明用戶(hù)準(zhǔn)備運(yùn)行軟件的目標(biāo)系統(tǒng)CPU,并創(chuàng)建項(xiàng)目所包含的文件列表。(1)創(chuàng)建簡(jiǎn)單的項(xiàng)目(在本實(shí)驗(yàn)指導(dǎo)書(shū)中,若不聲明,點(diǎn)擊或雙擊均指鼠標(biāo)左鍵)利用CC’C2000創(chuàng)建用戶(hù)程序時(shí)須要?jiǎng)?chuàng)建一個(gè)項(xiàng)目“Project”,創(chuàng)建項(xiàng)目后可以把源代碼文件和必要的庫(kù)文件加入進(jìn)項(xiàng)目中。具體步驟如下:?建立一個(gè)保存用戶(hù)文件的文件夾,例如“C:\tic2xx\myprojects\work”。?把“C:\tic2xx\c2000\tutorial\realtime”的文件復(fù)制到新建立的文件夾中。?在Windows桌面上雙擊“CC’C2000”圖標(biāo),或在“開(kāi)始”菜單中選擇“CC’C2000”,顯示出如圖1.1所示的CC’C2000操作界面。圖1.1 CC’C2000操作界面?在圖1.1所示的界面中,選擇菜單命令“Project>New”(項(xiàng)目>新建)時(shí),出現(xiàn)一個(gè)如圖1.2所示的“SaveNewProjectAs”(另存為項(xiàng)目)對(duì)話框,選擇要保存項(xiàng)目文件的文件夾(即前面創(chuàng)建的工作目錄work),在“文件名”條形框中輸入一個(gè)自己所認(rèn)定的文件名,本試驗(yàn)教程中取用“sy1”作為我們新創(chuàng)建的項(xiàng)目文件名輸入并保存。這時(shí)CC’C2000會(huì)自動(dòng)創(chuàng)建一個(gè)名為“sy1.mak”的項(xiàng)目文件。圖1.2新項(xiàng)目保存對(duì)話框(2)新建、編輯一個(gè)簡(jiǎn)單的源文件?在圖1.1所示的界面中,選擇菜單命令“File>New>SourceFile”(文件>新建>源文件)時(shí),工作區(qū)內(nèi)會(huì)出現(xiàn)一個(gè)如圖1.3所示的文本編輯窗口,作為創(chuàng)建源文件的編輯窗口,它的標(biāo)題欄中顯示“Untitled1”,表示源文件尚未命名。圖1.3 文本編輯窗口?在圖1.3中,若欲為即將輸入的源文件預(yù)先命名,那就選用菜單命令“File>SaveAs”(文件>另存為),隨即會(huì)出現(xiàn)一個(gè)如圖1.4所示的文件“保存為”對(duì)話框。 圖1.4保存為對(duì)話框在圖1.4中所示的“文件名”條形框內(nèi)輸入文件名“sy1”,并且它的存放目錄與項(xiàng)目文件存放目錄確保一致。然后點(diǎn)擊“保存”按鈕,對(duì)話框消失,文本編輯窗口的標(biāo)題欄中換成了剛定義的文件名“sy1”(參見(jiàn)圖1.5所示的標(biāo)題欄)并將以擴(kuò)展名“.asm”保存。然后在文本編輯窗口輸入下面一段程序,作為我們編輯、匯編和調(diào)試的實(shí)例程序。CC’C2000編輯器不支持漢字編輯工作,分號(hào)后面的注釋部分可以用英語(yǔ)或者漢語(yǔ)拼音,也可以使用其他的編輯軟件。由于匯編語(yǔ)言源文件[.asm]屬于ASII碼的純文本文件格式的文件,當(dāng)然也可以選用Windwos附件中的記事本或?qū)懽职宓绕渌梢跃庉嫾兾谋疚募能浖鳛樵次募庉嬈?,這樣輸入漢語(yǔ)注釋就不存在任何障礙了。不過(guò),保存時(shí)文件擴(kuò)展名要用“.asm”,并且必須保存為純文本格式,以便被CC’C2000調(diào)用。CC’C2000編輯器具有較強(qiáng)的編輯功能:全屏幕編輯,可就地修改,所見(jiàn)即所得;跨文件整塊剪貼技術(shù);彩色辨識(shí)正文等。它的鍵盤(pán)命令配合常規(guī)的鼠標(biāo)操作可實(shí)現(xiàn)C語(yǔ)言和匯編語(yǔ)言源文件的編輯。例1.1 本程序?qū)⒀h(huán)點(diǎn)亮8個(gè)發(fā)光二極管,通過(guò)用軟件延時(shí)的方法來(lái)調(diào)整發(fā)光二極管的延時(shí)間隔。當(dāng)然,在掌握了本程序后,完全可以充分發(fā)揮想象,改變一下程序內(nèi)容和燈的接法(比如用光耦驅(qū)動(dòng)繼電器來(lái)控制霓虹燈),做出各種變化非凡的大型燈光廣告牌。 程序清單:;該程序?qū)崿F(xiàn)實(shí)驗(yàn)板上的LED燈的循環(huán)顯示 .include "vector.h" .include "F2407REGS.H" .def _c_int0,LEDLED .set 0200h .bss DEYH,1 .textSYSINIT: ;系統(tǒng)初始化子程序 SETC INTM ;關(guān)閉總中斷 CLRC SXM CLRC OVM CLRC CNF ;B0isconfiguredasdataspace LDP #SCSR1>>7 ;取得SCSR1所在的頁(yè) SPLK #81FEH,SCSR1 ;CLKIN=6M,CLKOUT=24M SPLK #0E8H,WDCR ;DisableWDT LDP #IMR>>7 SPLK #0h,IMR ;disableallinterrupt SPLK #0FFFFh,IFR ;clearalltheinterruptflagsoffirstlevel LDP #MCRC>>7 LACL MCRC AND #0FBFFh ;IOPF2口為通用的IO口 SACL MCRC LACL PFDATDIR OR #0400h ;使PF2口為輸出口 AND #0FFFBH SACL PFDATDIR ;不使能74HC273芯片 LACL MCRA AND #0FF00H SACL MCRA ;IOPB[0-7]為一般I/O口功能 LACL PBDATDIR OR #0FF00H AND #0FF00H ;IOPB[0-7]為輸出功能,并馬上清0 SACL PBDATDIR RET ;*********************************************************************CLOCK: ;產(chǎn)生74HC273驅(qū)動(dòng)脈沖的子程序 LDP #PFDATDIR>>7 LACL PFDATDIR OR #0004H ;PF2口輸出高電平 SACL PFDATDIR RPT#10H NOP ;延時(shí) LACL PFDATDIR AND#0FFFBH ;PF2口輸出低電平 SACL PFDATDIR RET;********************************************************************DELAY: ;延時(shí)子程序 LDP #DEYH>>7 SPLK 0FFFFH,DEYH LACLDEYH CLRCCCON: SUB #1 BCNDEXIT,NC NOP B CONEXIT RET_c_int0 ;主程序的入口 CALL SYSINIT ;系統(tǒng)初始化LOOP1: LDP #LED>>7 SPLK #0001h,LED ;給LED賦初值為1LOOP: LDP #PBDATDIR>>7 LACLPBDATDIR;把PBDATDIR的值賦給ACC寄存器 AND#0FF00H ;把數(shù)據(jù)位都清0 LDP #LED>>7 LACL#LED LDP #PBDATDIR>>7 SACLPBDATDIR ;把需要顯示的值賦給相應(yīng)的寄存器 CALLCLOCK ;產(chǎn)生瑣存脈沖 LDP #LED>>7 LACLLED CLRCC ;清進(jìn)位位,以免對(duì)移位造成影響 ROL ;左移一位 SACLLED CALL DELAY ;延時(shí) LDP #LED>>7 BITLED,6 ;復(fù)制LED寄存器的第九位到TC位? BCND LOOP1,TC ;如果LED的移位次數(shù)已到,則對(duì)LED重新賦值 BLOOP ;循環(huán) NOPPHANTOM RETGISR1 RETGISR2 RETGISR3 RETGISR4 RETGISR5 RETGISR6 RET .end源程序輸完之后(如圖1.5所示),應(yīng)該用菜單命令“File>Save”(文件>保存)及時(shí)保存到C:\tic2xx\myprojects\work\sy1asm路徑及文件名下。對(duì)于較長(zhǎng)的源程序,如果一次不能輸入完畢而需要中途退出,也應(yīng)該及時(shí)保存,以便在下一次能繼續(xù)前次的工作。在長(zhǎng)程序文件的輸入過(guò)程中,不時(shí)地進(jìn)行存儲(chǔ)是一種好習(xí)慣,也可避免因電源意外掉電而造成前功盡棄。圖1.5源程序編輯窗口(3)將文件添加到該項(xiàng)目中由于項(xiàng)目文件是項(xiàng)目的管理文件,故項(xiàng)目管理的信息都需存放在“sy1.mak”的項(xiàng)目文件中,在對(duì)用戶(hù)系統(tǒng)進(jìn)行開(kāi)發(fā)時(shí)需要將所需文件包含在項(xiàng)目文件中,即使用工程管理方法:一次性將工程的全部源文件、頭文件、鏈接命令文件、用戶(hù)庫(kù)文件送入工程管理器,統(tǒng)一管理“匯編/編譯”和“鏈接/定位”,無(wú)須人工干預(yù)。在圖1.1所示的界面中,先選擇菜單命令“Project>Open”(項(xiàng)目>打開(kāi)),再根據(jù)給出的“ProjectOpen”對(duì)話框,選擇已存項(xiàng)目文件所在的文件夾并打開(kāi)文件(如圖1.6所示),然后再選擇菜單命令“Project>AddFilesToProject”(項(xiàng)目>添加文件到項(xiàng)目),出現(xiàn)一個(gè)如圖1.7所示的“AddFilestoProject”對(duì)話框,然后將本項(xiàng)目要用到的.asm匯編源文件、.cmd鏈接命令文件和一個(gè)“rts2xx.lib”的庫(kù)文件按類(lèi)一一添加到該項(xiàng)目中,在默認(rèn)情況下,該庫(kù)文件可以在“C:\tic2xx\c2000\cgtools\.lib”目錄中找到。對(duì)于.h頭文件和在程序中用“include”引用的文件,只要在同一個(gè)目錄下,工程管理器會(huì)自動(dòng)將其加入。工程管理器不允許用戶(hù)添入其它類(lèi)型的文件。圖1.6 項(xiàng)目文件選擇對(duì)話框圖1.7 添加文件對(duì)話框(4)察看項(xiàng)目文件 一旦編譯了文件,Project窗口將用樹(shù)型結(jié)構(gòu)顯示項(xiàng)目包含的組和文件的關(guān)系,如圖1.8所示。組用于把相關(guān)的源文件收集在一起,每一個(gè)組可以包含在一個(gè)或多個(gè)目標(biāo)中,而且源文件可以出現(xiàn)在一個(gè)或多個(gè)組內(nèi)。通過(guò)該項(xiàng)目管理窗口,可以十分方便地察看項(xiàng)目所包含的文件是否加入到相應(yīng)文件夾中。當(dāng)啟動(dòng)CC’C2000后,會(huì)自動(dòng)顯示出項(xiàng)目管理窗口。如果沒(méi)有顯示該窗口,可以選擇菜單命令“View>Project”(觀察>項(xiàng)目)使之激活。用鼠標(biāo)右鍵點(diǎn)擊“Project”再選擇“Openproject”,操作方法如圖1.9所示,根據(jù)給出(如圖1.6)的對(duì)話框,用前面相同的方法選擇打開(kāi)項(xiàng)目文件,然后可選擇點(diǎn)擊靠近源文件的“+”符號(hào)來(lái)顯示包含文件(具體操作參見(jiàn)附錄五)。圖1.8項(xiàng)目管理窗口圖1.9文件操作方法(5)編譯鏈接啟動(dòng)CC’C2000匯編編譯器對(duì)匯編語(yǔ)言源程序進(jìn)行編譯的方法有多種,在此使用的方法是:在圖1.1所示的界面中,先選擇菜單命令“Project>Open”(項(xiàng)目>打開(kāi)),以便選定需要編譯的項(xiàng)目文件,然后再選擇菜單命令“Project>RebuildAll”(項(xiàng)目>匯編編譯和鏈接所有文件),CC’C2000將自動(dòng)調(diào)用匯編編譯器和鏈接器將項(xiàng)目文件“sy1.mak”管理下的源文件“sy1.asm”編譯生成目標(biāo)文件“sy1.obj”,這時(shí)會(huì)出現(xiàn)一個(gè)如圖1.10所示的“Build”(創(chuàng)建)窗口,其中倒數(shù)第二行用藍(lán)色字告訴我們:“BuildComplete”(創(chuàng)建完成),如果有錯(cuò),最后一行提示錯(cuò)誤的個(gè)數(shù)和數(shù)型。其實(shí),這是筆者事先有意安排的一處錯(cuò)誤,以便同學(xué)們了解CC’C2000匯編編譯器是如何幫助我們查找錯(cuò)誤的(即錯(cuò)誤和警告自動(dòng)定位)。圖1.10創(chuàng)建結(jié)果窗口(不成功)根據(jù)系統(tǒng)提示該錯(cuò)誤的類(lèi)型和位置回到原程序中查看和修改,然后采用上述方法重新進(jìn)行編譯。如果編譯正確,將會(huì)鏈接生成一個(gè)文件名為“sy1.out”的可執(zhí)行文件。再次出現(xiàn)如圖1.11所示的“Build”(創(chuàng)建)窗口,最后一行告訴我們:“沒(méi)有錯(cuò)誤?!敝链耍覀兙徒ê昧艘粋€(gè)可以在CC’C2000環(huán)境下用XDS510硬件仿真器進(jìn)行調(diào)試的、完整的項(xiàng)目。圖1.11創(chuàng)建結(jié)果窗口(成功)對(duì)于建好的項(xiàng)目,一般情況下,在退出CC’C2000調(diào)試環(huán)境時(shí),系統(tǒng)會(huì)自動(dòng)將“項(xiàng)目文件”保存在“.wks”文件中。而對(duì)于作了修改的源程序則需要重新保存,選用菜單命令“File>Save”即可保存到“sy1.asm”文件中。在編譯鏈接成功之后,需要將生成的“sy1.out”可執(zhí)行文件裝載到實(shí)驗(yàn)板上之后才能對(duì)程序進(jìn)行調(diào)試仿真。因此,在圖1.1所示的界面中,選擇菜單命令“File>LoadProgram”(文件>裝載程序),出現(xiàn)一個(gè)如圖1.12所示的“LoadProgram”對(duì)話框,然后將可執(zhí)行的“sy1.out”文件下載到實(shí)驗(yàn)板上。文件下載之后,就可對(duì)文件進(jìn)行在線調(diào)試。圖1.12程序裝載對(duì)話框注意:在本次實(shí)驗(yàn)中所介紹的這種單文件項(xiàng)目,要求項(xiàng)目文件名、目標(biāo)文件名和源文件名必須保持一致。(6)調(diào)試程序程序調(diào)試就是檢驗(yàn)我們?cè)O(shè)計(jì)的程序,是否能夠正常運(yùn)行,是否產(chǎn)生正確的結(jié)果,是否存在設(shè)計(jì)漏洞,算法(可以通俗地理解為,用計(jì)算機(jī)的思想解決實(shí)際問(wèn)題的方法)設(shè)計(jì)是否合理,是否能夠準(zhǔn)確地控制各種硬件資源,是否能夠?qū)崿F(xiàn)預(yù)期的功能,等等。CC’C2000的調(diào)試環(huán)境功能很強(qiáng),可以在C語(yǔ)言級(jí)調(diào)試,也可以在匯編語(yǔ)言級(jí)調(diào)試,并提供了多種運(yùn)行程序的方式或調(diào)試手段,比較常用的有以下幾種:連續(xù)運(yùn)行、設(shè)置觀察窗、單步運(yùn)行、動(dòng)畫(huà)運(yùn)行和設(shè)置斷點(diǎn)運(yùn)行等。下面將通過(guò)前面給定的例子更深入地介紹各種調(diào)試手段的使用方法:?連續(xù)運(yùn)行方式:在圖1.1所示的界面上,將源程序觀察窗作為當(dāng)前窗口。首先應(yīng)選擇菜單命令“Debug>ResetDSP”(調(diào)試>DSP復(fù)位),或者點(diǎn)擊工具欄上的按鈕,使DSP復(fù)位,然后選擇菜單命令“Debug>Run”(調(diào)試>程序運(yùn)行),或者按動(dòng)F5鍵,或者點(diǎn)擊工具欄上的圖標(biāo)按鈕,均可令程序進(jìn)入實(shí)時(shí)運(yùn)行狀態(tài)。當(dāng)輸入上述命令時(shí),我們似乎看不出程序有任何反應(yīng),其實(shí)程序正在連續(xù)運(yùn)行,這可以通過(guò)觀察工具欄上的圖標(biāo)按鈕是否改變顏色來(lái)判斷,如果變?yōu)闇\色則表明程序正在運(yùn)行。由于這段程序結(jié)構(gòu)是無(wú)限循環(huán)程序結(jié)構(gòu),欲想終止程序運(yùn)行可點(diǎn)擊工具欄上的圖標(biāo)按鈕,或者選擇菜單命令“Debug>Halt”(調(diào)試>停止),或者按動(dòng)一下鍵盤(pán)上“Shitf+F5”組合鍵。隨即,工具欄的顏色復(fù)原,表明程序停止運(yùn)行,并隨機(jī)地停留在程序的某一行上。在程序連續(xù)運(yùn)行過(guò)程中,狀態(tài)欄中的字段得不到及時(shí)更新,只有當(dāng)程序停下來(lái)之后,狀態(tài)欄信息才更新一次??梢?jiàn),采用這種調(diào)試手段,不便于及時(shí)了解程序的運(yùn)行狀態(tài),也不便于控制程序的運(yùn)行過(guò)程。對(duì)于調(diào)試本實(shí)驗(yàn)設(shè)計(jì)的這段循環(huán)結(jié)構(gòu)的程序,連續(xù)運(yùn)行方式就不是一種很有效的手段。因此,需要進(jìn)一步探討和選擇其它的調(diào)試手段。?設(shè)置觀察窗口:根據(jù)被調(diào)試程序的運(yùn)行需要,可以在CC’C2000桌面上同時(shí)選擇打開(kāi)最多6個(gè)不重疊觀察窗口。通過(guò)觀察各種存儲(chǔ)器和寄存器的內(nèi)容,使開(kāi)發(fā)者更直觀地分析程序的邏輯功能和運(yùn)行狀況,進(jìn)而達(dá)到調(diào)試程序的目的。實(shí)驗(yàn)教程中調(diào)試的這個(gè)例子比較簡(jiǎn)單,其中用到的寄存器除了ACC、ST0、ST1和PC指針等之外,當(dāng)需要觀察一個(gè)變量時(shí),在觀察變量窗口中輸入變量名稱(chēng),在程序運(yùn)行過(guò)程中該變量會(huì)被不停地改寫(xiě)。我們可以根據(jù)這種情況來(lái)設(shè)置觀察窗。除了桌面上已有的一個(gè)源程序窗口之外,可以再增設(shè):反匯編觀察窗口、存儲(chǔ)器窗口、CPU寄存器窗口、觀察窗口。反匯編觀察窗口:用來(lái)顯示匯編程序和程序存儲(chǔ)器的內(nèi)容。在這些程序中,用一反顯高亮條來(lái)表示當(dāng)前指針,可用鼠標(biāo)點(diǎn)擊匯編語(yǔ)句的方法來(lái)設(shè)置斷點(diǎn),再點(diǎn)擊一次即可取消斷點(diǎn)。詳細(xì)用法參見(jiàn)附錄五。存儲(chǔ)器窗口:可直接觀察存儲(chǔ)器的內(nèi)容。詳細(xì)用法參見(jiàn)附錄五。CPU寄存器窗口:其中包含“CPURegister”和“StatusRegister”兩個(gè)選項(xiàng),點(diǎn)擊相應(yīng)的選項(xiàng)可以觀察調(diào)試過(guò)程中CPU寄存器和各個(gè)狀態(tài)位的變化情況。詳細(xì)用法參見(jiàn)附錄五。觀察窗口:觀察調(diào)試過(guò)程中的變量、C表達(dá)式、地址和寄存器的值。在圖1.1所示的界面上,將源程序觀察窗作為當(dāng)前窗口,選擇菜單命令“View>W(wǎng)atchWindow”(視圖>觀察窗口),將有一個(gè)空白窗口出現(xiàn)在CC’C2000窗口的下部,如圖1.13所示。該窗口用來(lái)顯示所選擇的變量、寄存器和存儲(chǔ)器的內(nèi)容。圖1.13CC’C2000窗口下的觀察窗口為了監(jiān)視跟蹤變量,用戶(hù)可以將變量設(shè)置為查看點(diǎn)。通常用如下的方法在觀察窗口中加入一個(gè)新的變量:在空白觀察窗口中單擊鼠標(biāo)右鍵,彈出語(yǔ)境菜單,選擇其中的“InsertNewExpression”,如圖1.13所示。進(jìn)入所選擇的圖1.14“WatchAddExpression”(添加變量對(duì)話框),在文本欄中鍵入打算觀察的變量名,然后點(diǎn)擊“OK”按鈕,即可在觀察窗口中增加一個(gè)待觀察的變量,如果有必要,用同樣的方法還可以在觀察窗口中添加多個(gè)變量。在該觀察窗中可以查看到以藍(lán)色顯示的變量的物理地址(十進(jìn)制)、符號(hào)名和數(shù)值。圖1.14添加變量對(duì)話框通常用如下的方法在觀察窗口中刪除一個(gè)表達(dá)式:用鼠標(biāo)點(diǎn)擊需要?jiǎng)h除的表達(dá)式,單擊鼠標(biāo)右鍵,在彈出的語(yǔ)境菜單中選擇“RemoveCurrentExpression”即可。如果添加變量時(shí)在“添加變量對(duì)話框”的文本欄中只輸入變量名,則在觀察窗口中只顯示出該變量的地址;如果需要顯示該變量的值,則需要在變量名前加“*”號(hào)。變量的地址、值其顯示默認(rèn)格式為十進(jìn)制,如果想改變顯示格式,則在輸入變量時(shí)在其后緊跟一個(gè)逗號(hào)和一個(gè)格式指示字母。常用的格式指示字母和其代表格式的對(duì)應(yīng)關(guān)系如表1.1所列。 表1.1常用格式指示字母表字母符號(hào)代表的格式D十進(jìn)制E指數(shù)浮點(diǎn)F十進(jìn)制浮點(diǎn)X十六進(jìn)制O八進(jìn)制U無(wú)符號(hào)整型CASCII字符(字節(jié))?單步運(yùn)行方式:?jiǎn)尾竭\(yùn)行是一種控制程序運(yùn)行過(guò)程的有效方法,而且能夠及時(shí)觀察到程序的運(yùn)行狀態(tài)。每輸入一次控制命令,程序就會(huì)被執(zhí)行一條指令,并且立刻更新CC’C2000桌面上各個(gè)觀察窗中的顯示信息以及狀態(tài)欄中的顯示信息,也就是及時(shí)顯示該指令的執(zhí)行結(jié)果。具體操作方法如下:在圖1.1所示的界面上,將源程序觀察窗作為當(dāng)前窗口,用前面所述方法使DSP復(fù)位。然后選擇菜單命令Debug>StepInto(調(diào)試>單步運(yùn)行方式),或者按一下鍵盤(pán)上的F8鍵,或者點(diǎn)擊工具欄中的圖標(biāo)按鈕,均可令程序進(jìn)入單步運(yùn)行狀態(tài)。一次次地點(diǎn)擊按鈕的同時(shí),可以看到觀察窗中出現(xiàn)變紅的寄存器或變量,并且其中的值會(huì)不斷地及時(shí)更新??梢?jiàn),采用這種調(diào)試手段,不僅可以及時(shí)地了解程序的運(yùn)行狀態(tài),而且還能很好地控制程序的運(yùn)行過(guò)程。程序的單步運(yùn)行方式與實(shí)時(shí)連續(xù)運(yùn)行方式相比,兩者具有很強(qiáng)的互補(bǔ)性。?動(dòng)畫(huà)運(yùn)行方式動(dòng)畫(huà)運(yùn)行方式既像連續(xù)運(yùn)行方式那樣自動(dòng)控制程序的運(yùn)行過(guò)程,又像單步運(yùn)行方式那樣在每條指令執(zhí)行過(guò)后刷新屏幕顯示信息。程序不停,刷新不止,顯示效果類(lèi)似于播放動(dòng)畫(huà)片。在圖1.1所示的界面上,也應(yīng)將源程序觀察窗作為當(dāng)前窗口,并先讓DSP復(fù)位,然后選擇菜單命令Debug>Animate(調(diào)試>動(dòng)畫(huà)運(yùn)行方式),或者按一下鍵盤(pán)上的F12鍵,或者點(diǎn)擊工具欄中的圖標(biāo)按鈕,均可令程序進(jìn)入動(dòng)畫(huà)運(yùn)行狀態(tài)。同時(shí)應(yīng)注意觀察寄存器變量的變化規(guī)律,是否符合設(shè)計(jì)要求。若想讓程序停止,點(diǎn)擊按鈕即可。?設(shè)置斷點(diǎn)運(yùn)行方式:在調(diào)試長(zhǎng)程序的過(guò)程中,可以控制連續(xù)運(yùn)行那些簡(jiǎn)單的或者已調(diào)通的程序片段,而控制單步運(yùn)行那些復(fù)雜的或者待調(diào)試的程序片段。這樣就可以將連續(xù)運(yùn)行方式和單步運(yùn)行方式的優(yōu)勢(shì)結(jié)合起來(lái)交替使用。例如,有時(shí)候希望執(zhí)行一個(gè)程序片段之后暫停下來(lái),觀察各寄存器變量的值,以便分析中間結(jié)果。這些均可通過(guò)在程序中對(duì)所選定的行設(shè)置斷點(diǎn)來(lái)實(shí)現(xiàn)??梢哉f(shuō),設(shè)置斷點(diǎn)是控制程序運(yùn)行過(guò)程的另一種有效方法。一種最簡(jiǎn)便的設(shè)置斷點(diǎn)的方法:在圖1.1所示的界面上確保當(dāng)前窗口為源程序觀察窗。用光標(biāo)標(biāo)記準(zhǔn)備設(shè)置斷點(diǎn)的源程序語(yǔ)句行后,點(diǎn)擊圖標(biāo)按鈕或者雙擊鼠標(biāo),此時(shí),選定行會(huì)出現(xiàn)紅色背景,表示設(shè)置完成;點(diǎn)擊圖標(biāo)按鈕,取消所設(shè)置的斷點(diǎn)。對(duì)已設(shè)置斷點(diǎn)的程序進(jìn)行調(diào)試時(shí),可以采用連續(xù)運(yùn)行方式。即先讓DSP復(fù)位,再點(diǎn)擊按鈕使程序連續(xù)運(yùn)行,直到遇上第1個(gè)斷點(diǎn)即停止;對(duì)運(yùn)行結(jié)果觀察完成之后,再次點(diǎn)擊按鈕使程序繼續(xù)運(yùn)行,直到遇上第2個(gè)斷點(diǎn)又會(huì)暫停,等等一直調(diào)試下去。實(shí)際上,常常需要將前面介紹的5種調(diào)試手段混合使用,以達(dá)到最佳的調(diào)試效果。實(shí)現(xiàn)同一功能有多種方法,本次實(shí)驗(yàn)僅向同學(xué)們展示了CCS(以CC4.10版本為例)的基本用法,有許多的功能還需要同學(xué)們根據(jù)自己的習(xí)慣愛(ài)好去慢慢挖掘。實(shí)驗(yàn)二 常用指令操作實(shí)驗(yàn)一.實(shí)驗(yàn)說(shuō)明在設(shè)計(jì)DSP應(yīng)用系統(tǒng)時(shí),指令組成了DSP系統(tǒng)的應(yīng)用軟件。由于種種原因,所編寫(xiě)的軟件中總會(huì)存在一些問(wèn)題,因此必須對(duì)軟件進(jìn)行調(diào)試,通過(guò)調(diào)試修改軟件中不合理的地方。在軟件調(diào)試中,一個(gè)重要問(wèn)題是觀察指令執(zhí)行的結(jié)果。例如,在DSP應(yīng)用系統(tǒng)中輸出一個(gè)信號(hào)波形,但發(fā)現(xiàn)輸出的波形與預(yù)期的不同,這時(shí)就需要檢查原因。由于DSP指令執(zhí)行的速度相當(dāng)快,所以就需要掌握調(diào)試中的指令響應(yīng)觀察技術(shù),也就是通常使用的單步執(zhí)行方法。二.實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)在TMS320LF2407DSP實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)中實(shí)際使用指令,初步學(xué)會(huì)如何使用實(shí)驗(yàn)中的指令。學(xué)習(xí)指令的功能和基本使用操作方法。學(xué)習(xí)DSP應(yīng)用系統(tǒng)中的系統(tǒng)調(diào)試方法,學(xué)會(huì)單步調(diào)試的基本方法。學(xué)會(huì)如何觀察指令的執(zhí)行結(jié)果。三.實(shí)驗(yàn)內(nèi)容1.熟悉常用匯編指令。2.熟悉單步執(zhí)行的調(diào)試方法。3.熟悉在調(diào)試環(huán)境下觀察指令的執(zhí)行結(jié)果和相應(yīng)寄存器內(nèi)容。四.實(shí)驗(yàn)步驟1.立即數(shù)載入指令實(shí)驗(yàn)操作 立即數(shù)載入指令包括:累加器載入立即數(shù)。向輔助寄存器載入數(shù)。DP載入立即數(shù)。DP是狀態(tài)寄存器的ST0(0~8)位,作為數(shù)據(jù)空間直接尋址時(shí)地址的高9位(A15~A7)。本次練習(xí)中,需要完成如下工作:向累加器裝載立即數(shù)1234h。向累加器裝載立即數(shù)ABCDh并左移4位。向輔助寄存器AR3-5裝載立即數(shù)。向DP的裝載立即數(shù)??梢钥吹?,本次練習(xí)不僅是向某個(gè)寄存器裝載數(shù)據(jù),而且還包括向某個(gè)寄存器內(nèi)容指向的某些數(shù)據(jù)存儲(chǔ)單元裝載數(shù)據(jù)。 實(shí)驗(yàn)時(shí),可以先編寫(xiě)好上述指令,作為一個(gè)程序段進(jìn)行編譯。然后打開(kāi)CPU寄存器觀察窗口,利用單步執(zhí)行命令單步執(zhí)行程序。每完成一次單步執(zhí)行操作,可以觀察到相應(yīng)寄存器內(nèi)容的變化。 單步操作前可以通過(guò)CPU寄存器觀察窗口對(duì)各相關(guān)寄存器進(jìn)行修改,以便更清楚地觀察到指令執(zhí)行的結(jié)果。2.直接尋址方式下的數(shù)據(jù)存取對(duì)數(shù)據(jù)空間的直接尋址采用以下兩種方式:程序如下:3.間接尋址方式下的數(shù)據(jù)存取 在本操作中,練習(xí)間接尋址中的操作數(shù)存儲(chǔ)器操作。這是利用輔助寄存器ARx(x=0~7)對(duì)數(shù)據(jù)存儲(chǔ)空間進(jìn)行訪問(wèn)的方法。ARx的內(nèi)容就是數(shù)據(jù)空間的地址,ARx加星號(hào)(*)前綴表示的是ARx中的地址所指向的存儲(chǔ)器單元,而且保存在ARx中的地址在對(duì)存儲(chǔ)單元訪問(wèn)前/后可以進(jìn)行修改。具體有7種修改方式:* ;訪問(wèn)后ARx中地址不變*+ ;訪問(wèn)后ARx中地址加1*- ;訪問(wèn)后ARx中地址減1*0+ ;訪問(wèn)后ARx中地址加上AR0中的值*0- ;訪問(wèn)后ARx中地址減去AR0中的值*BRO+ ;訪問(wèn)后ARx中地址加上AR0中的值,并反向進(jìn)位*BRO- ;訪問(wèn)后ARx中地址減去AR0中的值,并反向進(jìn)位程序編制說(shuō)明如下:TS是T寄存器中存放的移位值;語(yǔ)句AR3=#2000h和語(yǔ)句*AR3=#0AC01h完成了向地址為2000h的數(shù)據(jù)單元存放數(shù)據(jù)AC01h;語(yǔ)句T=#8和B=*AR3-<<TS-將2000h中的數(shù)據(jù)左移12位載入累加器B中,而且AR3中的地址值減1,成為1FFFh;語(yǔ)句*,AR3+0=#1111h到語(yǔ)句*,AR3(#16)=#5555h。程序清單如下:4.加減運(yùn)算使用加減運(yùn)行指令時(shí),應(yīng)當(dāng)注意有關(guān)寄存器的影響,主要有如下兩個(gè):ST1中符號(hào)擴(kuò)展模式位SXM――的設(shè)置對(duì)加減運(yùn)算的影響:SXM=0,符號(hào)不擴(kuò)展SXM=1,符號(hào)擴(kuò)展ALU運(yùn)算模式位C16的設(shè)置及其對(duì)加減運(yùn)算的影響: C16=0,雙精度(32位)運(yùn)算 C16=1,16位運(yùn)算 程序清單如下:5.邏輯運(yùn)算程序清單如下:6.移位運(yùn)算程序清單如下:7.乘法運(yùn)算 本指令操作主要是練習(xí)如何完成乘法操作,其中包括乘、加操作。 程序清單如下:實(shí)驗(yàn)三 “追燈”式電路控制一.實(shí)驗(yàn)說(shuō)明輸入/輸出端口(簡(jiǎn)稱(chēng)I/O口)是DSP芯片內(nèi)部電路與外部世界交換信息的通道。輸入端口負(fù)責(zé)從外界接收檢測(cè)信號(hào)、鍵盤(pán)信號(hào)等各種開(kāi)關(guān)量信號(hào);輸出端口負(fù)責(zé)向外界輸送由內(nèi)部電路產(chǎn)生的處理結(jié)果、顯示信息、控制命令、驅(qū)動(dòng)信號(hào)等。本實(shí)驗(yàn)利用TMS320LF2407芯片做基本的I/O控制接口。使用循環(huán)指令和多種送數(shù)延時(shí)循環(huán)程序,設(shè)計(jì)DSP的“追燈”控制器,是最容易和最簡(jiǎn)單的事例。如果使用查表的方式來(lái)做控制,所謂查表的方式是將一些特定的數(shù)據(jù),在此是LED展示的變化組合數(shù)據(jù)事先存在數(shù)組中,而在程序中逐一由數(shù)組中取出個(gè)別的樣本數(shù)據(jù)送往74HC273鎖存以驅(qū)動(dòng)LED發(fā)光二極管(SW-DIP8須置ON),便可完成“追燈”式電路展示的效果。由于展示的樣本數(shù)據(jù)可以隨時(shí)組合,因此以查表法來(lái)做“追燈”式電路控制的變化較多,展示效果較佳。實(shí)驗(yàn)箱中的TMS320LF2407芯片的輸出端口用IOPB0~IOPB7引腳,TMS320LF2407的IOPF2引腳接74HC273的CLK引腳作為74HC273的控制信號(hào);TMS320LF2407的RESET(復(fù)位)引腳接74HC273的CLR,復(fù)位時(shí),74HC273輸出引腳為低電平。二.實(shí)驗(yàn)?zāi)康氖煜せ镜腡MS320LF240X系列的匯編語(yǔ)言。了解實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)的基本I/O硬件電路的控制方法。進(jìn)一步熟悉設(shè)計(jì)并調(diào)試程序的基本方法。三.實(shí)驗(yàn)內(nèi)容1.設(shè)計(jì)并調(diào)試用于TMS320LF2407的“追燈”控制器,要求“燈”的花樣和顯示次數(shù)均由軟件任意設(shè)定。2.程序要求具有多種不同的燈亮花樣,能實(shí)現(xiàn)發(fā)光二極管左移、右移即所謂“追燈”功能。四.實(shí)驗(yàn)硬件電路圖3.1 TMS320LF與40LED接口電路五.實(shí)驗(yàn)參考程序清單C程序I/O端口作為輸出(追燈)源程序代碼:所需的復(fù)位和中斷向量定義文件“vectors.asm” .title "vectors.asm" .ref _c_int0,_nothing .sect ".vectors"reset: b _c_int0int1: b _nothing int2: b _nothingint3: b _nothingint4: b _nothingint5: b _nothingint6: b _nothing主程序//該程序用于實(shí)驗(yàn)演示模板上的8個(gè)LED的循環(huán)顯示#include"register.h"initial()//初始化子程序{ asm("setc SXM"); //抑制符號(hào)位擴(kuò)展 asm("clrc OVM"); //累加器中結(jié)果正常溢出 asm("clrc CNF"); //B0被配置為數(shù)據(jù)存儲(chǔ)空間 asm("setc INTM"); //禁止所有中斷 *SCSR1=0x81FE; //CLKIN=6M,CLKOUT=4*CLKIN=24M *WDCR=0x0E8; //不使能看門(mén)狗,因?yàn)镾CSR2中的WDOVERRIDE //即WD保護(hù)位復(fù)位后的缺省值為1,故可以用 //軟件禁止看門(mén)狗 *IMR=0x0000; //禁止所有中斷 *IFR=0x0FFFF; //清除全部中斷標(biāo)志,"寫(xiě)1清0" *MCRA=*MCRA&0x0FF; //IOPB端口配置為一般的I/O功能, TMS320LF240x的//端口均為8位,MCRA為16位因此控制了IOPA,//和IOPB的設(shè)置 *PBDATDIR=*PBDATDIR|0x0FF00; //IOPB端口設(shè)置為輸出方式 *MCRC=*MCRC&0X0FBFF; //把IOPF2端口配置為一般I/O端口 *PBDATDIR=*PBDATDIR&0x0FF00; //熄滅全部的LED燈 *PFDATDIR=*PFDATDIR|0x0404; //IOPF2設(shè)置為輸出方式,且IOPF2=1 *PFDATDIR=*PFDATDIR&0x0FFFB; //IOPF2=0 //以上的操作產(chǎn)生一個(gè)脈沖,使LED全部熄滅 }//主程序main(){ intled; //定義一個(gè)局部變量 inti,k; //定義其它一些臨時(shí)變量 initial(); //系統(tǒng)初始化while(1){ for(led=0x0080,i=0;i<8;led=led>>1,i++) { *PBDATDIR=*PBDATDIR&0x0FF00;//首先屏蔽IOPB的各位 *PBDATDIR=*PBDATDIR|led; //把需要顯示的值賦給IOPB端口 *PFDATDIR=*PFDATDIR|0x0404;//IOPF2設(shè)置為輸出方式,且IOPF2=1 *PFDATDIR=*PFDATDIR&0x0FFFB;//IOPF2=0,這兩句語(yǔ)句給一個(gè)脈沖,//使LED上顯示IOPB端口的值 for(k=0;k<0x0ffff;k++) k=k; //為了保證顯示時(shí)間,給一定時(shí)間的延時(shí) } }}//直接返回中斷服務(wù)程序voidinterruptnothing(){ return;}匯編程序;I/O端口作為輸出(追燈);(1) 主程序IOSFT_REG .usect ".data0",1 ;要顯示的數(shù)據(jù)寄存器 .include "F2407REGS.H" ;引用頭部文件 .include"vector.h" .def _c_int0 .text_c_int0: ;相當(dāng)于主程序的入口 CALL SYSINIT ;調(diào)系統(tǒng)初始化程序 LDP #DP_PF2 ;指向7080h~7100h區(qū) LACL MCRA AND #000FFH ;IOPB口配置為一般I/O功能 SACL MCRA LACL MCRC AND #0FBFFH ;IOPF2配置為一般I/O功能 SACL MCRC LACL PBDATDIR OR #0FF00H ;IOPB口設(shè)置為輸出方式 SACL PBDATDIR LDP #5H ;指向0280h~0300h區(qū) SPLK #01H,IOSFT_REG ;給顯示的數(shù)據(jù)賦初值LOOP: LDP #DP_PF2 LACL PFDATDIR OR #0404H ;IOPF2設(shè)置為輸出方式,且IOPF2=1 SACL PFDATDIR ;開(kāi)74HC273片選信號(hào) LDP #5H LACL IOSFT_REG LDP #DP_PF2 OR #0FF00H SACL PBDATDIR ;送要顯示的數(shù)據(jù)到IOPB口 LACL PFDATDIR AND #0FFFBH ;IOPF2=0(應(yīng)該使能顯示) SACL PFDATDIR ;關(guān)74HC273片選信號(hào) CALL DELAY ;調(diào)延時(shí)程序 LDP #5H LACL IOSFT_REG SFL ;左移一位 SACL IOSFT_REG BIT IOSFT_REG,BIT8 ;判是否循環(huán)完一次,即已點(diǎn)亮第8個(gè)發(fā)光二極管 BCND LOOP1,TC B WAITLOOP1: LDP #5H SPLK #01H,IOSFT_REG ;如循環(huán)完一次則顯示數(shù)據(jù)賦初值WAIT: NOP B LOOP;(2) 系統(tǒng)初始化程序SYSINIT: SETC INTM CLRC SXM CLRC OVM CLRC CNF ;B0被配置為數(shù)據(jù)存儲(chǔ)空間 LDP #0E0H SPLK #81FEH,SCSR1 ;CLKIN=6M,CLKOUT=24M SPLK #0E8H,WDCR ;不使能WDT LDP #0 SPLK #0000H,IMR ;不使能 SPLK #0FFFFH,IFR ;清全部中斷標(biāo)志 RET;(3) 軟件延時(shí)程序DELAY: MAR *,AR4 LAR AR4,#0FFFEH LAR AR0,#00HDELAY1: SBRK #1 NOP CMPR 00 BCND DELAY1,NTC RET實(shí)驗(yàn)四 按鍵計(jì)數(shù)器一.實(shí)驗(yàn)說(shuō)明在控制電路中,通常需要以按鍵來(lái)控制程序執(zhí)行流程或是輸入數(shù)據(jù)。在圖4.1中,4個(gè)按鍵K1~K4分別對(duì)應(yīng)TMS320LF2407芯片的引腳IOPF3~IOPF4作為I/O端口的輸入,8只發(fā)光二極管LED1~ILED8通過(guò)SW-DIP8撥碼開(kāi)關(guān)和74HC273鎖存器芯片分別對(duì)應(yīng)TMS320LF2407芯片的引腳IOPF0~IOPF7作為I/O端口的輸出。本實(shí)驗(yàn)僅使用一條I/O引腳,借助軟件查詢(xún)方法點(diǎn)亮8只發(fā)光二極管。本實(shí)驗(yàn)箱中的K1鍵對(duì)應(yīng)的TMS320LF2407輸入I/O引腳為IOPF3,當(dāng)按下K1鍵,則將所對(duì)應(yīng)的端口F數(shù)據(jù)和方向控制寄存器(PFDATDIR)的第3位為(IOPF3引腳)0,同時(shí)點(diǎn)亮發(fā)光二極管。二.實(shí)驗(yàn)?zāi)康?.掌握按鍵的工作原理、按鍵和TMS320LF2407芯片的接口技術(shù)以及按鍵輸入程序的設(shè)計(jì)和調(diào)試方法。2.掌握輸出端發(fā)光二極管的工作原理、顯示的信息與程序的設(shè)計(jì)和調(diào)試方法。三.實(shí)驗(yàn)內(nèi)容1.設(shè)計(jì)并調(diào)試用于TMS320LF2407芯片的計(jì)數(shù)程序,要求由按鍵K1作輸入并對(duì)其進(jìn)行計(jì)數(shù),計(jì)數(shù)的結(jié)果由LED7~LED0發(fā)光二極管以二進(jìn)制方式顯示。 2.對(duì)程序稍作改動(dòng),用K4按鍵完成上述功能。四.實(shí)驗(yàn)硬件電路圖4.1TMS320LF2407與鍵盤(pán)、LED接口電路五.實(shí)驗(yàn)參考程序清單 通過(guò)編程,設(shè)計(jì)一個(gè)按鍵計(jì)數(shù)器,要求剛接通電源時(shí),8只發(fā)光二極管都不亮,表示計(jì)數(shù)器的初始值為0,即二進(jìn)制數(shù)的00000000B;當(dāng)按下K1鍵時(shí),計(jì)數(shù)器的值加1,發(fā)光二極管LED0點(diǎn)亮,表示二進(jìn)制數(shù)的00000001B,然后松開(kāi)按鍵;再次按下K1鍵時(shí),計(jì)數(shù)器的值又加1,發(fā)光二極管LED1點(diǎn)亮,表示
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年渤海船舶職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 寶貝學(xué)常見(jiàn)詞
- 授權(quán)函完整版本
- 二零二五年能源管理服務(wù)簡(jiǎn)易借款合同3篇
- 二零二五年新型電子產(chǎn)品動(dòng)產(chǎn)交易合同2篇
- 2024年河南物流職業(yè)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2024年阜陽(yáng)市第二人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年阜康準(zhǔn)東石油醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年長(zhǎng)沙現(xiàn)代女子醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2025版高端食品買(mǎi)賣(mài)合同及食品安全追溯協(xié)議
- 35KV變電站地質(zhì)勘察與施工方案
- 2025年中國(guó)社會(huì)科學(xué)院外國(guó)文學(xué)研究所專(zhuān)業(yè)技術(shù)人員招聘3人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 運(yùn)輸公司安全隱患大排查整治行動(dòng)方案
- 湖北省十堰市2023-2024學(xué)年高二上學(xué)期期末調(diào)研考試 物理 含答案
- 傳染病和突發(fā)公共衛(wèi)生事件報(bào)告和處置培訓(xùn)課件
- 道具設(shè)計(jì)安裝合同模板
- 2024至2030年中國(guó)白內(nèi)障手術(shù)耗材行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 體育單杠課件教學(xué)課件
- 新版浙教版2024-2025學(xué)年度八年級(jí)數(shù)學(xué)上冊(cè)幾何復(fù)習(xí)專(zhuān)題卷含答案
- 《現(xiàn)代控制理論》全套課件(東北大學(xué))
- 建筑信息模型(BIM)技術(shù)應(yīng)用示范項(xiàng)目申報(bào)表
評(píng)論
0/150
提交評(píng)論