一种基于CPLD简易定时器设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于CPLD简易定时器设计

一种基于CPLD的简易定时器的设计   摘 要:文章介绍一种以CPLD为主控芯片的简易定时器,可以实现00:00~23:59之间任意时间的定时。该定时器的设计以VHDL为开发工具,以MAX+PLUS II为软件平台,采用模块化设计。文中给出了部分模块的VHDL源程序及仿真图。   关键词:VHDL语言 CPLD 定时器      定时器是许多电器中必不可少的控制部件。十几年来,定时器从业人员不断地进行技术革新,使得定时器性能有了较大的提高。传统的定时器功能简单,硬件线路多,设计复杂,可靠性差。随着CPLD(Complex Programmable Logic Device)的飞速发展,它以其编程方便、集成度高,速度快、价格低等特点越来越受到广大电子设计人员的青睐。现在的定时器可以用可编程逻辑器件来设计,基于VHDL语言,用CPLD实现,硬件简单,性能稳定,可充分体现可编程逻辑器件在数字电路中的优越性。   本文介绍一种简易的定时器设计方案,采用ALTERA 公司的MAX7000系列芯片EPM7l28SLC84――15,并使用VHDL语言输入,实现芯片的内部功能。      一、总体设计方案   笔者采用自顶向下的设计方法设计了一个具有整体清零功能并可在00:00~23:59之间任意定时的定时器,该定时器以秒速度递增至预定时间,而以分速度递减至零,同时,该定时器还具有报警或启动其它电路的功能,其总体结构如图1所示。      图1 总体结构   由图1可见,该定时器主要由分频器模块、控制计数模块和显示译码器模块组成。其中控制计数模块由两个计数模块构成,分别用来实现小时和分钟的计数功能;而显示模块则用来对计数结果进行扫描译码和输出显示,其输出接到数码管;分频器模块为计数模块提供秒信号和为显示译码器模块提供扫描信号。   图2为定时器的电路构成。其中RES用来整体复位清零;CLK用于提供时钟信号,其频率为32768Hz,经分频模块分频得到1Hz的频率用于提供秒信号,512Hz的频率用来扫描输出;CN1、CN2用来置位,高电平时有效,利用它能够以秒的速度将定时器从零递增到所定时的时间,也能够以分的速度将定时退调到零;Bee的输出为低电平,可用于启动各种电路或发出警报;该定时器的时间变化都可以在数码管上显示出来。      图2 定时器电路构成      二、子模块功能设计   1.CTRL模块   CTRL模块是定时器的核心部分(如图3所示),由CTRL_HOUR和 CTRL_MIN两个模块构成。其中,CTRL_HOUR为小时计数模块,可以在00到23之间任意预置定时时间的小时部分;CTRL_MIN为分钟计数模块,可以在00到59之间预置分钟数。RES为复位端,采用异步复位;CN1和CN2为置数端,高电平期间CTRL_HOUR和 CTRL_MIN分别以秒的速度被置为预定的时间,低电平期间则从预定时间开始递减,当CTRL_MIN减至00时则向CTRL_HOUR产生一个信号COUT,控制CTRL_HOUR减1,当CTRL_HOUR和 CTRL_MIN均减至00时,则定时结束,产生一个Out信号,可以用来报警或控制其他电路;CLK为标准的1 Hz时钟信号作为秒计数输入;LOW[3..0],HIGH[3..0]为输出4位BCD码,用于送数码管进行显示。该模块的仿真结果如图4。      图3 CTRL模块      图4 CTRL模块仿真图   2.LEDDIS模块   显示译码模块LEDDIS的作用是对输入四位BCD码进行七段译码,该模块的输入L1、L2、H1、H2均为8421BCD码,分别是CTRL模块小时与分钟部分输出的高4位和低4位,CLK为512Hz的时钟信号,作为扫描的时钟,其输出LSEG0~LSEG6分别接数码管的a~g,LCS0~LCS3分别4个接数码管的位选端。该模块部分源程序如下:   process(n)   begin    if n=0 then v=L1(3 downto 0);Lcs= 1110;    elsif n=1 then v=L2(3 downto 0);Lcs= 1101;   elsif n=2 then v=H1(3 downto 0);Lcs= 1011;   elsif n=3 then v=H2(3 downto 0);Lcs= 0111;    end if;   END PROCESS;      process(v)   begin   if v=0000 then Lseg=0111111;   elsif v=0001 then Lseg=0000110;   elsif v=0010 then Lse

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档