一百进制实验报告.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文档。上传文档
查看更多
一百进制实验报告一百进制实验报告

广东水利电力技术学院 实验报告 课 程 名 称 可编程逻辑器件 实验项目名称 100进制计数器 学 生 班 级 12电子2班 学 生 姓 名 许 炎 庆 2013年 05 月 19 日 一 任务分析 用数码管中的两位来表示个位和十位,然后用分频后的1hz左右的脉冲给个位,当每一个上升沿时个位加一,当加到九,再来一个上升沿时十位就加一。除了一个1hz的脉冲外还要一个1000hz左右的脉冲作为位扫描,还有一个译码。从0 开始 到99 刚好是100进制。 二 任务实施 1 使用vhdl语句,完成一百进制计数器的文本编辑。 2 源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity dy is port(clk,r,en:in std_logic; --r为清零开关,en为保持开关 d:out std_logic_vector(5 downto 0); --6位数码管 c:out std_logic_vector(6 downto 0)); --7段数码显示 end; architecture du of dy is signal clk_1:std_logic; signal k:std_logic; signal clk_2:std_logic; signal ct:integer range 0 to 1; --接clk_1,二进制计数器 signal du:std_logic_vector(3 downto 0); --个,十位都要四位二进制数 signal d_1:std_logic_vector(5 downto 0); --d=d_1 signal c_1:std_logic_vector(6 downto 0); --c=c_1 signal l1,l2:std_logic_vector(3 downto 0); begin process(clk) --clk分频得1000hz脉冲clk_1 variable cnt1:integer range 0 to 250; variable cnt2:integer range 0 to 100; begin if clkevent and clk=1 then if cnt1=250 then cnt1:=0; if cnt2=100 then cnt2:=0; clk_1=not clk_1; else cnt2:=cnt2+1; end if; else cnt1:=cnt1+1; end if; end if; end process; process(clk) --clk分频得1hz脉冲clk_2 variable cnt1:integer range 0 to 25000; variable cnt2:integer range 0 to 1000; begin if clkevent and clk=1 then if cnt1=25000 then cnt1:=0; if cnt2=1000 then cnt2:=0; clk_2=not clk_2; else cnt2:=cnt2+1; end if; else cnt1:=cnt1+1; end if; end if; end process; process(clk_1) --clk_1目的是使个位和十位分开没联系,而且两个一直亮,因为clk_1很高 begin if clk_1event and clk_1=1 then if ct=1 then ct=0; else ct=ct+1; end if; end if; end process; process(ct) begin case ct is when 0=d_1=111101; --ct有0,1二种情况,当0时十位亮 when 1=d_1=111110; --当1时个位亮(如果clk-1很小,个位和十位就会闪只会亮一个 when others=null; end case; end process; process(d_1) begin case d_1 is when 111101=du=l1; --l2赋值给十位 when 111110=du=l2; --l1赋值给个位(他们

文档评论(0)

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

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

1亿VIP精品文档

相关文档