EDA实习教案1.docVIP

  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文档。上传文档
查看更多
EDA实习教案1

EDA实习讲义 第  PAGE 17 页 共  NUMPAGES 17 页 双色LED点阵扫描显示电路设计 一、实习目的 二、实习原理 1.8*8双色LED原理 图所示的双色点阵是行共阴、列共阳。当列共阳为高电平,行共阴为低电平,则所接的发光像素点点亮,反之,列共阳为低电平,行共阴为高电平,则所接的发光像素处于截止状态不发光。双色点阵一个像素点有二个发光管,分别为红和绿二种,如同时发亮为橙色。 2.LED的驱动 列扫描线 行扫描线 我们对于不同的行列加不同的电平,就可以选出需要点亮的LED,若对行列扫描线动态的加不同的高低电平,就可以使LED显示出各种文字、图像。 3.VHDL语言设计扫描显示电路 LED点阵显示驱动可以用多种方式,现在介绍用VHDL设计其驱动程序。我们以8*8阵列为例,同时用6个状态机控制其显示方式。改变8位数字开关(B)组的SW9、SW10、SW11、SW12,按顺序置开关为“1111”、“0111”、“1110”、“1101”、“1011”、“其他”共6种组合,就可以观察8*8行共阴列共阳显示模块的六种显示方式。 设计原理框图如下: 本实习具体要求: SW[12..9]颜色点亮顺序移动方式1111红绿循环从上往下0111红绿循环中间散开1011红绿循环整屏往下移1101绿红循环从上往下1110红绿循环从下往上其它红绿循环从上往下 程序设计分析: 定时程序 当LED显示时需一定持续时间。因此在此程序设计时有延迟程序。 若接于FRQH的H3(3MHZ),则时为0、6S。 思路为:可以设计一个计数器,当来一个时钟计数一次,当定时完毕后,就可以扫描状态, 若显示方式变化,则按相应方式显示。 则计数次数为次。 显示方式 Eg: …… green=not data; com=not st; red= data; ……. WHEN 1111 = IF ST(7 DOWNTO 0)=or st(7 downto 0)THEN ST(7 DOWNTO 0);data=not data; else ST(7 DOWNTO 0)=(ST(6 DOWNTO 0) 0 );data=not data; …….. 同理其他。 实验箱模块介绍 演示 编写程序过程中易错点: CASE语句 语句结构 CASE表达式 IS WHEN选择值或标识符 = 顺序语句;….; 顺序语句; WHEN选择值或标识符 = 顺序语句;….; 顺序语句; WHEN选择值或标识符 = 顺序语句;….; 顺序语句; ……. WHEN OTHERS = 顺序语句;….; 顺序语句; END CASE; 2)注意事项: 1.CASE语句是顺序语句,因此必须放在进程语句中. 2. 选择值必须在所代表的值之内. 3.CASE语句必须列完所有的可能情况. 条件句中的选择值若不能覆盖完所有的情况,则要有”WHEN OTHERS”语句. 4.选择值只能出现一次. 5.CASE语句执行中只能执行所列条件中的一条. 3)与IF语句的比较 直观明了,易读易写不易错.而且执行时几乎是并行语句. 二.扫描程序的设计 1.在此次实习过程中,需用四个触发开关来选择其状态.所以我们用CASE语句来实现. 2.由上次所讲的原理,我们现在以其中的两种方式来讲,其余以此类推. RED GREEN ….. SIGNAL st: STD_LOGIC_VECTOR(7 downto 0); SIGNAL d_ff: STD_LOGIC_VECTOR(20 downto 0); signal data: STD_LOGIC_VECTOR(7 downto 0): …… green=not data; com=not st; red= data; ……. Case sw is  --"1110" 红绿循环 从下往上 WHEN 1110 = IF ST(7 DOWNTO 0)=or st(7 downto 0)THEN ST(7 DOWNTO 0)=1

文档评论(0)

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

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

1亿VIP精品文档

相关文档