基于CPLD的液晶等精度頻率計(jì)_第1頁
基于CPLD的液晶等精度頻率計(jì)_第2頁
基于CPLD的液晶等精度頻率計(jì)_第3頁
基于CPLD的液晶等精度頻率計(jì)_第4頁
基于CPLD的液晶等精度頻率計(jì)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)設(shè)計(jì)論文題 目 基于CPLD的液晶等精度頻率計(jì)系 別 電氣與信息工程系 專 業(yè) 電氣工程及其自動(dòng)化 班 級(jí) 學(xué)生姓名 指導(dǎo)教師 2012年5月摘要摘 要頻率計(jì)是實(shí)驗(yàn)室和科研、生產(chǎn)中最常用的測量儀器之一。本文介紹了一種基于CPLD芯片設(shè)計(jì)的等精度頻率計(jì)。利用的等精度測量原理,通過在CPLD芯片上燒寫等精度測量原理圖進(jìn)行測量,以MCS-52單片機(jī)進(jìn)行控制和數(shù)據(jù)運(yùn)算處理,利用液晶顯示器對(duì)測量的頻率進(jìn)行實(shí)時(shí)顯示,可讀性好。系統(tǒng)測量精度高,實(shí)時(shí)性好。 本頻率測量儀是以Altera公司生產(chǎn)的EMP7160SLC84-15器件為核心實(shí)現(xiàn)高精度計(jì)數(shù)功能。整個(gè)電路采用模塊化設(shè)計(jì),PCB工藝,通過C語言程

2、序控制能夠?qū)崿F(xiàn)等精度測頻功能,頻率測量范圍為10HZ-10MHZ。關(guān)鍵詞:等精度,頻率計(jì),CPLD,單片機(jī),液晶27西安交通大學(xué)城市學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)ABSTRACTThe frequency meter laboratory and scientific research, one of the most commonly used in the production of measuring instruments. This article describes a CPLD chip design precision frequency meter. Equal precisio

3、n measurement method, by Figure programmed in the CPLD chip precision measurement principle to measure, control and data operations to the MCS-52 microcontroller processing, liquid crystal display real-time display of the measurement frequency, readable. System, high accuracy, real-time.The frequenc

4、y meter is based on Altera company EMP7160SLC84-15 devices to achieve high-precision counting function as the core. The entire circuit is modular in design, PCB plate making, and can be achieved through the C-language program control and precision frequency measurement function, the frequency measur

5、ement range 10HZ - 10MHZ.KEY WORDS:Equal precision measurement,Frequency meter,CPLD,SCM, Liquid crystal目錄目錄目 錄前 言11 緒 論31.1 課題提出的意義31.2 國內(nèi)外發(fā)展現(xiàn)狀32 EDA技術(shù)CPLD簡介52.1 CPLD概述52.1.1 CPLD簡介52.1.2 發(fā)展歷史及應(yīng)用領(lǐng)域52.1.3 器件特點(diǎn)52.1.4 如何使用52.2 CPLD的基本結(jié)構(gòu)52.2 Quartus II介紹62.3 EDA的具體開發(fā)流程72.3.1設(shè)計(jì)輸入82.3.2綜合82.3.3 適配82.3.4 仿

6、真92.3.5 編程下載和硬件測試93 等精度測量原理113.1等精度測量原理113.2 本設(shè)計(jì)所用原理124 測量方案的比較與選擇154.1測量頻率的方法154.1.1 直接測頻法154.1.2 間接測頻法154.1.3 等精度測頻法164.2測頻方案164.2.1基于單片機(jī)的測頻方案164.2.2基于CPLD的測頻方案165 基于CPLD等精度頻率計(jì)的硬件模塊設(shè)計(jì)195.1 CPLD模塊設(shè)計(jì)195.2 MCS-52單片機(jī)模塊設(shè)計(jì)205.3液晶模塊設(shè)計(jì)215.3.1液晶芯片的管腳與功能215.3.2液晶模塊與單片機(jī)的接口225.4 RS232串口通信模塊225.5 輔助鍵盤模塊226 基于C

7、PLD等精度頻率計(jì)的軟件模塊設(shè)計(jì)256.1計(jì)數(shù)模塊256.2 鎖存模塊266.3 譯碼器模塊286.4 液晶控制模塊307系統(tǒng)的調(diào)試與整體測試317.1液晶的調(diào)試318結(jié) 論41致 謝43參考文獻(xiàn)45前言前 言 頻率計(jì)是當(dāng)今實(shí)驗(yàn)測量設(shè)備中比較普遍的儀器。然而隨著科技的發(fā)展,對(duì)測量數(shù)據(jù)的精度要求越來越高,傳統(tǒng)的頻率計(jì)受到各方面的制約,無法達(dá)到理想的精度,為推進(jìn)工業(yè)發(fā)展,必須尋找新的方法來測頻。恰巧最近EDA技術(shù)得到推廣,我們利用CPLD可編程芯片的強(qiáng)大功能來探討等精度測頻問題,本設(shè)計(jì)就是圍繞這一思想展開的。本設(shè)計(jì)用的CPLD芯片EMP7160SLC84具有很大的容量,計(jì)數(shù)范圍遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的單片機(jī)

8、計(jì)數(shù)。通過JTAG下載線對(duì)CPLD芯片中下載測量原理圖,原理圖中含有32為計(jì)數(shù)器,完全可以滿足精度要求,利用原理圖進(jìn)行計(jì)數(shù),其中計(jì)數(shù)需要的標(biāo)準(zhǔn)信號(hào)由外部接的50MHz的晶體振蕩器提供,整個(gè)計(jì)數(shù)過程均在CPLD芯片內(nèi)部完成,速度快,精度高。CPLD計(jì)數(shù)完成后通過PCB板上的線路和一定的控制程序?qū)⒔Y(jié)果傳送給單片機(jī)處理,單片機(jī)模塊在此設(shè)計(jì)中主要起處理運(yùn)算結(jié)果和控制作用,單片機(jī)處理完結(jié)果后,經(jīng)過一定的控制程序控制液晶,使液晶模塊實(shí)時(shí)顯示測量結(jié)果。鍵盤模塊通過程序賦予一定的功能,更好進(jìn)行人機(jī)溝通,跟人性化。整個(gè)系統(tǒng)的硬件CPLD模塊、單片機(jī)模塊和液晶模塊通過在布線電路板上連接組成,協(xié)調(diào)完成測頻,處理,顯

9、示等功能。整個(gè)系統(tǒng)的軟件由計(jì)數(shù)模塊、鎖存模塊、譯碼模塊以及液晶控制模塊等組成。各個(gè)模塊完成計(jì)數(shù)、傳送數(shù)據(jù)等功能。在軟硬件的結(jié)合下,通過一定的控制程序,完成所要求的功能。1 緒論1 緒 論1.1 課題提出的意義基于PLD的等精度頻率計(jì)有運(yùn)算速度快、系統(tǒng)較穩(wěn)定、測量范圍廣操作預(yù)先修改方便等特點(diǎn)。其中主要應(yīng)用到EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù)。伴隨著集成電路技術(shù)的發(fā)展,PLD(可編程邏輯器件)逐漸成為重要的設(shè)計(jì)工具。PLD在設(shè)計(jì)過程中為客戶提供了更大的靈活性,因?yàn)閷?duì)于PLD來說,設(shè)計(jì)反復(fù)只需要簡單地改變編程文件就可以了,而且設(shè)計(jì)改變的結(jié)果可立即在工作器件中看到。且PLD不需要漫長的前置時(shí)間來制造原型或正

10、式產(chǎn)品。在設(shè)計(jì)階段中客戶可根據(jù)需要修改電路,直到對(duì)設(shè)計(jì)工作感到滿意為止。常用的頻率測量方法有兩種:頻率測量法和周期測量法。頻率測量法是在時(shí)間t內(nèi)對(duì)被測信號(hào)的脈沖數(shù)N進(jìn)行計(jì)數(shù),然后求出單位時(shí)間內(nèi)的脈沖數(shù),即為被測信號(hào)的頻率。周期測量法是先測量出被測信號(hào)的周期T,然后根據(jù)頻率f=1T求出被測信號(hào)的頻率。但是上述兩種方法都會(huì)產(chǎn)生±1個(gè)被測脈沖的誤差,在實(shí)際應(yīng)用中有一定的局限性。根據(jù)測量原理,很容易發(fā)現(xiàn)頻率測量法適合于高頻信號(hào)測量,周期測量法適合于低頻信號(hào)測量,但二者都不能兼顧高低頻率同樣精度的測量要求。本設(shè)計(jì)利用PLD進(jìn)行測頻計(jì)數(shù),單片機(jī)實(shí)施控制實(shí)現(xiàn)頻率計(jì)的設(shè)計(jì)過程。該頻率計(jì)利用等精度的設(shè)

11、計(jì)方法,克服了基于測頻原理的頻率計(jì)的測量精度隨被測信號(hào)頻率的下降而降低的缺點(diǎn)。等精度的測量方法不但具有較高的測量精度,而且在整個(gè)測頻區(qū)域內(nèi)保持恒定的測試精度。并采用液晶顯示器顯示測量頻率。1.2 國內(nèi)外發(fā)展現(xiàn)狀電子設(shè)計(jì)用的可編程邏輯器件發(fā)展很快,已經(jīng)從20年前幾百門的PAL/GAL發(fā)展到現(xiàn)在的超過300萬門的可編程邏輯器件,已擁有可以提供足夠系統(tǒng)集成容量的密度、增強(qiáng)的嵌入系統(tǒng)能力、功能集合及許多其他特性的新器件。 編程邏輯供應(yīng)商取得了巨大的技術(shù)進(jìn)步,以致現(xiàn)在PLD被眾多設(shè)計(jì)人員視為是邏輯解決方案的當(dāng)然之選。先進(jìn)的工藝技術(shù)在一系列關(guān)鍵領(lǐng)域?yàn)镻LD提供了幫助:更快的性能、集成更多功能、降低功耗和成

12、本等。 目前Xilinx采用先進(jìn)的0.13um 低K銅金屬工藝生產(chǎn)可編程邏輯器件,這也是業(yè)界最好的工藝之一。二十年前,PLD銷售額的增長速度已經(jīng)超過基于傳統(tǒng)門陣列技術(shù)的固定邏輯器件的銷售增長速度。 而且,高性能FPGA現(xiàn)在已開始從采用最先進(jìn)的標(biāo)準(zhǔn)單元技術(shù)制造的固定邏輯器件那兒贏得市場份額。本設(shè)計(jì)利用PLD進(jìn)行測頻計(jì)數(shù),單片機(jī)實(shí)施控制實(shí)現(xiàn)頻率計(jì)的設(shè)計(jì)過程。該頻率計(jì)利用等精度的設(shè)計(jì)方法,克服了基于傳統(tǒng)測頻原理的頻率計(jì)的測量精度隨被測信號(hào)頻率的下降而降低的缺點(diǎn)。將先進(jìn)器件應(yīng)用于測頻,現(xiàn)在這類課題是研究的熱點(diǎn)。2 EDA技術(shù)CPLD簡介2 EDA技術(shù)CPLD簡介2.1 CPLD概述 2.1.1 CPL

13、D簡介CPLD主要是由可編程邏輯宏單元 (MC,Macro Cell)圍繞中心的可編程互連矩陣單元組成。其中MC結(jié)構(gòu)較復(fù)雜,并具有復(fù)雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長度的金屬線進(jìn)行各邏輯塊的互連,所以設(shè)計(jì)的邏輯電路具有時(shí)間可預(yù)測性,避免了分段式互連結(jié)構(gòu)時(shí)序不完全預(yù)測的缺點(diǎn)。2.1.2 發(fā)展歷史及應(yīng)用領(lǐng)域20世紀(jì)70年代,最早的可編程邏輯器件-PLD誕生了。其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因?yàn)樗挠布Y(jié)構(gòu)設(shè)計(jì)可由軟件完成(相當(dāng)于房子蓋好后人工設(shè)計(jì)局部室內(nèi)結(jié)構(gòu)),因而它的設(shè)計(jì)比純硬件的數(shù)字電路具有很強(qiáng)的靈活性,但其過于簡單的結(jié)構(gòu)也

14、使它們只能實(shí)現(xiàn)規(guī)模較小的電路。為彌補(bǔ)PLD只能設(shè)計(jì)小規(guī)模電路這一缺陷,20世紀(jì)80年代中期,推出了復(fù)雜可編程邏輯器件-CPLD。目前應(yīng)用已深入網(wǎng)絡(luò)、儀器儀表、汽車電子、數(shù)控機(jī)床、航天測控設(shè)備等方面。2.1.3 器件特點(diǎn)它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對(duì)設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測試、保密性強(qiáng)、價(jià)格大眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用CPLD器件。CPLD器件已成為電子產(chǎn)品不可缺少的組成部分,它的設(shè)計(jì)和應(yīng)用成

15、為電子工程師必備的一種技能。2.1.4 如何使用CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺(tái),用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。2.2 CPLD的基本結(jié)構(gòu)CPLD主要由可編程I/O單元、基本邏輯單元、布線池和其他輔助功能模塊構(gòu)成(1)可編程邏輯單元作用與FPGA的基本I/O口相同,但是CPLD應(yīng)用范圍局限性較大,I/O的性能和復(fù)雜度與FPGA相比有一定的差距,支撐的I/O標(biāo)準(zhǔn)較少,頻率也較低。(2)基本邏輯單元CPLD中基本邏輯單元是宏單元。所謂宏單

16、元就是由一些與、或陣列加上觸發(fā)器構(gòu)成的,其中“與或”陣列完成組合邏輯功能,觸發(fā)器用以完成時(shí)序邏輯。與CPLD基本邏輯單元相關(guān)的另外一個(gè)重要概念是乘積項(xiàng)。所謂乘積項(xiàng)就是宏單元中與陣列的輸出,其數(shù)量標(biāo)志了CPLD容量。乘積項(xiàng)陣列實(shí)際上就是一個(gè)“與或”陣列,每一個(gè)交叉點(diǎn)都是一個(gè)可編程熔絲,如果導(dǎo)通就是實(shí)現(xiàn)“與”邏輯,在“與”陣列后一般還有一個(gè)“或”陣列,用以完成最小邏輯表達(dá)式中的“或”關(guān)系。(3)布線池、布線矩陣CPLD中的布線資源比FPGA的要簡單的多,布線資源也相對(duì)有限,一般采用集中式布線池結(jié)構(gòu)。所謂布線池其本質(zhì)就是一個(gè)開關(guān)矩陣,通過打結(jié)點(diǎn)可以完成不同宏單元的輸入與輸出項(xiàng)之間的連接。由于CPLD

17、器件內(nèi)部互連資源比較缺乏,所以在某些情況下器件布線時(shí)會(huì)遇到一定的困難。由于CPLD的布線池結(jié)構(gòu)固定,所以CPLD的輸入管腳到輸出管腳的標(biāo)準(zhǔn)延時(shí)固定,被成為Pin to Pin延時(shí),用Tpd表示,Tpd延時(shí)反映了CPLD器件可以實(shí)現(xiàn)的最高頻率,也就清晰地表明了CPLD器件的速度等級(jí)。(4)其他輔助功能模塊如JTAG編程模塊,一些全局時(shí)鐘、全局使能、全局復(fù)位/置位單元等。2.2 Quartus II介紹Quartus II是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界最大可編程邏輯器件供應(yīng)商之一。Quartus II在21世紀(jì)初推出,是Altera前一代FPGA/CPLD集

18、成開發(fā)環(huán)境Max+plus II的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在Quartus II上可以完成FPGA開發(fā)的整個(gè)流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Altera的Quartus II提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能滿足各種特定設(shè)計(jì)的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境和SOPC開發(fā)的基本設(shè)計(jì)工具,并為Altera DSP開發(fā)包進(jìn)行系統(tǒng)模型設(shè)計(jì)提供了集成綜合環(huán)境。Quartus II設(shè)計(jì)工具完全支持VHDL、Verilog的設(shè)計(jì)流程,其內(nèi)部嵌有VHDL、Verilog邏輯綜合器。Quartus II也可以利用第三方的綜

19、合工具,如Leonardo Speetrum、SynplifyPro、FPGA Compi1er II,并能直接調(diào)用這些工具。同樣,Quartus II具備仿真功能,同時(shí)也支持第三方的仿真工具,如Modelsim。此外,Quartus II與MATLAB和DSP Builder結(jié)合,可以進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵EDA工具。Quartus II包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analysis & Synthesis)、適配器(Fitter)、裝配器(Assembler)、時(shí)序分析器(Timing Analyzer)、設(shè)計(jì)輔助模塊

20、(Design Assistant)、EDA網(wǎng)表文件生成器(EDA Netlist Writer)和編輯數(shù)據(jù)接口(Compsler Database Interfaee)等。可以通過選擇Start Colnpilation來運(yùn)行所有的編譯器模塊,也可以通過選擇Start單獨(dú)運(yùn)行各個(gè)模塊。還可以通過選擇Compiler Tool(Too1s菜單),在Compiler Tool窗口中運(yùn)行該模塊來啟動(dòng)編譯器模塊。在Compiler Tool窗口中,可以打開該模塊的設(shè)置文件或報(bào)告文件,或打開其他相關(guān)窗口。此外,Quartus II還包含許多十分有用的LPM(Library of Parameteriz

21、ed Modules)模塊,它們是復(fù)雜或高級(jí)系統(tǒng)構(gòu)建的重要組成部分,在SOPC設(shè)計(jì)中被大量使用,也可在Quartus II普通設(shè)計(jì)文件一起使用。Altera提供的LPM函數(shù)均基于Altera器件的結(jié)構(gòu)做了優(yōu)化設(shè)計(jì)。在許多實(shí)用情況中,必須使用宏功能模塊才可以使用一些Altera特定器件的硬件功能。例如各類片上存儲(chǔ)器、DSP模塊、LVDS驅(qū)動(dòng)器、PLL以及SERDES和DDIO電路模塊等。Quartus II編譯設(shè)計(jì)主控界面,它顯示了Quartus II自動(dòng)設(shè)計(jì)的各主要處理環(huán)節(jié)和設(shè)計(jì)流程,包括設(shè)計(jì)輸入編輯、設(shè)計(jì)分析與綜合、適配、編程文件匯編(裝配)、時(shí)序參數(shù)提取以及編程下載幾個(gè)步驟。在圖2-1下排

22、的流程框圖,是與上面的Quartus II設(shè)計(jì)流程相對(duì)照的標(biāo)準(zhǔn)的EDA開發(fā)流程。 Quartus II編譯器支持的硬件描述語言有VHDL(支持VHDL87及VHDL97標(biāo)準(zhǔn))、Verizog HDL及AHDL(Altera HDL),AHDL是Altera公司自己設(shè)計(jì)、制定的硬件描述語言,是一種以結(jié)構(gòu)描述方式為主的硬件描述語言,只有企業(yè)標(biāo)準(zhǔn)。Quartus II允許來自第三方的EDIF文件輸入,并提供了很多EDA軟件的接口,Quartus II支持層次化設(shè)計(jì),可以在一個(gè)新的編輯輸入環(huán)境中對(duì)使用不同輸入設(shè)計(jì)方式完成的模塊(元件)進(jìn)行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計(jì)的問題。在設(shè)計(jì)輸入之后

23、,Quartus II的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告。 Quartus II擁有性能良好的設(shè)計(jì)錯(cuò)誤定位器,用于確定文本或圖形設(shè)計(jì)中的錯(cuò)誤。對(duì)于使用HDL的設(shè)計(jì),可以使用Quartus II帶有的RTL Viewer觀察綜合后的RTL圖。在進(jìn)行編譯后,可對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真。在作仿真前,需要利用波形編輯器編輯一個(gè)波形激勵(lì)文件,用于仿真驗(yàn)證時(shí)的激勵(lì)。編譯和仿真經(jīng)檢測無誤后,便可以將下載信息通過Quartus II提供的編程器下載入目標(biāo)器件中了。2.3 EDA的具體開發(fā)流程基于CPLD器件實(shí)現(xiàn)數(shù)字系統(tǒng)的流程如圖2-1所示。圖2-1 基于FPGA/CPLD的EDA設(shè)計(jì)流程圖基于CPLD器件的開發(fā)流程主

24、要包含設(shè)計(jì)輸入、綜合、FPGA適配、仿真和編程下載。2.3.1設(shè)計(jì)輸入設(shè)計(jì)輸入是設(shè)計(jì)者將所要設(shè)計(jì)的電路以開發(fā)軟件要求的某種形式表達(dá)出來,并輸入到相應(yīng)軟件中的過程。設(shè)計(jì)輸入有多種方式,最常用的是圖形輸入和HDL文本輸入兩種方法。 圖形輸入主要包括狀態(tài)圖輸入,波形圖輸入和原理圖輸入等。在HDL文本輸入中,最常用的硬件描述語言有Verilog HDL和VHDL等,Verilog HDL和VHDL的功能比較強(qiáng)大,屬于行為描述語言,能描述和仿真復(fù)雜的邏輯設(shè)計(jì)。2.3.2綜合綜合是將設(shè)計(jì)者在EDA平臺(tái)上編輯輸入的HDL文本、圖形描述,依據(jù)給定的硬件結(jié)構(gòu)和約束可知條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級(jí)

25、電路甚至更底層的電路描述網(wǎng)表文件的過程。綜合器就是能夠自動(dòng)實(shí)現(xiàn)上述轉(zhuǎn)換的軟件工具。 綜合的方式有三種分別是行為綜合,邏輯綜合,版圖綜合(結(jié)構(gòu)綜合)。2.3.3 適配 適配是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,并產(chǎn)生最終的可下載文件的過程。 利用適配器將綜合后的網(wǎng)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線等。2.3.4 仿真 仿真,也稱為模擬,是對(duì)所設(shè)計(jì)的電路的功能驗(yàn)證。用戶可以在設(shè)計(jì)的過程中對(duì)整個(gè)系統(tǒng)和各個(gè)模塊進(jìn)行仿真,即在計(jì)算機(jī)上用軟件驗(yàn)證功能是否正確,各部分的時(shí)序配合是否準(zhǔn)確。若出現(xiàn)問題,則可以隨時(shí)修改,從而避免了邏輯錯(cuò)誤。

26、高級(jí)的仿真軟件還可以對(duì)整個(gè)系統(tǒng)設(shè)計(jì)的性能進(jìn)行估計(jì)。規(guī)模越大的設(shè)計(jì),越需要進(jìn)行仿真。仿真不消耗硬件資源,不浪費(fèi)時(shí)間,這樣就可避免不必要的損失。仿真包括功能仿真和時(shí)序仿真。2.3.5 編程下載和硬件測試把適配后生成的編程文件裝入到PLD器件中的過程稱為下載。通常將對(duì)基于EEPROM工藝的非易失結(jié)構(gòu)PLD器件的下載稱為編程(Program),而將基于SRAM工藝結(jié)構(gòu)的PLD器件的下載稱為配置(Configure)。最常用的編程方式有兩種分別是在系統(tǒng)編程(ISP,In System Programmable)和用專用的編程器編程。需要全文請(qǐng)聯(lián)系QQ8692608006 基于等精度頻率計(jì)的軟件模塊設(shè)計(jì)7

27、 系統(tǒng)的調(diào)試與整體測試7系統(tǒng)的調(diào)試與整體測試7.1液晶的調(diào)試液晶的調(diào)試可以檢查CPLD芯片內(nèi)部原理圖的存在與否,以及分析地址的正確性;還可以驗(yàn)證液晶是否正常工作,即液晶的好壞等等作用。下面給出一個(gè)液晶的完整的調(diào)試程序。#include <reg52.h>#define IR1 0xFFF2; /A1=1,A0=0,為左半屏工作,顯示為指令#define DR1 0xFFF3; /A1=1,A0=1,為左半屏工作,顯示為數(shù)據(jù)#define IR2 0xFFF0; /A1=0,A0=0,為右半屏工作,顯示為指令#define DR2 0xFFF1; /A1=0,A0=1,為右半屏工作,

28、顯示為數(shù)據(jù)#define lcd_off 0x3E;/液晶的指令集,用于關(guān)閉液晶顯示器#define lcd_on 0x3F;/ 液晶的指令集,用于打開液晶顯示void delay_10us(void);/聲明延時(shí)程序,延時(shí)時(shí)間為10微秒void dmsec (unsigned int count);/聲明延時(shí)程序,延時(shí)時(shí)間count毫秒,void clear_screen(unsigned char *p); /聲明清屏程序,p=lift時(shí)清除左半屏, or right清除右半屏。unsigned char xdata *lcd_lift;/定義指針變量,全局變量,使指針指向左半屏unsig

29、ned char xdata *lcd_right;/ 定義指針變量,全局變量,使指針指向右半屏unsigned char code hzdot192 = /*西 CCEF7 */0x02,0xF2,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xF2,0x02,0x00,0x00,0x7F,0x28,0x24,0x22,0x21,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,/*安 CB0B2 */0x80,0x90,0x8C,0x84,0x84,0xF4,0xA5,0x8

30、6,0x84,0x84,0x84,0x84,0x94,0x8C,0x84,0x00,0x80,0x80,0x80,0x40,0x47,0x28,0x28,0x10,0x28,0x24,0x43,0xC0,0x40,0x00,0x00,0x00,/*交 CBDBB */0x00,0x08,0x88,0x48,0x38,0x28,0x09,0x0E,0x0C,0x08,0x98,0x28,0x68,0x48,0x08,0x00,0x00,0x80,0x80,0x40,0x41,0x22,0x14,0x18,0x0C,0x16,0x23,0x61,0xC0,0x40,0x00,0x00,/*通 CC

31、DA8 */0x40,0x41,0xC6,0x00,0x00,0xF2,0x52,0x52,0x56,0xFA,0x5A,0x56,0xF2,0x00,0x00,0x00,0x40,0x20,0x1F,0x20,0x40,0x5F,0x42,0x42,0x42,0x5F,0x4A,0x52,0x4F,0x40,0x40,0x00,/*大 CB4F3 */0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x

32、01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,/*學(xué) CD1A7 */0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00;sbit clk=P34;main() unsigned char x,y,i; /定義變量x,y,i供以后用lcd_lift = IR1;/液晶左半屏工作,且顯示為指令lcd_r

33、ight= IR2;/液晶左半屏工作,且顯示為指令clear_screen(lcd_lift);/調(diào)用清屏函數(shù),對(duì)液晶左半屏進(jìn)行清零 clear_screen(lcd_right);/ 調(diào)用清屏函數(shù),對(duì)液晶右半屏進(jìn)行清零*lcd_lift=lcd_on;/利用液晶指令集的指令,打開液晶左半屏,使工作*lcd_right=lcd_on;/ 利用液晶指令集的指令,打開液晶右半屏,使工作/*lcd_lift=0xb8;/利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_lift=0x40;/ 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)

34、置為第一列for(i=0x00;i<=0x0f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字西的前16個(gè)字符到1至16列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_lift=0x40;/ 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第一列for(i=0x10;i<=0x1f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字西的后16個(gè)字符到1至16列delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)/*綜上所述,上述程序是將漢字

35、西在液晶左的第一和第二行的第1至16列這個(gè)區(qū)域內(nèi)顯示出來*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_lift=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第17列*/for(i=0x20;i<=0x2f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字安的前16個(gè)字符到17至32列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_li

36、ft=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第17列*/for(i=0x30;i<=0x3f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字安的后16個(gè)字符到17至32列delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)/*綜上所述,上述程序是將漢字安在液晶左的第一和第二行的第17至32列這個(gè)區(qū)域內(nèi)顯示出來*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_lift=0x40+0x20;/* 利用液晶的指令集指令,頁起始地址的列設(shè)

37、置,設(shè)置為第33列*/for(i=0x40;i<=0x4f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字交的后16個(gè)字符到33至48列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_lift=0x40+0x20;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第33列*/for(i=0x50;i<=0x5f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字交的后16個(gè)字符到33至48列delay_10us();/調(diào)用延時(shí)程序,進(jìn)行

38、延時(shí)/*綜上所述,上述程序是將漢字交在液晶左半屏的第一和第二行的第33至48列這個(gè)區(qū)域內(nèi)顯示出來*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_lift=0x40+0x30;/*利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第49列*/for(i=0x60;i<=0x6f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字通的前16個(gè)字符到第一行的49至64列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10u

39、s();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_lift=0x40+0x30; /*利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第49列*/for(i=0x70;i<=0x7f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字通的后16個(gè)字符到第二行的49至64列delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)/*綜上所述,上述程序是將漢字通在液晶左半屏的第一和第二行的第49至64列這個(gè)區(qū)域內(nèi)顯示出來*/*lcd_right=0xb8;/* 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為右半屏第一行*/delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_r

40、ight=0x40;/ 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第1列for(i=0x80;i<=0x8f;i+)*(lcd_right+1)=hzdoti;/利用循環(huán)語句載入漢字大的前16個(gè)字符到右半屏的第一行的1至16列*lcd_right=0xb9;/* 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行*/delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_right=0x40;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第1列*/for(i=0x90;i<=0x9f;i+)*(lcd_right+1)=hzdoti;/利用循環(huán)語句載入漢字通的

41、后16個(gè)字符到右半屏的第二行的1至16列delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)/*綜上所述,上述程序是將漢字大在液晶右半屏的第一和第二行的第1至16列這個(gè)區(qū)域內(nèi)顯示出來*/*lcd_right=0xb8;/*利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為右半屏第一行*/delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_right=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為右半屏第17列*/for(i=0xa0;i<=0xaf;i+)*(lcd_right+1)=hzdoti;/利用循環(huán)語句載入漢字大的前16個(gè)字符到右半屏的第一行的17至32列*lcd_right=0xb9;/* 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為右半屏的第二行*/delay_10us();/調(diào)用延時(shí)程序,進(jìn)行延時(shí)*lcd_right=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為右半屏的第

溫馨提示

  • 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)論