电子设计自动化EDA课程设计电子钟设计

上传人:公**** 文档编号:552944935 上传时间:2023-04-23 格式:DOC 页数:21 大小:84.50KB
返回 下载 相关 举报
电子设计自动化EDA课程设计电子钟设计_第1页
第1页 / 共21页
电子设计自动化EDA课程设计电子钟设计_第2页
第2页 / 共21页
电子设计自动化EDA课程设计电子钟设计_第3页
第3页 / 共21页
电子设计自动化EDA课程设计电子钟设计_第4页
第4页 / 共21页
电子设计自动化EDA课程设计电子钟设计_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《电子设计自动化EDA课程设计电子钟设计》由会员分享,可在线阅读,更多相关《电子设计自动化EDA课程设计电子钟设计(21页珍藏版)》请在金锄头文库上搜索。

1、电子设计自动化EDA课程设计题目 电 子 钟 设 计 专业 电子信息科学与技术 班级 电子一班 学号 20104672 姓名 目录一、实验目的-(1)二、实验内容-(1)三、工作原理-(1)四、VHDL源程序代码-(2) 1、 分频模块-(2)2、走时、校时模块-(4)3、闹钟模块-(7)4、秒表模块-(9)5、功能控制模块-(13)6、选择输出模块-(14)7、数码管显示、亮度可调模块-(15)8、总体例化-(17)五、心得体会-(18)一 . 实验目的 练习综合设计能力,熟练应用QuartursII软件,熟练掌握课本知识,设计一个数字钟,以提高自己的动手能力二. 实验内容 基本功能要求 设

2、计一个电子时钟,要求可以显示时、分、秒,用户可以设置时间。 扩展功能要求 秒表功能,闹钟功能,调整数码管亮度 试验箱设置1、 选择模式7;2、 数码管8左边的跳线选择CLOSE;三. 工作原理 数字钟模块分化如下: 分频模块功能控制模块走时/调时选择输出显示数码管显示、亮度可调闹钟选时定时比较秒表 (1) 分频模块可分出1Hz、100 Hz 、1000Hz、5000 Hz,分别用于正常走时、秒表、定时比较和数码管扫描。 (2) 功能控制模块由一个简单加法器实现看,用键7控制,当按一下键7,来一个单脉冲,加法器内部定义信号循环自加实现模式转换,不断控制各功能模块的使能键,实现功能转换。 (3)

3、走时/调时模块通过使能端选择不同输入时钟,切换两个模式,当en=1时,可以调时,键4为位选键,键1为加数键,en=0时,正常走时。只有在调时时,走时停止,在其他功能时走时正常进行。此模块由时、分、秒三部分组成。 (4) 闹钟模块由两部分组成,闹钟选时和定时比较,选定闹钟时间后,在1000 Hz的驱动下,比较器时刻与正常走时输出比较,当两时间相等时,比较器输出以时钟信号使蜂鸣器发出响声。 (5)秒表模块由计数器实现,键1为清零键,当百分之一秒计满一百进一位,秒计满六十进一位。可显示分、秒、百分之一秒。 (6)选择输出显示模块 ,由一个加法器实现 ,此模块与功能控制模块为同一驱动,选择输出当前功能

4、的输出。(7)数码管显示、亮度可调模块由5000Hz驱动,显示部分分为段选与位选。键7控制选择到亮度调节功能,键1实现亮度调节。四. 各模块VHDL源代码1、分频模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div is -分频port(clk:in std_logic; clk1,clk100,clk1000,clk1M:out std_logic); end;architecture one of div issignal clk1_tmp:std_logic;signa

5、l clk2_tmp:std_logic;signal clk3_tmp:std_logic;signal clk4_tmp:std_logic;signal cnt1:integer range 0 to 4999999; - 1hz 正常走时signal cnt100:integer range 0 to 49999; -100hz 秒表驱动signal cnt1000:integer range 0 to 4999 ; -1000 扫描闹钟比较器signal cnt1M:integer range 0 to 999; -5000 扫描频率beginP1: process(clk) beg

6、in if clkevent and clk=1 then if cnt14999999 then cnt1=cnt1+1; elsecnt1=0; clk1_tmp=NOT clk1_tmp ;end if;end if;end process;P2: process(clk) begin if clkevent and clk=1 then if cnt10049999 then cnt100=cnt100+1; elsecnt100=0; clk2_tmp=NOT clk2_tmp ;end if;end if;end process;P3: process(clk) begin if

7、clkevent and clk=1 then if cnt10004999 then cnt1000=cnt1000+1; elsecnt1000=0; clk3_tmp=NOT clk3_tmp ;end if;end if;end process;P4: process(clk) begin if clkevent and clk=1 then if cnt1M999 then cnt1M=cnt1M+1; elsecnt1M=0; clk4_tmp=not clk4_tmp ;end if;end if;end process;clk1=clk1_tmp;clk100=clk2_tmp

8、;clk1000=clk3_tmp;clk1M0); begin process(clk) begin if clkevent and clk=1 then if en =0 then if c19 then c1=c1+1; else c10); if c25 then c2=c2+1; else c20); end if; end if; end if; end if; if c1=9 and c2=5 then cout =1;-进位 else cout =0; end if; cq(3 downto 0)=c1; cq(7 downto 4)=c2; end process;end architecture;(2)分走时、调时library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity mscnt60 is

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号