![基于CPLD的液晶等精度頻率計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/1ce63320-c3f1-4a6a-9888-44a61a965acc/1ce63320-c3f1-4a6a-9888-44a61a965acc1.gif)
![基于CPLD的液晶等精度頻率計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/1ce63320-c3f1-4a6a-9888-44a61a965acc/1ce63320-c3f1-4a6a-9888-44a61a965acc2.gif)
![基于CPLD的液晶等精度頻率計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/1ce63320-c3f1-4a6a-9888-44a61a965acc/1ce63320-c3f1-4a6a-9888-44a61a965acc3.gif)
![基于CPLD的液晶等精度頻率計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/1ce63320-c3f1-4a6a-9888-44a61a965acc/1ce63320-c3f1-4a6a-9888-44a61a965acc4.gif)
![基于CPLD的液晶等精度頻率計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/1ce63320-c3f1-4a6a-9888-44a61a965acc/1ce63320-c3f1-4a6a-9888-44a61a965acc5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本科畢業(yè)設(shè)計論文題 目 基于CPLD的液晶等精度頻率計系 別 電氣與信息工程系 專 業(yè) 電氣工程及其自動化 班 級 學(xué)生姓名 指導(dǎo)教師 2012年5月摘要摘 要頻率計是實驗室和科研、生產(chǎn)中最常用的測量儀器之一。本文介紹了一種基于CPLD芯片設(shè)計的等精度頻率計。利用的等精度測量原理,通過在CPLD芯片上燒寫等精度測量原理圖進(jìn)行測量,以MCS-52單片機(jī)進(jìn)行控制和數(shù)據(jù)運(yùn)算處理,利用液晶顯示器對測量的頻率進(jìn)行實時顯示,可讀性好。系統(tǒng)測量精度高,實時性好。 本頻率測量儀是以Altera公司生產(chǎn)的EMP7160SLC84-15器件為核心實現(xiàn)高精度計數(shù)功能。整個電路采用模塊化設(shè)計,PCB工藝,通過C語言程
2、序控制能夠?qū)崿F(xiàn)等精度測頻功能,頻率測量范圍為10HZ-10MHZ。關(guān)鍵詞:等精度,頻率計,CPLD,單片機(jī),液晶27西安交通大學(xué)城市學(xué)院本科生畢業(yè)設(shè)計(論文)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è)計輸入82.3.2綜合82.3.3 適配82.3.4 仿
6、真92.3.5 編程下載和硬件測試93 等精度測量原理113.1等精度測量原理113.2 本設(shè)計所用原理124 測量方案的比較與選擇154.1測量頻率的方法154.1.1 直接測頻法154.1.2 間接測頻法154.1.3 等精度測頻法164.2測頻方案164.2.1基于單片機(jī)的測頻方案164.2.2基于CPLD的測頻方案165 基于CPLD等精度頻率計的硬件模塊設(shè)計195.1 CPLD模塊設(shè)計195.2 MCS-52單片機(jī)模塊設(shè)計205.3液晶模塊設(shè)計215.3.1液晶芯片的管腳與功能215.3.2液晶模塊與單片機(jī)的接口225.4 RS232串口通信模塊225.5 輔助鍵盤模塊226 基于C
7、PLD等精度頻率計的軟件模塊設(shè)計256.1計數(shù)模塊256.2 鎖存模塊266.3 譯碼器模塊286.4 液晶控制模塊307系統(tǒng)的調(diào)試與整體測試317.1液晶的調(diào)試318結(jié) 論41致 謝43參考文獻(xiàn)45前言前 言 頻率計是當(dāng)今實驗測量設(shè)備中比較普遍的儀器。然而隨著科技的發(fā)展,對測量數(shù)據(jù)的精度要求越來越高,傳統(tǒng)的頻率計受到各方面的制約,無法達(dá)到理想的精度,為推進(jìn)工業(yè)發(fā)展,必須尋找新的方法來測頻。恰巧最近EDA技術(shù)得到推廣,我們利用CPLD可編程芯片的強(qiáng)大功能來探討等精度測頻問題,本設(shè)計就是圍繞這一思想展開的。本設(shè)計用的CPLD芯片EMP7160SLC84具有很大的容量,計數(shù)范圍遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的單片機(jī)
8、計數(shù)。通過JTAG下載線對CPLD芯片中下載測量原理圖,原理圖中含有32為計數(shù)器,完全可以滿足精度要求,利用原理圖進(jìn)行計數(shù),其中計數(shù)需要的標(biāo)準(zhǔn)信號由外部接的50MHz的晶體振蕩器提供,整個計數(shù)過程均在CPLD芯片內(nèi)部完成,速度快,精度高。CPLD計數(shù)完成后通過PCB板上的線路和一定的控制程序?qū)⒔Y(jié)果傳送給單片機(jī)處理,單片機(jī)模塊在此設(shè)計中主要起處理運(yùn)算結(jié)果和控制作用,單片機(jī)處理完結(jié)果后,經(jīng)過一定的控制程序控制液晶,使液晶模塊實時顯示測量結(jié)果。鍵盤模塊通過程序賦予一定的功能,更好進(jìn)行人機(jī)溝通,跟人性化。整個系統(tǒng)的硬件CPLD模塊、單片機(jī)模塊和液晶模塊通過在布線電路板上連接組成,協(xié)調(diào)完成測頻,處理,顯
9、示等功能。整個系統(tǒng)的軟件由計數(shù)模塊、鎖存模塊、譯碼模塊以及液晶控制模塊等組成。各個模塊完成計數(shù)、傳送數(shù)據(jù)等功能。在軟硬件的結(jié)合下,通過一定的控制程序,完成所要求的功能。1 緒論1 緒 論1.1 課題提出的意義基于PLD的等精度頻率計有運(yùn)算速度快、系統(tǒng)較穩(wěn)定、測量范圍廣操作預(yù)先修改方便等特點(diǎn)。其中主要應(yīng)用到EDA(電子設(shè)計自動化)技術(shù)。伴隨著集成電路技術(shù)的發(fā)展,PLD(可編程邏輯器件)逐漸成為重要的設(shè)計工具。PLD在設(shè)計過程中為客戶提供了更大的靈活性,因為對于PLD來說,設(shè)計反復(fù)只需要簡單地改變編程文件就可以了,而且設(shè)計改變的結(jié)果可立即在工作器件中看到。且PLD不需要漫長的前置時間來制造原型或正
10、式產(chǎn)品。在設(shè)計階段中客戶可根據(jù)需要修改電路,直到對設(shè)計工作感到滿意為止。常用的頻率測量方法有兩種:頻率測量法和周期測量法。頻率測量法是在時間t內(nèi)對被測信號的脈沖數(shù)N進(jìn)行計數(shù),然后求出單位時間內(nèi)的脈沖數(shù),即為被測信號的頻率。周期測量法是先測量出被測信號的周期T,然后根據(jù)頻率f=1T求出被測信號的頻率。但是上述兩種方法都會產(chǎn)生±1個被測脈沖的誤差,在實際應(yīng)用中有一定的局限性。根據(jù)測量原理,很容易發(fā)現(xiàn)頻率測量法適合于高頻信號測量,周期測量法適合于低頻信號測量,但二者都不能兼顧高低頻率同樣精度的測量要求。本設(shè)計利用PLD進(jìn)行測頻計數(shù),單片機(jī)實施控制實現(xiàn)頻率計的設(shè)計過程。該頻率計利用等精度的設(shè)
11、計方法,克服了基于測頻原理的頻率計的測量精度隨被測信號頻率的下降而降低的缺點(diǎn)。等精度的測量方法不但具有較高的測量精度,而且在整個測頻區(qū)域內(nèi)保持恒定的測試精度。并采用液晶顯示器顯示測量頻率。1.2 國內(nèi)外發(fā)展現(xiàn)狀電子設(shè)計用的可編程邏輯器件發(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è)計人員視為是邏輯解決方案的當(dāng)然之選。先進(jìn)的工藝技術(shù)在一系列關(guān)鍵領(lǐng)域為PLD提供了幫助:更快的性能、集成更多功能、降低功耗和成
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è)計利用PLD進(jìn)行測頻計數(shù),單片機(jī)實施控制實現(xiàn)頻率計的設(shè)計過程。該頻率計利用等精度的設(shè)計方法,克服了基于傳統(tǒng)測頻原理的頻率計的測量精度隨被測信號頻率的下降而降低的缺點(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è)計的邏輯電路具有時間可預(yù)測性,避免了分段式互連結(jié)構(gòu)時序不完全預(yù)測的缺點(diǎn)。2.1.2 發(fā)展歷史及應(yīng)用領(lǐng)域20世紀(jì)70年代,最早的可編程邏輯器件-PLD誕生了。其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因為它的硬件結(jié)構(gòu)設(shè)計可由軟件完成(相當(dāng)于房子蓋好后人工設(shè)計局部室內(nèi)結(jié)構(gòu)),因而它的設(shè)計比純硬件的數(shù)字電路具有很強(qiáng)的靈活性,但其過于簡單的結(jié)構(gòu)也
14、使它們只能實現(xiàn)規(guī)模較小的電路。為彌補(bǔ)PLD只能設(shè)計小規(guī)模電路這一缺陷,20世紀(jì)80年代中期,推出了復(fù)雜可編程邏輯器件-CPLD。目前應(yīng)用已深入網(wǎng)絡(luò)、儀器儀表、汽車電子、數(shù)控機(jī)床、航天測控設(shè)備等方面。2.1.3 器件特點(diǎn)它具有編程靈活、集成度高、設(shè)計開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計制造成本低、對設(shè)計者的硬件經(jīng)驗要求低、標(biāo)準(zhǔn)產(chǎn)品無需測試、保密性強(qiáng)、價格大眾化等特點(diǎn),可實現(xiàn)較大規(guī)模的電路設(shè)計,因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用CPLD器件。CPLD器件已成為電子產(chǎn)品不可缺少的組成部分,它的設(shè)計和應(yīng)用成
15、為電子工程師必備的一種技能。2.1.4 如何使用CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實現(xiàn)設(shè)計的數(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ā)器用以完成時序邏輯。與CPLD基本邏輯單元相關(guān)的另外一個重要概念是乘積項。所謂乘積項就是宏單元中與陣列的輸出,其數(shù)量標(biāo)志了CPLD容量。乘積項陣列實際上就是一個“與或”陣列,每一個交叉點(diǎn)都是一個可編程熔絲,如果導(dǎo)通就是實現(xiàn)“與”邏輯,在“與”陣列后一般還有一個“或”陣列,用以完成最小邏輯表達(dá)式中的“或”關(guān)系。(3)布線池、布線矩陣CPLD中的布線資源比FPGA的要簡單的多,布線資源也相對有限,一般采用集中式布線池結(jié)構(gòu)。所謂布線池其本質(zhì)就是一個開關(guān)矩陣,通過打結(jié)點(diǎn)可以完成不同宏單元的輸入與輸出項之間的連接。由于CPLD
17、器件內(nèi)部互連資源比較缺乏,所以在某些情況下器件布線時會遇到一定的困難。由于CPLD的布線池結(jié)構(gòu)固定,所以CPLD的輸入管腳到輸出管腳的標(biāo)準(zhǔn)延時固定,被成為Pin to Pin延時,用Tpd表示,Tpd延時反映了CPLD器件可以實現(xiàn)的最高頻率,也就清晰地表明了CPLD器件的速度等級。(4)其他輔助功能模塊如JTAG編程模塊,一些全局時鐘、全局使能、全局復(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ā)的整個流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進(jìn)行設(shè)計輸入、快速處理和器件編程。Altera的Quartus II提供了完整的多平臺設(shè)計環(huán)境,能滿足各種特定設(shè)計的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計的綜合性環(huán)境和SOPC開發(fā)的基本設(shè)計工具,并為Altera DSP開發(fā)包進(jìn)行系統(tǒng)模型設(shè)計提供了集成綜合環(huán)境。Quartus II設(shè)計工具完全支持VHDL、Verilog的設(shè)計流程,其內(nèi)部嵌有VHDL、Verilog邏輯綜合器。Quartus II也可以利用第三方的綜
19、合工具,如Leonardo Speetrum、SynplifyPro、FPGA Compi1er II,并能直接調(diào)用這些工具。同樣,Quartus II具備仿真功能,同時也支持第三方的仿真工具,如Modelsim。此外,Quartus II與MATLAB和DSP Builder結(jié)合,可以進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實現(xiàn)的關(guān)鍵EDA工具。Quartus II包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analysis & Synthesis)、適配器(Fitter)、裝配器(Assembler)、時序分析器(Timing Analyzer)、設(shè)計輔助模塊
20、(Design Assistant)、EDA網(wǎng)表文件生成器(EDA Netlist Writer)和編輯數(shù)據(jù)接口(Compsler Database Interfaee)等。可以通過選擇Start Colnpilation來運(yùn)行所有的編譯器模塊,也可以通過選擇Start單獨(dú)運(yùn)行各個模塊。還可以通過選擇Compiler Tool(Too1s菜單),在Compiler Tool窗口中運(yùn)行該模塊來啟動編譯器模塊。在Compiler Tool窗口中,可以打開該模塊的設(shè)置文件或報告文件,或打開其他相關(guān)窗口。此外,Quartus II還包含許多十分有用的LPM(Library of Parameteriz
21、ed Modules)模塊,它們是復(fù)雜或高級系統(tǒng)構(gòu)建的重要組成部分,在SOPC設(shè)計中被大量使用,也可在Quartus II普通設(shè)計文件一起使用。Altera提供的LPM函數(shù)均基于Altera器件的結(jié)構(gòu)做了優(yōu)化設(shè)計。在許多實用情況中,必須使用宏功能模塊才可以使用一些Altera特定器件的硬件功能。例如各類片上存儲器、DSP模塊、LVDS驅(qū)動器、PLL以及SERDES和DDIO電路模塊等。Quartus II編譯設(shè)計主控界面,它顯示了Quartus II自動設(shè)計的各主要處理環(huán)節(jié)和設(shè)計流程,包括設(shè)計輸入編輯、設(shè)計分析與綜合、適配、編程文件匯編(裝配)、時序參數(shù)提取以及編程下載幾個步驟。在圖2-1下排
22、的流程框圖,是與上面的Quartus II設(shè)計流程相對照的標(biāo)準(zhǔn)的EDA開發(fā)流程。 Quartus II編譯器支持的硬件描述語言有VHDL(支持VHDL87及VHDL97標(biāo)準(zhǔn))、Verizog HDL及AHDL(Altera HDL),AHDL是Altera公司自己設(shè)計、制定的硬件描述語言,是一種以結(jié)構(gòu)描述方式為主的硬件描述語言,只有企業(yè)標(biāo)準(zhǔn)。Quartus II允許來自第三方的EDIF文件輸入,并提供了很多EDA軟件的接口,Quartus II支持層次化設(shè)計,可以在一個新的編輯輸入環(huán)境中對使用不同輸入設(shè)計方式完成的模塊(元件)進(jìn)行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計的問題。在設(shè)計輸入之后
23、,Quartus II的編譯器將給出設(shè)計輸入的錯誤報告。 Quartus II擁有性能良好的設(shè)計錯誤定位器,用于確定文本或圖形設(shè)計中的錯誤。對于使用HDL的設(shè)計,可以使用Quartus II帶有的RTL Viewer觀察綜合后的RTL圖。在進(jìn)行編譯后,可對設(shè)計進(jìn)行時序仿真。在作仿真前,需要利用波形編輯器編輯一個波形激勵文件,用于仿真驗證時的激勵。編譯和仿真經(jīng)檢測無誤后,便可以將下載信息通過Quartus II提供的編程器下載入目標(biāo)器件中了。2.3 EDA的具體開發(fā)流程基于CPLD器件實現(xiàn)數(shù)字系統(tǒng)的流程如圖2-1所示。圖2-1 基于FPGA/CPLD的EDA設(shè)計流程圖基于CPLD器件的開發(fā)流程主
24、要包含設(shè)計輸入、綜合、FPGA適配、仿真和編程下載。2.3.1設(shè)計輸入設(shè)計輸入是設(shè)計者將所要設(shè)計的電路以開發(fā)軟件要求的某種形式表達(dá)出來,并輸入到相應(yīng)軟件中的過程。設(shè)計輸入有多種方式,最常用的是圖形輸入和HDL文本輸入兩種方法。 圖形輸入主要包括狀態(tài)圖輸入,波形圖輸入和原理圖輸入等。在HDL文本輸入中,最常用的硬件描述語言有Verilog HDL和VHDL等,Verilog HDL和VHDL的功能比較強(qiáng)大,屬于行為描述語言,能描述和仿真復(fù)雜的邏輯設(shè)計。2.3.2綜合綜合是將設(shè)計者在EDA平臺上編輯輸入的HDL文本、圖形描述,依據(jù)給定的硬件結(jié)構(gòu)和約束可知條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級
25、電路甚至更底層的電路描述網(wǎng)表文件的過程。綜合器就是能夠自動實現(xiàn)上述轉(zhuǎn)換的軟件工具。 綜合的方式有三種分別是行為綜合,邏輯綜合,版圖綜合(結(jié)構(gòu)綜合)。2.3.3 適配 適配是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,并產(chǎn)生最終的可下載文件的過程。 利用適配器將綜合后的網(wǎng)表文件針對某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線等。2.3.4 仿真 仿真,也稱為模擬,是對所設(shè)計的電路的功能驗證。用戶可以在設(shè)計的過程中對整個系統(tǒng)和各個模塊進(jìn)行仿真,即在計算機(jī)上用軟件驗證功能是否正確,各部分的時序配合是否準(zhǔn)確。若出現(xiàn)問題,則可以隨時修改,從而避免了邏輯錯誤。
26、高級的仿真軟件還可以對整個系統(tǒng)設(shè)計的性能進(jìn)行估計。規(guī)模越大的設(shè)計,越需要進(jìn)行仿真。仿真不消耗硬件資源,不浪費(fèi)時間,這樣就可避免不必要的損失。仿真包括功能仿真和時序仿真。2.3.5 編程下載和硬件測試把適配后生成的編程文件裝入到PLD器件中的過程稱為下載。通常將對基于EEPROM工藝的非易失結(jié)構(gòu)PLD器件的下載稱為編程(Program),而將基于SRAM工藝結(jié)構(gòu)的PLD器件的下載稱為配置(Configure)。最常用的編程方式有兩種分別是在系統(tǒng)編程(ISP,In System Programmable)和用專用的編程器編程。需要全文請聯(lián)系QQ8692608006 基于等精度頻率計的軟件模塊設(shè)計7
27、 系統(tǒng)的調(diào)試與整體測試7系統(tǒng)的調(diào)試與整體測試7.1液晶的調(diào)試液晶的調(diào)試可以檢查CPLD芯片內(nèi)部原理圖的存在與否,以及分析地址的正確性;還可以驗證液晶是否正常工作,即液晶的好壞等等作用。下面給出一個液晶的完整的調(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);/聲明延時程序,延時時間為10微秒void dmsec (unsigned int count);/聲明延時程序,延時時間count毫秒,void clear_screen(unsigned char *p); /聲明清屏程序,p=lift時清除左半屏, 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ù),對液晶左半屏進(jìn)行清零 clear_screen(lcd_right);/ 調(diào)用清屏函數(shù),對液晶右半屏進(jìn)行清零*lcd_lift=lcd_on;/利用液晶指令集的指令,打開液晶左半屏,使工作*lcd_right=lcd_on;/ 利用液晶指令集的指令,打開液晶右半屏,使工作/*lcd_lift=0xb8;/利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_lift=0x40;/ 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)
34、置為第一列for(i=0x00;i<=0x0f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字西的前16個字符到1至16列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_lift=0x40;/ 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第一列for(i=0x10;i<=0x1f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字西的后16個字符到1至16列delay_10us();/調(diào)用延時程序,進(jìn)行延時/*綜上所述,上述程序是將漢字
35、西在液晶左的第一和第二行的第1至16列這個區(qū)域內(nèi)顯示出來*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_lift=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第17列*/for(i=0x20;i<=0x2f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字安的前16個字符到17至32列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_li
36、ft=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第17列*/for(i=0x30;i<=0x3f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字安的后16個字符到17至32列delay_10us();/調(diào)用延時程序,進(jìn)行延時/*綜上所述,上述程序是將漢字安在液晶左的第一和第二行的第17至32列這個區(qū)域內(nèi)顯示出來*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_lift=0x40+0x20;/* 利用液晶的指令集指令,頁起始地址的列設(shè)
37、置,設(shè)置為第33列*/for(i=0x40;i<=0x4f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字交的后16個字符到33至48列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_lift=0x40+0x20;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第33列*/for(i=0x50;i<=0x5f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字交的后16個字符到33至48列delay_10us();/調(diào)用延時程序,進(jìn)行
38、延時/*綜上所述,上述程序是將漢字交在液晶左半屏的第一和第二行的第33至48列這個區(qū)域內(nèi)顯示出來*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第一行delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_lift=0x40+0x30;/*利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第49列*/for(i=0x60;i<=0x6f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字通的前16個字符到第一行的49至64列*lcd_lift=0xb9;/ 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行delay_10u
39、s();/調(diào)用延時程序,進(jìn)行延時*lcd_lift=0x40+0x30; /*利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第49列*/for(i=0x70;i<=0x7f;i+)*(lcd_lift+1)=hzdoti;/利用循環(huán)語句載入漢字通的后16個字符到第二行的49至64列delay_10us();/調(diào)用延時程序,進(jìn)行延時/*綜上所述,上述程序是將漢字通在液晶左半屏的第一和第二行的第49至64列這個區(qū)域內(nèi)顯示出來*/*lcd_right=0xb8;/* 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為右半屏第一行*/delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_r
40、ight=0x40;/ 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第1列for(i=0x80;i<=0x8f;i+)*(lcd_right+1)=hzdoti;/利用循環(huán)語句載入漢字大的前16個字符到右半屏的第一行的1至16列*lcd_right=0xb9;/* 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為第二行*/delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_right=0x40;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為第1列*/for(i=0x90;i<=0x9f;i+)*(lcd_right+1)=hzdoti;/利用循環(huán)語句載入漢字通的
41、后16個字符到右半屏的第二行的1至16列delay_10us();/調(diào)用延時程序,進(jìn)行延時/*綜上所述,上述程序是將漢字大在液晶右半屏的第一和第二行的第1至16列這個區(qū)域內(nèi)顯示出來*/*lcd_right=0xb8;/*利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為右半屏第一行*/delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_right=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為右半屏第17列*/for(i=0xa0;i<=0xaf;i+)*(lcd_right+1)=hzdoti;/利用循環(huán)語句載入漢字大的前16個字符到右半屏的第一行的17至32列*lcd_right=0xb9;/* 利用液晶的指令集指令,頁起始地址的行設(shè)置,設(shè)置為右半屏的第二行*/delay_10us();/調(diào)用延時程序,進(jìn)行延時*lcd_right=0x40+0x10;/* 利用液晶的指令集指令,頁起始地址的列設(shè)置,設(shè)置為右半屏的第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時勞動合同管理規(guī)定
- 一紙合同定乾坤:離婚孩子撫養(yǎng)權(quán)新規(guī)
- 個人合同轉(zhuǎn)讓授權(quán)委托書范文
- 個人與個人投資合作合同
- 中外技術(shù)研發(fā)合作合同范本
- 個人貸款合同模板版
- 個人與公司間的借款合同范本
- 個人與企業(yè)土地購置合同
- 上海市常用勞務(wù)合同范本
- 個人房產(chǎn)抵押借款合同
- 2022年中國電信維護(hù)崗位認(rèn)證動力專業(yè)考試題庫大全-上(單選、多選題)
- 《電氣作業(yè)安全培訓(xùn)》課件
- 水平二(四年級第一學(xué)期)體育《小足球(18課時)》大單元教學(xué)計劃
- 《關(guān)于時間管理》課件
- 醫(yī)藥高等數(shù)學(xué)智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項目 投標(biāo)方案(技術(shù)標(biāo))
- 水泥采購?fù)稑?biāo)方案(技術(shù)標(biāo))
- 醫(yī)院招標(biāo)采購管理辦法及實施細(xì)則(試行)
- 初中英語-Unit2 My dream job(writing)教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 廣州市勞動仲裁申請書
- 江西省上饒市高三一模理綜化學(xué)試題附參考答案
評論
0/150
提交評論