ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:113.22KB ,
资源ID:24009277      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24009277.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字钟EDA综合课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字钟EDA综合课程设计.docx

1、数字钟EDA综合课程设计北 华 航 天 工 业 学 院EDA技术综合设计课程设计报告报告题目: 数字钟 作者所在系部: 电子工程系 作者所在专业: 自动化专业 作者所在班级: 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 20101203 内 容 摘 要VHDL是Very High Speed Integrated Circuit Hardware Description Language的缩写,意思是超高速集成电路硬件描述语言。对于复杂的数字系统的设计,它有独特的作用。它的硬件描述能力强,能轻易的描述出硬件的结构和功能。这种语言的应用至少意味着两种重大的改变:电路的设计竟然可以通过

2、文字描述的方式完成;电子电路可以当作文件一样来存储。随着现代技术的发展,这种语言的效益与作用日益明显,每年均能够以超过30%的速度快速成长。这次毕业设计的内容是在简要介绍了VHDL语言的一些基本语法和概念后,进一步应用VHDL,在MAX+plusII 的环境下设计一个数字钟,最后通过仿真出时序图实现预定功能。数字钟的时间显示用到了七段数码管(或称七段显示器)的电路设计,内部的时间控制输出则用到了各种设计,包括:加法计数器,扫描电路,控制秒、分、时的分频电路,各种数制的转换。关键词: VHDL,数字钟,MAX+plusII,时序仿真图。 目 录1、实验目的1二、硬件要求1三、实验原理1四、模块说

3、明11.秒计数器12.分计数器23.小时计数器34.报警模块45.扫描模块56.译码模块67.顶层文件8五、整体连接图9六、实验步骤10七、实验结果10八、实验总结10九、参考文献10 课程设计任务书课题名称数字钟完成时间2010-12-03 指导教师职称学生姓名班 级总体设计要求和技术要点利用VHDL进行数字钟设计,主要完成以下功能:1.具有时、分、秒计数显示功能,以24小时循环计时。2.具有清零,调节小时、分钟功能。3.具有整点报时功能,整点报时的同时LED灯花样显示。工作内容及时间进度安排周5 :硬件仿真周6 :验收答辩课程设计成果1与设计内容对应的软件程序2课程设计报告书3成果使用说明

4、书4设计工作量要求一、 实验目的(1)掌握多位计数器相连的设计方法。(2)掌握十进制、六进制、二十四进制计数器的设计方法。(3)巩固多位共阴极扫描显示数码管的驱动及编码。(4)掌握扬声器的驱动。(5)LED灯的花样显示。(6) 掌握EDA技术的层次化设计方法。 二、硬件要求(1)主芯片EPF10K10LC84-4。(2)8个LED灯。(3)蜂鸣器。(4)8位八段扫描共阴极数码显示管。(5)三个按键开关(清零,调小时,调分钟)。三、实验原理在同一芯片EPF10K10上集成了如下电路模块:(1)时钟计数: 秒60进制BCD码计数; 分60进制BCD码计数; 时24进制BCD码计数;同时整个计数器有

5、清零,调分,调时功能。在接近整数时间能提供报时信号。(2)具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。(3)蜂鸣器在整点时有报时驱动信号产生。(4)LED灯在整点时有花样显示信号产生。四、模块说明时钟的设计共化分为6个模块:秒计数器(count60),分计数器(count601),小时计数器(count24),报警电路(bs),扫描电路(set),译码电路(led7)。下面具体分析各个模块的原理、内容和功能。1.秒计数器(count60)能够实现60进制循环计数,带有复位端reset、手动调分功能端setmin和向分进位端c ,受时钟上升沿信号控制,其文本语言(文件名:

6、count60.vhd)为底层文本,图1为秒计数器的仿真波形图。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT60 IS PORT(CLK,RESET,SETMIN:IN STD_LOGIC; SEC0,SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);C:OUT STD_LOGIC);1END COUNT60;ARCHITECTURE ONE OF COUNT60 IS SIGNAL S

7、EC0_T,SEC1_T:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL E_1,E_2:STD_LOGIC; BEGIN SEC0=SEC0_T; SEC1=SEC1_T; E_2=(NOT SETMIN and CLK); C=(E_1 or E_2);PROCESS(CLK,RESET,SETMIN)BEGIN IF RESET=0THEN SEC0_T=0000;SEC1_T=0000; ELSIF CLKEVENT AND CLK=1 THEN IF SEC0_T=1001 THEN SEC0_T=0000; SEC1_T=SEC1_T+1;ELSE SEC

8、0_T=SEC0_T+1;END IF;IF SEC0_T=1001 AND SEC1_T=0101 THEN SEC0_T=0000;SEC1_T=0000; E_1=1;ELSE E_1=0;END IF;END IF;END PROCESS;END ONE;图1. 六十进制秒计数器的仿真波形2.分计数器(COUNT601)能够实现60进制循环计数,带有带有复位端reset、手动调小时功能端sethour和向分进位端CO ,受时钟上升沿信号控制。其文本语言(文件名:COUNT601.vhd)为底层文本,图2为分计数器的仿真波形图LIBRARY IEEE;USE IEEE.STD_LOGIC

9、_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT601 IS PORT(CLK,RESET,CLK1,SETHOUR:IN STD_LOGIC;2 MIN0,MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CO:OUT STD_LOGIC);END COUNT601;ARCHITECTURE ONE OF COUNT601 IS SIGNAL MIN0_T,MIN1_T:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL E

10、NHOUR_1,ENHOUR_2:STD_LOGIC; BEGIN MIN0=MIN0_T; MIN1=MIN1_T; ENHOUR_2=(NOT SETHOUR and CLK1); CO=(ENHOUR_1 or ENHOUR_2); PROCESS(CLK,RESET,SETHOUR)BEGIN IF RESET=0THEN MIN0_T=0000;MIN1_T=0000; ELSIF CLKEVENT AND CLK=1 THEN IF MIN0_T=1001 THEN MIN0_T=0000; MIN1_T=MIN1_T+1;ELSE MIN0_T=MIN0_T+1;END IF;I

11、F MIN0_T=1001 AND MIN1_T=0101 THEN MIN0_T=0000;MIN1_T=0000; ENHOUR_1=1;ELSE ENHOUR_1=0;END IF;END IF;END PROCESS;END ONE;图2. 六十进制分计数器的仿真波形3.小时计数器(COUNT24) 能够实现24进制循环计数,带有复位端reset,受时钟上升沿信号控制。其文本语言(文件名:COUNT24.vhd)为底层文本,图3为分计数器的仿真波形图。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.A

12、LL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT24 IS PORT(CLK,RESET:IN STD_LOGIC;3 H0,H1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COUNT24;ARCHITECTURE ONE OF COUNT24 IS SIGNAL H0_T,H1_T:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINH0=H0_T;H1=H1_T;PROCESS(CLK,RESET)BEGIN IF RESET=0THEN H0_T=0000;H1_T=0000; ELSIF

13、CLKEVENT AND CLK=1 THEN IF H0_T=1001 THEN H0_T=0000; H1_T=H1_T+1;ELSE H0_T=H0_T+1; END IF;IF H0_T=0011 AND H1_T=0010 THEN H0_T=0000;H1_T=0000;END IF;END IF;END PROCESS;END ONE;图3. 小时计数器的仿真波形4.报警模块(BS)能够实现整点报时和循环点亮3只LED灯,工作时受时钟上升沿控制。其文本语言(文件名:BS.vhd)为底层文本,图4为其仿真波形。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164

14、.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BS IS PORT(CLK:IN STD_LOGIC;M0,M1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SPEAK:OUT STD_LOGIC;4 LAMP:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END BS;ARCHITECTURE ONE OF BS ISSIGNAL COUNT: STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL COUNT1:STD_LOGIC_VE

15、CTOR(1 DOWNTO 0);BEGINSPEAKER:PROCESS(CLK) BEGINSPEAK=10 THENCOUNT1=00;ELSE COUNT1=COUNT1+1;END IF;END IF;END IF;END PROCESS SPEAKER;LAMPER:PROCESS(CLK) BEGINIF CLKEVENT AND CLK=1 THEN IF COUNT=10 THEN IF COUNT=00 THEN LAMP=001;ELSIF COUNT=01 THEN LAMP=010;ELSIF COUNT=10 THEN LAMP=100;END IF;COUNT=C

16、OUNT+1;ELSE COUNT=00;END IF;END IF;END PROCESS LAMPER ;END ONE;图4. 声光报警仿真波形 55.扫描模块(SET)能够实现逐次扫描秒个位、秒十位、分个位、分十位、时个位、时十位,并输出扫描数据和相应位的点dp,带有复位端reset,受扫描时钟上升沿控制。其文本语言(文件名:SET.vhd)为底层文本,图5为其仿真波形。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY

17、SET IS PORT(CLK1,RESET:IN STD_LOGIC; SE0,SE1,MI0,MI1,HU0,HU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); DP:OUT STD_LOGIC);END SET;ARCHITECTURE ONE OF SET ISSIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIG SEL=COUNT; PROCESS(CLK1) BEG

18、IN IF RESET=0 THEN COUNT=000; ELSIF CLK1EVENT AND CLK1=1 THEN IF COUNT=101 THEN COUNT=000; ELSE COUNTDOUT=SE0;DPDOUT=SE1;DPDOUT=MI0;DPDOUT=MI1;DPDOUT=HU0;DPDOUT=HU1;DPDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUT=0000000;END CASE;END PROCESS;END ONE;77.顶层文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENT

19、ITY CLOCK_TOP IS PORT(CLK,RESET,CLKDSP,SETMIN,SETHOUR:IN STD_LOGIC; A,B,C,D,E,F,G:OUT STD_LOGIC; LAMP,SEL:OUT STD_LOGIC_VECTOR (2 DOWNTO 0); DP,SPEAKER:OUT STD_LOGIC);END CLOCK_TOP;ARCHITECTURE ONE OF CLOCK_TOP ISCOMPONENT COUNT60 -秒计数器COUNT60的元件声明PORT(CLK,RESET,SETMIN:IN STD_LOGIC; SEC0,SEC1:OUT ST

20、D_LOGIC_VECTOR(3 DOWNTO 0); C:OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT601 -分计数器COUNT601的元件声明PORT(CLK,RESET,CLK1,SETHOUR:IN STD_LOGIC; MIN0,MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CO:OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT24 -时计数器COUNT24的元件声明PORT(CLK,RESET:IN STD_LOGIC; H0,H1:OUT STD_LOGIC_VE

21、CTOR(3 DOWNTO 0);END COMPONENT;COMPONENT SET -时间数据扫描分时选择SET的元件声明 PORT(SE0,SE1,MI0,MI1,HU0,HU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); RESET,CLK1:IN STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR (3 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR (2 DOWNTO 0); DP:OUT STD_LOGIC);END COMPONENT;COMPONENT LED7 -7段译码LED7的元件声明PORT( DI

22、N:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR (6 DOWNTO 0);END COMPONENT;COMPONENT BS -报警单元BS的元件声明 PORT ( CLK:IN STD_LOGIC; M0,M1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); SPEAK:OUT STD_LOGIC; LAMP:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END COMPONENT;SIGNAL SECOND_0,SECOND_1,MINUTE_0,MINUTE_1,HOUR_0

23、,HOUR_1,SELTIME:STD_LOGIC_VECTOR(3 DOWNTO 0);8SIGNAL JIN1,JIN2:STD_LOGIC;SIGNAL LEDOUT:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINA=LEDOUT(6);B=LEDOUT(5);C=LEDOUT(4);D=LEDOUT(3);E=LEDOUT(2);F=LEDOUT(1);GRESET,CLK=CLK, -秒计数器元件例化SETMIN=SETMIN, C=JIN1,SEC0=SECOND_0, SEC1=SECOND_1);U2:COUNT601 PORT MAP(RESET=RES

24、ET,CLK1=CLK, -分计数器元件例化SETHOUR=SETHOUR, CLK=JIN1,CO=JIN2, MIN0=MINUTE_0,MIN1=MINUTE_1);U3:COUNT24 PORT MAP( CLK=JIN2,RESET=RESET, -时计数器元件例化 H0=HOUR_0,H1=HOUR_1);U4:SET PORT MAP(SE0=SECOND_0, -时间数据扫描分时选择元件例化SE1=SECOND_1, MI0=MINUTE_0,MI1=MINUTE_1, HU0=HOUR_0,HU1=HOUR_1, CLK1=CLKDSP,RESET=RESET, DOUT=S

25、ELTIME,SEL=SEL,DP=DP);U5:LED7 PORT MAP(DIN=SELTIME, -7段译码LED7的元件例化 DOUT=LEDOUT); U6:BS PORT MAP(CLK=CLK,M0=MINUTE_0, -报警单元BS的元件例化 M1=MINUTE_1,SPEAK=SPEAKER, LAMP=LAMP);END ONE;五、数字钟的整体连接图9 图6. 数字钟各个模块连接示意图六、实验步骤(1)安装MAX+plus软件,为本项设计建立文件夹。(2)输入设计项目的各个模块,存盘检查,编译并仿真至无误。(3)调用底层文件的各个模块,连接整体原理图,进行存盘检查,编译仿真至无误。(4)将PC机与试验箱进

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1