EDN China > 设计实例 > 消费电子设计 > 智能白电 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于FPGA的数字日历设计

刘娟花?? 厉谨?? 西安工程大学电子信息学院?? 2014年12月08日 ?? 收藏6
基于FPGA 设计数字日历可以实现以软件方式设计硬件的目的,无需购买专用数字芯片,从而克服了传统利用多片数字集成电路设计数字日历存在焊接麻烦、调试繁琐、成本较高等问题。而且,基于FPGA 的数字日历与传统系统相比,在设计灵活、开发速度、降低成本、计时精度、功能实现上都得到大幅度提升,能够更好地满足人们日常生活的需要。

本文介绍如何利用VHDL 硬件描述语言设计一个具有年、月、日、星期、时、分、秒计时显示功能,时间调整功能和整点报时功能的数字日历。在Quartus Ⅱ开发环境下,采用自顶向下的设计方法,建立各个基本模块,再构建成一个完整的基于FPGA 设计的数字日历的顶层模块,然后对其进行编译、仿真、引脚锁定,最终下载到可编程逻辑器件上进行结果验证。

1 数字日历整体设计方案

基于FPGA 的数字日历设计分为硬件设计和软件设计两大部分。其原理框图如图1所示。整个数字日历由六个部分组成:显示控制部分,时分秒部分,年月日部分,定时与整点报时部分,星期部分,调整控制部分。秒、分、时分别由两个60进制的计数器和一个24进制的计数器组成。当个计数器达到进位的条件时向下一计数器进位。同样日、月、年也是由不同的计数器组成,当达到所需进位的条件时向下一计数器进位,各计数器在进位的同时分别把各自的结果输出给显示部分进行实时显示。

图1 数字日历原理框图
图1 数字日历原理框图

2 数字日历的工作原理

首先由外部振荡器产生稳定的高频脉冲信号,作为数字日历的时间基准,然后经过分频器输出标准秒脉冲,输入到FPGA的CLOCK端,实现计数。当秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24进1”规律计数。计满后各计数器清零,重新计数。日部分由于日有28天、29天、30天、31天4种情况,故日由年和月共同判断其天数,日计满后向月进位,月满后向年进位。计数器的输出分别经译码器送数码管显示。计时出现误差时,可以用校时电路校时、校分、校秒和校年、校月、校日。

设计中用到了6 个按键K1,K2,K3,K4,ZHENG,NAO。其中K1用于切换显示,刚开始时显示日期,按两次K1显示星期+时间,再按两次K1显示定时时间,再按两次重新显示日期,以此循环。K2、K3和K4配合进行调节:开始正常显示不进行调节;当按两下K2 键切换到对分钟进行调节,此时每按两下K3 键分钟加1;再按两下K2 键切换到对小时进行调节,此时每按两下K3 键小时加1;依照分钟→小时→星期→天→月→年→定时→正常→分钟的次序循环调节,每按两下K2 键切换到调节相应显示,此时每按下K3键两次,对应显示加1;当切换到定时调节时,每按两下K3键,定时的分钟加1,此时按两下K4 键,切换到定时小时调节,每按两下K3 键,定时的小时加1。按键ZHENG和NAO为整点报时和定时闹钟的使能端(低电平有效)。

3 软件设计

软件设计分为秒分时、年月日、按键调整、控制显示、闹钟等几大模块。设计好各子模块,然后在原理图编辑窗口创建顶层原理图文件shuzirili.bdf,将各子模块按照逻辑关系连接起来得到数字日历电路核心部分的原理图。下面对各子模块设计及仿真进行介绍。


上一页1234下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

数字日历? VHDL? FPGA? Quartus Ⅱ?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈