八位七段数码管动态显示电路设计方案_第1页
八位七段数码管动态显示电路设计方案_第2页
八位七段数码管动态显示电路设计方案_第3页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、八位七段数码管动态显示电路的设计七段显示器介绍七段显示器,在许多产品或场合上经常可见。其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示 09数字及英文数 A、b、C、d、E、F。目前常用的七段显示器通 常附有小数点,如此使其得以显示阿拉伯数之小数点部份。七段显示器的脚位和线路图如下图4.1 所示(其第一支接脚位于俯视图之左上角)。4.8G的)计f |* ! !dl 10(.043)prBocoal)图4.1、七段显示器俯视图由于发光二极管只有在顺向偏压的时候才会发光。因此,七段显示器依其结构不同的应用需

2、求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极(低电位动作)与共阴极(高电位动作)七段显示器,如下图 4.2所示。(共阳极)图4.2、共阳极(低电位动作)与共阴极(高电位动作)Si nk要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用Current方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式本实验平台之七段显示器模块接线图如下图4.5所示。此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至 VCC

3、电源。而每一段发光二极管,其脚位亦均与 Cyclone II FPGA接连。四位一体的七段数码管在单个静态数码管的基础 上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。图4.5、七段显示器模块接线图Ell:IIPQ口毙lr-ncv 口廖二pc-l口 0_畐翌 IHnglnM豐InlolJT 口盘lr-lSI3_YOYl_Br3HY5丽_Y7ItII1 III” III*IIgIIIII门l门11门11 ii丨i丨丨11丨丨丨i丨BG1G2A2E7SEG.SELL27

4、SEGhuSEL23VCCfl45a b c i * f g ipibcdftfgdpddfa t抚BlnlaIn冲旳IF-尸O OIJ o 虚Q Q Q 亦 亦 亦 知GHD GHD GHD GNDIbudcr 口4止阿 AECIEKJa:旳 C Llgu严Irh胃 口1 IHn严触z 一GID七段显示器之常见应用如下可作为与数值显示相关之设计。 电子时钟应用显示 倒数定时器秒表计数器、定时器算数运算之数值显示器二七段显示器显示原理七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的(每一个二极管依位置不同而赋予不同的名称,请参见图4.1 )。我们可以简单的说,要产

5、生数字,便是点亮特定数据的发光二极管。例如要产生数字0,须只点亮A、B、C、D、E、F等节段的发光二极管;要产生数字5,则须点亮A、C、D、F、G等节段发光二极管,以此类推,参见图 4.6。因此,以共阳极七段显示器而言,要产生数字0,必须控制Cyclone II FPGA芯片接连至A、B、C、D、E、F等接脚呈现低电位”,使电路形成通路状 态。表4.1则为共阳极七段显示器显示之数字编码。B. BB. B B B 8 B. 8 8图4.6、七段显示器显示阿拉伯数字表4.1、共阳极七段显示器显示数字编码资料DPGFEDCBA16进制011000000C0111111001F9210100100A4

6、310110000B0410011001995100100109261000001082711111000F881000000080本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1KHZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。实验箱中的拨动开关与FPGA勺接口电路,以及拨动开关FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。数码管显示模块的电路原理如图4-2所示,FPGA74HC245a b cd ef 9dpa _a a a忖 & 彳口dp dp dp dp G

7、ND GND GND GNDa b c def g即a _aa甘”f囱彳门fMbdp dp dp dpgnd gnd gnd gnd74LS138图4-2 数字时钟信号模块电路原理三实验步骤(本实验用VHDL文本语言实现八位七段数码管动态显示,当然也可用Quartus的图形输入法实现八位七段数码管动态显示)1.下面我们建立一个八位七段数码管动态显示的VHDL工程1)选择开始 程序 Altera QuartusII5.1 ,运行QUARTUSII软件。或者双击桌 面上的QUARTUSII的图标运行 QUARTUSI软件,出现如图1-3所示。图1-3 QUARTUSII软件运行界面2)选择软件中的

8、菜单 File New Project Wizard,新建一个工程。如图1-4所示。图1-4新建工程对话框3)点击图1-4中的NEXT进入工作目录,工程名的设定对话框如图1-5所示。第一个输入框为工程目录输入框,用户可以输入如 后,所有的生成文件将放入这个工作目录。 为顶层实体名称输入框。用户可以设定如e:/eda等工作路径来设定工程的目录,设定好 第二个输入框为工程名称输入框,第三个输入框EXP1, 般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定工程名和顶层文件名。注:本处的顶层文件名必须和程序的实体名一致,否则编译会出错。图1-5指定工程名称及工作目录NEXT进行器件

9、选择对话4)点击NEXT进入下一个设定对话框,按默认选项直接点击框。如图1-6所示。这里我们以选用Cyclonell系列芯片EP2C35F672C8为例进行介绍。用户可以根据使用的不同芯片来进行设定。图1-6器件选择界面首先在对话框的左上方的Family下拉菜单中选取Cyclonell ,在中间右边的Speedgrade下拉菜单中选取 8,在左下方的Available devices框中选取EP2C35F672C8点击NEXT 完成器件的选取,进入EDA TOOL设定界面如图1-7所示。Bfev Pro j ect Vizard: EDA Tool Set ing? page 4 of 5Sp

10、eoly the other EDA tooh - in addition to the Quarfius: II wftware - used with Hie profect.两 DA design/ !3mthe.3?.lQ,Qk!| Design Compiletl Run Hws tool automatically &口 spnffhesize Hie cl designrent两 EDA imuladcn tool:| Models im fVHDL)1 Run Gate Level Sinnulation automatically after compiaiion两 EDA

11、tirnmglook| R(wne 1 ime /HDLI Run Uks tod automatically after ccimpilartranC Bs.i= kHex I、Fiiti sh5)按默认选项,点击 Next出现新建工程以前所有的设定信息,如图1-8所示,点击Finish完成新建工程的建立。图1-8新建工程信息2、建立VHDL设计文件1)在创建好设计工程后,选择 File NEW菜单,出现图1-9所示的新建设计文件类 型选择窗口。这里我们以建立VHDL设计文件为例进行说明。图1-9新建设计文件选择窗口2)在New对话框(图1-9)中选择 Device Design Files

12、页下的VHDL File,点击 OK按钮,打开图形编辑器对话框,如图1-10所示。图中标明了常用的每个按钮的功能3)在文本编辑器中输入如下 VHDL程序:库函数library ieee;use ieee.std _lo gic_1164.all;-定义了 std_logic数据类型及相应运算use ieee.std_logic_arith.all;-定义了 signed和unsigned数据类型、相应运算和相关类型转换函数use ieee.std_logic_ un sig ned.all;-定义了一些函数,可以使std_logic_vector型被当作符号数或无符号数一样进行运算F面是构造实

13、体en tity exp4 is -exp4为实体名port( clk : in std_logic;定义动态扫描时钟信号key : in std_logic_vector(3 dow nto 0);定义四位输入信定义七位输出信定义八位数码管ledag : out std_logic_vector(6 dow nto 0);-号del : out std_logic_vector(2 dow nto 0)-位置显示信号);end exp4;- 结束实体architecture whbkrc of exp4 is -whbkrc为结构体名begin - 以begin为标志开始结构体的描述proc

14、ess(clk)-进程,clk变化时启动进程variable dount : std_logic_vector(2 dow nto 0);-变量,计数beginif clkeve nt and clk=1 the n-检测时钟上升沿dount:=dount+1;-计数器 dount 累加end if;del ledag ledag ledag ledag ledag ledag ledag ledag ledag ledag ledag ledag ledag ledag ledag ledag n ull;end case;end process;- 结束进程end whbkrc;-结束结构

15、体VHDL的语法构成,以使大关于VHDL我们以上面八位七段数码管显示程序为例来解释 家对VHDL有个整体的把握。一个VHDL程序有三部分构成,其为:1. 库和包library (设计资源);2. 实体entity(外部端口)3. 结构体architecture(内部结构) 库和包library(设计资源)的介绍本程序中用到3个库函数包:如下:1.1 use ieee.stdogic_1164.all;-定义了 std_logic 数据类型及相应运算1.2 use ieee.std_logic_arith.all;-定义了 signed 和 unsigned 数据类型、相应运算-和相关类型转换函

16、数1.3 use ieee.std_logic_unsigned.all;-定义了一些函数,可以使 std_logic_vector-类型被当作符号数或无符号数一样进行运算补充:当使用库时,需要说明使用的库名称,同时需要说明库中包集合的名称及范围;每个实体都应独立进行库的说明;库的说明应该在实体之前;经过说明后,实体和结构体就可以自动调用库中的资源; 实体entity(外部端口)entity exp4 is -exp4 为实体名port( clk : in std_logic;-定义动态扫描时钟信号keyinstd_logic_vector(3 dow nto 0);-定义四位输入信号leda

17、goutstd_logic_vector(6 dow nto 0);-疋义七位输出信号deloutstd logic vector(2 downto 0)-定义八位数码管位置显示信);end exp4;-结束实体I/O )的端口信息,它并实体说明主要描述对象的外貌,即对象的输入和输出(不描述器件的具体功能。在电路原理图上实体相当于元件符号。CLKKey( 30)*del(2 0)*ledag(7 0)图4-9实体exp4中描述如上图4-9输入和输出(I/O )的端口信息 结构体architecture(内部结构)结构体具体指明了该设计实体的行为,定义了该设计实体的功能,规定了该设计实体的数据流

18、程,指派了实体中内部元件的连接关系。architecture whbkrc of exp4 is -whbkrc为结构体名begin - 以begin为标志开始结构体的描述 process(clk)- 进程,clk变化时启动进程variable dount : stdo gic_vector(2 dow nto 0);-变量,计数beg inif clkeve nt and clk=1 the n-检测时钟上升沿dount:=dount+1;-计数器 dount 累加end if;del ledag ledag ledag ledag ledag ledag ledag ledag ledag

19、 ledag ledag ledag ledag ledag ledag ledag nu II;end case;end process;- 结束进程end whbkrc;-结束结构体2d4)点击保存按钮,弹出如下选项,将其名命名为exp1,如下图保存为保存在:| 口半加器亡)on円timingvhdAdd file bo current roiect文件名: 保存类型(T):5)对设计文件进行编译QUARTUSII编译器窗口包含了对设计文件处理的全过程。在QUARTUSII软件中选择processinstart compilation菜单项,就会自动编译,出现QUARTUSII的编译器窗口

20、,如下图所示:A:-J.-JJmiJ ffl田 田alll M旨_| Asseniblr 雪_| Timing Analyzer 唇_| EDA Netlisi; WritduariuE 丄丄 t ersi onRevi si on NutToplevel EiititjF NameFtmilyDevi ceTotal PLLs . i nui丄a iid iu/iojiuua ajexpLexplCyclone IIEF2C35F6T2C8Fr+liniinuryYes3 / 33,216 ( *l ty n.章 亡 kuiv fj. 雪 rif.u.LtInfs Snarlui II Fi

21、tltr uts mcctsiful 0 errrs LI wu-riLnET-n-fn , *44 ft *b* + *+t*A+*+*lL+t*#4!*#*t-4t-*+t*#4+*f *!* +Tjltr KuLE-ihEL QuUfLiS HI A5.nhl6fInf* qnare id_eii iiiES_filf s=? Ft ru t暑医口filuugff CKp g expLTiffin ti 1171* nufi HIr-1 *i I * J amenE! v d*tt a Fni Thflwn-H tATHAlms c如果文件有错,在软件的下方则会提示错误的原因和位置,以便

22、于使用者进行修改直到设计文件无错。整个编译完成,软件会提示编译成功,3管脚分配在前面选择好一个合适的目标器件(在这个实验中选择为EP2C35F672C8),完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。这里介绍两种方法进行管脚锁定。1)点击Assignments采单下面的 Assignment Editor ,进入到引脚分配窗口。女口 图1-15所示。Edit:X1匚 gfnmefitAssignment NameFrom1图1-15进入引脚分配界面首先将要分配管脚的信号放置在To下方。双击To下方的N

23、ew,如图1-15所示则会出现如图1-16所示界面。Edit:ToValueComma nt|TI H&de Finder. Select issi gnm&nt ledagLocalioaYss10EledagCSLo 匚 atiuiYes11e ledag6LocationVesL 二tdel0Localior8513ddlLo 匚 ationYesi-del2LocationYes仔idkLocationTas16寻delLo 匚 ationYes诗keyL 口匚 atknVesiyledagLocalbonTas图1-18管脚分配在图1-18中以锁定端口 key0的管脚为例,其它端口的

24、管脚锁定与其基本一致。选择端口 key0的对应Assignment Name待其变为蓝色,双击之,出现下拉菜单选取如图1-18所示的 Location (Accepts wildcards/groups )选项。选择端口 key0的对应 Value 栏, 待其 变为蓝色,依照表1-2所示的硬件与FPGA的管脚连接表(或附录),输入对应的管脚名 AC22 , 按回车键,软件将自动将其改为 PIN_ AC22,同时蓝色选择条会自动跳转到 Value栏的下一 行,这表明软件已经将输入端口 key0分配到FPGA的AC22引脚上,如图1-19所示。To|Assignment NameValueEnab

25、ledlkey0LocationPIN/匚空VesLL*keylLocationVesnkey2LocationVesDkey3LocationVesledag0LocationVesledagllocationVesledag2LocationVesledag3LocationVe;0ledag4LccationVesledaglLocatio nPINJW16YesLocationPINJW1SYesledag3LocationPIN L10Veslcledag4Locatio nPINJ/HYeslcledag5Locatio nPINJ/13Yeslledag6Locatio nPIN

26、JW12Ves|delDLocatio nPINJJ12YesdellLocationPINJ/20Ves|delLocatio nPINJ/2I沁l-dkLocationYeslcielLocationeslokeyLocationl-UledagLocationes|端口名使用模块信号对应FPGA管脚说明CLK数字信号源N2时钟为1KHZKEY0拨动开关K1AC22二进制数据输入KEY1拨动开关K2AD23KEY2拨动开关K3AB8KEY3拨动开关K4AA9LEDAG0数码管A段V17十六进制数据输出显示LEDAG1数码管B段W16LEDAG2数码管C段W15LEDAG3数码管D段L10L

27、EDAG4数码管E段V14LEDAG5数码管F段V13LEDAG6数码管G段W12DELO位选DEL0U12DEL1位选DEL1V20DEL2位选DEL2V21表4-2端口管脚分配表值得注意的是,当管脚分配完之后一定要进行再进行一次全编译,以使分配的管脚有效。4、对设计文件进行仿真1)创建一个仿真波形文件,选择QUARTUSII软件FileNew,进行新建文件对话框。如图1-24所示。选取对话框的 Other File标签页,从中选取 Vector Waveform File,点击OK按钮,则打开了一个空的波形编辑器窗口,如图NevDevic* FitesFilaAHDl IncbdtFfeC

28、haiiDisrip(r1i Fit Hexadecimal IlnrtMFoml Fite Logic litflibcE Fib Meray Inidb功on Fie SigndTap II FiletDK | SI1-25所示。Id SaiptFie TeNtFla2)设置仿真结束时间,波形编辑器默认的仿真结束时间为1卩S,根据仿真需要,可以自由设置仿真的结束时间。选择QUARTUSI软件的EditEnd Time命令,弹出线路束时间对话框,在Time框办输入仿真结束时间,点击0K按钮元成设置。3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右键,在弹出的右键菜单中选择

29、Insert Node or Bus命令,在弹出的Insert Node or Bus对话框如图1-26所示界面中点击 Node Fin der按钮。图 1-26 Insert Node or Bus 对话框在出现的 Node Fin der界面中,如图1-27所示,在Filter列表中选择 Pi ns: all,在Named 窗口中输入“ *”,点击List在Nodes Found窗口出现所有信号的名称,点击中间的按钮则Selected Nodes窗口下方出现被选择的端口名称。 双击OK按钮,完成设置,回到图1-26 所示的Insert Node or Bus对话框,双击OK按钮,所有的输入

30、、输出端口将会在端口名列表区内显示出来,如图 1-28所示。Customize.Look in:Cancel| AssigiweniU n 魄L/delUPIH.U12PIN.V200 duPIM.V21II riia 闕Mkey 仙PIN_AC22PIN_AD23护h即2P|N_AE8PIM.M9bledagClEd(D|PIN_V17ClBd(l|PIN_W1E3 ledag(2|PIN_W1531曲审|PIFI.L1OPIN.V14 101 嗣5|PIM.V13 创dJjJ-N-smad: pF Fdter | 怖g:甘INodes FoundNme1 Assign帼r昨 I*|BKp4

31、tlkUnassiged3lBKp4|delUnassigiedQi|BKp4-MyUnasisigredSave进行保存。选择工具斗壮A-文扌工具波形编辑工具-英虫-缩放工具全屏显示一查找疑镭-替换未初始化一涎益未知狀态低电平A A-高电平高阻一三、电弱未知态弱低电平弱高电平无关狀态反向计数值一时神任意值XI X5对齐两格一排JT图1-30编辑输入端口波形5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍功能仿真。在QUARTUSII软件中选择ToolSimulator Tool命令,打开仿真器工具窗口,如图1-31所示。X.仿真类型5 miJelinri rrode: 萨

32、indio创SirnuhEnn 匸eriodt* Run :mdalhnunildl vectai slrdli aie-uuil产生功能仿具网底厂 Ed simulation |1COSimuhtaon cptuns:疋 加jlomahcay add pns fa muhlian oulpJt wveirmi空 厂 Qieck oul|xA5厂 errf htfd tme deiicifi deiesiisnr Gltch dslettxri. | j厂 Oviiibe $mUakiH iipul lii lhGenerale SigttsI AclrW.y Fib.icrm5既畑图1-31 仿真器工具窗口打开波形丈伴打开仿専茹吉窗口图 1-31按图1-31上的提示,首先产生功能仿真网表文件,点击产生功能仿真网表的按钮Gen erate Fun ctio nal Simulation Netlist ,产生功能仿真网表,然后点击开始仿真的START按钮开始进行仿真,直到仿真进度条为100%完成仿真。点击仿真报告窗口按钮Report,观察仿真波形。如图1-32所示。图1-32 仿真波形5、从设计文件到目标器件的加载完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论