EDA-数字秒表设计_第1页
EDA-数字秒表设计_第2页
EDA-数字秒表设计_第3页
EDA-数字秒表设计_第4页
EDA-数字秒表设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电 子 设 计 自 动 化大 作 业题目数字秒表设计学院控制科学与工程学院班级自动化 0803 姓名学号二 oo 一一年五月十二日题 目:数字秒表的设计一、设计要求:(1) 数字秒表的计时精度是10ms; (2)复位开关可以在任何情况下使用,计时在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备;(3)具有启 / 停开关,即按一下启 / 停开关,启动计时器开始计时,再按一下启 / 停开关则停止计时。(4) 数字秒表的计时范围是0 秒59分秒,显示的最长时间为59 分59 秒二、总体设计:1、总体结构图输入sel 模块选通过 3-8 译码输入到 choice 中2、各模块功能1

2、)sel模块:将扫描信号输给选择(choice) 模块2)选择模块:按扫描信号的指定选择输出3)3-8 译码模块:通过 sel给的信号来控制 8 位数码管位的亮灭4)计时模块:分别对毫秒,秒,分计时 5) 显示模块:通过 choice 模块的输出信号来控制时钟控 制 选 择 模通过数据的编码控制数三、单元模块设计1、模块名 : sel模块设计(1)模块功能 : clk 为扫描时钟脉冲, selout 端不停的发出扫描到的信号(2)端口定义 : clk 为信号输入端 selout2.0为选择到的信号输出(3)vhdl 源程序library ieee;use sel is port(clk: in

3、 std_logic; selout: out std_logic_vector(2 downto 0);end sel;architecture one of sel is signal count: std_logic_vector(2 downto 0);begin process(clk) begin if clkevent and clk=1 then if (count=101) then count=000; else count=count+1; end if; end if; end process; selout=count; end one;(4)仿真结果说明:来一个上升

4、沿, selout 的值增 1,可以证明模块是正确的。2、模块名 : 选择模块设计(1)模块功能 :按扫描信号的指定选择输出(2)端口定义 : a,b,c为控制信号; data13.0, data23.0, data33.0, data43.0, data53.0, data63.0分别是毫秒的低位,毫秒的高位,秒的低位,秒的高位,分的低位,分的高位的数据值; ch_out3.0为选择输出端。(3)vhdl 源程序library ieee;use choice isport(a,b,c:in std_logic;data1,data2,data3,data4,data5,data6:in st

5、d_logic_vector(3 downto 0);ch_out:out std_logic_vector( 3 downto 0);end choice;architecture behave of choice issignal ch:std_logic_vector(2 downto 0); beginch(2)=c;ch(1)=b;ch(0)ch_outch_outch_outch_outch_outch_out null;end case; end process;end behave;(4)仿真结果说明:abc的值递增,ch_out选择输出data1,data2,data3,da

6、ta4,data5,data6的值,证明模块是正确的3、模块名 : 3-8译码模块设计(1)模块功能 :通过 sel给的信号来控制 8 位数码管位的亮灭。(2)端口定义 : 输入端 sel2.0 值大小来选择输出q的值输出端 q7.0 来控制灯哪位亮(3)vhdl 源程序library ieee;use decode3_8 isport(sel: in std_logic_vector(2 downto 0);q : out std_logic_vector(7 downto 0);end decode3_8;architecture a of decode3_8 isbeginq = whe

7、n sel = 0 else when sel = 1 else when sel = 2 else when sel = 3 else when sel = 4 else when sel = 5 else ;end a;(4)仿真结果说明: sel 的值递增, q的相应位会亮,证明模块是正确的。41 模块名: 毫秒计时模块设计(1)模块功能 :对毫秒位的计数(2)端口定义 : clk为信号时钟输入端 reset为复位端 pause为暂停端 co为进位信号输出端 qh:毫秒信号的高位输出端 ql: 毫秒信号的低位输出端(3)vhdl 源程序library ieee;use m100 ispo

8、rt(clk:in std_logic;reset:in std_logic;pause:in std_logic;co:out std_logic;qh:buffer std_logic_vector(3 downto 0);ql:buffer std_logic_vector(3 downto 0);end m100;architecture behave of m100 isbeginco=1 when (qh=1001 and ql=1001) else 0; process(clk,reset,pause)beginif(reset=0) thenqh=0000;ql=0000;el

9、sif(pause=0)then qh=qh; ql=ql;elsif (clkevent and clk=1) thenif (ql=1001) thenql=0000;if (qh=1001) thenqh=0000; else qh=qh+1;end if; else ql=ql+1;end if;end if; end process;end behave;(4)仿真结果说明:毫秒为 100进制,高位和地位都是10进制,高位到 10 会有进位,可以证明模块的正确性模块名 : 秒计时模块设计(1)模块功能 :对毫秒位的计数(2)端口定义 : clk为信号时钟输入端 reset为复位端 p

10、ause为暂停端 co为进位信号输出端 qh:毫秒信号的高位输出端 ql: 毫秒信号的低位输出端(3)vhdl 源程序library ieee;use m60_sec isport(reset:in std_logic; pause:in std_logic;ci:in std_logic;co:out std_logic;qh:buffer std_logic_vector(3 downto 0);ql:buffer std_logic_vector(3 downto 0);end m60_sec;architecture behave of m60_sec isbegin co=1 whe

11、n (qh=0101 and ql=1001 and ci=1) else 0;process(reset,pause,ci)beginif(reset=0) thenqh=0000;ql=0000; elsif(pause=0)then qh=qh; ql=ql; elsif (cievent and ci=1) thenif (ql=1001) thenql=0000;if (qh=0101) thenqh=0000; else qh=qh+1;end if; else ql=ql+1;end if;end if;end process;end behave;(4)仿真结果说明:秒进制为

12、60 进制,高位到 6 会有进位,低位为 10 进制,可以证明模块的正确性模块名 : 分计时模块设计(1)模块功能 :对毫秒位的计数(2)端口定义 : clk为信号时钟输入端 reset为复位端 pause为暂停端 co为进位信号输出端 qh:毫秒信号的高位输出端 ql: 毫秒信号的低位输出端(3)vhdl 源程序library ieee;use m60_min isport(reset:in std_logic; pause:in std_logic; ci:in std_logic;qh:buffer std_logic_vector(3 downto 0); ql:buffer std_

13、logic_vector(3 downto 0);end m60_min;architecture behave of m60_min isbeginprocess(reset,pause,ci)beginif(reset=0) thenqh=0000;ql=0000;elsif(pause=0)then qh=qh; ql=ql; elsif (cievent and ci=1) thenif (ql=1001) thenql=0000;if (qh=0101) then qh=0000; else qh=qh+1; end if; else qlq_showq_showq_showq_sh

14、owq_showq_showq_showq_showq_showq_shownull;end case;end process;end behave;(4)仿真结果说明:随着 adr 的值增加,q_show输出相应的值,数码管相应的段会亮,证明模块是正确的四、数字秒表 整体组装1、顶层原理图1. 工作情况输入信号经过分频器输给计时模块,计时模块的各位输给选择(choice) 模块,选择模块选择输出,再经过转码(bcd_7)模块控制数码管段的亮灭;输入信号的另一路经过分频器给扫描(sel)模块,sel的输出信号一方面给 choice 模块提供提供选择信号, 另一方面又给译码器(decode3_8) 模块提供译码信号来控制灯位的亮灭。,pause 和reset 分别控制暂停和复位。 2. 模块间的连接关系:扫 描 (sel) 模块 的 输 出端接 译 码(decode3_8) 模 块和 选 择(choice) 模块,计时模块接选择(choice) 模块,选择 (choice) 模块将选到的信号给转码 (bcd_7)模块控制数码管段的亮灭2、仿真结果说明:输入信号后,数码管会不停的被扫描,段和位会选择亮,可以证明模块的正确性管脚分配:管脚编号管脚定义管脚编号管脚定义153clk50mh

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论