数码管扫描显示控制器的设计与实现.docxVIP

数码管扫描显示控制器的设计与实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京邮电大学数字电路与逻辑设计实验报告实验名称:数码管扫描显示控制器的设计与实现 学 院: 信息与通信工程学院 班 级: 2009211129班 姓 名: 学 号: 任课老师: 实验日期: 成 绩: 实验概况实验名称:数码管扫描显示控制器的设计与实现1)实验摘要:本实验是通过VHDL编程,控制数码管的输入输出信号,从而实现多个数码管动态显示。将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环依次点亮多个数码管,利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。于是,我们将观察到持续点亮的现象。进一步,我们还可以通过编写VHDL程序来控制多个数码管的显示状态。2)关键词:VHDL数码管 扫描 视觉暂留设计任务基本要求:用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上。用VHDL语言设计并实现六个数码管滚动显示电路。循环左移动,始终点亮6个数码管,左出右进。状态为:012345→123450→234501→345012→450123→501234→012345。向左滚动,用全灭的数码管填充右边,直至全部变灭,然后再依次从右边一个一个的点亮。状态为:012345→12345X→2345XX→345XXX→45XXXX→5XXXXX→XXXXXX→XXXXX0→XXXX01→XXX012→XX0123→X01234→012345,其中‘X’表示数码管不显示。设计概况总体结构框图:设计思路单个数码管的工作原理共阴极数码管的字型代码如下: 这里只列举出简单的七位代码表示,具体功能表参见《数字电路与逻辑设计》第111页表3.5.7。abcdefg十进制abcdefg十进制11111100101101150110000100111116110110121110000711110013111111180110011411100119选通信号CAT[]的工作原理CAT[](1~6)的控制端信号时序波形图上图是数码管选通控制信号,分别对应于6个共阴极数码管的公共端,当CAT[x]=‘0’时,对应的数码管被点亮。因此,通过控制CAT[1]~CAT[6],就可以控制6个数码管循环依次点亮。在具体的VHDL编写中,可以将CAT[]设置为输出信号,类型为6维向量,每受到一个有效时钟信号,则CAT[]信号中的标志位‘0’位向后移动,共有6中情况,可以设置一个计数变量address,以方便在响应时钟信号时做算术运算。总结以上思路,当有效的时钟信号到来时,address做一次运算,CAT[]控制信号发生一次变化,从而使相应的数码管被点亮。紧接着下一个有效时钟信号到来,开始新一次的变化,有一个数码管被点亮。如果时钟信号的频率足够高,由于人的视觉暂留现象,我们就会观察到多个数码管同时点亮的现象。但是考虑到实际扫描频率中频率过快大于一个门的响应延时,所以在过程中还需要分频和降频。滚动显示电路经过上面的分析,已经理解了静态数字显示电路的原理,在这个基础上,如果要使这个数字显示电路滚动起来,也就相当于再加一个外部时钟,用来控制各个状态间的循环。至于计数周期到底在某个范围内合适,则是通过修改调试出来的结果。实际实现VHDL代码和中文注释静态数字显示LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sweep ISPORT (clk,rst: IN STD_LOGIC; --rst复位,高有效 tubes: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --七段数码管 cats: OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); --控制端END sweep;ARCHITECTURE sweep_archi OF sweep ISSIGNAL address: STD_LOGIC_VECTOR(2 DOWNTO 0); --记录控制端信号中‘0’的位--置,亦即当前数码管的位置SIGNAL time: INTEGER RANGE 1 TO 2500; --外部时钟,控制一次状态显示的时间BEGINPROCESS(clk,rst)BEGINIF(rst = 1) THEN --复位端有效address = 111; ELSIF(clkEVENT AND clk = 1) THEN --等待时钟上升沿的到来time = time + 1;IF(address = 101) THENIF (time = 2500) THE

文档评论(0)

网游加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档