没有合适的资源?快使用搜索试试~ 我知道了~
首页EDA课程设计报告-自动电子钟设计
资源详情
资源评论
资源推荐

E D A 课程设计报告 -----自动电子钟设计
实验分工
本次实验,我负责在图书馆翻阅书籍查找,王东则在
网上查找。资料收集好后,我们一起讨论设计方案,得出
可行的设计方案之后是进行上机程序的调试。我负责程序
的输入,然后我们一起调试程序。仿真出每一个模块的功
能波形。准确无误后,再进行顶层设计,
一.设计要求
1.用 24 小时制进行时间显示;
2.能够显示小时、分钟;
3.每秒钟要有秒闪烁指示;
4.上电后从“00:00”开始显示。
二.设计目的
1. 掌握多位计数器相连的设计方法。
2. 掌握十六进制,二十四进制,六十进制计数器的设计方法。
3. 掌握 CPLD 技术的层次化设计方法。
4. 了解软件的元件管理含义以及模块元件之间的连接概念。
5. 掌握电子电路一般的设计方法,并了解电子产品的研制开发过
程,基本掌握电子电路安装和调试的方法。
6. 培养独立分析问题,解决问题的能力。

三.设计原理
电子钟是一个将“时”“分”显示于人的视觉器官的计时装置。它的计
时周期为 24 小时;显示满刻度为 23 时 59 分 59 秒,秒由一个灯
显示,将标准秒信号送入“秒计数器”,“秒计数器”采用 60 进制计数
器,每累加 60 秒发送一个“分脉冲”信号,该信号将被送到“时计数
器”。“时计数器”采用 24 进制计数器,可实现对一天 24 小时的累计。
译码显示电路将“时”“分”计数器的输出状态四段显示译码器译码。通
过六位LED七段显示器显示出来。秒就由灯的闪烁来表示。
1.电子钟计数采用层次化设计,将设计任务分成若干个模块。规
定每一模块的功能和各模块之间的接口。
(1)second(秒) 60进制计数
(2)minute(分) 60进制计数
(3)hour(时) 2 4进制计数
(4)fp 百分频器
(5)6 选 1 扫描显示
(6) 7 段数码显示器
同时整个计数器有清零
2.端口引脚名称
输入 clk,reset clkscan
输出 light,sel, 7seg
四、设计过程
1、设计实验原理图(顶层设计)

通过上面的分频器,两个 60 进制的计数器,一个 24 进制的计
数器,6 选 1 扫描器,7 段数码显示器,设计如图所示的顶层。
设计思想,利用脉冲时钟产生一个 1Hz 的信号来实现一秒钟的
控制,要产生 1Hz 的信号就要用到分频器,实验中用三个百分频器
把 1MHz 的信号变成 1Hz。然后信号进入控制秒的计数器,当第
60 个脉冲时钟到来时,产生一个进位信号,送到控制分的计数器,
同理,当第 60 个脉冲时钟到来时,产生一个进位信号,送到控制
小时的计数器。当小时计数器计数到 24 时,完成一个周期,跳转

到零。输出是由 7 段数码显示器和 6 选 1 扫描器来完成的。扫描器
时钟取至前面分频未结束时的一个 100Hz 的信号。这样就能够在 7
段数码显示管上,以 100Hz 的频率扫描显示出时钟的数字变化。
2、各模块的说明:
(1)百分频器模块
百分频模块图
程序如下
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity fp is
port (rst,clk : in STD_LOGIC;
what: out STD_LOGIC);
end fp;
architecture a of fp is
signal count100 : integer range 0 to 99;
signal tt:std_logic;
begin
process (rst,clk)
begin
if rst='1' then count100<=0;
elsif rising_edge(clk) then
count100<= count100 + 1 ;tt<=tt;
if count100=99 then count100<=0;tt<=not tt;
end if ;
end if;
what<=tt;
end process;
end a;
仿真波形
剩余15页未读,继续阅读













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0