基于FPGA开发的万年历系统

1功能概述 万年历是记录一定时间范围内的年历,其名称只是一种象征,表示时间跨度大。由于其功能非常常用,且极为方便人们查询使用,因此广泛应用于钟表、历书出版物、电子产品、电脑软件和手机应用等行业中。
与传统计时工具如钟表日历等相比,数字万年历具备精确度高、成本低廉、运行稳定、功能多样等众多优点,因此国内外许多设计人员先后进行了相关设计开发。其中,基于fpga开发除设计简便、开发成本低、电路简洁等,更具备功能设计灵活方面的优势。只需要在软件上做简单修改即可添加不同功能,如闹钟、阴阳历对照等。
在fpga设计中,数字万年历属于小规模集成电路。从原理上来讲,是典型的数字电路,包括组合逻辑电路和时序电路。在本案例中具体功能要求如下:
1. 上板复位后从元年1月1号开始计数,为方便上板调试,将一天的时间压缩为1秒;
2. 按键用于设置日历,按下按键0进入设置状态,再次按下按键0退出设置状态;
3. 按键1用来选择想要设置的年月日的各个位;
4. 按键2在设置状态时进行计数设置,每按一次数码管显示数字加1;
5. 平年365天(52周+1天),闰年366天(52周+2天),其中平年2月28天,闰年2月29天。
6. 闰年:每400年整一闰,或每4年且不为百年的一闰。即能被400整除,或不能被100整除但能被4整除的年份为闰年。
2 设计思路 首先根据所需要的功能,列出工程顶层的输入输出信号列表。如下表:
我们可以把工程划分成三个模块,分别是万年历计数模块、按键模块和数码管显示模块。
1. 计数模块——实现的是万年历计数功能,为方便观看,将一天时间设置为1秒;日计数器dat_cnt、月份计数器mon_cnt_h、mon_cnt_1、mon_2_h、mon_2_1分别为大月小月以及平年闰年的2月计数器、年份计数器yea_one、yea_ten、yea_hun、yea_tho分别为年份的个十百千位,由yea_cnt_tol 《= yea_cnt1000 + yea_cnt100 + yea_cnt10 + yea_one得到年份。本模块还自动计算当年是否是平闰年。
信号列表如下:
2. 按键模块——4x4矩阵键盘,实现了矩阵键盘的扫描并使用按键消抖功能。
信号列表如下:
3. 数码管模块——实现将年月日的信息显示在数码管上。
信号列表如下:
3、程序设计

通过Multisim 7仿真软件对负反馈放大电路的原理、参数及性能进行分析
为什么不看好科大讯飞
开关电源中开关管的功耗如何测量分析
一种QPSK调制量子增强接收的混合测量优化方案
六大战略科技力量增强城市科技创新策源能力
基于FPGA开发的万年历系统
我国通信业1-10月电信业务收入累计完成了10973亿元同比增长0.2%
常见的万用表测量误差及其解决方法
视频播放不流畅怎么办?华为云CDN为你解忧!
创新微MinewSemi国产UWB模块 高精度无线定位领跑者
!甩卖 HP37718B HP37718A HP37717C
自从加入索尼LED背光技术 电视价格就一直只涨不降
国芯思辰|海速芯32位MCU TM32F103K7替代STM32F103C8T6应用于塔机安全监控系统
改进碳化硅晶圆工艺
2021年新能源汽车下乡政策正在筹划
小波去噪c语言程序
华为Watch D手表:真正的智能血压手表
虹科活动 | SWCF 2022卫星通信与仿真测试线上研讨会倒计时,快来报名吧!
人工智能正更新换代,中国应该有所作为
手把手教你分析一个LED驱动电源电路