定时器设计.docx

上传人:b****5 文档编号:6929396 上传时间:2023-01-12 格式:DOCX 页数:12 大小:263.36KB
下载 相关 举报
定时器设计.docx_第1页
第1页 / 共12页
定时器设计.docx_第2页
第2页 / 共12页
定时器设计.docx_第3页
第3页 / 共12页
定时器设计.docx_第4页
第4页 / 共12页
定时器设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

定时器设计.docx

《定时器设计.docx》由会员分享,可在线阅读,更多相关《定时器设计.docx(12页珍藏版)》请在冰豆网上搜索。

定时器设计.docx

定时器设计

课程设计

 

题目:

定时器设计

班级:

姓名:

学号:

指导教师:

成绩:

电子与信息工程学院

信息与通信工程系

 

定时器设计

1概述

人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。

1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。

它利用机械钟带动开关来控制煤气阀门。

起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。

定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。

人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。

现在的不少家用电器都安装了定时器来控制开关或工作时间。

2设计要求

2.1功能:

实现2位数(单位是秒)的倒数

输入信号:

置数(为二进制数),开始计数信号(高电平有效),时钟信号clk为1kHz

输出信号:

计数信号的LED数码管(共阴极)显示码(动态显示方式),段选信号(选择当前显示码对应的LED)(高电平有效),计数结束信号(高电平有效)

2.2要求:

系统由分频器(将1kHz时钟变为1Hz)、减法计数器(秒的倒计时)、LED刷新时钟(刷新时间为10毫秒)、显示码译码器(将时间的BCD码转换成LED显示码)。

要求给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件及整体仿真。

3系统总体组成框图

 

4减法计数器模块

4.1减法计数器功能:

从输入数值减1直到0为止。

4.2模块的源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSUBBIS

PORT(CLKS:

INSTD_LOGIC;

RETS:

INSTD_LOGIC;

EN:

INSTD_LOGIC;

A:

INSTD_LOGIC_VECTOR(6DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDENTITY;

ARCHITECTUREONEOFSUBBIS

SIGNALQI:

STD_LOGIC_VECTOR(6DOWNTO0);

BEGIN

PROCESS(CLKS,RETS)

BEGIN

IFRETS='0'THEN

QI<=A;

ELSIFEN='1'THEN

IFCLKS'EVENTANDCLKS='1'THEN

IFQI="0000000"THEN

QI<="0000000";

ELSEQI<=QI-'1';

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

Q<=QI;

ENDARCHITECTURE;

4.3仿真波形

周期设置为10纳秒

仿真波形输出

4.4RTL电路

5译码器模块

5.1译码器功能:

译码器模块的显示方式为动态显示,刷新时间为10ms。

5.2译码器源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYyimaqiIS

PORT(

CLOCK:

INSTD_LOGIC;

RET:

INSTD_LOGIC;

input:

INSTD_LOGIC_VECTOR(7DOWNTO0);--------输入显示数据

DIV10FLAG:

OUTSTD_LOGIC;-----------------------10ms方波数码管扫描周期

LEDDIPLY:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);------数码管段选

SELECCT:

OUTSTD_LOGIC_VECTOR(1DOWNTO0)-------数码管位选

);

ENDENTITY;

ARCHITECTUREONEOFyimaqiIS

SIGNALCNT2:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALDIV10:

STD_LOGIC;

SIGNALWX:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

PROCESS(CLOCK,RET)

BEGIN

IFRET='0'THEN

CNT2<="000";

ELSIFCLOCK'EVENTANDCLOCK='1'THEN

IFCNT2="101"THEN

CNT2<="000";

DIV10<=NOTDIV10;

ELSECNT2<=CNT2+'1';

ENDIF;

ENDIF;

ENDPROCESS;

DIV10FLAG<=DIV10;

PROCESS(DIV10,RET)

BEGIN

IFRET='0'THEN

WX<="01";

ELSIFDIV10'EVENTANDDIV10='1'THEN

IFWX="10"THEN

WX<="01";

ELSEWX<="10";

ENDIF;

ENDIF;

ENDPROCESS;

SELECCT<=WX;

PROCESS(WX,RET)

BEGIN

IFRET='0'THEN

LEDDIPLY<="0000000";

ELSE

CASEWXIS

WHEN"10"=>

CASEinput(3DOWNTO0)IS

WHEN"0000"=>LEDDIPLY<="0111111";

WHEN"0001"=>LEDDIPLY<="0000110";

WHEN"0010"=>LEDDIPLY<="1011011";

WHEN"0011"=>LEDDIPLY<="1001111";

WHEN"0100"=>LEDDIPLY<="1100110";

WHEN"0101"=>LEDDIPLY<="1101101";

WHEN"0110"=>LEDDIPLY<="1111101";

WHEN"0111"=>LEDDIPLY<="0000111";

WHEN"1000"=>LEDDIPLY<="1111111";

WHEN"1001"=>LEDDIPLY<="1101111";

WHENOTHERS=>LEDDIPLY<="0111111";

ENDCASE;

WHEN"01"=>

CASEinput(7DOWNTO4)IS

WHEN"0000"=>LEDDIPLY<="0111111";

WHEN"0001"=>LEDDIPLY<="0000110";

WHEN"0010"=>LEDDIPLY<="1011011";

WHEN"0011"=>LEDDIPLY<="1001111";

WHEN"0100"=>LEDDIPLY<="1100110";

WHEN"0101"=>LEDDIPLY<="1101101";

WHEN"0110"=>LEDDIPLY<="1111101";

WHEN"0111"=>LEDDIPLY<="0000111";

WHEN"1000"=>LEDDIPLY<="1111111";

WHEN"1001"=>LEDDIPLY<="1101111";

WHENOTHERS=>LEDDIPLY<="0111111";

ENDCASE;

WHENOTHERS=>NULL;

ENDCASE;

ENDIF;

ENDPROCESS;

ENDARCHITECTURE;

5.3仿真波形

周期设置为1微秒

仿真波形输出

5.4RTL电路

6分频器模块

6.1分频器功能:

把1kHZ的频率分为1HZ的频率

6.2分频器源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYFENPINIS

PORT(CLKF:

INSTD_LOGIC;

RSTF:

INSTD_LOGIC;

DIVOUT:

OUTSTD_LOGIC);

ENDENTITY;

ARCHITECTUREONEOFFENPINIS

SIGNALDIV:

STD_LOGIC;

BEGIN

PROCESS(CLKF,RSTF)

VARIABLECNT1:

STD_LOGIC_VECTOR(0TO8);

BEGIN

IFRSTF='1'THEN

CNT1:

="000000000";

DIV<='0';

ELSIFCLKF'EVENTANDCLKF='1'THEN

IFCNT1="111110100"THEN

CNT1:

="000000000";

DIV<=NOTDIV;

ELSECNT1:

=CNT1+1;

ENDIF;

ENDIF;

ENDPROCESS;

DIVOUT<=DIV;

ENDARCHITECTURE;

6.3仿真波形

周期设置为10纳秒

仿真波形输出

6.4RTL电路

7总体设计

7.1顶层文件

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYWJQIS

PORT(

CLK:

INSTD_LOGIC;

RST:

INSTD_LOGIC;

START:

INSTD_LOGIC;--使能信号

INTEMP:

INSTD_LOGIC_VECTOR(7DOWNTO0);--输入数据

SELETOUT:

OUTSTD_LOGIC_VECTOR(1DOWNTO0);--位选信号

OUTDADA:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);--段选信号

FLAG:

OUTSTD_LOGIC;--分频输出1HZ

FLAGHZ:

OUTSTD_LOGIC--数码管扫描周期10ms

);

ENDENTITY;

ARCHITECTUREONEOFWJQIS

COMPONENTFENPIN

PORT(CLKF:

INSTD_LOGIC;

RETF:

INSTD_LOGIC;

DIVOUT:

OUTSTD_LOGIC);

ENDCOMPONENT;

COMPONENTSUBB

PORT(CLKS:

INSTD_LOGIC;

RETS:

INSTD_LOGIC;

EN:

INSTD_LOGIC;

A:

INSTD_LOGIC_VECTOR(7DOWNTO0);

Q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDCOMPONENT;

COMPONENTyimaqi

PORT(CLOCK:

INSTD_LOGIC;

RET:

INSTD_LOGIC;

input:

INSTD_LOGIC_VECTOR(7DOWNTO0);

DIV10FLAG:

OUTSTD_LOGIC;

LEDDIPLY:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

SELECCT:

OUTSTD_LOGIC_VECTOR(1DOWNTO0));

ENDCOMPONENT;

SIGNALHF1:

STD_LOGIC;

SIGNALDATADA:

STD_LOGIC_VECTOR(6DOWNTO0);

SIGNALREN:

STD_LOGIC;

SIGNALHX:

STD_LOGIC;

BEGIN

U1:

FENPINPORTMAP(CLKF=>CLK,RETF=>RST,DIVOUT=>HF1);

U2:

SUBBPORTMAP(CLKS=>HF1,RETS=>RST,EN=>REN,A=>INTEMP,Q=>DATADA);

U3:

yimaqiPORTMAP(CLOCK=>CLK,RET=>RST,input=>DATADA,DIV10FLAG=>HX,LEDDIPLY=>OUTDADA,SELECCT=>SELETOUT);

FLAGHZ<=HX;

FLAG<=HF1;

REN<=START;

ENDARCHITECTURE;

7.2总体电路图

7.3总体电路仿真结果

8设计总结

通过这次课程设计,我了解到了进行课程设计的方法,有关定时器的结构和基本原理。

本设计通过了仿真软件的测试,或者说就是基于仿真软件设计的。

这也让我们学会了一种解决问题的方法。

本方案之前也讨论更改过很多方案。

特别是在进制问题和参数设置问题上研究了很久,但是基本的思维是不变的。

本次课程设计还使我们熟悉了quartus2软件的操作使用,这是我们最大的受益所在。

参考文献

[1]潘松,黄继业.EDA技术与VHDL

[2]EDA实验指导书

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1