数电课设数字钟设计(基于quartus)

这篇具有很好参考价值的文章主要介绍了数电课设数字钟设计(基于quartus)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

        数字钟是一种利用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的综合性较强,将数字钟作为数电实验大作业的选题不仅可以加深对数电相关理论知识如计数器、组合逻辑电路及时序逻辑电路的理解,还可以有效锻炼工程实践能力。该数字钟以时间显示为基础,在此基础上添加校时及秒表功能,利用Quartus软件设计电路,使用远程平台下载验证。


一、方案设计

        该系统使用74160构建基础计数模块,通过计数器模块的级联实现时分秒的计时,实验平台上的50MHz分频后的1Hz信号作为钟表时钟来源,通过数据选择器与扫描模式来实现多位数码管的显示。系统框图如下:

数电课设数字钟设计(基于quartus)

二、各模块具体设计

1.分频模块

数电课设数字钟设计(基于quartus)

         分频模块将实验平台的50MHz时钟分别转换为1Hz、1000Hz、100Hz分别用于时钟计时、数码管扫描显示及秒表计时。采用锁相环加分频器的宏模块实现,相较于只使用分频器,信号更加稳定。 

2.计数器模块

数电课设数字钟设计(基于quartus)

        计数器模块使用74160级联而成,采用整体反馈置数法,以60进制计数器为例,将59作为置数反馈信号,低位片为9,高位片为5,同时增加了清零信号以用于时钟的清零,24进制与100进制同理。

3.校时模块

        校时模块使用Verilog代码完成,如下图所示,B为控制信号,B为0时时分秒计数器的时钟信号分别接到默认时钟即上一位的进位信号或分频器的时钟上,B为1时分别接到对应置数信号即按键上,用手动时钟即可实现校时的功能。

module CLKselect(B,a1,a2,a3,b1,b2,b3,clk1,clk2,clk3);
      input B,a1,a2,a3,b1,b2,b3;
		output clk1,clk2,clk3;
		reg clk1,clk2,clk3;
		always @(B,a1,a2,a3,b1,b2,b3)
		  case (B)
		  1'b0:begin clk1<=a1;clk2<=a2;clk3<=a3;end 
		  1'b1:begin clk1<=b1;clk2<=b2;clk3<=b3;end 
		  endcase 
endmodule 

数电课设数字钟设计(基于quartus)

4.数码管显示模块 

        该模块由8进制计数器、四块74151数据选择器和两块译码器构成,8进制计数器的时钟信号为1000Hz,即为数码管的扫描频率,在八进制计数器的输出信号在0~7循环时,四块74151分别选出小时计数器、分钟计数器、秒钟计数器的高四位和低四位数据,以1000Hz的频率按顺序分别送到显示译码器,在与74138译码器的配合下实现扫描的效果。

数电课设数字钟设计(基于quartus)

 为了可以在数码管上显示“-”,将7447进行改造,代码如下,输入译码器的数据不是0~9时只点亮数码管的g段,该数据的产生通过上图中将74151的对应引脚接vcc来实现,这样到对应时刻时4块74151选出的数据是1111即十进制的15,不是0~9的数据,即可显示“-”。

module my7447(AI,BI,CI,DI,a,b,c,d,e,f,g);
     input AI,BI,CI,DI;
	  output a,b,c,d,e,f,g;
	  reg a,b,c,d,e,f,g;
	  always @ (AI,BI,CI,DI)
	    case ({DI,CI,BI,AI})
		   4'b0000:{a,b,c,d,e,f,g}<=7'b0000001;
			4'b0001:{a,b,c,d,e,f,g}<=7'b1001111;
			4'b0010:{a,b,c,d,e,f,g}<=7'b0010010;
			4'b0011:{a,b,c,d,e,f,g}<=7'b0000110;
			4'b0100:{a,b,c,d,e,f,g}<=7'b1001100;
			4'b0101:{a,b,c,d,e,f,g}<=7'b0100100;
			4'b0110:{a,b,c,d,e,f,g}<=7'b0100000;
			4'b0111:{a,b,c,d,e,f,g}<=7'b0001111;
			4'b1000:{a,b,c,d,e,f,g}<=7'b0000000;
			4'b1001:{a,b,c,d,e,f,g}<=7'b0000100;
			default {a,b,c,d,e,f,g}<=7'b1111110;
		 endcase
endmodule 

5.模式选择模块 

该模块的本质是数码管显示的切换,采用Verilog代码实现,C为控制信号,C为0时将输出信号接到钟表的时分秒计数器的输出总线上,C为1时将输出信号接到秒表的三个计数器的输出总线上,最后再将该模块的输出信号接到数码管显示模块的输入上,即可通过改变控制信号来实现钟表模式和秒表模式的切换。

module showselect(C,h1,m1,s1,h2,m2,s2,H,M,S);
      input [7:0]h1,m1,s1,h2,m2,s2;
		input C;
		output [7:0]H,M,S;
		reg [7:0]H,M,S;
		always @(h1,m1,s1,h2,m2,s2)
		  case(C)
		  1'b0:begin H<=h1;M<=m1;S<=s1;end
		  1'b1:begin H<=h2;M<=m2;S<=s2;end 
		  endcase
endmodule

数电课设数字钟设计(基于quartus)

6.秒表暂停模块 

该模块也使用代码完成,D为控制信号,D为0时接通秒表时钟,D为1时输出为0即断开秒表时钟,实现秒表暂停的功能。

module secwatchstop(D,clk,S);
      input D,clk;
		output S;
		reg S;
		always @(D,clk)
		 case (D)
		 1'b0:S<=clk;
		 1'b1:S<=1'b0;
		 endcase
endmodule 

三.设计过程中出现的问题及解决方法 

1.校时控制信号恢复时,时分秒三个计数器的值会加1。经分析,该问题产生的原因是在校时控制信号的按键恢复的瞬间将时钟信号从手动时钟切换为默认时钟时产生了一个上升沿,导致三个计数器的值都加1。解决方法是将校时模块手动时钟信号的输入上都添加非门,这样即使按键恢复的瞬间也不会产生上升沿。

数电课设数字钟设计(基于quartus)


 2.时钟的计数器在59就产生进位而不是00时再产生。经分析,导致该问题的原因是进位信号的上升沿提前一秒到来,解决方法是在计数器模块的进位信号不加非门,这样进位时进位信号由1变为0,持续一秒之后即59到00转换的瞬间由0恢复为1,产生一个上升沿,将上升沿的信号推迟了一秒。

该工程所有文件的百度网盘链接:

链接:https://pan.baidu.com/s/1x3Rql6J5tCNwfcfs3YsXAw 
提取码:8421 文章来源地址https://www.toymoban.com/news/detail-446217.html

到了这里,关于数电课设数字钟设计(基于quartus)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【基于FPGA的可调数字钟设计】

    近年来由于美国对我国芯片行业的封锁,我国芯片行业迎来了一波发展的浪潮,FPGA这款小众而又实用的芯片也被划在制裁名单中。 (1)、能在开发板的数码管上显示时间功能 (2)、正常显示时、分、秒 (3)、4个按键:一个作为rst复位,1个作为数字钟调节时的切 换,1个

    2024年02月09日
    浏览(41)
  • 基于FPGA的可调数字钟设计

            在此特别感谢哔站up主 甘第 发布的FPGA企业实训课(基于FPGA的数字钟设计)教学视频,让一个FPGA小白开始了第一个FPGA设计开发流程。本设计参考了这个教学视频,在此基础上添加并修改了一些代码,完成了这个小小的不带任何功能的数字时钟。         初次学习

    2024年02月06日
    浏览(42)
  • 基于FPGA的多功能数字钟的设计

    摘要 数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常 生活中不可少的必需品。本文介绍了应用FPGA芯片设计多功能数字钟的•种方 案,并讨讨论了有关使用FPGA芯片和VHDL语言实现数字钟设计的技术问题。 数字钟、分频器、译码器、计数器、校

    2024年02月07日
    浏览(35)
  • 【30-60s计数器电路设计】数电课设

    这是徐州工程学院2021年的电子工艺实习课程作业之一,我是20级计嵌专业的学生。电路方面的东西并不是我们的主修课程,所以在完成这项作业的过程中遇到了许多困难( 特别是在查不到样板的情况下 )。网上也找到过一位仁兄的案例,不过并没有详细的电路运行原理和操

    2024年02月08日
    浏览(37)
  • 实验 7 数字钟设计

    7.1 实 验 目 的 设计一个具有时功能和校的数字钟。 7.2 实 验 仪 器 与 器 材 1. EDA 开发软件 一 套 2.微机 一 台 3.实验开发系统 一 台 4.打印机 一 台 5.其他器件与材料 若 干 7.3 实 验 说 明 用 数码管显示小时 、 分 钟 和 秒钟。 三 个 按键用于时钟校准。 K1 用 与切换

    2024年01月22日
    浏览(29)
  • 数字系统设计(FPGA)课程设计: 多功能数字钟

    一、目的: 实现多功能数字钟,具备下列功能: 1、数字钟:能计时,实现小时、分钟、秒的显示; 2、数字跑表:精度至0.01秒 比如显示12.97秒; 3、闹钟: 可以设定闹钟,用试验箱上的蜂鸣器作为闹铃; 4、调时:可以对时间进行设定; 5、日期设定:能设定日期并显示当前

    2023年04月18日
    浏览(33)
  • 电子设计数字钟,multisim仿真·

    设计步骤(分模块叙述,并附上各模块与总体电路图) 1.计时模块,显示模块,调时模块设计 计数器模块由七片74LS160的芯片组成,两片为“秒”,两片为“分”,两片为“时”,还有一片作为“星期”,七个数码管显示器用来显示数字。‘秒’和‘分’采用60进制。通过异步

    2024年02月11日
    浏览(32)
  • 【verilog】多功能数字钟的设计

    掌握数字钟的工作原理。 掌握计数器级联构成更大模值计数器的方法。  能用verilog描述简单的时序逻辑电路。         多功能数字钟应该具有的基本功能有:显示时-分-秒、整点报时、小时和分钟可调等。首先要知道钟表的工作机理,整个钟表的工作应该是在1Hz信号的

    2024年02月04日
    浏览(43)
  • 【基于51单片机的数字钟】

    掌握单片机 C 语言判断语句、分支语句以及子程序调用等编程知识 此程序调试时间方式为先暂停再调时,故有调秒的功能。 (1) 实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数),同时数 码管应无闪烁问题 (2) 通过按键分别实现时、分、秒信息的调整,方便用户

    2024年02月11日
    浏览(39)
  • 基于STM32F103C8T6与ESP8266的物联网智能温度采集与蓝牙OLED数字钟的设计与实现

    作者: 颜孙炜 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wC12xZrc-1673843611066)(C:UsersadminAppDataRoamingTyporatypora-user-imagesimage-20230110223524043.png)] 用STM32F103C8T6自有的RTC功能实现一款数字钟的设计,包括温度输入检测和显示模块、数字钟显示模块

    2024年02月02日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包