时分秒可调计时器

上传人:沈*** 文档编号:132240059 上传时间:2022-08-08 格式:DOC 页数:9 大小:90.01KB
收藏 版权申诉 举报 下载
时分秒可调计时器_第1页
第1页 / 共9页
时分秒可调计时器_第2页
第2页 / 共9页
时分秒可调计时器_第3页
第3页 / 共9页
资源描述:

《时分秒可调计时器》由会员分享,可在线阅读,更多相关《时分秒可调计时器(9页珍藏版)》请在装配图网上搜索。

1、实验六:时分秒可校的定时器电路设计摘要 本时分秒可校的定时器基于FPGA完成,以ALTERA Cyclone II EP2C8Q208C8N芯片为核心,软件部分用Quartus软件编写仿真,用硬件描述语言VHDL实现模块化程序设计。硬件以按键作为定时按钮,以六个数码管分别显示时分秒的计数信息,定时范围为10秒24时59分59秒,精度为1秒,并在计时结束后实现声光报警,实现了题目要求的基本功能。利用模式设定和转换的方法实现设计要求,并在时间设定的过程中数码管有闪烁提示,这也是本实验的创新所在。该定时器具有电路简单、人性化控制等优点。一、实验功能指标要求:基本功能:1.设计一时分秒可校的定时器,定

2、时范围为10秒24时59分59秒,精度为1秒; 2.能同时显示时分秒信息(LED数码管); 3. 定时时间到能发出声光警告信号;扩展功能:1.设置时分秒时分别显示对应的两个数码管; 2.增加暂停按钮,可在倒计时过程中选择暂停计时切换; 3.按键去抖动;二、实验原理框图:实验模块:1.时钟分频模块(timediv) 其中 功能模块分为:1. 分频2.按键去抖模块(qudou) 2. 倒计时 3.功能模块(cnttime) 3. 状态选择4.译码模块 4. 置数它们之间的控制关系为:时 分 秒 倒 计 时置 数蜂 鸣状态切换数码管显示操作流程:按下状态切换按钮(mode),进入小时设定状态,设定小

3、时时间后再按mode,进入分钟设定状态.同理,设定好秒的时间后,按下mode,开始倒计时.在倒计时过程中,按下clr清零按钮,则时间清零,按下暂停按钮en,则停止计时.时间到后,FPGA警报.三、方案设计(系统的模块结构)1.系统设计方案作为时分秒可校倒计时电路的设计,经小组讨论,我们将设计思路划分为4个部分:置数,倒计时,数码管显示和蜂鸣器。经过多次实践,觉得应当使用模式转换的方式可以使得设计更容易实现,将置数和倒计时划在4个不同的模式中,通过模式转换实现状态转换。在时分秒信息显示的问题上,使用7段译码的方式加以实现。蜂鸣器则加载到设计结尾。 2.单元电路设计对于这个设计我们决定实现置数,倒

4、计时,时分秒显示和蜂鸣器4个单元模块。作为时分秒可校的计时器电路,首先想到的是三个计时部分的时间设定和倒计时,在可设范围内如何实现,经过小组成员的热烈讨论,我们决定使用模式的设定和转换的方法实现,首先是四个状态的转换,分别是清零、设定小时时间、设定分钟时间、设定秒钟时间,为它们分别设定一种模式,通过模式转换实现状态控制。在时间设定的过程中,我们想到在2Hz分频信号的作用下,通过数码管的动态扫描计数对数码管进行动态扫描,从而在时间设定的过程中有数码管闪烁提示。在各模块的倒计时过程中,在1Hz的分频信号作用下,通过递减计数,时分秒模块分别实现倒计时功能。再通过十进制转BCD码和7段译码作用实现时分

5、秒信息的显示。在最后倒计时结束的时候,系统经过判断,发出蜂鸣提示。四、系统实现过程原理框图及顶层文件:功能模块的VHDL程序见附录六、附录五、个人负责模块介绍及感想我负责的是分频模块和置数模块。 1、分频模块:分频模块作用是产生不同频率的时钟信号,为不同的模块提供所需要的时钟脉冲。本实验需1HZ、1KH、2HZ三种时钟脉冲。1HZ为时钟提供脉冲,1KHZ为蜂鸣器时钟,2HZ为数码管闪烁时钟。原理:首先通过计算得出N(N=输入时钟信号/输出时钟信号)值,通过计数器当计数到N/2-1时,将输出电平翻转依次,同时使计数复位。依次循环进行,就得到了所需频率。2、置数模块:置数模块作用是使时钟显示在一特

6、定的值。通过mode状态切换按钮,在四个状态之间切换,使程序处于置数状态。分为时、分、秒三个置数状态。当处于置数状态时,按INC键则显示数字加一,直到加到预定的数值。当数值设置完后,按MODE键状态切换,返回正常级数状态。如此就形成了置数了功能、 3,感想:通过这次的的实验设计,我学到了好多课本上没有的知识。我对分频器的原理有了深入的了解,对于quartus2的更加熟练。同时在实验过程中,体会到了团对合作的重要性,提高了同学之间的默契度。同时在实验中,暴露出了我们许多的不足之处,对于VHDL语言特点还不能完全应用。这方面我们还需努力,有了这次的经验,我们下次定能做的更好六、附录系统综合结果:l

7、ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnttime is port( clk : in std_logic ; -时钟输入50MHZ clr : in std_logic ; -清零端 en : in std_logic; - 暂停信号 mode : in std_logic; - 模式选择信号 inc : in std_logic; - 置数信号 seg7: out std_logic_vector(7 downto 0);- 7段显示控制信号abcdefgh scan:

8、 out std_logic_vector(5 downto 0);- 数码管地址选择信号 buz:out std_logic -蜂鸣器);end ;architecture one of cnttime is signal state:std_logic_vector(1 downto 0);-定义四种状态signal qhh,qhl,qmh,qml,qsh,qsl:std_logic_vector(3 downto 0);-时分秒的高位和低位 signal data:std_logic_vector(3 downto 0);signal cnt:integer range 0 to 5;-

9、扫描数码管的计数器signal clk1khz,clk1hz,clk2hz:std_logic; -1khz 1hz 2hz 的分频信号signal blink:std_logic_vector(2 downto 0);-闪烁信号signal inc_reg:std_logic;signal sec,min:integer range 0 to 59 ;signal hour:integer range 0 to 23 ; signal buz_reg:std_logic:=0; - 蜂鸣器锁存,0为不响 begin -1KHZ分频-process(clk)variable count:int

10、eger range 0 to 24999;begin if clkevent and clk=1 then if count=24999 then clk1khz=not clk1khz;count:=0; else count:=count+1; end if;end if;end process;-1HZ分频-process(clk1khz)variable count:integer range 0 to 499 ;begin if clk1khzevent and clk1khz=1 then if count=499 then clk1hz=not clk1hz;count:=0;

11、 else count:=count+1; end if ;end if ;end process;-2Hz分频, 用于数码管闪烁-process(clk1khz)variable count:integer range 0 to 249;begin if clk1khzevent and clk1khz=1 then if count=249 then clk2hz=not clk2hz;count:=0; else count:=count+1; end if ;end if;end process;-模式转换-process(mode,clr)begin if clr=0 then st

12、ate=00; elsif modeevent and mode=1 thenstate=state+1;end if;end process;-状态控制-process(clk1hz,state,en,clr,hour,sec,min)beginif en=0 then hour=hour;min=min;sec=sec;elsif clr=0 then hour=0;min=0;sec=0;buz_regif sec=0 then -模式0.正常计时 if min=0 then if hour=0 then sec=0;buz_reg=1; else min=59;sec=59;hour=

13、hour-1; end if; else min=min-1;sec=59; end if; else sec if inc=0then if inc_reg=0 then inc_reg=1;-模式1,设定小时时间 if hour=23 then hour=0; else hour=hour+1; end if; end if; else inc_reg if inc=0then -模式2,设定分钟时间 if inc_reg=0 then inc_reg=1; if min=59 then min=0; else min=min+1; end if; end if;else inc_reg

14、if inc=0then -模式3,设定秒钟时间 if inc_reg=0 then inc_reg=1; if sec=59 then sec=0; else sec=sec+1; end if; end if;else inc_regblinkblinkclk2hz,others=0);when10=blinkclk2hz,others=0);when11=blinkclk2hz,others=0);end case;end process;-秒计数器的十进制转BCD码-process(sec)begincase sec is when 0|10|20|30|40|50=qslqslqsl

15、qslqslqslqslqslqslqslnull;end case;case sec is when 0|1|2|3|4|5|6|7|8|9 =qshqshqshqshqshqshnull;end case;end process; -分计数器的十进制转BCD码-process(min)begincase min is when 0|10|20|30|40|50=qmlqmlqmlqmlqmlqmlqmlqmlqmlqmlnull;end case;case min is when 0|1|2|3|4|5|6|7|8|9 =qmhqmhqmhqmhqmhqmhnull;end case;en

16、d process;-小时计数器的十进制转BCD码-process(hour)begincase hour is when 0|10|20=qhlqhlqhlqhlqhlqhlqhlqhlqhlqhlnull;end case;case hour is when 0|1|2|3|4|5|6|7|8|9 =qhhqhhqhhnull;end case;end process;-数码管动态扫描计数-process(clk1khz)begin if clk1khzevent and clk1khz=1 then if cnt=5 then cnt=0;else cntdata=qsl or (bli

17、nk(0)&blink(0)&blink(0)&blink(0);scandata=qsh or (blink(0)&blink(0)&blink(0)&blink(0);scandata=qml or (blink(1)&blink(1)&blink(1)&blink(1);scandata=qmh or (blink(1)&blink(1)&blink(1)&blink(1);scandata=qhl or (blink(2)&blink(2)&blink(2)&blink(2);scandata=qhh or (blink(2)&blink(2)&blink(2)&blink(2);scannull;end case;end process;-7段译码-process(data)begincase data is when 0000=seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7=11111111;end case;end process;-蜂鸣器-process(buz_reg)beginif buz_reg=1 then buz=clk1khz;else buz=1;end if;end process; end;- 9 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!