数字时钟实验报告

实验目的】:

设计一个24小时制数字钟,要求能显示时,分,秒,并且可以手动调整时和分

试验中所用器材】:

开发环境MAX—PLUSII,ZY11EDA13BE 试验系统, VHDL 语言.

设计原理

数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分为模60计数器,小时是模24计数器,分别产生3位BCD码。BCD码经译码,驱动后接数码管显示电路。

秒模60计数器的进位作为分模60计数器的时钟,分模60计数器的进位作为模24计数器的时钟。

为了实现手动调整时间,在外部增加了setm(调整分),seth(调整时)按键,当这两个按键为低电平时,电路正常计时,当为高电平时,分别调整分,时。同时在外部还增加了一个清零按键clr.和消抖动电路。

单元模块设计部分

消抖动电路关键部分

signal key_in1,key_in2:std_logic:='0';

begin

process(clk,key_in)

begin

if clk'event and clk='1' then

key_in1<=key_in;key_in2<=key_in1;

if  key_in='1' and key_in1='1' and key_in2='1' then  key_out<='1';

else key_out<='0';

时序仿真图

60计数器程序关键部分

signal md_temp,mg_temp:std_logic_vector(3 downto 0);

begin

process(clk,clr)

begin

if clr='1' then

md_temp<="0000"; mg_temp<="0000";

elsif set='1' then

md_temp<=setl; mg_temp<=seth;

elsif clk'event and clk='1' then

if md_temp="1001" then

md_temp<="0000";mg_temp<=mg_temp+'1';

else md_temp<=md_temp+'1';

end if;

if md_temp="1001" and mg_temp="0101" then

md_temp<="0000";mg_temp<="0000";

秒时序仿真图

分时序仿真

分的清零和调整时间部分

24计数器程序关键部分

signal hd_temp,hg_temp:std_logic_vector(3 downto 0);

begin

process(clk,clr,set,setl,seth)is

begin

if set='1' then hd_temp<=setl; hg_temp<=seth;

elsif clr='1' then  hd_temp<="0000";  hg_temp<="0000";

elsif clk'event and clk='1' then

if hg_temp="0010" and hd_temp="0011" then

hd_temp<="0000"; hg_temp<="0000";

elsif hd_temp="1001" then

hg_temp<=hg_temp+'1'  hd_temp<="0000";

else hd_temp<=hd_temp+'1';

end if;

end if;

end process ;

时时序仿真图

清零和调时

显示部分关键程序

process (sd,sg,md,mg,hd,hg)

begin

case sd is

when "0000" =>sl<="1111110";

when "0001" =>sl<="0110000";

when "0010" =>sl<="1101101";

when "0011" =>sl<="1111001";

when "0100" =>sl<="0110011";

when "0101" =>sl<="1011011";

when "0110" =>sl<="1011111";

when "0111" =>sl<="1110000";

when "1000" =>sl<="1111111";

when "1001" =>sl<="1111011";

when others =>sl<="0000000";

end case;

if clk_g'event and clk_g='1' then

if sel="101" then

sel<="000";

else sel<=sel+'1';

end if;

end if;

end process;

process(sel,sd,sl,sg,sh,md,ml,mg,mh,hd,hl,hg,hh)

begin

case sel is

when"000"=>led<=sl;

led_which<=sd;

when"001"=>led<=sh;

led_which<=sg;

when"010"=>led<=ml;

led_which<=md;

when"011"=>led<=mh;

led_which<=mg;

when"100"=>led<=hl;

led_which<=hd;

when"101"=>led<=hh;

led_which<=hg;

when others=>led<="0000000";

led_which<="0000";

end case;

仿真图

顶层文件关键程序

port(

clk,clk_g:in std_logic;-----clk_g是用在数码管显示里面的信号

clr:      in std_logic;------clr=1时 清零

setm,seth:in std_logic;---------setm为1时调分,seth为1时调时

setd,setg:in std_logic_vector(3 downto 0);----调整时间的时候,setd调整的是低位setg调整高位

led:out std_logic_vector(6 downto 0);

sel_out: out std_logic_vector(2 downto 0);

led_which: out std_logic_vector(3 downto 0));---输出的是秒分时的哪一个

begin

u1:de_shake port map (clk=>clk,key_in=>clr,key_out=>clro);

u2:de_shake port map (clk=>clk,key_in=>setm,key_out=>setmo);

u3:de_shake port map (clk=>clk,key_in=>seth,key_out=>setho);

u4:s60      port map (clk=>clk,clr=>clro,sd=>sdl,sg=>sgh,fenmaichong=>fenmaichongo);

u5:m60 port map (clk=>fenmaichongo,clr=>clro,md=>mdl,mg=>mgh,xiaoshimaichong=>xiaoshimaichongo,setl=>setd,seth=>setg,set=>setmo);

u6:h24      port map (clk=>xiaoshimaichongo,clr=>clro,hd=>hdl,hg=>hgh,set=>setho,setl=>setd,seth=>setg);

u7:led_xs   port map (clk_g=>clk_g,sd=>sdl,sg=>sgh,md=>mdl,mg=>mgh,hd=>hdl,hg=>hgh,led=>led,sel_out=>sel_out,led_which=>led_which);

时序仿真

结论

本设计,满足了本次试验设计的任务要求,能显示时分秒,并且可以手动调节分和时。

按动setm为1时,将setd的四位二进制数输入到分的低位.

按动setm为1时,将setg的四位二进制数输入到分的高位.

按动seth为1时,将setd的四位二进制数输入到时的低位.

按动seth为1时,将setg的四位二进制数输入到时的高位 .

转载于:https://www.cnblogs.com/liuxing1893/archive/2009/05/18/1459407.html

基于VHDL的数字时钟实验报告相关推荐

  1. c语言实验报告世界时钟,基于LCD的电子时钟实验报告.doc

    PAGE \* MERGEFORMAT 3 河海大学物联网工程学院 课程设计报告 题 目 基于LCD的电子时钟实验 专业.学号 电信 . 授课班号 完成时间 2013.07.05 课程设计(报告)任务 ...

  2. 基于CPLD的数字时钟设计

    本科学生EDA课程设计论文 题      目:基于CPLD的数字时钟设计 院  (系)工程与设计学院 专业.年级 19级电子信息工程 2021年   7 月 8 日 目录 第1章 绪  论 1.1 时 ...

  3. matlab高中必修三数学模拟,基于MATLAB的模拟调制实验报告

    <基于MATLAB的模拟调制实验报告>由会员分享,可在线阅读,更多相关<基于MATLAB的模拟调制实验报告(19页珍藏版)>请在金锄头文库上搜索. 1.基于 MATLAB 的模 ...

  4. 基于FPGA的数字时钟设计

    基于FPGA的数字时钟设计 芯片与开发板 技术指标 1.具有正常的日时分秒技术显示功能,用七个数码管分别显示日,时,分,秒. 2.有按键校日,校时,校分,校秒. 3.利用led模拟整点报时功能. 4. ...

  5. matlab图像处理基础实验,数字图像处理实验报告 Matlab图像处理基础

    <数字图像处理实验报告 Matlab图像处理基础>由会员分享,可在线阅读,更多相关<数字图像处理实验报告 Matlab图像处理基础(27页珍藏版)>请在人人文库网上搜索. 1. ...

  6. c语言张振国实验报告,基于VisualC的黄金分割法程序设计实验报告.doc

    基于VisualC的黄金分割法程序设计实验报告 新疆农业大学机械交通学院 实验报告 基于Visual C 的黄金分割法程序设计 一 .实验目的 1. 加深对机械优化设计方法的基本理论和算法步骤的理解: ...

  7. matlab计算叶子的面积,基于MATLAB进行树叶面积测量实验报告

    <基于MATLAB进行树叶面积测量实验报告>由会员分享,可在线阅读,更多相关<基于MATLAB进行树叶面积测量实验报告(3页珍藏版)>请在人人文库网上搜索. 1.科学计算与数据 ...

  8. matlab fft谱分析实验报告,数字信号处理实验报告-FFT算法的MATLAB实现.doc

    数字信号处理实验报告-FFT算法的MATLAB实现.doc 数字信号处理 实验报告实验二FFT算法的MATLAB实现一.实验目的通过本实验的学习,掌握离散傅立叶变换的理论,特别是FFT的基本算法以及其 ...

  9. matlab数字图像实验报告,数字图像处理实验报告(matlab)

    数字图像处理实验报告(matlab) 学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099 2011年10月 实验一 直方图均衡化 一. 实验目的: 1. 熟悉图像数据在计算机中的 ...

最新文章

  1. windows计算器
  2. 射影几何3:拓广平面
  3. HTML笔记一,部分常用的元素与属性
  4. libnss mysql_Ubuntu通过LDAP集成AD域账号登录(libnss-ldap方式)
  5. 奥数会不会彻底被信息奥赛取代?
  6. labview 远程连接linux,SSH交互式通信总结:expect、plink、putty、sshpass、ALAB SSH
  7. Exceeded maximum number of retries. Exceeded max scheduling attempts 3 for instance
  8. 自定义 matplotlib 设置
  9. cartopy模块介绍与安装
  10. java项目飞机大战
  11. 简单计算机电脑病毒实验,简单的电脑病毒程序
  12. phpQuery占用过多内存的解决方法
  13. 【PYTHON】【requests】【自定义authen,requests.auth AuthBase】
  14. 程序员如何看待实力与运气
  15. 号外号外!兹有第一届区块链技术及应用峰会(BTA)·中国首轮议题抢鲜看
  16. i9级E52450处理器_2020年桌面级CPU处理器最新性能天梯排行榜,第十代Intel处理器表现不错,AMD YES!...
  17. android简易计算器
  18. sql数据库本地服务器不显示,sql数据库本地服务器不显示
  19. matlab静音检测,matlab去除静音段 | 学步园
  20. cmd如何切换到E盘

热门文章

  1. 五天拼出一款提词器软件之二软件基础代码与功能实现
  2. 数据结构之线性表的含义和线性表的抽象数据类型
  3. Redisson实现分布式锁-由问题到程序
  4. python中利用re模块正则表达式匹配ip地址
  5. cpu真假有没有装机测试软件,【求助】如何用各种测试软件检测硬件好坏真伪?...
  6. UART和RS232、RS485的基础知识
  7. 在Ubuntu 16.04系统中,将Logitech G920方向盘连接到Carla服务器
  8. 基于modelsim软件进行仿真简易CPU指令的实现
  9. 软件需求工程 课堂笔记5
  10. 苹果iPhone4S的Siri究竟犀利到了谁?