基于CPLD1100秒计时器电路.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文档。上传文档
查看更多
基于CPLD1100秒计时器电路

基于CPLD的1100秒计时器电路   [摘 要] 本设计为基于CPLD的1/100秒计时器电路。计时器能实现0.01s~59.99s的计时功能,计时误差≤ 0.01s,具有启、停和清零功能,计时数据采用七段数码管显示。所有电路采用美国ALTERA公司的EPM7128SLC84-15芯片实现,使外围电路简单,性能可靠,特别是该芯片具有现场可编程功能,使修改设计简单。在软件设计中使用了功能按键消抖技术,使功能操作准确无误。   [关键词] CPLD VHDL 计时器      一、引言   1/100s计时器常用于体育竞赛及各种要求有较高精确定时的领域。本文设计的1/100s计时器具有如下功能:   1.分、秒、1/100秒计时功能;   2.具有分、秒、1/100秒显示功能;   3.具有启停功能;   4.具有复位功能。整个系统的设计借助于VHDL,在EDA设计工具maxplus下进行仿真,得到了良好的结果。由于采用模块化的设计思想,使设计变得简单、方便、灵活性强。   二、设计方案分析   如图1所示,为1/100s计时器的整体方框图。包括四部分组成:计时控制芯片(cpld)、复位及启停开关、四位数码管、时钟。   根据计时器的功能特点,具体实现时可分为五个子模块:键输入模块、时钟产生模块、定时计数数模块、控制模块、四位数码管显示驱动模块。各模块的功能独立,可扩充性强,具有再次开发的潜力。各模块的关系如图2所示。   三、模块设计   1.键输入模块(keyin)   键输入模块(keyin)即键扫描电路,25HZ键扫描脉冲对按键扫描,产生启/停单脉冲(stst)和清零单脉冲(res),并具有消抖功能。   键扫描电路工作原理如下(以产生清零单脉冲res为例,启/停单脉冲stst与此相同):   IF(keyclkEVENT AND keyclk=0)THEN    res1=res0;    res0=reset_sw;    stst1=stst0;    stst0=start_stop_sw;    END IF;   2.时钟产生模块(clkgen)   时钟产生模块是一个分频电路,对1000HZ时钟脉冲(clk)分频产生100HZ的计时脉冲(cntclk)和25HZ的键扫描脉冲(keyclk)。   3.定时计数模块(Cntblk)   定时计数模块为分、秒、1/100秒计时电路。两个10进制计数器进行1/100秒计时,一个6进制计数器和一个10进制计数器进行秒计时,限于实验板只有四位数码管,没有设计分计时功能。10进制计数器子模块前面已经生成,将10进制计数器程序适当修改可设计一个6进制计数器。在原理图编辑器中调用三个10进制计数器和一个6进制计数器及相应输入输出端口即可建成定时计数数模块(Cntblk),编译通过后点File/Greate Default Symbol,生成符号(注.vhd文件编译完成时会自动生成符号,而.GDF文件编译完成时不会自动生成符号,要手动生成)。   4.控制模块(ctrl)   控制模块产生定时计数模块的使能控制信号(cnten)。   …   IF( res=1)THEN    enb1=0;   ELSIF(ststEVENT AND stst=1)THEN    enb1=NOT enb1;   END IF;   END PROCESS;    cnten=enb1 AND cntclk;   …   若res=0,则cnten=0;若stst发生一次跳变,则cnten=cntclk,若stst发生二次跳变,则cnten=0。   5.四位数码管显示驱动模块(Disp)   因为实验板上四个共阴数码管是四位一体的,即四个数码管的码段(a~g)是共用的,若要逐位显示可通过位选端(A)控制,但必须采用扫描方式,只要扫描频率足够快,将看不到闪烁(图7)。   当A4A3A2A1=“1110”,显示第一位;当A4A3A2A1=“1101”,显示第二位;   当A4A3A2A1=“1011”,显示第三位;当A4A3A2A1=“0111”,显示第四位。   四位数码管显示驱动模块的原理框如图8:   四进制加法计数器模块(cnt4_v)对时钟脉冲clk计数,四个时钟脉冲循环一次,产生00,01,10,11四种状态,分别对应四个数码管的四位。二-四译码器模块(decode2_4_v)将00,01,10,11译码成位选信号1110,1101,1011,0111从dig_sel[3..0]端口输出。十六-四多任务器模块(multi16_4_v)从输入的待显示的十六位数据d[15..0]中每次选取四位

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档