数字电路课程设计电子秒表的设计.docx
《数字电路课程设计电子秒表的设计.docx》由会员分享,可在线阅读,更多相关《数字电路课程设计电子秒表的设计.docx(11页珍藏版)》请在冰豆网上搜索。
数字电路课程设计电子秒表的设计
目录
1.引言
1.1设计目的-------------------------------------------------------2
1.2设计内容-------------------------------------------------------2
1.3设计要求-------------------------------------------------------2
2.数字电子秒表设计
2.1仪器设备-------------------------------------------------------3
2.2设计原理-------------------------------------------------------3
2.3电路设计及仿真-------------------------------------------------3
3.电路的硬件验证--------------------------------------------------10
4.心得体会---------------------------------------------------------12
5.参考文献---------------------------------------------------------12
1.引言
1.1设计目的:
(1)掌握同步计时器74160、74161的使用方法,并理解其工作原理。
(2)掌握74160、74161进行计数器、分频器的设计方法。
(3)掌握用三态缓冲器74244和74160,74138,7448进行动态显示扫描电路设计的方法。
(4)掌握电子秒表的设计方法。
(5)掌握在EDA系统软件MAX+plusII环境下用FPGA/CPLD进行数字系统设计的方法,掌握该环境下功能仿真、时序仿真、管脚锁定的芯片下载的方法。
(6)掌握用EDA硬件开发系统进行硬件验证的方法。
1.2设计任务内容:
(1)设计可控的计数器(定时器)、分频器、按键去抖电路和动态扫描显示电路;
(2)设计系统顶层电路;
(3)进行功能仿真和时序仿真;
(4)对仿真结果进行分析,确认仿真结果达到要求;
(5)在EDA硬件开发系统上进行硬件验证与测试,确保设计电路系统能正确地工作。
1.3设计要求
(1)计时精度不小于1/100秒;
(2)输入时钟:
1khz;
(3)计时器最长计时时间为1小时;
(4)具有复位和启/停开关;
(5)显示控制:
动态六位七段LED显示,位选以三位编码输出。
要求显示稳定,扫描显示的频率大于50hz;
(6)完成硬件验证测试工作;
2.数字电子秒表设计
2.1仪器设备
(1)十进制计数器74LS160,十六进制计数器74LS161;
(2)3-8译码器74138
(3)BCD-七段译码器7448
(4)三态缓冲器74244
(5)各种门电路,触发器
2.2设计原理
电子秒表的输入时钟为1KHz,将其十分频后得到100Hz的信号作为标准信号进行计数,则技术值得分辨率为1/100秒,正好满足系统的要求。
计数器分为3级,第1级是一百进制计数器作1/100秒的计数,第2级是六十进制计数器作秒的计数,第3级是六十进制计数器作分的计数。
电子秒表的计数受控制模块的控制,控制模块接收“起/停”按键则停止输入,当停止计数时,接收到“起/停”键是一个反复键。
为了保证系统操作的可靠性,还设计了一个按键去抖动电路。
2.3电路设计及仿真
下图为电子秒表的顶层逻辑图,它由一个按键去抖电路keyin,一个控制器ctrl,一个时钟产生电路clkgen,一个计时电路cntblk,一个50000分频电路div_50000和显示译码电路disp组成。
按键去抖电路
按键去抖电路keyin如图所示。
任何按键在触点接触和断开的瞬间都会产生机械抖动,如果不进行处理,每一次按键有可能产生若干次的响应,一般抖动的时间小于20ms。
Keyin模块能完成对输入信号的去抖动处理,它利用两个串接的边沿D触发器来消除高频的抖动,当在CLK端输入一个频率为25Hz的方波信号时,其输出信号就能得到宽度固定为20ms的单脉冲信号。
下图为它的仿真波形图。
从图中可见,存在于输入信号上的抖动被完全的消除了。
控制器电路
控制器ctrl模块如上图所示。
它在“启/停”信号ST_ST和复位信号CLR的作用下完成对计数使能信号CNTEN的控制。
任何时候只要CLR=1,则CETEN=0,所以它是异步清零;ST_ST是一个反复键,当CLR无效时,每一个ST_ST脉冲都会使CETEN反向,该信号作用于控制计时器的计时,当取值为1时允许计时器计时,当取值为0时不允许计时器计时。
下图为它的仿真波形图。
时钟产生电路
时钟产生电路clkgen模块如上图所示。
它完成对输入时钟信号分频,并输出四十分频信号DIV_40和十分频信号DIV_10,即25Hz去抖动时钟信号和100Hz计时器标准计时信号。
clkgen模块可方便的由中规模TTL集成电路74160实现。
下图为它的仿真波形图。
计时电路
计时电路cntblk模块如图所示。
它在控制信号cnten和clr的作用下完成对输入的clk信号进行计数。
由于clk信号是标准的100Hz信号,因此一百进制计数器的进位输出就是1秒,对秒进行六十进制计数就得到1分,对分又六十进制计数,所以最大计数值为59:
59:
59,因起始值是00:
00:
00,故其最大的计时长度为1小时。
cntlk模块将输出计时结果。
下图为cntblk模块的仿真波形图。
50000分频电路
因为系统要求输入的是1KHz频率,而开发板的系统频率为5MHz,所以要对系统频率进行50000分频。
这里选择用VHDl设计。
代码如下:
libraryieee;--定义库文件
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entitydiv_50000is
port(clk:
instd_logic;
clk_fp:
outstd_logic);
endentity;
architectureoneofdiv_50000is
signaln:
integerrange0to24999;
signalcp:
std_logic;
begin
process(clk)
begin
ifclk'eventandclk='1'then
ifn<24999then
n<=n+1;
else
n<=0;cp<=notcp;
endif;
endif;
endprocess;
clk_fp<=cp;
endone;
其波形仿真如下:
显示译码电路
显示译码电路disp模块如上图所示。
该模块有三个功能,首先它完成对输入的6组向量信号的选择,其中被选择的信号由S[2..0]决定,即当S[2..0]=“00”时,选中A,“01”时选中B,“05”时选中F;其次它还对选中的信号进行BCD-七段显示的译码;再次要完成位选信号的产生于输出。
下图为它的仿真波形图。
disp模块中位选信号的产生只用了一个74161接成六进制计数器即可,为了实现对输入的6个信号的选择再用一个74244,利用它的三态功能实现该部分电路。
3.电路的硬件验证
如下图所示,把程序下载到开发板上并且将SW2拨到高电平,电子秒表开始工作。
拨动SW1到高电平可以将电子秒表置零,如下图。
把SW2拨到低电平再拨到高电平即可实现“暂停”,重复此操作即可继续计数。
4.心得体会
在此次课程设计中,我进一步了解并熟悉了数字电子器件的使用。
同时在设计过程中也遇到了不少困难,比如50000分频电路中VHDL语言的编写与应用,对于VHDL我很是陌生,还好有同学的帮助,是我克服了这个困难。
所以我认为要想做好这个课程设计,就必须认认真真地去做,不要怕麻烦。
而且本次课程设计巩固和加深了我对电子线路基本知识和理解,提高了综合运用所学知识的能力。
增强了根据课程需要选学参考资料,查阅手册,图表和文献资料的自学能力。
通过独立思考,深入研究有关问题,学会自己分析解决问题的方法。
本次的课程设计对我来说,是第一次自己运用所学的知识,理论联系实际,动手去做东西,对我来说,这将是一次宝贵的经历。
5.参考文献
[1]何伟《现代数字系统实验及设计》重庆大学出版社2010
[2]阎石《数字电子技术基础》清华大学出版社2006