您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于FPGA-的电子万年历设计
基于FPGA的电子万年历设计ThedesignofelectroniccalendarbasedonFPGA(淮阴工学院)李慧(HUAIYININSTITUTEOFTECHNOLOGY)HuiLi摘要:本文介绍了电子万年历的系统设计,采用VHDL语言编程实现。系统外围硬件电路简单,整个系统精度高,可靠性好。最终,在FPGA芯片EPF10K10LC84-4上完成下载。关键词:FPGA;电子万年历;精度中图分类号:TP386文献标识码:AAbstract:ThispaperintroduceshowtodesignelectroniccalendarbyprogramminginVHDLlanguage.Thehardwarecircuitofthesystemissimply,andthesystemhavehighprecisionanddependability.FinallythedesignisaccomplishedanddownloadedintoFPGACOMSchipnamedEPF10K10LC84-4.Keywords:FPGA;electroniccalendar;precision0引言随着近年来科学技术的迅速发展和普及,我们的工作,生活观念也发生了巨大的改变,人们对各式电子产品的要求也越来越高,使得与生活密切相关的电子万年历逐渐走向智能化、便捷化。每到新年,人们就会买来一本新的日历,配上绘有图画的日历牌挂在墙上,既是装饰,又能指示年、月、日、星期等信息。但使用这种纸质日历,必须记得每天按时撕一张,否则反而会记错日期,常常有人因为忘记每天撕掉而记错日期,错过重要事情,造成损失。与传统纸质的万年历相比,电子万年历得到了越来越广泛的应用。本设计基于FPGA芯片,外围电路简单,系统集成化程度高,精度高,采用VHDL语言编程,用软件的方式设计硬件,灵活性好,方便以后的产品升级[1]。1系统设计方案按照系统设计功能的要求,系统可以分为综合计时模块,数据调整模块,键盘采集模块以及数码管显示模块等4个模块,其中综合计时模块又包含7个子模块,每个子模块必须都具有预置,计数和进位功能,系统框图如下:图1系统功能模块图2具体模块设计2.1综合计时模块综合计时模块分为计秒模块,计分模块,计时模块,计星期模块,计日模块,计月模块,计年模块等7个子模块,这7个子模块都有预置,计数和进位功能,设计思想如下:(1)计秒模块:以秒脉冲作为计秒电路的计数时钟信号,待计数至60瞬间,进位,计分电路加1,而计秒电路则清零并重新计秒。(2)计分模块、计时模块:其设计思想与计秒模块类似。(3)计星期模块:将计时电路产生的进位脉冲信号作为计星期模块的计数时钟信号,待计数至6瞬间,计星期模块返回0重新开始计数。(4)计日模块:将计时模块产生的进位脉冲信号作为计日模块的计数时钟信号,通过系统辨认,确定本月总天数X(包括28、29、30、31四种情况),待计数至X+1瞬间,进位,计月模块加1,而计日模块返回1重新开始计数。(5)计月模块:将计日模块产生的进位脉冲信号作为计月模块的计数时钟信号,待计数至12瞬间,进位,计年模块加1,而计月模块返回1重新开始计数。(6)计年模块:将计月模块产生的进位脉冲信号作为计年模块的计数时钟信号,待计数至100瞬间,计年模块返回0重新开始计数。下面以计日模块为例,对系统进行仿真,仿真图如下:综合计时模块键盘采集模块数据调整模块数码管显示模块图2计日模块仿真图以上是对09年5月份的计日模块仿真,从仿真图中我们可以看到,5月份31天,MAX_DAYS用“11”来表示,送给后面的模块,此时对CLK时钟进行31分频。主要程序代码如下[2]:ifld='1'thenday=data;elsIFCLK'EVENTANDCLK='1'THENcasemax_daysiswhen00=--28天ifday(7downto5)=000thenifday(3downto0)=1001thenday(3downto0)=0000;day(7downto4)=day(7downto4)+1;elseday(3downto0)=day(3downto0)+1;endif;co='0';elsifday(7downto4)=0010thenifday(3downto0)=1000thenday(3downto0)=0001;day(7downto4)=0000;co='1';elseday(3downto0)=day(3downto0)+1;co='0';endif;elsenull;endif;when01=--29天…when10=--30天…whenothers=--31天…Endcase;Endif;2.2数据调整模块对于系统中的数据调整模块,主要是通过模式键和调整键来完成。模式键负责切换正常时间计数模式和时间调整模式,调整模式切换顺序如图3所示。调整键负责在时间调整模式之下,对当前模式的计时结果进行调整。该模块采用状态机来完成。图3调整模式切换顺序2.3数码管显示模块系统一共选用8个数码管来完成显示,对要显示的数据分成两组,年、月、日一组,星期、时、分、秒一组,通过键盘选择控制。模块的接口如下:调星期正常调秒调分调时调年调月调日图4数码管显示模块图3结束语将此设计下载到目标芯片EPFLEX10K84-4中,整个系统运行稳定,计时精度高,从综合的报告显示,资源利用率较高。本文的创新点:选用FPGA实现电子万年历,外围电路简单,系统集成化程度高,设计灵活,精度也明显高于普通的电子万年历。(学校图书馆已经订阅贵刊)参考文献[1]苏玉娜,程明等.基于FPGA的单片机外围接口电路设计[J].微计算机信息.2009,5-2:p173-174[2]沈明山.EDA技术及可编程器件应用实训[M].北京:科学出版社,2006:223-224作者简介:李慧,(1980-)男(汉族),江苏淮安人,硕士,讲师主要研究方向为测控技术与仪器Biography:HuiLi,(1980-),Male(HAN),HuaiancityinJiangsuProvince,Master,Lecturer,ResearchedArea:TechniqueandInstrumentationofMeasurements(FacultyofElectronicandElectricalEngineering,HUAIYININSTITUTEOFTECHNOLOGY,223003)Hui,Li通信地址:江苏淮安市枚乘路1号淮阴工学院电子与电气工程学院李慧(老师)收邮编:223003
本文标题:基于FPGA-的电子万年历设计
链接地址:https://www.777doc.com/doc-7321527 .html