FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch05】七段数码管显示实验_第1页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch05】七段数码管显示实验_第2页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch05】七段数码管显示实验_第3页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch05】七段数码管显示实验_第4页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch05】七段数码管显示实验_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

七段数码管显示实验卓越工程师培养系列FPGA开发实用教程——基于Xilinx和VerilogHDL第五章01实验内容通过学习七段数码管、七段数码管显示模块电路原理图、七段数码管显示原理和七段数码管显示实验内部电路图,基于FPGA高级开发系统,编写七段数码管显示驱动程序,在数码管上显示数字1〜8。实验内容02实验原理七段数码管实际上由组成“8”形状的7个发光二极管,以及表示“点”的1个发光二极管构成(见图5-1),分别由字母(或字母组合)a、b、c、d、e、f、g、dp表示。当发光二极管被施加电压时,相应的段被点亮,从而显示出不同的字符,如图5-2所示。实验原理七段数码管七段数码管内部电路有两种连接方式:一是所有发光二极管的阳极连接在一起,并与电源正极(VCC)相连,称为共阳型,如图5-3(a)所示;二是所有发光二极管的阴极连接在一起,并与电源负极(GND)相连,称为共阴型,如图5-3(b)所示。实验原理七段数码管常用来显示数字和简单字符,如0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F。对于共阳型七段数码管,当dp和g引脚连接高电平,其他引脚连接低电平时,显示数字0。如果将dp、g、f、e、d、c、b、a引脚按照从高位到低位组成一个字节,并且规定引脚为高电平时对应逻辑1,引脚为低电平时对应逻辑0,那么二进制编码11000000(OxCO)对应数字0,二进制编码11111001(0xF9)对应数字1。实验原理下表为共阳型七段数码管常用数字和简单字符译码表。实验原理序号8位输出显ZF字符序号8位输出显示字符011000000(OxCO)0810000000(0x80)8111111001(0xF9)1910010000(0x90)9210100100(0xA4)21010001000(0x88)A310110000(OxBO)31110000011(0x83)b410011001(0x99)41211000110(0xC6)C510010010(0x92)51310100001(OxAl)d610000010(0x82)61410000110(0x86)E711111000(0xF8)71510001110(0x8E)FFPGA高级开发系统上有两个共阳型4位七段数码管,支持8个数字或简单字符的显示,4位七段数码管的引脚图如图5-4所示。其中,a、b、c、d、e、f、g、dp为数据引脚,1、2、3、4为位选引脚,4位七段数码管的引脚描述如表5-2所示。实验原理位七段数码管的引脚描述实验原理引脚编号引脚名称描述1ee段数据引脚2dd段数据引脚3dpdp段数据引脚4cc段数据引脚5gg段数据引脚64左起4号数码管(selO)位选引脚7bb段数据引脚83左起3号数码管(sell)位选引脚92左起2号数码管(sel2)位选引脚10ff段数据引脚11aa段数据引脚121左起1号数码管(sel3)位选引脚如图5-5所示为4位共阳型七段数码管内部电路示意图。将数码管sel3的所有发光二极管正极相连,引出sel3的位选引脚;将数码管sel2的所有发光二极管正极相连,引出sel2的位选引脚;以此类推,引出sell和selO的位选引脚。实验原理4个数码管的a段对应的发光二极管的负极相连,引出a段数据的引脚;4个数码管的b段对应的发光二极管的负极相连,引出b段数据的引脚;以此类推,引出c、d、e、f、g、h、dp段数据的引脚。实验原理七段数码管显示模块硬件电路如图5-6所示。实验原理下面以七段数码管U502的电路为例进行介绍,U502是一个4位共阳型七段数码管,通过12个引脚可以控制数码管每一位的点亮与熄灭。其中,引脚6、8、9、12为位选引脚,分别用于控制SEL0〜SEL3中相应位数码管的点亮,其他8个数据引脚则用于控制所选中数码管相应段的点亮,这12个引脚均由XC6SLX16芯片控制。U502的6号数据引脚经过一个电路后连接到SELO网络,SELO又与XC6SLX16芯片的F3引脚相连。当F3引脚输出高电平时,三极管Q509导通,MOS管Q501的1号引脚(G级)电平,因此Q501也被导通,U502的6号引脚输入高电平,SELO位选引脚使能,此时只要控制SELA〜SELDP网络输出的电平高低,就可以实现数码管SELO相应段的熄灭与点亮(低电平点亮,高电平熄灭);反之,当F3引脚输出低电平时,SELO位选引脚失能,无论SELA-SELDP输出何种电平,数码管SELO都为熄灭状态。七段数码管显示模块电路原理图在如图5-5所示的4位共阳型七段数码管内部电路示意图中,每个数码管8段(a〜dp)的同名端连接在一起,并且每个数码管由一个独立的公共控制端控制。当向数码管发送一个字符时,所有数码管都接收到相同的字符,由哪个数码管显示该字符取决于公共控制端(selO〜sel3),这种显示方式称为动态扫描。实验原理在动态扫描过程中,每个数码管的点亮时间间隔非常短(约20ms),由于人的视觉暂留现象及发光二极管的余晖效应,并不会有闪烁感。如果4个数码管轮流显示,每次只在一个数码管上显示某一字符,相邻数码管显示的时间间隔为5ms,则4个数码管轮流显示完成需要20ms,即同一个数码管显示时间间隔为20ms。尽管实际上数码管并非同时点亮,但看上去却是一组稳定的字符显示。七段数码管显示原理如图5-7所示,T1时刻数码管(a)显示数字1,T2时刻数码管(b)显示数字2,T3时刻数码管(c)显示数字3,T4时刻数码管(d)显示数字4,相邻时刻的时间间隔为5ms,这样循环往复,看上去4个数码管稳定地显示1234。实验原理七段数码管显示实验电路有4个引脚,引脚的名称、类型、约束及描述如表所示。实验原理引脚名称引脚类型引脚约束引脚描述clkiinV10时钟输入,50MHz

rst_n_iinN7复位输入,低电平复位seg7_sel_o[7:0]outJ6,J3,H5,H3,H4,G3,G6,F3输出,控制七段数码管位选引脚seg7_seg_o[7:0]outGil,L15,K6,K15,K14,K13,L16,J7输出,控制七段数码管数据引脚七段数码管显示实验内部电路图七段数码管显示实验内部电路图如图5-8所示。400Hz分频模块u_clk_gen_400hz用于将50MHz的系统时钟分频为400Hz的内部时钟,作为移位模块u_shift的时钟输入;u_shift用于进行七段数码管的动态扫描,与位选输出seg7_sel_o相连;显示模块u_seg7_disp则用于七段数码管的显示。下面对模块u_shift、u_seg7_disp进行详细介绍实验原理实验原理1.u_shift模块u_shift模块电路图如图5-9所示,该模块包含一个寄存器s_shift,s_shift的初始值为10000000。在clk_400hz_i的上升沿,s_shift执行循环右移操作,s_shift与shift_o相连接。因此,该模块的功能是使shift_o按照“10000000—01000000—00100000—00010000—00001000—00000100—00000010—00000001”的顺序循环输出一个扫描信号,时间间隔为2.5ms。实验原理2.u_seg7_disp模块u_seg7_disp模块电路图如图5-10所示,该模块的功能是根据扫描信号值,在seg7_decode_o输出对应位七段数码管的显示值。03实验步骤步骤1:复制工程文件夹并添加Verilog文件将“D:\Spartan6FPGATest\Material”目录中的exp04_seg7文件夹复制到“D:\Spartan6FPGATest\Product”目录中。然后,双击运行“D:\Spartan6FPGATest\Product\exp04_seg7\project”目录中的seg7.xise文件打开工程。实验步骤工程打开后,将“D:\Spartan6FPGATest\Product\exp04_seg7\code”文件夹中的.v文件和.ucf文件全部添加到工程中,并将顶层文件设置为seg7.V。步骤2:完善shiftv文件将程序清单5-1中的代码输入shift.v文件中,并参考2.3节步骤5检查语法。其中,第16至22行代码实现了循环移位的功能,s_shift初始值为10000000,当复位信号不为零时,在每个400Hz时钟信号的上升沿,s_shift进行一次循环右移,用于七段数码管的扫描信号输出。实验步骤步骤3:完善seg7_disp.v文件将程序清单5-2中的代码输入seg7_disp.v文件中,并参考2.3节步骤5检查语法,下面对关键语句进行解释。实验步骤(1)第24至49行代码:这是一个通过function关键字自定义的函数。(2)第51至64行代码:通过case语句,实现在不同扫描值时对应数码管显示相应的字符,最终在七段数码管上显示12345678的效果。实验步骤步骤4:完善seg7.v文件将程序清单5-3中的代码输入seg7.v文件中,并参考2.3节步骤5检查语法。实验步骤步骤5:仿真工程检查完seg7.v文件的语法之后,对seg7模块进行仿真,本实验已经提供了完整的测试文件seg7_tf.v,可以直接参考2.3节步骤7对seg7模块进行仿真。

温馨提示

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

评论

0/150

提交评论