数电实验 数字电子钟设计 基于quartus 实现计时校时闹钟秒表稍复杂音频 分享电路图设计以及工程文件

简介: 数电实验 数字电子钟设计 基于quartus 实现计时校时闹钟秒表稍复杂音频 分享电路图设计以及工程文件

数字电子钟设计


本文主要完成数字电子钟的以下功能

1、计时功能(24小时)

2、秒表功能(一个按键实现开始暂停,另一个按键实现清零功能)

3、闹钟功能(设置闹钟以及到时响10秒)

4、校时功能

5、其他功能(清零、加速、星期、八位数码管显示等)


前排提示:前面几篇文章介绍过的内容就不详细介绍了,可以看我专栏的前几篇文章。

PS.工程文件放在最后面


总体设计

a214b731213c4fe7bca5f882a4e61b1c.png


本次设计主要是在前一篇文章 数字电子钟基本功能的实现 的基础上改编而成的,主要结构不变,分频器将50MHz分为较低的频率备用;dig_select负责扫描8位数码管,sec_select和code_select模块负责对应位置的输出。

**设计思路:**电路由三个大的模块和九个小的模块组成,大的三个模块分别对应时钟,秒表和闹钟功能。九个小的模块包括分频模块、加速模块、输出选择模块、译码器模块、消抖模块、闹钟判定模块、闹铃播放模块、位选模块、各种计数器模块等。


一、计时功能

1、分频模块电路设计

(1) 模块功能

将50MHz模块分为5000Hz、1000Hz、500Hz、5Hz和1Hz备用

(2) 设计思路

利用计数器m100和74390芯片将50MHz频率的输入信号逐级分频

(3) 设计结果(电路)


02eef7b2a7714dffa5f182d62fda01e9.png


2、分、秒计时模块(模60计数)

(1) 模块功能(计数、进位)

实现模60计数器计数、进位以及清零功能

(2) 设计思路

利用73390芯片的双十进制计数功能,先设计模100计数器,到60的时候清零,设计为模60计数器

(3) 设计结果(电路)


af571dff170048d78ee766d290d6700a.png


3、小时计时模块(模24计数)

(1) 模块功能

实现模24计数器计数进位和清零功能

(2) 设计思路

和模60计数器类似,将模100计数器到24的时候清零,设计为模24计数器

(3) 设计结果(电路)


992344882ddb430fa5cf9a20c0dce276.png


4、数码管动态显示模块


设计思路:dig_select模块依次扫描8个数码管,同时code_select模块选择当前数码管应输出的数字或符号。


4.1 扫描模块cnt6


(1) 模块功能

实现模6计数器,动态扫描6个数码管

(2) 设计思路

利用74390芯片的模10功能,到6的时候截取。

(3) 设计结果(电路)

5047d5298d6f4c36bf83a8a9bf165d04.png


4.2 位选模块dig_select

(1) 模块功能

根据模6计数结果,输出相应的数码管显示

(2) 设计思路

利用74138芯片分配高电平到各个管脚

(3) 设计结果(电路)


28f7f94594f3457aab96f3250092bb26.png

4.3 数据选择模块code_select

(1) 模块功能

从8组数据中选择一组数据输出

(2) 设计思路

利用747151芯片的8选1数据选择功能,将每一位的数字的显示功能分开。

(3) 设计结果


1e458a0302604f2f9f6d648411ced609.png


4.4 译码模块decoder

(1) 模块功能

输入BCD码,输出数码管的七段码

(2) 设计思路

利用7448芯片带有的译码功能,在正常输出的基础上,对6、9进行补段,并将1111改为输出一条横线。

(3) 设计结果

68d9c896fa1e46d1bbcea362b7dd5db7.png


4.5 动态显示模块


设计思路:利用模8计数器动态扫描8个数码管,同时数据选择器同步输出对应位置的信号。横线用1111表示,输出横线时,decoder输出g位数码管即可


二、秒表功能


(1)模块功能


实现秒表的设计,用一个按钮表示start和end两种状态,实现秒表的计时与暂停功能。用k7实现秒表的清零功能


(2)设计思路


秒表与时钟类似,毫秒端用一个模100计数器,秒端用一个模60计数器,分端用一个模60计数器,输入时钟信号改为100hz。需用数据选择器设计一个保持模块,按一次按键切换一次状态,实现一个按钮控制秒表的开始与暂停。


(3)设计结果


封装设计

908bf1ec13cd469db59ab94a0f615c92.png


整体设计


a094eced74184fd78fb44058a246c7e4.png

保持模块


9b7c87a3ff8b43a7b970af08e0609767.png


计数模块Ucnt10


b024492415a74597b08ed251f0ffc721.png


三、闹钟功能


(1)模块功能


实现闹钟功能的设计,实现设定闹钟,并且到达设定时间后,发出闹铃“滴滴滴 滴滴滴 滴滴滴”的功能


(2)设计思路


先设计一个set_clock端,只有该模块被选中时其他按键才会有效,否则都被set clock端的高电平封锁,然后依次连接cnt60、cnt60、cnt24模块,作为闹钟显示的秒位、分位和时位。这三个计数器的时钟端除了接收低位来的进位信号外,还接收输入端的信号,这样就可以实现对每一位的单独加一操作。之后,将三个计数器的数字输出到比较模块。

比较模块同时接收来自时钟模块的时间数据和来自闹钟模块的闹钟时间,利用同或门比较二者,如果时钟时间与闹钟时间相同,则会在接下来的10秒内持续输出1kHz的信号给音频模块。

音频模块是由8选1数据选择器和计数器组成,在接收到时钟信号后,计数器开始工作,依次将数据选择器的8个输入端输出,这时候将8个输入端接不同的频率就可以实现简单地音频播放。


(3)设计结果


闹钟设定模块

26d90ff10ec149f99bacaf78b604d4db.png


整体设计


66224b1230b74ce2b6f35ca06a943a12.png

比较模块

cf083dd61c904859b8692936c76dd0d3.png


整体设计


efc48df1b1e34be9a06f7360ae7d447f.png


音频模块设计(实现稍复杂音频)

3195071b80114358a5cddaeb13c92bd4.png


四、校时功能


(1)模块功能

实现时钟的校时功能,用四个按键分别调整秒、分、时和星期的设定。


(2)设计思路


在计时模块的基础上,每一个计数器加上一个时钟信号输入端,通过给时钟信号输入端加上升沿,计数器加一,完成校时功能。


(3)设计结果

按键消抖模块(key_debounce模块)

05dc658628af4756ba7b6f53b5a3e100.png


校时功能设计

76072c96852f4fe192f71734a7ac120f.png


五、其他功能


1、清零功能

(1)模块功能

实现时间模块的清零功能

(2)设计思路

每一个计数器的清零端通过或门接到开关,开关输入高电平时清零

(3)设计结果


5e1919fc750b431999c599df2c1827e4.png


内部设计

45b9cce628624dae87effaa501b2c4cd.png


2、8位数码管显示功能

(1)模块功能

用8位数码管显示,第1位显示星期,第2位显示横线,剩下6位显示小时、分钟、秒。

(2)设计思路

将模6计数器改为模8计数器,dig端连接到8个数码管。Code_select模块的数据选择器加2个状态,横线用1111表示。

(3)设计结果

模8计数器


8707c1fbe57340dd9cfa81cc34ecdd46.png

Code_select

3ef4711854474746b7660181809ecb77.png


Sec_select

740e941c09a449558625769e8d432e47.png


3、暂停与切换模式功能

(1)模块功能

实现两种模块的切换以及时钟的暂停功能

(2)设计思路

利用与非门高电平屏蔽另一个输入的特性,设计一个mode_select模块,用一个开关在三种主要功能之间切换

(3)设计结果

模式切换模块

32158000eb7a480eb9d731345ce54a87.png

封装设计

56c1e809150c41fab16ab2ab7f7d91e3.png


4、星期显示功能

(1)模块功能

用一位数字显示星期

(2)设计思路

将表示小时的模24计数器的进位端接到模7计数器上,模7计数器的输出表示星期。

(3)设计结果

模7计数器

0d9df70e992146b8a54ac19f50102374.png




目录
打赏
0
1
3
0
5
分享
相关文章
从前端到后端——完整的Web开发指南
【2月更文挑战第1天】Web开发已经成为了现代软件开发中不可或缺的一部分。无论是前端还是后端,都扮演着重要的角色。本文将从前端到后端,介绍完整的Web开发流程和技术栈,帮助初学者快速入门Web开发。
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
318 2
VMware虚拟机 用共享文件夹方式 与主机传输文件(图文)
VMware虚拟机 用共享文件夹方式 与主机传输文件(图文)
VMware虚拟机 用共享文件夹方式 与主机传输文件(图文)
连接真实世界,高德地图背后的算法演进和创新
出行是生活的重要部分。我们都习惯了出门用导航,但一个导航App背后,需要什么样的数据和算法来支撑呢?算法又如何来推动出行体验的进步和创新呢?在阿里CIO学院攻“疫”技术公益大咖说的第十四场直播中高德地图首席科学家任小枫将为大家讲解高德地图背后的算法的演进和创新,分别从地图制作、搜索推荐、路径规划、时
10192 1
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
1074 0
实验四 基于FPGA的数字电子钟设计(1) 基本功能的实现 quartus电路图演示
|
9月前
|
quartus 小技巧—— 分线。例如总线data[31..0],引出的分线为data[7..0]
在数字电路设计中,总线用于并行传输数据,而分线是从总线中提取特定数据位。Quartus II,Altera(现Intel)的EDA工具,支持灵活的总线分线操作。本文介绍了两种在Quartus II中实现分线的方法:一是直接索引,如`data[7:0]`;二是使用Verilog的`extract`操作,尽管在Verilog中直接索引更常见。这些技巧有助于提升设计效率。
编程语言未来发展趋势探析:简化与标准化、并发与分布式、智能应用新篇章
编程语言未来发展趋势探析:简化与标准化、并发与分布式、智能应用新篇章
176 1
java入门项目:学生管理系统(进阶版超详细搭建)
学生管理系统是一个典型的信息管理系统,熟悉并掌握其需求和设计思想对于理解和学习数据库操作和Java编程有非常大的帮助。 分为学生端和教师端 1. 学生端的功能分为登录、注册、查看个人信息、查看成绩、申请修改信息 2. 教师端的功能分为登录、注册、查看学生信息、修改学生信息、删除学生信息、添加学生信息、查看学生申请的修改信息
9895 3