基于CPLD的1/100秒计时器电路

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于CPLD的1/100秒计时器电路
本设计为基于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(keyclk’EVENT 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(stst’EVENT 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]中每次选取四位输出。

七段译码器模块(seven_v)将待显示的四位二进制数据转换成七段码从dig_out[6..0]端口输出。

三、结束语
本设计从总体要求出发,采用自顶向下逐步细化的方法,将系统模块化,使得系统具有很强的扩充性,并且在实现设计的基础上,采用maxplus的仿真环境得到理想的仿真效果。

在软件设计中使用了功能按键消抖技术,使功能操作准确无误。

参考文献
[1]梁丽:基于CPLD的多功能计时器的设计[J].北京工商大学学报,2005.23~1,53~55
[2]郭在华马洪明杨玲:基于数字逻辑的多功能计时器的设计及实现[J].世界电子元器件,2003~3,73~74
[3]张胜宇谭作亘:基于CPLD的计算机并口EPP模式通讯实现[J].微计算机信息,2007~26,231~233
“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。

相关文档
最新文档