基于FPGA的直流電機(jī)系統(tǒng)控制研制_第1頁(yè)
基于FPGA的直流電機(jī)系統(tǒng)控制研制_第2頁(yè)
基于FPGA的直流電機(jī)系統(tǒng)控制研制_第3頁(yè)
基于FPGA的直流電機(jī)系統(tǒng)控制研制_第4頁(yè)
基于FPGA的直流電機(jī)系統(tǒng)控制研制_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

.z.---.可修編.本科畢業(yè)設(shè)計(jì)論文基于FPGA的直流電機(jī)控制系統(tǒng)研制學(xué)生**:*明達(dá)班級(jí):電自113學(xué)號(hào):0901011022指導(dǎo)教師:*曉峰所在單位:電氣工程學(xué)院答辯日期:2015年6月28日-.z.摘要EDA技術(shù)具有很強(qiáng)的實(shí)踐性,在學(xué)習(xí)過(guò)程中必須加強(qiáng)實(shí)際動(dòng)手能力的訓(xùn)練,將書本上介紹的理論知識(shí)與實(shí)際應(yīng)用相結(jié)合,從豐富多樣的實(shí)驗(yàn)操作中增加實(shí)踐經(jīng)驗(yàn),從應(yīng)用實(shí)例中學(xué)習(xí)和模仿編程方法,可以獲得事半功倍的效果。直流電機(jī)具有速度控制容易,啟、制動(dòng)性能良好等優(yōu)點(diǎn),本文利用了PWM(脈寬調(diào)制)調(diào)速方法。本課題介紹了利用FPGA對(duì)直流電機(jī)實(shí)現(xiàn)控制的方法及其電路設(shè)計(jì),直流電機(jī)轉(zhuǎn)速控制器,鋸齒波發(fā)生器,PMW波形發(fā)生器,來(lái)實(shí)現(xiàn)對(duì)直流電機(jī)的控制。采用VHDL語(yǔ)言對(duì)FPGA進(jìn)行編程,將直流電機(jī)轉(zhuǎn)速控制器和鋸齒波發(fā)生器的值進(jìn)行比較,從而實(shí)現(xiàn)對(duì)直流電機(jī)速度以及旋轉(zhuǎn)方向精確靈活的控制。關(guān)鍵詞:FPGA,直流電機(jī),VHDL,QuartusⅡAbstractThetechnologyofEDAhastheverystrongpracticality,wemuststrengthenthecapacityoftheactualhands-traininginthelearningprocess,wemustputtheknowledgewehavelearnedfromthebooksintoapplication,thenwecanaccumulatemuche*periencefromvariousoperations,wecanalsolearnhowtoprogramandimitateit.Thiscanbesuppressedeffectively.DCmotorshavemanyadvantages,suchaseasyspeedcontrollingandgoodstartingandbrakingperformance.ThisarticleintroduceshowtouseFPGAtocontroltheDCmotorsanddesignelectriccircuit,wecancontroltheDCmotorsthroughDCmotorspeedcontroller,sawtoothgeneratorandPMWwaveformgenerator.WeuseVHDLforFPGAprogramming,WeparethevalueoftheDCmotorspeedcontrollerandsawtoothgeneratorsothatwecancontrolthespeedofDCmotorandtherotationdirectionaccuratelyandfle*ibly.Keywords:FPGA,DCMotor,VHDL,QuartusII目錄摘要IAbstractII第1章緒論11.1課題研究背景及意義11.2課題研究現(xiàn)狀11.3本課題所做的工作1第2章EDA技術(shù)及VHDL描述語(yǔ)言32.1EDA的發(fā)展歷程32.1.1EDA的起源32.1.2EDA發(fā)展史及其主要內(nèi)容.32.2FPGA簡(jiǎn)介42.2.1FPGA的開發(fā)與配置52.2.2FPGA優(yōu)點(diǎn)及FPGA/CPLD的選擇52.3VHDL簡(jiǎn)介62.3.1VHDL的特點(diǎn)7第3章直流電機(jī)控制方案概述和對(duì)比83.1直流電機(jī)控制概述83.1.1直流電機(jī)控制方案對(duì)比83.1.2FPGA為核心器件的直流電機(jī)控制的系統(tǒng)構(gòu)成9第4章基于VHDL的硬件模塊設(shè)計(jì)104.1基于FPGA的直流電機(jī)PWM控制104.2實(shí)現(xiàn)系統(tǒng)控制的各模塊114.2.1直流電機(jī)轉(zhuǎn)速控制器(binary_up_down_counter)114.2.2鋸齒波發(fā)生器(binary_counter)154.2.3PMW波形發(fā)生器(CMP)164.3直流電機(jī)工作時(shí)序分析21第5章液晶圖文顯示225.1LCD液晶顯示225.5.1OCMJ液晶顯示器225.5.2模塊管腳說(shuō)明225.2液晶圖文顯示23結(jié)論27致謝28參考文獻(xiàn)29附錄1:原理圖30附錄2:液晶顯示部分實(shí)物圖31第1章緒論1.1課題研究背景及意義電動(dòng)機(jī)作為機(jī)電能量轉(zhuǎn)換裝置,一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用[1]。直流電機(jī)由于具有速度控制容易,啟、制動(dòng)性能良好,且在寬*圍內(nèi)平滑調(diào)速等特點(diǎn)而在冶金、制造、輕工等工業(yè)部門中得到廣泛應(yīng)用。由于現(xiàn)今集成電路、現(xiàn)代電力電子技術(shù)、控制理論的飛快發(fā)展,如今電機(jī)控制技術(shù)已經(jīng)得到普及,已經(jīng)由過(guò)去的提供動(dòng)力為目的轉(zhuǎn)變?yōu)榭梢詫?duì)電機(jī)進(jìn)行精確管制。通常應(yīng)用ALTERA公司的現(xiàn)場(chǎng)可編程門陣列(FPGA)芯片來(lái)進(jìn)行對(duì)電機(jī)控制器的設(shè)計(jì)、制造和調(diào)試且在此基礎(chǔ)上來(lái)分析研究應(yīng)用控制器對(duì)直流電機(jī)來(lái)進(jìn)行調(diào)度控制的方法。1.2課題研究現(xiàn)狀近幾年來(lái),由于微電子技術(shù)與計(jì)算機(jī)技術(shù)的飛速發(fā)展及單片機(jī)的普及,將調(diào)速裝置向密集化、小型化和智能化方向發(fā)展。國(guó)外交直流系統(tǒng)數(shù)字化已經(jīng)達(dá)到實(shí)用階段。由微處理器為技術(shù)核心的數(shù)字控制系統(tǒng)硬件電路的標(biāo)準(zhǔn)化程度高,需要成本低,并不受器件的溫度漂移所引起的影響。數(shù)字控制系統(tǒng)能夠有效的進(jìn)行邏輯判斷和復(fù)雜的運(yùn)算,能做到不同于一般線性調(diào)節(jié)的最優(yōu)化、適應(yīng)性、非線性、智能化等控制規(guī)律。如采用微機(jī)控制產(chǎn)生PWM信號(hào)。用微機(jī)或單片機(jī)產(chǎn)生PWM信號(hào)波形,需要通過(guò)D/A轉(zhuǎn)換器產(chǎn)生鋸齒波電壓和設(shè)置參考電壓,通過(guò)外接模擬比較器輸出PWM波形,因此外圍電路比較復(fù)雜[2]。單片機(jī),雖然DSP具備生成PWM信號(hào)及捕獲電機(jī)編碼器信號(hào)的能力,但其對(duì)IC生成PWM信號(hào)的通道數(shù)目及電機(jī)編碼器捕獲通道數(shù)目有限。對(duì)多個(gè)直流電機(jī)的控制很難滿足要求。基于現(xiàn)場(chǎng)可編程門陣列FPGA對(duì)直流電機(jī)的控制策略,為實(shí)現(xiàn)電動(dòng)機(jī)數(shù)字控制提供了一種有效的方法[3]。FPGA器件具有集成度高、體積小、運(yùn)算速度快、易于修改等特點(diǎn)。用FPGA來(lái)實(shí)現(xiàn)多路PWM調(diào)控,內(nèi)部自帶數(shù)模變換功能,不再需要外接數(shù)模轉(zhuǎn)換設(shè)備,形式簡(jiǎn)單,誤差小、控制性能強(qiáng)。用單片機(jī)和DSP的控制都難以達(dá)到同樣的控制效果。1.3本課題所做的工作FPGA的開發(fā)語(yǔ)言(VHDL語(yǔ)言)是一種用于數(shù)字系統(tǒng)設(shè)計(jì)和測(cè)試的硬件描述語(yǔ)言,也是我們國(guó)家極力推廣的一種標(biāo)準(zhǔn)語(yǔ)言。本課題采用VHDL語(yǔ)言編程,利用Altera公司的QuartusII開發(fā)平臺(tái)創(chuàng)建成調(diào)速系統(tǒng)所需的各個(gè)特殊功能“器件”。通過(guò)設(shè)計(jì)工具QuartusⅡ?qū)υO(shè)計(jì)進(jìn)行綜合、適配與時(shí)序仿真,利用FPGA器件—EP1K30實(shí)現(xiàn)對(duì)PMW占空比的調(diào)節(jié),從而達(dá)到對(duì)直流電機(jī)控制系統(tǒng)的設(shè)計(jì)[4]。具體工作如下:1.掌握VHDL硬件編程語(yǔ)言;2.掌握Altera公司推出的集成仿真工具QuartusII6.0的使用方法;3.利用VHDL硬件編程語(yǔ)言設(shè)計(jì)直流電機(jī)系分驅(qū)動(dòng)控制模塊工程項(xiàng)目;4.以EP1K30TC144-3器件為核心制作可實(shí)際運(yùn)行的直流電機(jī)系分驅(qū)動(dòng)控制硬件電路。第2章EDA技術(shù)及VHDL描述語(yǔ)言2.1EDA的發(fā)展歷程EDA的起源EDA是電子設(shè)計(jì)自動(dòng)化(ElectronicDesignAutomation)縮寫,是1965年結(jié)合了CAD、CAM、CAT和CAE的理念,并將其完善得到的。EDA技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語(yǔ)言HDL(HardwareDescriptionlanguage)完成的設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合及優(yōu)化、布局布線和仿真以及對(duì)于特定目標(biāo)芯片的適配編譯和編程下載等工作。典型的EDA工具中必須包含兩個(gè)特殊的軟件包,即綜合器和適配器。綜合器的功能就是將設(shè)計(jì)者在EDA平臺(tái)上完成的針對(duì)*個(gè)系統(tǒng)項(xiàng)目的HDL、原理圖或狀態(tài)圖形描述,針對(duì)給定的硬件系統(tǒng)組件,進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得我們欲實(shí)現(xiàn)功能的描述文件[4]。綜合器在工作前,要給定所要實(shí)現(xiàn)的硬件結(jié)構(gòu)參數(shù),其功能就是將軟件描述和所給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來(lái)。也就是,綜合器要在軟件描述與硬件實(shí)現(xiàn)間搭一座橋梁。綜合過(guò)程就是要將電路的高級(jí)語(yǔ)言描述轉(zhuǎn)換成低級(jí)的、可與目標(biāo)器件FPGA/CPLD相映射的網(wǎng)表文件。2.1.2EDA發(fā)展史及其主要內(nèi)容.人類已步入高度發(fā)達(dá)的信息化社會(huì),信息化社會(huì)的發(fā)展永遠(yuǎn)離不開電子產(chǎn)品的進(jìn)步。雖然電子產(chǎn)品的功能越來(lái)越強(qiáng)大,制作工藝也愈加繁瑣,可其價(jià)格卻只低不高,同時(shí)電子產(chǎn)品的淘汰速度逐年加開,淘汰率也逐年增大,導(dǎo)致上述現(xiàn)象的因素很多,但之所以有這樣飛躍性的發(fā)展,要?dú)w功于電子設(shè)計(jì)技術(shù)的日益發(fā)達(dá)。電子設(shè)計(jì)技術(shù)當(dāng)中應(yīng)用最廣泛的便是EDA。EDA可以對(duì)以下三種設(shè)計(jì)進(jìn)行輔助:IC設(shè)計(jì)電子電路設(shè)計(jì)PCB設(shè)計(jì)在EDA沒(méi)有被研發(fā)成功時(shí),要實(shí)現(xiàn)超大規(guī)模集成電路的設(shè)計(jì)制造是不可能的,同時(shí),怎樣完善EDA來(lái)適應(yīng)發(fā)展愈發(fā)快速的電子設(shè)計(jì)工業(yè),是一個(gè)值得探討的問(wèn)題。EDA技術(shù)有三個(gè)發(fā)展階段:(1)第一個(gè)階段為CAD的應(yīng)用,在這個(gè)階段以前,人們對(duì)于版圖設(shè)計(jì),布局等工作只能手工完成。而在這之后,人們開始利用計(jì)算機(jī)對(duì)其進(jìn)行輔助工作。這個(gè)時(shí)期的主要存在兩個(gè)問(wèn)題,即:EDA軟件的功能單一,相互獨(dú)立;對(duì)相對(duì)復(fù)雜的電子系統(tǒng)設(shè)計(jì),不能提供系統(tǒng)級(jí)的仿真和綜合,所以在設(shè)計(jì)中錯(cuò)誤只能在產(chǎn)品開發(fā)的后期才能發(fā)現(xiàn),這時(shí)想要修正是十分困難的。(2)八十年代為CAE階段,與CAD相比,除了純粹的圖形繪制功能外,又增加了電路功能設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì),并通過(guò)電氣連接網(wǎng)絡(luò)表將兩者結(jié)合于一起,實(shí)現(xiàn)了工程設(shè)計(jì),這就是計(jì)算機(jī)輔助工程的概念。CAE的主要作用是:原理圖輸入,邏輯仿真,電路分析,自動(dòng)布局布線,PCB后分析。在這個(gè)階段中,基于門陣列和標(biāo)準(zhǔn)單元庫(kù)設(shè)計(jì)的半定制ASIC得到了極大的發(fā)展,將電子系統(tǒng)設(shè)計(jì)推入了ASIC時(shí)代。但是,大部分從原理圖出發(fā)的CAE工具仍然不能適應(yīng)復(fù)雜電子系統(tǒng)的要求,而且具體化的元件圖形也制約著優(yōu)化設(shè)計(jì)。(3)九十年代為ESDA階段。盡管CAD/CAE的技術(shù)取得了巨大的成功,但并沒(méi)有將人從繁重的設(shè)計(jì)工作中徹底的解放出來(lái)。在整個(gè)的設(shè)計(jì)過(guò)程中,自動(dòng)化與智能化的程度還不高,各種EDA軟件界面也千差萬(wàn)別,要學(xué)習(xí)并使用很困難,并且互不兼容,這直接影響到了設(shè)計(jì)環(huán)節(jié)間的銜接。針對(duì)上述的情況,更多學(xué)者開始追求貫徹整個(gè)設(shè)計(jì)過(guò)程的自動(dòng)化,這就是ESDA即電子系統(tǒng)設(shè)計(jì)自動(dòng)化。從目前的EDA技術(shù)來(lái)看,其未來(lái)趨勢(shì)是政府重視、使用普及、應(yīng)用廣泛、工具多樣、軟件功能強(qiáng)大[5]。EDA技術(shù)相當(dāng)于在電子設(shè)計(jì)領(lǐng)域中發(fā)起的一場(chǎng)變革,它一直引領(lǐng)著電子設(shè)計(jì)領(lǐng)域走向更高的高度,如今正在飛速發(fā)展階段,新的EDA工具正在不斷的被開發(fā)出來(lái),但國(guó)內(nèi)的EDA技術(shù)的應(yīng)用水平長(zhǎng)期落后于發(fā)達(dá)國(guó)家,廣大電子工程人員需盡早掌握這一先進(jìn)技術(shù),這不僅是提高設(shè)計(jì)效率的需要,更是我國(guó)電子工業(yè)在世界市場(chǎng)上生存、競(jìng)爭(zhēng)與發(fā)展的需求。2.2FPGA簡(jiǎn)介FPGA(FieldProgrammableGateArray)即現(xiàn)場(chǎng)可編程門陣列,它是在PAL(ProgrammableLogicArray)、GAL(GenericLogicArray)、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。FPGA是一種半定制電路,它不僅彌補(bǔ)了定制電路的不足,也在一定程度上改進(jìn)了原始的可編程門列陣門數(shù)受限的劣勢(shì)。它是一種采用可編程互連連接在一起的邏輯單元陣結(jié)構(gòu)。是其內(nèi)部呈陣列狀排列的多個(gè)可配置邏輯塊(CLB),可以提供用戶需要的邏輯功能;四周圍繞輸入/輸出接口塊(IOB),可以提供內(nèi)部邏輯和外部封裝之間的接口;其余為垂直交叉的可編程互連資源,用于在塊與塊之間的傳輸信號(hào),類似與連接中,小規(guī)模集成電路器件的印刷版上的走線[6]。FPGA較原有電路的優(yōu)勢(shì):體積小、精度高、響應(yīng)迅速、靈活性、穩(wěn)定性,可無(wú)限次反復(fù)編程,主要是能現(xiàn)場(chǎng)模擬調(diào)試驗(yàn)證。通常利用FPGA器件很短時(shí)間內(nèi)便可以實(shí)現(xiàn)電子系統(tǒng)的設(shè)計(jì)和制造。利用研制周期短這一優(yōu)勢(shì),在上市時(shí)間和制作成本等方面都有很好的效果。FPGA有著很強(qiáng)的‘變通能力’,當(dāng)數(shù)據(jù)輸入發(fā)生變化時(shí),其電路功能也發(fā)生相應(yīng)的變化。所以FPGA已經(jīng)成為許多領(lǐng)域中運(yùn)用最普遍的一種電路。2.2.1FPGA的開發(fā)與配置FPGA的設(shè)計(jì)是應(yīng)用FPGA開發(fā)系統(tǒng)完成的。人們要做的僅僅是將硬件描述語(yǔ)言或電路原理圖輸入計(jì)算機(jī),F(xiàn)PGA開發(fā)系統(tǒng)便可以自動(dòng)完成設(shè)計(jì)過(guò)程,完成FPGA的內(nèi)部配置,使硬件描述語(yǔ)言或電路原理圖所描述的功能,這樣一塊空白的FPGA芯片就變成了一塊特殊功能ASIC芯片。常用的配置模式有:并行主模式:一個(gè)FPGA加一個(gè)EPROM;(2)主從模式:用一個(gè)PROM可對(duì)多個(gè)FPGA進(jìn)行編程;(3)外設(shè)模式:將FPGA作為微處理器的外設(shè);(4)串行模式:可以采用串行PROM編程FPGA。2.2.2FPGA優(yōu)點(diǎn)及FPGA/CPLD的選擇PGA采用了邏輯單元陣列LCA(LogicCellArray)這樣一個(gè)新概念,其內(nèi)部含有三個(gè)部分,分別是:可配置邏輯模塊CLB(ConfigurableLogicBlock)輸出輸入模塊IOB(InputOutputBlock)內(nèi)部連線(Interconnect)所以FPGA具有很多的基本特點(diǎn),主要有:1)設(shè)計(jì)ASIC時(shí),用戶無(wú)須進(jìn)行投片生產(chǎn),便可制作出合適的芯片。2)可用作其它ASIC電路試樣片。3)內(nèi)部含充足的觸發(fā)器和輸入輸出引腳。4)具有設(shè)計(jì)周期短、成本低的優(yōu)點(diǎn)。5)CHMOS的運(yùn)用,減小了功耗,能和CMOS、TTL電平兼容??梢哉f(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。CPLD是由GAL(GenericLogicArray)發(fā)展起來(lái)的,其主題結(jié)構(gòu)人人是與或陣列,具有ISP功能的CPLD器件由于具有和FPGA器件相似的集成度和易用性,使其在可編程邏輯期間技術(shù)的競(jìng)爭(zhēng)中和FPGA并駕齊驅(qū),成為兩支領(lǐng)導(dǎo)可編程器件技術(shù)發(fā)展的力量之一[7]。在很多的時(shí)候需要對(duì)兩者進(jìn)行比較,使用最佳選擇,這里簡(jiǎn)單比較如下。FPGA與CPLD都是可編程ASIC器件,有很多共同的特點(diǎn),且在一些領(lǐng)域中,它都體現(xiàn)出巨大的優(yōu)勢(shì),但基于兩者的結(jié)構(gòu)不同,它們的特征也存在著一定的不同當(dāng)今世界正經(jīng)歷著波瀾壯闊的科技技術(shù)的巨大變革,F(xiàn)PGA等可編程邏輯器件技術(shù)發(fā)展一日千里,推動(dòng)著電子技術(shù)設(shè)計(jì)的變革和深入發(fā)展,我們應(yīng)該不斷更新知識(shí),掌握不斷發(fā)展的科學(xué)技術(shù)2.3VHDL簡(jiǎn)介目前用于CPLD/FPGA、ASIC設(shè)計(jì)的語(yǔ)言種類有如下幾種:VHDL語(yǔ)言、Verilog語(yǔ)言、AHDL語(yǔ)言、ABEL語(yǔ)言等。其中在CPLD/FPGA編程中使用最廣泛的當(dāng)屬VHDL語(yǔ)言和AHDL語(yǔ)言,但Verilog以其統(tǒng)一的標(biāo)準(zhǔn),強(qiáng)大的描述能力,也逐漸被用戶接受[9]。VHDL的英文全稱是VHSIC(VeryHighSpeedIntegratedCircuitHdwareDescriptionLanguage),誕生于1982年。1987年底,VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。自IEEE-1076(簡(jiǎn)稱87版)之后,各EDA公司相繼推出自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,簡(jiǎn)稱93版。現(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言[10]。相信,在未來(lái),VHDL將擔(dān)負(fù)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。2.3.1VHDL的特點(diǎn)VHDL語(yǔ)言是一種用于電路設(shè)計(jì)的高級(jí)語(yǔ)言,主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)/行為/功能和接口。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體分成外部和內(nèi)部,既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)是多方面的[11]。與其它的硬件描述語(yǔ)言比較,VHDL擁有更為強(qiáng)大的行為描述能力,這也奠定了它會(huì)是系統(tǒng)設(shè)計(jì)領(lǐng)域的最佳硬件描述語(yǔ)言。其強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。VHDL具有豐富的仿真語(yǔ)句和庫(kù)函數(shù),使它能在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,并隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)對(duì)大規(guī)模系統(tǒng)高效的需求,且能高速完成需由多人或多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)的設(shè)計(jì)。對(duì)于用VHDL來(lái)完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)對(duì)立性,使設(shè)計(jì)者可以不必懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)現(xiàn)實(shí)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。VHDL本身的生命周期長(zhǎng)。第3章直流電機(jī)控制方案概述和對(duì)比3.1直流電機(jī)控制概述直流電機(jī)由于具有速度控制容易,啟、制動(dòng)性能良好,且在寬*圍內(nèi)平滑調(diào)速等特點(diǎn)而在冶金、制造、輕工等工業(yè)部門中得到廣泛應(yīng)用。通常我們將直流電動(dòng)機(jī)轉(zhuǎn)速的控制方法分為兩類,一類是勵(lì)磁控制法,另一類是電樞電壓控制法。勵(lì)磁控制法控制磁通,其控制功率雖然小,但低速時(shí)受到磁飽和的限制,高速時(shí)受到換向火花和換向器結(jié)構(gòu)強(qiáng)度的限制;而且由于勵(lì)磁線圈電感較大,動(dòng)態(tài)響應(yīng)較差。所以我們常用的控制方法是改變電樞端電壓調(diào)速的電樞電壓控制法。通過(guò)調(diào)節(jié)電阻R就可以改變端電壓,從而達(dá)到調(diào)速目的。但是用這種傳統(tǒng)的調(diào)壓調(diào)速方法效率非常低。如今隨著電力電子技術(shù)的進(jìn)步,出現(xiàn)了許多新的電樞電壓控制方法,其中PWM(脈寬調(diào)制)是常用的一種調(diào)速方法。其基本原理是用改變電機(jī)電樞(定子)電壓的接通和斷開的時(shí)間比(占空比)來(lái)控制馬達(dá)的速度,在脈寬調(diào)速系統(tǒng)中,當(dāng)電機(jī)通電時(shí),其速度增加;電機(jī)斷電時(shí),其速度減低[12]。只需按一定的規(guī)律改變通、斷電的時(shí)間,就可以使電機(jī)的速度達(dá)到并保持一穩(wěn)定值。本文采取了FPGA來(lái)改進(jìn)步進(jìn)電機(jī)多路PWM控制,內(nèi)部自帶數(shù)模變換功能,不再需要外接數(shù)模轉(zhuǎn)換設(shè)備,形式簡(jiǎn)單,誤差小、控制性能強(qiáng)。用單片機(jī)和DSP的控制都難以達(dá)到同樣的控制效果。3.1.1直流電機(jī)控制方案對(duì)比由于以微處理器為核心的數(shù)字控制系統(tǒng)硬件電路的標(biāo)準(zhǔn)化程度高,制作成本低,又不受器件溫度漂移的影響。其控制軟件能夠進(jìn)行邏輯判斷和復(fù)雜運(yùn)算,能夠?qū)崿F(xiàn)不同于一般線性調(diào)節(jié)的最優(yōu)化、自適應(yīng)、非線性、智能化等控制規(guī)律。如采用微機(jī)控制產(chǎn)生PWM信號(hào)[13]。一般的PWM信號(hào)事通過(guò)模擬比較器產(chǎn)生的,比較器的一端接給定的參考電壓,另一端接周期性線性增加的鋸齒波電壓。當(dāng)鋸齒波電壓小于參考電壓時(shí)輸出低電平,當(dāng)鋸齒波電壓大于參考電壓時(shí)輸出高電平。改變參考電壓就可以改變PWM波形中的高電平的寬度。若用微機(jī)或單片機(jī)產(chǎn)生PWM信號(hào)波形,需要通過(guò)D/A轉(zhuǎn)換器產(chǎn)生鋸齒波電壓和設(shè)置參考電壓,通過(guò)外接模擬比較器輸出PWM波形,因此外圍電路比較復(fù)雜。FPGA中的數(shù)字PWM控制與一般的模擬PWM控制不同。用FPGA產(chǎn)生PWM波形,只需FPGA內(nèi)部資源就可以實(shí)現(xiàn)。用數(shù)字比較器代替模擬比較器,數(shù)字比較器的一端接設(shè)定值計(jì)數(shù)器輸出,另一端接線性遞增計(jì)數(shù)器輸出。當(dāng)線性計(jì)數(shù)器的計(jì)數(shù)值小于設(shè)定值時(shí)輸出低電平,當(dāng)計(jì)數(shù)器大于設(shè)定值時(shí)輸出高電平。與模擬控制相比,省去了外接的D/A轉(zhuǎn)換器和模擬比較器,F(xiàn)PGA外部連線很少,電路更加簡(jiǎn)單,便于控制[14]。具有廣泛的應(yīng)用前景。經(jīng)過(guò)對(duì)比本課題決定采用基于FPGA的直流電機(jī)控制系統(tǒng)。FPGA為核心器件的直流電機(jī)控制的系統(tǒng)構(gòu)成直流電機(jī)控制系統(tǒng)主要由五部分組成,如圖3-1所示:直流電機(jī)轉(zhuǎn)速控制器,鋸齒波發(fā)生器,PMW波形發(fā)生器,直流電機(jī)轉(zhuǎn)動(dòng)方向控制器和由功率放大電路和H橋組成的正∕反轉(zhuǎn)功率驅(qū)動(dòng)電路。圖3-1FPGA直流電機(jī)控制電路第4章基于VHDL的硬件模塊設(shè)計(jì)4.1基于FPGA的直流電機(jī)PWM控制如圖4-1所示:直流電機(jī)控制系統(tǒng)主要由五部分組成:直流電機(jī)轉(zhuǎn)速控制器,鋸齒波發(fā)生器,PMW波形發(fā)生器,直流電機(jī)轉(zhuǎn)動(dòng)方向控制器和由功率放大電路和H橋組成的正∕反轉(zhuǎn)功率驅(qū)動(dòng)電路。圖4-1直流電機(jī)PMW控制圖圖4-1所示電路完成的主要功能為:Enable為使能信號(hào),當(dāng)Enable=1時(shí)允許調(diào)速,相反當(dāng)Enable=0時(shí)則禁止調(diào)速。Up_Down為加速\減速控制信號(hào),當(dāng)Up_Down=1,輸入CLK1使直流電機(jī)轉(zhuǎn)速控制器計(jì)數(shù)器的輸出值增大,PMW占空比增大,電機(jī)轉(zhuǎn)速加快;當(dāng)Up_Down=0,輸入CLK1使直流電機(jī)轉(zhuǎn)速控制器的輸出值減小,PMW的占空比減小,電機(jī)轉(zhuǎn)速變慢。在CLK0的作用下,鋸齒波計(jì)數(shù)器輸出周期性線性增加的鋸齒波。當(dāng)鋸齒波的計(jì)數(shù)值小于直流電機(jī)轉(zhuǎn)速控制器的設(shè)定值時(shí),數(shù)字比較器輸出高電平;當(dāng)鋸齒波的計(jì)數(shù)值大于直流電機(jī)轉(zhuǎn)速控制器的設(shè)定值時(shí),數(shù)字比較器輸出低電平,由此產(chǎn)生周期性的PMW波形。旋轉(zhuǎn)方向控制電路控制控制直流電動(dòng)機(jī)轉(zhuǎn)向和啟∕停,該電路由兩個(gè)2選1多路選擇器組成,Zheng_Fan為方向控制信號(hào),Zheng_Fan引腳控制選擇進(jìn)入H橋的PMW波形,以控制電機(jī)的旋轉(zhuǎn)方向。Start_Stop為啟/停信號(hào),Start_Stop引腳通過(guò)“與”門控制PMW的輸出,實(shí)現(xiàn)對(duì)電機(jī)的工作∕停止控制。H橋電路由大功率晶體管組成,PMW波形經(jīng)方向控制電路送至H橋,將功率放大以后驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。PMW控制電路由直流電機(jī)轉(zhuǎn)速控制器(binary_up_down_counter)和鋸齒波發(fā)生器(binary_counter)組成。binary_up_down_counter是一個(gè)簡(jiǎn)單的5位二進(jìn)制計(jì)數(shù)器,做直流電機(jī)轉(zhuǎn)速控制器,而binary_counter是一個(gè)線性遞增計(jì)數(shù)器,作鋸齒波發(fā)生器,其余的模塊是2選1多路選擇器和比較器。鋸齒波發(fā)生器在CLK0的激勵(lì)下輸出從0開始的逐漸增大的鋸齒波。兩路計(jì)數(shù)器的輸出同時(shí)加在數(shù)字比較器上,當(dāng)直流電機(jī)轉(zhuǎn)速控制器輸出值小于鋸齒波發(fā)生器輸出的值,比較器輸出低電平;當(dāng)直流電機(jī)轉(zhuǎn)速控制器輸出大于鋸齒波發(fā)生器輸出的值時(shí),比較器輸出高電平。這樣就產(chǎn)生了占空比保持不變的方波。改變直流電機(jī)轉(zhuǎn)速控制器的設(shè)定值initial時(shí),就可以改變PMW輸出信號(hào)的在占空比即初調(diào);直流電機(jī)轉(zhuǎn)速控制器是一個(gè)雙向計(jì)數(shù)器,能夠進(jìn)行加∕減計(jì)數(shù),由Up_Down控制其加∕減計(jì)數(shù)方向,在時(shí)鐘CLK上升沿到來(lái)時(shí)可以改變binary_up_down_counter的輸出即微調(diào)。為了方便連續(xù)變速控制,在計(jì)數(shù)器CLK端通過(guò)“與”門,加入了CLK1外部變速控制附加時(shí)鐘,并由Enable信號(hào)控制是否允許變速。4.2實(shí)現(xiàn)系統(tǒng)控制的各模塊4.2.1直流電機(jī)轉(zhuǎn)速控制器(binary_up_down_counter)直流電機(jī)轉(zhuǎn)速控制器(binary_up_down_counter)是一個(gè)可控制的加減計(jì)數(shù)器,作細(xì)分計(jì)數(shù)器。輸出CQ[4.0]加載到數(shù)字比較器的一端。通過(guò)VHDL語(yǔ)言實(shí)現(xiàn)的直流電機(jī)轉(zhuǎn)速控制器硬件電路如圖4-2所示:圖4-2直流電機(jī)轉(zhuǎn)速控制器通過(guò)VHDL語(yǔ)言的編譯定義了直流電機(jī)轉(zhuǎn)速控制器硬件電路的五個(gè)輸入引腳,分別為系統(tǒng)時(shí)鐘引腳(CLK)、數(shù)據(jù)清零引腳(Reset)、使能輸入引腳(Enable)、變速控制引腳(Up_Down)、起始數(shù)據(jù)輸入引腳(Initial)。還有一個(gè)輸出端(CQ)。直流電機(jī)轉(zhuǎn)速控制器是一個(gè)雙向計(jì)數(shù)器,能夠進(jìn)行加∕減計(jì)數(shù),并由Up_Down控制其加∕減計(jì)數(shù)方向,CLK是計(jì)數(shù)時(shí)鐘輸入端。為了方便連續(xù)變速控制,在計(jì)數(shù)器CLK端通過(guò)“與”門,加入了CLK1外部變速控制附加時(shí)鐘,并由Enable信號(hào)控制是否允許變速。Reset為清零鍵用來(lái)控制初值是否給定。Initial用來(lái)給定控制直流電機(jī)速度的初始值,即給定初始速度。幾個(gè)輸入引腳相互配合起到了對(duì)直流電機(jī)轉(zhuǎn)速控制器控制速度的功能。具體程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.numeric_std.all;entitybinary_up_down_counteris port ( clk :instd_logic; reset :instd_logic; enable :instd_logic; updown :instd_logic; Initial :instd_logic_vector(4downto0); CQ :outstd_logic_vector(4downto0) );endentity;直流電機(jī)轉(zhuǎn)速控制器是五位的加減計(jì)數(shù)器,計(jì)數(shù)器加的過(guò)程實(shí)為系統(tǒng)的加速過(guò)程,相反減的過(guò)程為系統(tǒng)的減速過(guò)程。直流電機(jī)轉(zhuǎn)速控制器輸出的數(shù)據(jù)被連到PMW波形發(fā)生器(數(shù)字比較器)與鋸齒波發(fā)出的數(shù)據(jù)相比較,從而完成直流電機(jī)速度的控制。初值的加入,當(dāng)reset引腳輸入低電平時(shí)由initial引腳輸入五位數(shù)據(jù)初值,從而給定直流電機(jī)的初始速度。系統(tǒng)的加速過(guò)程,當(dāng)enable引腳輸入高電平且up_down引腳輸入高電平時(shí),此時(shí)直流電機(jī)轉(zhuǎn)速控制器進(jìn)行一個(gè)加的過(guò)程,通過(guò)比較與鋸齒波發(fā)生器發(fā)出的數(shù)值使輸出波形的占空比變大,從而達(dá)到直流電機(jī)加速的目的。相反enable引腳輸入低電平則不發(fā)生加速過(guò)程。系統(tǒng)的加速過(guò)程,當(dāng)enable引腳輸入高電平且up_down引腳輸入低電平時(shí),此時(shí)直流電機(jī)轉(zhuǎn)速控制器進(jìn)行一個(gè)減的過(guò)程,通過(guò)比較與鋸齒波發(fā)生器發(fā)出的數(shù)值使輸出波形的占空比變小,從而達(dá)到直流電機(jī)減速的目的。具體程序如下:architecturertlofbinary_up_down_counteris signalInit :std_logic_vector(4downto0);begin init<=initial; process(clk) variablet:std_logic_vector(4downto0); begin --Synchronouslyupdatecounter ifreset='0'then --Resetthecountertoinitial t:=init; elsif(rising_edge(clk))then ifenable='1'then ifupdown='1'then ift="11111"thent:=t; elset:=t+1; endif; else ift="00000"thent:=t; elset:=t-1; endif; endif; endif; endif; CQ<=t; endprocess;endrtl;直流電機(jī)轉(zhuǎn)速控制器功能仿真如圖4-3所示:當(dāng)輸入時(shí)鐘clk為上升沿時(shí),輸出值CQ就會(huì)加1。輸出值*圍由0可以自加到31。圖4-3binary_up_down_counter仿真波形圖4.2.2鋸齒波發(fā)生器(binary_counter)鋸齒波發(fā)生器(線性遞增計(jì)數(shù)器)通過(guò)脈寬時(shí)鐘作用下遞增計(jì)數(shù),產(chǎn)生階梯形上升的周期性的鋸齒波。鋸齒波發(fā)生器輸出五位數(shù)據(jù)。鋸齒波發(fā)生器確定了脈沖的寬度,其輸出的數(shù)據(jù)被連到PMW波形發(fā)生器與直流電機(jī)轉(zhuǎn)速控制器輸出的數(shù)據(jù)比較。從而達(dá)到了對(duì)占空比的控制。通過(guò)VHDL語(yǔ)言實(shí)現(xiàn)的鋸齒波發(fā)生器硬件電路如圖4-4所示:圖4-4binary_counter(鋸齒波發(fā)生器)具體設(shè)計(jì)程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.numeric_std.all;entitybinary_counteris port ( clk :instd_logic; CQ :outstd_logic_vector(4downto0) );endentity;architecturertlofbinary_counterisbegin process(clk) variablet:std_logic_vector(4downto0); begin if(rising_edge(clk))then ift="11111"thent:="00000"; else t:=t+1; endif; endif; --Outputthecurrentcount CQ<=t; endprocess;endrtl;鋸齒波發(fā)生器功能仿真如圖4-5所示:當(dāng)輸入時(shí)鐘clk為上升沿時(shí),輸出值CQ就會(huì)加1。輸出值*圍由0可以自加到31。圖4-5binary_counter仿真波形4.2.3PMW波形發(fā)生器(CMP)PMW波形發(fā)生器(數(shù)字比較器)用來(lái)對(duì)鋸齒波發(fā)生器和直流電機(jī)轉(zhuǎn)速控制器輸出值的大小做比較,當(dāng)鋸齒波發(fā)生器的值小于直流電機(jī)轉(zhuǎn)速控制器的設(shè)定值時(shí)輸出高電平,當(dāng)鋸齒波發(fā)生器的值大于直流電機(jī)轉(zhuǎn)速控制器的設(shè)定值時(shí)輸出低電平。由此可輸出周期性的PWM波形。其硬件電路如圖4-6所示:圖4-6比較器PMW波形發(fā)生器的生成步驟如下:(1)打開MegaWizardPlugInManager初始對(duì)話框。選擇Tools→MegaWaizardPlugInManager命令,打開如圖對(duì)話框,選中Createanewcustommegafuncitionvariation單選按鈕,即定制一個(gè)新的模塊。如圖4-7所示:圖4-7定制新的宏功能塊(2)單擊Ne*t按鈕后,打開如圖對(duì)話框,在左欄選擇storage項(xiàng)下的LPMPARE然后選擇ACE*1K器件和VHDL語(yǔ)言方式:最后再輸入文件存放的路徑和文件名。如圖4-8所示:圖4-8比較器選擇定義路徑(3)比較器的生成如圖4-9所示:圖4-9采用LPM宏功能模塊生成的位比較器(4)單擊Ne*t按鈕,由于本文涉及到的數(shù)值不為常數(shù)且無(wú)符號(hào),所以分別選擇No和Unsigned。如圖4-10所示::圖4-10選擇數(shù)的類型(5)單擊Ne*t按鈕,選擇No即不加時(shí)鐘。如圖4-11所示:圖4-11時(shí)鐘的選擇(6)生成的文件會(huì)保存在設(shè)定的路徑當(dāng)中。如圖4-12所示:圖4-12完成定制4.3直流電機(jī)工作時(shí)序分析圖4-13直流電機(jī)PWM仿真波形圖圖4-13是直流電機(jī)仿真波形圖,給出了直流電機(jī)工作過(guò)程的仿真波形。圖中展示了FPGA控制直流電機(jī)的情況。直流電機(jī)轉(zhuǎn)速控制器輸出的5位數(shù)據(jù)作為直流電機(jī)電流的參考值,通過(guò)PMW波形發(fā)生器來(lái)調(diào)節(jié)占空比,從而達(dá)到調(diào)節(jié)直流電機(jī)速度的目的。圖中,Start_Stop用來(lái)控制直流電機(jī)的啟動(dòng)和停止,Enable為使能信號(hào)用來(lái)命令直流電機(jī)是否加速,Reset為清零信號(hào)當(dāng)為低電平時(shí)允許輸入初始值。Up_Down則為控制速度的信號(hào)當(dāng)為高電平時(shí)電機(jī)開始加速,低電平時(shí)電機(jī)開始減速。Zheng_Fan則用來(lái)調(diào)節(jié)直流電機(jī)的方向,當(dāng)為高電平時(shí)正向旋轉(zhuǎn),低電平時(shí)為反向旋轉(zhuǎn)。實(shí)測(cè)結(jié)果表明,通過(guò)啟∕停信號(hào)、使能信號(hào)、清零信號(hào)、速度控制信號(hào)、方向控制信號(hào)的設(shè)置可以對(duì)直流電機(jī)的速度方向做出精確的控制。

第5章液晶圖文顯示5.1LCD液晶顯示由于液晶顯示器具有體積小,功耗低,質(zhì)量輕等特點(diǎn),因此廣泛應(yīng)用于各種智能型儀器和低功耗電子產(chǎn)品中。許多電子公司相繼推出各種型號(hào)各種系列的液晶顯示模塊,這些模塊不僅可以顯示字符和數(shù)字,有的還可以顯示各種圖形和漢字。這里介紹了液晶顯示器OCMJ液晶顯示器及軟件編程特點(diǎn)。5.5.1OCMJ液晶顯示器OCMJ液晶顯示器內(nèi)含GB231216×16點(diǎn)陣國(guó)標(biāo)一級(jí)簡(jiǎn)體漢字和ASCII8×8點(diǎn)陣英文字庫(kù),輸入?yún)^(qū)位碼或ASCII碼即可實(shí)現(xiàn)文本顯示。它同時(shí)為用戶提供位點(diǎn)陣和字節(jié)點(diǎn)陣兩種圖形顯示功能,用戶可在指定的屏幕位置上以位為單位或以字節(jié)為單位進(jìn)行圖形顯示。完全兼容一般的點(diǎn)陣模塊。OCMJ中文模塊所有的設(shè)置初始化工作都是在上電時(shí)自動(dòng)完成的,實(shí)現(xiàn)了“即插即用”。同時(shí)保留了一條專用的復(fù)位線供用戶接口命令代碼,非常容易記憶。標(biāo)準(zhǔn)擁護(hù)硬件接口采用REQ/BUSY握手協(xié)議,簡(jiǎn)單可靠。5.5.2模塊管腳說(shuō)明LCD+/LCD-為背光源引腳,由用戶接上相應(yīng)的電阻調(diào)整LCD背光亮度,電阻阻值在10~30Ω之間。RT1/RT2接腳為輝度調(diào)節(jié)電位器接腳,接10kB左右電位器可調(diào)節(jié)輝度。RESET為低電平有效。接口協(xié)議為請(qǐng)求/應(yīng)答(REQ/BUSY)握手方式。應(yīng)答B(yǎng)USY高電平(BUSY=1)表示OCMJ忙于內(nèi)部處理,不能接收用戶命令;BUSY低電平(BUSY=0)表示OCMJ空閑,等待接收用戶命令。發(fā)送命令到OCMJ可在BUSY=0后的任意時(shí)刻開始,先把用戶命令的當(dāng)前字節(jié)放到數(shù)據(jù)線上,接著發(fā)高電平REQ信號(hào)(REQ=1)通知OCMJ請(qǐng)求處理當(dāng)前數(shù)據(jù)線上的命令或數(shù)據(jù)。OCMJ模塊在接收到外部的REQ高電平信號(hào)后立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同時(shí)將應(yīng)答線BUSY變?yōu)楦唠娖?,表示模塊已收到數(shù)據(jù)并正在忙于對(duì)此數(shù)據(jù)的內(nèi)部處理,此時(shí),用戶對(duì)模塊的寫操作已經(jīng)完成,用戶可以撤消數(shù)據(jù)線上的信號(hào)并可做模塊顯示以外的其他工作,也可不斷的查詢應(yīng)答線BUSY是否為低,如果BUSY=0,表明模塊對(duì)用戶的寫操作已經(jīng)執(zhí)行完畢,可以再送下一個(gè)數(shù)據(jù)。如果模塊發(fā)出一個(gè)完整的顯示漢字的命令,包括坐標(biāo)及漢字代碼在內(nèi)共需5個(gè)字節(jié),模塊在接收到最后一個(gè)字節(jié)后才開始執(zhí)行整個(gè)命令的內(nèi)部操作,因此,最后一個(gè)字節(jié)的應(yīng)答B(yǎng)USY高電平(BUSY=1)持續(xù)時(shí)間較長(zhǎng),具體時(shí)序圖參見圖5-1。圖5-1對(duì)模塊寫漢字時(shí)序圖5.2液晶圖文顯示顯示單元可以顯示電機(jī)的轉(zhuǎn)速、和轉(zhuǎn)向。如圖5-2所示液晶顯示模塊各引腳功能如下:d3至d0為測(cè)速譯碼模塊4位輸入引腳。busy、req、dout為液晶輸入輸出引腳。clr為系統(tǒng)復(fù)位引腳。如圖5-2所示:圖5-2液晶顯示模塊具體程序如下:IBRARYieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;ENTITYlcd_displayIS PORT(d3,d2,d1,d0 :INSTD_LOGIC_VECTOR(3DOWNTO0); busy :IN STD_LOGIC; dout :out STD_LOGIC_VECTOR(7DOWNTO0); req :OUT STD_LOGIC; clr :in STD_LOGIC );ENDlcd_display;ARCHITECTUREoneOFlcd_displayISSIGNALaddr:integerrange0to40; BEGINP1:PROCESS(busy,clr) BEGIN ifclr='0'thenaddr<=0; ELSIFbusy'eventANDbusy='1'THEN ifaddr=25thenaddr<=0;--rest<='1'; elseaddr<=addr+1; endif; ENDIF; ENDPROCESSP1; req<='1'WHENbusy='0'ELSE'0'; P2:PROCESS(addr) BEGIN CASEaddrIS when0=>dout<="11110100";--F4 WHEN1=>dout<="11110000";--F0--d3 WHEN2=>dout<="00000000";--00 WHEN3=>dout<="00000000";--00 WHEN4=>dout<=*"d7";--轉(zhuǎn) WHEN5=>dout<=*"aa"; WHEN6=>dout<="11110000";--F0--d3 WHEN7=>dout<="00000001";--00 WHEN8=>dout<="00000000";--00 WHEN9=>dout<=*"cb";--速 WHEN10=>dout<=*"d9"; WHEN11=>dout<="11110000";--F0 WHEN12=>dout<="00000000"; WHEN13=>dout<="00000001";--03 WHEN14=>dout<=*"d7";--轉(zhuǎn) WHEN15=>dout<=*"aa"; WHEN16=>dout<="11110000";--f0 WHEN17=>dout<="00000001";--04 WHEN18=>dout<="00000001";--00 WHEN19=>dout<=*"cf";--向 WHEN20=>dout<=*"f2"; WHEN21=>dout<="11111001";--F9--d3 WHEN22=>dout<="00000010";--02 WHEN23=>dout<="00000000";--00 WHEN24=>dout<=*"30"+d3; WHEN25=>dout<="11111001";--F9--d2 WHEN26=>dout<="00000011";--03 WHEN27=>dout<="00000000";--00 WHEN28=>dout<=*"30"+d2; WHEN29=>dout<="11111001";--F9--d1 WHEN30=>dout<="00000100";--04 WHEN31=>dout

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論