数电实验 数字电子钟设计 基于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




相关文章
|
7月前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
255 2
|
传感器 Linux Python
一起玩转树莓派(19)——红外遥控控制实验
红外遥控是生活中非常常见的电子器具,电视机,空调,音响等电器都可以通过遥控器进行控制。本篇博客,我们尝试来通过红外发生器和红外信号接受器来进行红外控制实验,在树莓派上通过红外遥控的按键来处理LED灯的控制。
2026 0
蓝桥杯之单片机学习(十八)——555定时器与频率测量
蓝桥杯之单片机学习(十八)——555定时器与频率测量
824 0
蓝桥杯之单片机学习(十八)——555定时器与频率测量
|
4月前
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
146 3
【单片机期中测试】9.定时器实现简单的秒表程序
【单片机期中测试】9.定时器实现简单的秒表程序
157 0
【单片机期中测试】7.按键调光
【单片机期中测试】7.按键调光
62 0
|
SQL 芯片
数字式秒表电路设计
数字式秒表电路设计
209 1
数字式秒表电路设计
【微机原理大作业】从0开始设计RTC电子钟系统(三)(含完整源码和仿真图及下载地址)
【微机原理大作业】从0开始设计RTC电子钟系统(三)(含完整源码和仿真图及下载地址)
|
芯片
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
749 0
单片机:蜂鸣器发声和自动关闭一站式教程:(附赠如何控制声音大小和音调)软件编程+硬件原理+注意事项
电赛校赛-三相逆变电源设计(单片机部分--C52仿真测频+串口发送机与串口接收机)
电赛校赛-三相逆变电源设计(单片机部分--C52仿真测频+串口发送机与串口接收机)
216 0
电赛校赛-三相逆变电源设计(单片机部分--C52仿真测频+串口发送机与串口接收机)