- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录一、设计任务和要求 1
二、总体框图 1
三、选择器件 2
四、功能模块 3
4.1日模块 3
4.2月模块 5
4.3年模块 7
4.4星期模块 8
4.5扫描模块 9
4.6数码管模块 11
4.7三八译码器 12
4.8分频器模块 14
五.总体电路设计图和硬件实现 14
5.1程序仿真电路 14
5.2硬件实现 18
六.设计中存在的问题 21
七、深入研究 21
八、心得体会 21
简易万年历的设计
一、设计任务和要求
1.用七个七段数码管显示年的低两位,月,日和星期,并具有闰年判断功能;
2.可以手动调整年,月,日,星期;
3.在Quartus II 6.0中编写VHDL程序实现年,月,日星期各模块的功能;
4.编写顶层程序将各模块连接起来实现万年历调时功能。
二、总体框图
图1 总体框图
上图为总体设计框图,主要有计数模块、年月日模块、分频模块和扫描译码显示模块组成。
分频模块在外部时钟信号的作用下实现分频后将其分频信号分别输出给计数模块和扫描模块。在分频信号(日脉冲)作用下计数模块实现计数功能实现年月日计数功能,但其计数功能是在以BCD码形式所记录的。这就需要扫描电路去扫描计数模块所输出的时间在500HZ脉冲下经过译码器将其译成共阴数码管所对应的二进制数进行显示,最终显示的为年月日。外部时间控制信号可控制时间的校验。
三、选择器件
1、PC机一台。
2、CPLD/FPGA适配器板:标准配置EPF10K10LC84-4接口板,下载接口是数字芯片的下载接口(DIGITAL JTAG),主要用于CPLD/FPGA芯片的数据下载。
3、实验箱:装有七段数码管及蜂鸣器等,七段数码管真值表及字型如下
表1 七段数码管真值表
输入 输出 字型 D C B A 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1
七段数码管字形如下:
图2 数码管字型图
四、功能模块
4.1日模块
1.模块图
图3 日模块图
2.仿真图
图4 日模块仿真图
clk:输入脉冲;
pan:输入月的判断信号,0表示大月为31天,1表示小月30天,2表示平月为28天,3表示闰月为29天;
T1:日的个位;
T2:日的十位;
cout:进位信号,当pan=0的时候T2T1=31时产生进位,cout=1,当pan=1的时候T2T1=30时产生进位信号,cout=1,当pan=2的时候T2T1=28时产生进位,cout=1,当pan=3的时候T2T1=29时产生进位,cout=1。
3.程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TIAN IS
PORT(CLK:IN STD_LOGIC;
pan: in std_logic_vector(1 downto 0);
T1,T2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END;
ARCHITECTURE ONE OF TIAN IS
SIGNAL Q1,Q2:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL AB:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
PROCESS (CLK,pan)
BEGIN
IF (CLKEVENT AND CLK=1 )THEN ——检测时钟上升沿
Q1=Q1+1; ——Q1开始计数
IF (Q1=9 )THEN Q1=0000;
Q2=Q2+1; ——Q1=9时,Q2开始计数且Q1清零
END IF;
--AB=AB;
CASE pan IS
WHEN 00=
IF (Q2=3 )AND Q1=1 THEN Q2=0000;Q1=0000;COU
文档评论(0)