完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
闹钟 1功能概述 闹钟是一种既能显示时间,又能根据人们设定的时间,发出铃声、乐曲等提醒信号的计时工具。现在,闹钟几乎已经是上学、上班族必不可少的一个工具,主要应用在电脑、手机、电子表等方面。在20小节数字时钟里我们介绍过,与传统机械式计时工具相比,数字计时系统具备体积小、重量轻、抗干扰能力强、对环境要求高、高精确性、容易开发等特征。数字计时间高精度的特征,在闹钟功能上的应用优势更为突出。 科学地划分模块,充分理顺模块间的相互关系对于FPGA设计来说非常重要。以闹钟设计为例,我们通过建立四个清晰直观的模块(数码管显示模块,矩阵键盘扫描模块,时钟计数模块,闹钟设定模块),以及建立完善的信号列表和运用verilog语言编写简洁流畅的代码,实现电子闹钟时、分、秒计时以及设置、修改、重置等功能。 具体功能要求如下: 本工程包括矩阵键盘和数码管显示模块,共同实现一个带有闹钟功能、可设置时间的数字时钟。具体功能如下: 1. 数码管可以显示时十位、时个位、分十位、分个位、秒十位、秒个位。 2. 上电后,数码管显示000000,并开始每秒计时。 3. 按下按键1进入时间设置状态。再按下按键1退出时间设置状态,继续计时。 4. 在时间设置状态,通过按键2来选择设置的时间位,在0~5之间循环选择。 5. 在时间设置状态,通过按键3来对当前选择的时间位进行加1。 6. 在计时状态下,按下按键14,进入闹钟时间点设置状态;再按下按健15,退出闹钟设置状态。 7. 在闹钟设置状态,按下按键13选择设置的时间位,此时可以按下所需要的按键序号设置对应闹钟时间。 8. 当前时间与所设置的时间点匹配上了,蜂鸣器响应5 s。 2 设计思路 我们把工程分成四个模块,分别是数码管显示模块,矩阵键盘扫描模块,时钟计数模块,闹钟设定模块。模块划分以及顶层模块信号列表如下图: 工程顶层模块的信号列表
1.数码管显示模块——实现将时钟数据或者闹钟数据显示到七段译码器上的功能。 七段译码器引脚图: 根据七段译码器的型号共阴极或者共阳极,给予信号0点亮对应的led灯;一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选(a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。例如,如果数码管显示数字0,那么共阴数码管的字符编码为00111111,即共阳数码管的字符编码为11000000。 信号列表如下:
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 2.矩阵键盘扫描模块——4x4矩阵键盘,实现了矩阵键盘的扫描并使用以及按键消抖功能。通过行扫描法得到按下的键的位置信息。 信号列表如下:
3.时钟计数模块——按下按键1则进入时钟数字调节界面,此时利用按键2来位选,按键3来调节数字,按一次按键3则加1,再次按下按键1则恢复计数。 信号列表如下:
4.闹钟设定模块——实现设定闹钟时间功能,按下按键14则进入闹钟时间设定界面,并利用按键13来进行位选;然后按下对应的按键则设定对应的数字;按下按键15则退出闹钟设定界面。当时钟数据和闹钟数据相同时,也就是到达设定时间时,蜂鸣器响5s。 信号列表如下:
3 程序设计 工程模块
数码管显示模块
矩阵键盘模块
时钟计数模块
闹钟设定模块
|
|||
1434 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1059 浏览 0 评论
2513 浏览 1 评论
2206 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2475 浏览 0 评论
1936 浏览 53 评论
6021 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 23:47 , Processed in 0.807414 second(s), Total 66, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号