综合实验报告.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
综合实验报告

综合实验报告 一.实验目的: 1.掌握VHDL语言和 QuartusII软件的使用 2.理解状态机的工作原理和设计方法 3.掌握利用EDA 工具进行自顶向下的电子系统设计方法 二、 实验器材 1.计算机 2.示波器 3.直流稳压电源 4.万用表 5.EDA 开发板及相应元器件 相关知识: 发光二极管(LED)是六十年代末发展起来的一种半体显示器件,七十年代,随着半导 体材料合成技术、单晶制造技术和P-N结形成技术的研究进展,发光二极管在发光颜色、 亮度等性能得以提高并迅速进入批量化和实用化。进入八十年代后,LED 在发光波长范围 和性能方面大大提高,并开始形成平板显示产品即LED 显示屏。 LED 显示屏在八十年代后期在全球迅速发展,成为新型信息显示媒体,它利用发光二 极管构成的点阵模块或像素单元组成大面积显示屏幕,以可靠性高、使用寿命长、环境适应 能力强、价格性能比高、使用成本低等特点,在短短的十几年中,迅速成长为平板显示的主 流产品之一,在信息显示领域得到了广泛的应用。 三、 实验任务 1. 用VHDL语言设计实现一个10秒倒计时电路,要求使用8*8点阵显示计时结果。在QuartusII平台上设计程序和仿真题目要求,并下载到实验板验证实验结果。 2. 自拟其他功能。要求倒计时至0后开始执行该功能,可使用实验板上的任何资源实现任意功能。 四、题目分析与构思设计: (1)需求分析及设计构思: 基本功能:设计实现一个10秒倒计时电路,使用8*8点阵显示计时结果。 本次实验中用到的8*8点阵模块,一共64个发光二极管封装在一个元件上。元件对外的管脚有16 条,分别为行ROW1~ROW8 和列COL1~COL8。点亮点阵上某一点的条件是对应的行管脚输入低电平,列管脚输入高电平,如图1所示。只要不断地以扫描方式给点阵的行和列发送相应的高低电平,在点阵上就可以点亮不同的二极管。当扫描频率高于一定数值时,点阵上就会出现稳定的字符或者图形。所以需要几千HZ的高频扫描信号。 倒计时电路的实现需要时钟为1s的计数电路,所以需要1HZ的时钟信号。 在各个数字持续的1S时间内,通过点阵的扫描实现各数字的稳定显示。 附加功能:实现对预置数的倒计时功能,及计数完毕时幕布彩灯显示。当计时完毕时,蜂鸣器报警,彩灯亮,关闭开关,蜂鸣器停止报警,彩灯熄灭,点阵恢复倒计时初值。开关打开,重新计时。 设计: 采用并行进程分别实现:分频,计数,显示的基本功能,各进程同时进行,在各进程内,代码顺序执行。 利用分频器由50M时钟信号获得1Khz的高频行列扫描时钟,作为进程的敏感信号,设计8进制计数器作为行列控制信号,稳定地显示相应的数字。 利用分频器得到1hz的计数时钟,作为N模(N可从0取到10)计数器的敏感信号,使得每隔一秒数字变换一次,用计数器实现计数。 在此基础上,我对N模计数器进行了改进,以实现预置倒计时初值的功能,这里用到一个按键来实现对计时初值的设定,基本设想是对一个按键设置不同的状态,在各状态间通过加1操作,实现对预置数改变。当选择不同的状态时,这个N模计数器成为对应于计时初值的计数器。 同时,在新的进程中,实现对应数字的显示。 在计数完毕(即显示为0)的状态下,蜂鸣器接收到一个时钟信号发出报警,彩灯电路接收到一个时钟信号被点亮。 (2)逻辑框图: (3)分块程序设计: (1)端口定义: entity dianzhen is port ( clk ,countbutton,statebutton: in std_logic;--计数开关和预置开关 clk1,clk2: buffer std_logic;--分频时钟 row,col:out std_logic_vector(7 downto 0);--行列选通信号 voice:out std_logic;--蜂鸣器报警信号 q:out std_logic_vector(7 downto 0)--彩灯显示 ); end entity; (2)两个进程实现两个分频时钟信号: --把50M分频为1K,作为行列控制信号的时钟 p1:process(countbutton,clk) begin if(clkevent and clk=1) then if qtemp=49999 then qtemp=0; else qtemp=qtemp+1; end if; if qtemp49998 then clk1=0; else clk1=1; end if; end if; end process p1; --把1

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8010045112000002

1亿VIP精品文档

相关文档