eda课程设计之带定时功能的计时器
更新时间:2023-05-17 17:08:01 阅读量: 实用文档 文档下载
物理与电气工程学院课程实践报告
EDA带控制功能的计数器
姓 名 *** 1111****** 专 业 电气工程及其自动化 班 级 电气工程及其自动化1班 年 级 2011级 指导教师 刘***** 成 绩 日 期 2013.6.26
一、总体设计思想
1.基本原理
数字闹钟电路的基本结构由两个60进制计数和一个24进制计数器组成,分别对秒、分、小时进行计时,当计时到23时59分59秒时,再来一个计数脉冲,则计数器清零,重新开始计时。秒计数器的技术时钟CLK为HZ的标准信号。当数字闹钟处于计时状态时,秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号时、分、秒得计时结果通过6个数码管来动态显示。因此,通过模式选择信号KEY1、KEY2控制数字钟的工作状态,使其分别工作于正常计时,调整分、时和设定闹钟分、时5个状态。当数字闹钟处于计时状态时,3个计数器允许计数,且秒、分、时计数器的计数时钟信号分别为CLK,秒的进位,分的进位;当数字闹钟处于闹钟定时状态时,可以设定小时和分;当计时到所设定的时刻时,驱动扬声器,持续1分钟。 2.设计框图
系统框图主要分为三部分:
第一部分为精准秒脉冲产生电路,这里我们采用频率为32.768KHz的标准晶振搭成精准的秒脉冲产生电路,为电子钟提供精准的秒脉冲输入。
第二部分为FPGA核心控制电路,主要由型号为EP3C25E144C8N的芯片经过编程以后,向译码显示电路提供控制信号。
第三部分为译码显示电路,由4片74LS47驱动4个7段数码管,
在核心控制电路输出的控制信号的控制下,显示相应的时、分、秒。具体框图如下图1所示。
图1
二、设计步骤和调试过程 1、总体设计电路
该数字钟可以实现3个功能:计时功能、定点报时功能和重
置时间功能,因此有3个子模块:计时、报时(speak)、重置时间(sd1,sd2)。其中计时模块有4部分构成:秒计时器(s1)、分计时器(m1)、时计时器(h1)。秒计时器(s1)是由一个60进制的计数器构成的,。clk为驱动秒计时器的时钟,s1为秒计时器的输出。分计时器(m1)是由一个60进制的计数器构成的,s1为驱动分计时器工作的时钟;m1为分计时器的输出;时计时器(h1)是由一个24进制的计数器构成的, m1为驱动时计时器工作的时钟,h1为时计时器的输出;
报时模块(speak)的功能是定时到时,speak输出高电平,并且持续一段时间。 (1)、秒脉冲产生电路
如下图所示,由32.768KHz的晶振产生经过CD4060分频产生精准的秒脉冲。
图2
(2)、FPGA 核 心控 制 电 路
对EP1K30TC144-3进行编程,输出控制信号。
图3
(3)、译 码 显 示 电路
如图,由CD4511驱动7段数码管进行显示。
图4
2、模块设计和相应模块程序
(1)、分计时器(second1)
-----------------------分钟十位
m110:process(clk,min2,sec1,sec2,md1,md2)
begin
if clk'event and clk='1' then
if (min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then
min1<="0000"; elsif
min1="0101"and
min2="1001"and
(md1='0'
and
md2="00")then
min1<="0000";
elsif (min2="1001"and (sec1="0101" and sec2="1001"))
or (min2="1001"and md1='0' and md2="00") then
min1<=min1+1;
end if; end if;--end if; end process m110; -----------------------分钟个位
m220:process(clk,sec1,sec2,md1,md2) begin
if clk'event and clk='1' then
if min2="1001"and (sec1="0101" and sec2="1001") then min2<="0000";
elsif min2="1001"and (md1='0' and md2="00") then
min2<="0000";
else if (sec1="0101" and sec2="1001") or(md1='0' and md2="00")then
min2<=min2+1;
end if; end if;end if; end process m220;
(2)、时计时器(hour1)
-----------------------------------------------小时十位
h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2) begin
if clk'event and clk='1' then
if (hou1="00010" and hou2="00011")and(min1="0101" and min2="1001")
and (sec1="0101" and sec2="1001") then
hou1<="00000";
elsif hou1="00010"and hou2="00011"and md1='0' and md2="01" then
--当时间为23点且处于校时
状态时
hou1<="00000";
elsif (hou2="01001"and(min1="0101" and min2="1001")
and (sec1="0101" and sec2="1001"))or (hou2="01001"and md1='0' and md2="01")
then hou1<=hou1+1; end if; end if;
end process h110;
-----------------------------------------------小时个位
h220:process(clk,min1,min2,sec1,sec2,md1,md2,hou1) begin
if clk'event and clk='1' then
if (hou1="00010" and hou2="00011")and(min1="0101" and min2="1001")
and (sec1="0101" and sec2="1001") then hou2<="00000"; elsif hou2="01001"and(min1="0101" and min2="1001") and
(sec1="0101" and sec2="1001") then hou2<="0000"; elsif (hou2="01001"and md1='0' and md2="01") or (hou1="00010"and hou2="00011") then hou2<="00000";--md<='1';
elsif ((min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))
or (md1='0' and md2="01") then hou2<=hou2+1;--speak<=clk; end if; end if;
end process h220;
(3)、 报时模块(speak) --------------------------------------------闹铃 speaker:process(clk,hou1,hou2,min1,min2) begin
if clk'event and clk='1'then
if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2
then speak<=clk;
else speak<='0'; end if; end if;
end process speaker;
disp:process(md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2) begin
if md1='0' then h1<=hou1;h2<=hou2;
---------------计时时间显示和设置模式 m1<=min1;m2<=min2; s1<=sec1;s2<=sec2;
else -----------闹铃时间现实和设置模式 h1<=seth1;h2<=seth2; m1<=setm1;m2<=setm2; s1<="1111";s2<="1111"; end if;
end process disp; end one;
3、仿真及仿真结果分析
(1)、秒时钟仿真
如图5,s2满10进1,s1满6进一,即完成60进制秒钟计时。
图5
(2)、分时钟仿真
如图6,m2满10进1,m1满6进一,即完成60进制分钟计时。
图6
(3)、报时仿真
为了便于观察,此处定时为18秒,如图speak在18秒结束后被置高。
(4)、功能仿真RTL图
4、实验调试结果
在首次波形仿真时,遇到了一些困难,想要的结果不能在波形上得到正确的显示:在设定输入的时钟信号后,数字钟开始计数,但是始终看不到小时、星期的循环计数。后来,在同学的帮助下和数十次
的调试之后,才发现之所以错误是因为输入的时钟信号对于小时、星期来说太短了。经过屡次调试,终于找到了比较合适的输入数值:分钟的初始值可以设为57(58、59都可以),小时的初始值可以设为23,这样,仿真之后,就能清楚的看出分钟、小时的循环计数。另外,Endtime的值需要设置的长一点:10us左右,输入的时钟周期值要设置的短一点:5ns左右。
三、结论及心得体会
通过这次设计使我懂得了理论与实际联合是很重要的,只有把所学的理论与实践相结合起来,从理论中得出结论才能提高自己的实际动手能力,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
同时也遇到了不少困难,特别是各元件之间的连接,以及信号的定义,总是出现错误,不过在细心的检查下,终于找出了错误和警告。总的来说,这次设计的数字钟还是让我学到不少东西,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,对今后的学习有了更充满了信心。
参考资料
[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005. [2] 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006. [3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.
正在阅读:
eda课程设计之带定时功能的计时器05-17
民政局纪检监察室主任岗位竞聘演讲稿范文09-20
110(66)kV~500kV油浸式变压器(电抗器)运行规范(附说明)07-24
合肥工业大学合工大模拟第一套02-01
甘肃省环境保护厅关于做好2014年国家重点监控企业排污许可证申领10-05
2019现代工程新业态发展与应用09-27
EDA数字秒表的设计06-03
办税服务中心绩效考核办法(讨论稿)07-09
流动科技馆活动方案 - 图文05-05
2016概论课习题库05-31
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 计时器
- 定时
- 课程
- 功能
- 设计
- eda
- 国家电网“十二五”特高压规划出台
- 幼儿园小班学期班级工作总结
- 顺丰推“冷运”布局冷链物流 王卫在下一盘很大的棋
- 电线电缆基础知识培训
- 计算机主板各种接口详解
- 一上试卷设计意图
- 非公企业党风廉政建设的机制探索
- 2013年消防安全工作总结
- 空分装置分子筛系统讲义
- 生态社区中的人居环境营造
- 工程建设最新标准
- 外研社现代大学英语4精读练习(专升本,本科必用)单元课后选择练习题
- 房地产中介资源开发培训
- 电影《音乐之声》
- 诊疗合理性评价月活动总结
- 各个击破_“全”胜行测
- 浙江省金华市十校2018-2019学年高二上学期期末联考数学试题Word版含答案
- 本科生分子生物学试卷(三)
- 全国版RC020-ICD-10诊断编码(1) (1)
- Mysql_如何进行性能优化教程