基于VHDL语言的99小时定时器设计及实现

发布者:数字狂想最新更新时间:2010-07-17 来源: 北方工业大学关键字:FPGA  VHDL  定时器  EP1C6Q240C8 手机看文章 扫描二维码
随时随地手机看文章

  0 引言

  传统的定时器硬件连接比较复杂,可靠性差,而且计时时间短,难以满足需要。本设计采用可编程芯片和VHDL语言进行软硬件设计,不但可使硬件大为简化,而且稳定性也有明显提高。由于可编程芯片的频率精度可达到50 MHz,因而计时精度很高。本设计采用逐位设定预置时间,其最长时间设定可长达99小时59分59秒。完全可以满足用户的需要,使用也更为方便。

  1 系统原理

  本定时器的核心器件为EP1C6Q240C8芯片。该芯片有选位、置位、启动、复位、倒计时等功能,显示采用2个3位LED数码管,并采用共阴接法,可以动态扫描显示。其系统原理如图1所示。

  2  硬件设计

  本系统共有两大模块,分别为控制/定时模块和显示模块。其中控制/定时模块包括按键的功能定义和计时的逻辑定义。显示模块则包括片选模块、位扫描模块和数码管译码模块。

  设计时可将秒信号输入控制/定时模块,此时系统将输出六个四位BCD码,以分别表示时、分、秒位。在预置数时,计数器可以秒的速度递增,从而实现逐位预置数;而在定时倒计数时,计数器可以秒的速度递减,从而实现倒计时。系统中的位选择器用于对六位进行循环扫描输出,并将扫描输出送到译码器。译码器模块可对输入的四位进行译码,同时在设置数值时用6个LED灯分别指示其所设置的位。

  该系统硬件由两部分组成,一部分是EPlC6Q240C8芯片,另一部分是按键,译码器,LED数码管,发光二极管及可编程芯片的支持电路。图2所示是其AAA控制定时模块的引脚排列。其主要功能引脚的定义如下:

  Setw(置位键):用于选定定时器所需定时的对应位。发光二极管对应七段数码管设置,当选定对应的位时,相应的发光二极管亮;

  Set(置数键):用于设置选定位的具体数值;

  Start键:用于设定好时间后启动秒表计时。可通过软件使start按键经过锁存器后进人AAA模块。Start触发后可产生持续的高电平;

  ALM(扬声器):可在计时结束时发声报警;

  Clr(清零键):用于计时器的清零复位;

  七段数码管用于显示定时数字,set模块用控制数码管的扫描频率。

[page]

  3  主要模块软件程序

  图3所示是该定时器的软件系统构成。本软件包括控制/定时模块和显示模块两大部分。

  3.1  控制/定时模块

  AAA控制/定时模块是该定时器的核心部分,该模块的程序流程图如图4所示。

  当START为高电平时,该定时器将进入倒计时阶段。当CLK脉冲上升沿到来时,计数以秒的速度减1,直到计时结束,使ALM位为高电平为止。CLR为复位端,可用来清零,通常采用异步复位方式。SETW用于选位,高电平有效。SET用于对选定的位进行置数,也是高电平有效。ALM输出端将在定时结束时产生高电平。Q0~Q5为四位BCD码输出端口,主要用于显示。[page]

  3.2  显示模块

  通过XUAN模块可完成BCD码的转化,再经DISP模块译码.然后输出给七段数码管。

  (1)XUAN模块

  XUAN可产生四位BCD码输入,并从sel端输出。该模块的管脚图如图5所示。其源程序代码如下:

  (2)DISP模块

  DISP模块主要用于译码,可定义七段数码管显示的数字。其源程序如下:

[page]

  4  系统仿真及结果

  图6所示是对AAA控制/定时模块的仿真结果。由此结果可见,当setw置“1”时,statea位选从0到5循环,分别代表六个数码管的位置。当start置“1”时,q5-q0进行借位减法。q5、q4表示小时,最高可到99小时;q3、q2表示分钟,最高59分钟;q1、q0表示秒,最高为59秒。

  5 结束语

  本设计从总体要求出发,采用模块化设计方法,实现了长达99小时的定时设计。同时采用QuartusⅡ4.0仿真环境进行了仿真。结果证明,本系统可以实现理想的定时操作而且设计体现了人性化,具有较强的实际应用价值。

关键字:FPGA  VHDL  定时器  EP1C6Q240C8 引用地址:基于VHDL语言的99小时定时器设计及实现

上一篇:可编程ASIC器件主从式下载开发系统的设计
下一篇:利用Virtex-5LXT应对串行背板接口设计挑战

推荐阅读最新更新时间:2024-05-02 21:05

基于FPGA和单片机的串行通信接口设计
  1 前言   现场可编程逻辑器件(FPGA)在高速采集系统中的应用越来越广,由于FPGA对采集到的数据的处理能力比较差,故需要将其采集到的数据送到其他CPU系统来实现数据的处理功能,这就使FPGA系统与其他CPU系统之间的数据通信提到日程上,得到人们的急切关注。本文介绍利用VHDL语言实现 FPGA与单片机的串口异步通信电路。   整个设计采用模块化的设计思想,可分为四个模块:FPGA数据发送模块,FPGA波特率发生控制模块,FPGA总体接口模块以及单片机数据接收模块。本文着重对FPGA数据发送模块实现进行说明。   2  FPGA数据发送模块的设计   根据RS232 异步串行通信来的帧格式,在FPGA发送模
[嵌入式]
IDT推出16通道PCI Express3.0信号调理重定时器
拥有模拟和数字领域的优势技术、提供领先的混合信号半导体解决方案的供应商 IDT® 公司 (Integrated Device Technology, Inc.; NASDAQ: IDTI) 今天宣布,正式推出业界首个 16 通道的 PCI Express® 3.0 信号调理重定时器。IDT 全新的 EyeBoost™ 重定时器针对计算、存储和通信应用中的长距离或嘈杂连接来恢复信号质量,从而提高 PCIe® 的性能和可靠性。新器件进一步拓展了 IDT 行业领先的分组交换和时钟产品器件系列,从而提供完整的 PCIe 3.0 系统互连解决方案。 IDT 89HT0832P 是一个 32 路 (16 通道) 重定时器,可以实现每通
[网络通信]
基于ADC和FPGA脉冲信号测量设计
  0引言   测频和测脉宽现在有多种方法。通常基于MCU的信号参数测量,由于其MCU工作频率很低,所以能够达到的精度也比较低,而基于AD10200和FPGA的时域测量精度往往可达10 ns,频率测量精度在100 kHz以内。适应信号的脉宽范围在100 ns~1 ms之间;重复周期在0.05~100ms:频率在0.1 Hz~50 MHz。   AD10200是高速采样芯片,其中内嵌变压器,因此采样电路外部不再需要变压器,使得电路设计更为简单;最低采样速率为105 MSPS,具有3.3 V或者5 V CMOS兼容输出电平,双通道12位采样,补码形式输出,每个通道功耗为0.850W。通常可应用于雷达中频信号接收机、相位组接收机、通
[测试测量]
基于ADC和<font color='red'>FPGA</font>脉冲信号测量设计
定时器DMA Burst传输无法实现
有人使用STM32F4系列开发产品,程序运行过程中需要不时地对外输出一串驱动脉冲,并要求这几串脉冲的频率可变、占空比固定。他想到使用基于STM32定时器的DMA BURST传输。具体点说,他期望不时地通过TIM3的CH1输出一串频率可变、占空比固定的脉冲然后停下来。这个思路在原理上是没问题的,可是他在测试过程中发现怎么也折腾不出预期的效果。 他目前使用的芯片是STM32F401,虽有点老旧,但我查看了手册,确认该芯片的TIM3是支持基于TIMER事件实现TIME寄存器与内存间的DMABURST传输的。即每个TIMER事件可以申请多个DMA请求从而实现定时器寄存器与内存间的批量数据传输。要知某个STM32 TIMER是否支持上述
[单片机]
<font color='red'>定时器</font>DMA Burst传输无法实现
轻松实现复杂电源时序控制
简介 电源时序控制是微控制器、FPGA、DSP、ADC和其他需要多个电压轨供电的器件所必需的一项功能。这些应用通常需要在数字I/O轨上电前对内核和模拟模块上电,但有些设计可能需要采用其他序列。无论如何,正确的上电和关断时序控制可以防止闩锁引发的即时损坏和ESD造成的长期损害。此外,电源时序控制可以错开上电过程中的浪涌电流,这种技术对于采用限流电源供电的应用十分有用。 本文讨论使用分立器件进行电源时序控制的优缺点,同时介绍利用ADP5134内部精密使能引脚实现时序控制的一种简单而有效的方法ADP5134内置2个1.2-A降压调节器与2个300-mA LDO.同时,本文还列出一系列IC,可用于要求更高精度、更灵活时序控制的应用。 图
[电源管理]
轻松实现复杂电源时序控制
基于FPGA的嵌入式系统设计
1 前言 近年来,随着嵌入式核心芯片的飞速发展,改变了传统嵌入式系统的设计方法,嵌入式系统逐渐由板级向芯片级过渡,即片上系统——SOC。片上系统是追求产品系统最大包容的集成器件,是当前嵌入式应用领域的技术热点。SOC的出现使集成电路发展成为集成系统,整个电子整机的功能可以集成到一块芯片中,降低了设计成本,缩短了开发周期。因此,本文设计了一个基于FPGA的嵌入式系统,既能满足嵌入式系统教学实验的需要,同时也可作为嵌入式产品开发平台。 2 系统硬件设计 本系统要实现的功能包括:可以运行嵌入式操作系统;支持NIOS II开发;支持USB通讯;支持RS-232串口通讯;支持以太网通讯;支持JTAG接口在线调试与下载。 2.1 系统
[单片机]
基于<font color='red'>FPGA</font>的嵌入式系统设计
利用定时器使P1^0口输出指定占空比、周期矩形脉冲
原题如下: 代码如下:(代码就是写题思路都加有注释) #include reg52.h sbit FB = P1^0; unsigned char count =0 ; void Init_ET_0()//定时器初始化函数 { TMOD = 0x02;//启用定时器 0 ,工作模式为 模式2 。 EA = 1;//开总中断 ET0 = 1;//开定时器开关 TR0 = 1;//启动定时器 TH0 = 256 - 40;//给高八位赋初值 TL0 = 256 - 40;//给低八位赋初值 } void Servoce_ET_0() interrupt 1 //
[单片机]
利用<font color='red'>定时器</font>使P1^0口输出指定占空比、周期矩形脉冲
51单片机之定时器\计数器的工作原理
定时器/计数器的结构: PS:此处涉及到了TCON和TMOD特殊功能寄存器,详见51单片机之特殊功能寄存器SFR篇 TH0、TH1:俩个加法型的计数变量,当外部产生一次时钟信号时,计数加一,直到加到最大值时发生溢出 何时处于计数器方式?何时处于定时器方式? 1、当计数变量使用单片机内部的时钟作为时钟源,我们称这种方式为定时器方式 2、当计数变量使用片外引脚P3.4、P3.5上存在的方波脉冲的时候,我们称这种方式为计数器方式 在使用片外引脚P3.4、P3.5上存在的方波脉冲时,需要俩个机器周期的时间才能确定一次脉冲信号,即需要产生下降沿时才能确定一次脉冲信号 TCON和TMOD特殊功能寄存器: 定时器/计数器工
[单片机]
51单片机之<font color='red'>定时器</font>\计数器的工作原理
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved