基于vhdl语言的电子表设计_毕业设计论文(编辑修改稿)内容摘要:

ss1:process(c0) is begin if c039。 event and c0=39。 139。 then if en=39。 039。 then if s1=5 then s1=0。 c1=39。 139。 进位 else s1=s1+1。 c1=39。 039。 end if。 elsif en=39。 139。 and p=010 then s1=num。 end if。 end if。 end process。 分与秒类似,也是一个 60 进制 的计数器,可用十进制和六进制组合实现。 这里不再赘述。 时位不同于秒和分,因为时的低位不是任何进制的计数器,因此不能像上面那样用两个计数器组合,而只能将时的高低位作为一个整 体,为一个二十四进制计数器,接受来自分位的进位信号,计数满 24 时清零。 由于数码管只能显示 0~9的数字,所以数码管显示时仍然要分高低位分别显示。 对于如何用两个数码管显示着 24 个数,用 分段的方法 解决。 h 表示时位的计数值 , h1 表示时的高位 , h0 表示时的低位 ① h 在 0~9 范围内, 则 h1=0, h0=h; ② h 在 10~19 范围内,则 h1=1, h0=h10; ③ h 在 20~23 范围内,则 h1=2, h0=h20; 关键程序: hh:process(c3,h) is begin 基于 VHDL 语言的电子表设计 5 if c339。 event and c3=39。 139。 then if h=23 then h=0。 else h=h+1。 end if。 end if。 case h is when 0 to 9 =h1=0。 h0=h。 when 10 to 19 =h1=1。 h0=h10。 when 20 to 23 =h1=2。 h0=h20。 when others =null。 end case。 end process。 秒分时个两位,分与秒,时与分之间用短线隔开, 所以需要用 8 个数码管,从右到左分别为秒低位,秒高位,短线,分低位,分高位,短线,时低位,时高位。 时 高位h1 时低 位h0 — 分 高位m1 分低 位m0 — 秒高位s1 秒低位s0 关键程序: process(clk,w) is begin if clk39。 event and clk=39。 139。 then if w=111 then w=000。 else w=w+1。 end if。 end if。 case w is when 000=n=s0。 when 001=n=s1。 基于 VHDL 语言的电子表设计 6 when 010=n=10。 第 10 种状态,显示分与秒之间的短线。 when 011=n=m0。 when 100=n=m1。 when 101=n=10。 第 10 种状态,显示时与分之间的短线。 when 110=n=h0。 when 111=n=h1。 when others=null。 end case。 end process。 sel=w。 四、仿真结果 分频后用以计数, s0 为十进制,仿真结果如下: 为六进制 基于 VHDL 语言的电子表设计 7 3. m0 为 十进制 4. m1 为六进制 5. h 为二十四进制 基于 VHDL 语言的电子表设计 8 五、实验结果 设定器件为 EPM7128LC846,按分配好的引脚在试验箱上连线。 输入管脚有:脉冲 clk,使能控制端 en,置数选择 p2p1p0,置数端 x3x2x1x0。 输出管脚有:数码管位选输出 sel~sel0,数码管段选输出 d6~d0。 连线照片如下: 电子表实物照片如下:从左到右为时,分,秒。 基于 VHDL 语言的电子表设计 9 六、实验心得 本次实验花费了较长时间,刚开始想电子表就是一个计数器,之前实验做过计数器,应该很快能做出来,但当开始写程序时发现有很多不同,也遇到了比较困难的问题,要让计数单。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。