




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE33 / NUMPAGES33基于VHDL的数字电子时钟的设计目录 TOC o 1-3 h z u HYPERLINK l _Toc30710 基于VHDL的数字电子时钟的设计 PAGEREF _Toc30710 1 HYPERLINK l _Toc28567 目录 PAGEREF _Toc28567 1 HYPERLINK l _Toc13305 摘要 PAGEREF _Toc13305 2 HYPERLINK l _Toc9908 引言 PAGEREF _Toc9908 2 HYPERLINK l _Toc2508 一、设计分析 PAGEREF _Toc2508 3 HYPERL
2、INK l _Toc32214 1.1 设计要求 PAGEREF _Toc32214 3 HYPERLINK l _Toc7220 1.2 性能指标与功能设计性能指标 PAGEREF _Toc7220 3 HYPERLINK l _Toc6748 二、设计方案 PAGEREF _Toc6748 3 HYPERLINK l _Toc31249 三、设计环境 PAGEREF _Toc31249 4 HYPERLINK l _Toc23192 3.1 硬件设计环境 PAGEREF _Toc23192 4 HYPERLINK l _Toc20351 3.1.1 可编程器件EP2C5Q208C8N 与开
3、发板系统 PAGEREF _Toc20351 5 HYPERLINK l _Toc11527 3.1.2 64位的计算机一台 PAGEREF _Toc11527 5 HYPERLINK l _Toc8364 3.2 软件设计环境 PAGEREF _Toc8364 5 HYPERLINK l _Toc7731 3.2.1 Quartus软件开发平台(8.0版本) PAGEREF _Toc7731 5 HYPERLINK l _Toc25769 3.2.2Windows7操作系统 PAGEREF _Toc25769 5 HYPERLINK l _Toc15064 3.2.3 硬件描述语言VHDL
4、PAGEREF _Toc15064 5 HYPERLINK l _Toc18308 四、整体设计流图 PAGEREF _Toc18308 7 HYPERLINK l _Toc4100 4.1 各模块的原理性功能介绍 PAGEREF _Toc4100 7 HYPERLINK l _Toc22121 4.1.1 可编程器件EP2C5Q208C8N PAGEREF _Toc22121 7 HYPERLINK l _Toc8510 4.1.2 CPLD-JTAG接口 PAGEREF _Toc8510 7 HYPERLINK l _Toc11681 4.1.3 晶振和蜂鸣器 PAGEREF _Toc11
5、681 7 HYPERLINK l _Toc11526 4.1.4 LED数码管显示 PAGEREF _Toc11526 8 HYPERLINK l _Toc16288 4.1.5 独立按键 PAGEREF _Toc16288 9 HYPERLINK l _Toc6692 4.1.6 拨码开关 PAGEREF _Toc6692 9 HYPERLINK l _Toc17806 4.1.7 Quartus软件开发平台(8.0版本) PAGEREF _Toc17806 9 HYPERLINK l _Toc31906 4.2 设计的整体框架 PAGEREF _Toc31906 10 HYPERLINK
6、 l _Toc11487 4.2.1在各个模块都编译通过的基础上在顶层用原理图的方法实现。 PAGEREF _Toc11487 10 HYPERLINK l _Toc22376 4.2.2 设计原理与流程图 PAGEREF _Toc22376 11 HYPERLINK l _Toc13057 4.2.3逻辑流程图 PAGEREF _Toc13057 12 HYPERLINK l _Toc10185 4.2.4状态转移图 PAGEREF _Toc10185 13 HYPERLINK l _Toc10025 五、系统的模块化设计 PAGEREF _Toc10025 13 HYPERLINK l _
7、Toc29327 5.1 软件程序模块化设计 PAGEREF _Toc29327 13 HYPERLINK l _Toc19389 5.1.1 秒/分/时输入模块的软件设计 PAGEREF _Toc19389 13 HYPERLINK l _Toc1601 5.1.2 秒/分/时计数模块的软件设计 PAGEREF _Toc1601 14 HYPERLINK l _Toc23546 5.1.3 模式选择模块的软件设计 PAGEREF _Toc23546 14 HYPERLINK l _Toc1207 5.1.4 数码管 PAGEREF _Toc1207 15 HYPERLINK l _Toc81
8、20 5.1.5 闹钟模块的软件设计 PAGEREF _Toc8120 16 HYPERLINK l _Toc5692 5.1.5 系统时钟的软件设计 PAGEREF _Toc5692 18 HYPERLINK l _Toc1671 5.2 硬件的测试 PAGEREF _Toc1671 20 HYPERLINK l _Toc31436 5.2.1模拟时钟电路图与实物图 PAGEREF _Toc31436 20 HYPERLINK l _Toc19577 设计心得 PAGEREF _Toc19577 23 HYPERLINK l _Toc4655 致 PAGEREF _Toc4655 24 HY
9、PERLINK l _Toc32328 参考文献 PAGEREF _Toc32328 24摘要随着人类的不断进步,现代电子设计技术已进入一个全新的阶段,传统的电子设计方法、工具和器件在更大的程度上被EDA所取代。本实验则是基于VHDL语言设计的数字钟,具有时、分、秒显示功能。电路主要有时间计数模块、时间显示模块以与译码模块。 数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。它的基本功能是计时,计时周期为24小时,显示满刻度23时59分59秒;数字钟学习的目的是掌握各类计数器与它们相连的设计方法,熟悉多个数码管显示的原理与方法以与模块化设计方式;掌握用VHDL语言的设计思想以与
10、整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,以24小时为计数循环,能实现清零,调时,调分以与闹钟等功能。本设计是一个显示时(2位)分(2位)秒(2位)共六个数字的多功能电子钟。因此将其分频得1Hz的秒钟信号,秒计满60即得1分钟,分满60即得1小时信号,小时满24即得一天。 关键词:数字钟,计数器,数码管,模块化设计, VHDL 引言 本设计采用的VHDL是一种全方位的硬件描述语言具有极强的描述能力能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计。当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器
11、件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。 美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上MaxplusII(或最新的QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。 EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件与实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子
12、系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。 本设计利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学、方便、新颖、有趣、直观设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点。并且它还具有开放的界面,丰富的设计库,模块化的工具以与LPM定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现。 本设计主要研究基于FPGA的数字钟,要求时间以24小时为
13、一个周期,显示时、分、秒。具有校时以与报时功能,可以对时、分与秒进行单独校对,使其校正到标准时间。一、设计分析1.1 设计要求1)具有时、分、秒计数显示功能,以24小时循环计时。 2)要求走时误差不大于每天10秒。 3)具有调节小时、分钟,秒与清零的功能。 4)定时闹钟,实现整点报时,又扬声器发出报时声音,发出滴答的声音。可编程逻辑器件与外围电子元器件,设计一个数字电子钟,利用EDA软件(QUARTUS )进行编译与仿真,设计输入可采用VHDL硬件描述语言输入法)和原理图输入法,并下载到EDA实验开发系统,连接外围电路,完成实际测试。 1.2 性能指标与功能设计性能指标1)时钟计数:完成时、分
14、、秒的正确计时并且显示所计的数字;对秒、分 60进制计数,即从0到59循环计数,时钟24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。,当闹钟计数至我们预先设定的时间时,闹钟的铃
15、声响起,以提示人们时间到了。 二、设计方案本设计采用自顶向下的设计方法和模块化设计方式,它由秒计数模块,分计数模块,小时计数模块,报警模块,秒分时设置模块和译码模块,程序包, entity模块(顶层模块)八部分组成。 优点:设计简单方便,层次清晰,工程的建立方便,无需单独设计各个组件模块产生原理图文件后再进行电路连接设计。 用顶层设计采用原理图输入设计、底层设计采用VHDL设计的原理图与VHDL混合设计方法设计带整点报时功能的数字钟,所以此设计可分为顶层与底层设计,共分为六个模块。即时模块、分模块、秒模块、动态扫描控制模块、段码译码模块和整点报时模块。 秒模块主体为60进制的计数器,ss为向动
16、态扫描控制模块提供秒的个位和十位数据的信号。reset 为秒清零,mm为分钟进位,每60秒产生一个高电平的信号,作为分模块的时钟输入,clk为秒模块的时钟输入,接1Hz脉冲信号,mm为分钟设置,低电平是不影响秒模块工作,当它为高电平时,mm信号会随之产生一个和clk频率一样的信号,达到调整分钟的目的。 分模块主体为60进制的计数器,daout为向动态扫描控制模块提供分的个位和十位数据的信号。分钟进位,每60分产生一个高电平的信号,作为时模块的时钟输入,秒计数到60时的进位输出信号hh和分钟调整输入信号mm,经或关系后接分的脉冲输入端clk,clk1为时调整脉冲,接1Hz脉冲, hh时钟设置,低
17、电平是不影响分模块工作,当它为高电平时,mm信号会随之产生一个和clk频率一样的信号,达到调整时的目的。 时模块为一个24进制的计数器,动态扫描控制模块提供秒的个位和十位数据的信号。分计数到60时的进位输出信号和时调整输入信号,经或关系后接时脉冲输入端clk。为向动态扫描控制模块提供时的个位和十位数据的信号。 动态扫描模块中为动态扫描控制模块的脉冲输入,由外部脉冲发生电路提供,频率约为1kHz,sel0、sel1、sel2接外部38译码器74LS138的输入端A、B、C,ss6.0、mm6.0、hh5.0分别为秒模块、分模块、时模块计数段码输出控制信号。该模块实现时间的动态扫描显示控制。字系统
18、采用自顶向下、由粗到细,逐步分解的设计方法,最顶层电路是指系统的整体要求,最下层是具体的逻辑电路实现。自顶向下的设计方法将一个复杂的系统逐步分解成若干功能模块,从而进行设计描述,并且应用EDA软件平台自动完成各功能模块的逻辑综合与优化。利用Quartus进行具体设计编程、处理、检查以与器件编程三、设计环境3.1 硬件设计环境本设计使用VHDL硬件开发板,可编程逻辑器件EP2C5Q208C8N 系列。设计过程中用到的外围电路的以与设计条件: 3.1.1 可编程器件EP2C5Q208C8N 与开发板系统3.1.2.1 CPLD JTAG接口 3.1.3.2 晶振和蜂鸣器 3.1.4.3 LED数码
19、管显示 3.1.5.4 独立按键3.1.6.5 拨码开关3.1.2 64位的计算机一台3.2 软件设计环境3.2.1 Quartus软件开发平台(8.0版本)3.2.2Windows7操作系统3.2.3 硬件描述语言VHDL 3.2.3.1 VHDL的简介 VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VH
20、DL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。3.2.3.2 VHDL的特点 (1)用VHDL代码而不是用
21、原理图进行设计,意味着整个电路板的模型与性能可用计算机模拟进行验证。 (2) VHDL元件的设计与工艺u无关,与工艺独立,方便工艺转换。 (3)VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。 (4)可以进行从系统级到逻辑级的描述,即混合描述。(5)VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。3.2.3.3 VHDL的设计流程 1)设计规的定义 明确这个系统有哪些设计要求,和你要想到达的目标。 2)采用VHDL进行设计描述 这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择与是否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计
22、,这个和其他软件语言差不多。最重要还是模块划分。 3)VHDL程序仿真 4)综合、优化和布局布线 综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率与减少资源的利用;布局布线,指的是将逻辑关系转化成电路连接的方式。 5)仿真 ,这个与VHDL程序仿真不同,这个不仅是对逻辑方面的验证,还要进行时序功能验证。6)器件编程 四、整体设计流图4.1 各模块的原理性功能介绍4.1.1 可编程器件EP2C5Q208C8N4.1.2 CPLD-JTAG接口4.1.3 晶振和蜂鸣器 晶体振荡电路是构成数字式时钟的核心,它保证了时钟走时准确与
23、稳定。晶体振荡器它的作用是产生时间标准信号。数字钟的精度主要取决于时间标准信号的频率与其稳定度。因此,一般采用石英晶体振荡器经过分频得到这一信号。晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确与稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路 4.1.4 LED数码管显示 译码是把给定的代码进行翻译,本设计即是将时、分、秒计数器输出的四位二进制数代码翻译为相应的十进制数,并通过显示器显示。 译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译。码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47
24、是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,下表列出了74LS47的真值表,表示出了它与数码管之间的关系。 译码是把给定的代码进行翻译,本设计即是将时、分、秒计数器输出的四位二进制数代码翻译为相应的十进制数,并通过显示器显示,通常显示器与译码器是配套使用的。我们选用的七段译码驱动器(74LS47)和LA5611数码管。4.1.5 独立按键 此次设计主要外部电路的触发,每按一下将记一次数。S1 校对秒的按键 S3 校对分的按键S6 校对时的按键 多功能数字钟的闹钟功能部分通过按键s1,s3,s6,设定闹钟时间,当时钟进入闹钟设定的时间4.1.6 拨码开关 此次设计拨码开关的主要作
25、用是清零,和选择模式即状态的切换4.1.7 Quartus软件开发平台(8.0版本) 本程序设计的是基于VHDL的数字时钟,采用采用采用采用EDA开发工具,VHDL语言为硬件描述语言, QUARTUSII作为程序的运行平台,所开发的程序经过调试运行,波形仿真验证,初步实现了设计目标。4.2 设计的整体框架4.2.1在各个模块都编译通过的基础上在顶层用原理图的方法实现。具体步骤如下: 1)确定总体结构 这是在进行系统具体编程设计之前就应该做的工作。有了这一步,就对数字钟的模块有了了解。在具体设计时只要根据这些模块各自的功能编写程序就大大的提高工作效率。系统总体框图如图1所示。 2)系统功能分析
26、整个系统以Altera的芯片为核心,外部设备比较简单,只需要几个拨码开关和6个数码管,开关分别作系统复位和校时用,6个数码管分别显示秒、分和小时。核心部分由3大模块组成,即时间计数模块、控制模块和显示模块。在系统设计时将控制模块和时间计数模块集成在一起。时间计数模块是通过计数产生秒、分和小时信号,显示模块对时间计数模块产生的秒、分和小时的信号,通过时钟扫描逐个在数码管上显示。校时功能主要是在计数器的设计上实现,通过设计正常计时和校时2个选通完成正常计时和校时的切换。 3)系统核心模块功能分析与实现 时间计数模块。时间计数模块由一系列的计数器进行级联实现,包括六进制、十进制、二十四进制计数器。秒
27、和分钟的计数器的各位为十进制计数器。小时位为二十四进制计数器则由一个VHDL程序实现。显示模块。显示模块由一个没有进位的六进制计数器、一个六选一选择器和一个七段译码管组成。六进制计数器为六选一选择器的选择判断提供输入信号,六选一选择器的选择输入端段分别接秒各位、分个位、分十位和小时位计数器的输出,用来完成动态扫描显示。细化后的原理框图:4.2.2 设计原理与流程图 数字电子钟的逻辑框图如下,它由振荡器、分频器、计数器、译码器显示器和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小
28、时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分4.2.3逻辑流程图4.2.4状态转移图五、系统的模块化设计5.1 软件程序模块化设计5.1.1 秒/分/时输入模块的软件设计 60进制计数器(分、秒计数器)工作原理: “秒”计数器电路与“分”计数器电路都是60进制,它由一级10进制计数器和一级6进制计数器连接构成,如图三所示,采用两片中规模集成电路74LS90串接起来构成的“秒”、“分”计数器,实现时采用反馈清零法。(秒分时模块程序一样不再重复)architecture art of disshk isbeginprocess(c
29、lk,d)variable count:integer range 0 to 100;-d为置位,计数段为100次beginif d = 0 thenif clkevent and clk=1 then-信号为1时有效if(count=100) then 当扫描为次数为100次时q=0; -count :=0;else count:=count+1;- 否则开始计数end if;end if;else q=1;end if;5.1.2 秒/分/时计数模块的软件设计 entity count isport (cl_r,clk,add: in std_logic; gsec,ssec: out s
30、td_logic_vector(3 downto 0); c: out std_logic); end entity ; architecture art of count issignal co,rclk: std_logic; beginprocess(cl_r,clk,rclk,co,add) isvariable secg,secs,ad: std_logic_vector(3 downto 0);定义 秒的端口 个位,十位beginrclk=add xnor clk; 扫描时钟要低于系统时钟if cl_r=0 thensecg:=0000;secs:=0000;co=0;elsif
31、(rclk=1and rclkevent) thenIf secg=1001 and secs=0101 thensecg:=0000;secs:=0000;co=1;-elsif secg=1001 then secs:=secs+1;secg:=0000;co=0;elsif secg1001 thensecg:=secg+1;end if;当计数个位为9,十位为5,计数值为59时,秒的个位十位都为零,进位为一,说明此时计数为一分钟。秒的个位一直计数,计数值不到9时,一直加,直到出现个位出现9,十位加一。5.1.3 模式选择模块的软件设计entity slc isport(add: in
32、std_logic_vector(2 downto 0);sel:in std_logic;naout,clkout : out std_logic_vector(2 downto 0);end entity;architecture art of slc isbeginprocess(sel,add)beginif(sel=1) then sel为一时,闹钟模式开启,否则继续时钟的显示naout=add;elseclkoutdata=f0;weidata=f1;weidata=f2;weidata=f3;weidata=f4;weidata=f5;weidata=f0;weidudududu
33、dudududududududududududududududududu=11000000; 段选end case;end if;end process;5.1.5 闹钟模块的软件设计 闹钟能否正常计数、能否对计时时间进行调整,定时闹铃功能是否正常,动态扫描显示是否正常。 原理框图: (1)计数模块:按照时钟模式完成一天24小时的计时功能。 (2)译码模块:根据计时模块的状态输出值来确定对应位的数据的,其输出是7段高低电平,以点亮相应的数码管; (3)计数控制模块:根据外部控制信号,进行时钟计数的调整和计时的控制; (4)响铃控制模块:根据外部闹钟控制信号完成闹钟的定时,当计数模块技术到和该模
34、块所设定时间一致时,该模块将驱动蜂鸣器响铃。(5)分频器:根据外部的输入时钟,将外部时钟成两路信号,一路用于正常的计数,一路用于七段显示数码管的动态扫描输出。architecture art of beep issignal bep : std_logic;beginprocess(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2)beginif (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1=0000 and mm2=0000) then 当前时间的时分秒完全等于设置的闹钟时间,蜂鸣器才有效,否则蜂鸣器不响,继续显示
35、当前的时间if clk=1 and clkevent thenbep=not bep;end if;else bep=1;end if;5.1.5 系统时钟的软件设计process(clk)variable counts:integer range 0 to 50000000;系统时钟为50MHZbeginif clkevent and clk=1 then 时钟高电平有效if(counts25000000) then 计数周期为1ms,1ms扫描100次,clks=1; 0到0.5毫秒为高电平counts:=counts+1;elsif(counts50000000) then 0.5毫秒到
36、1毫秒为低电平clks=0;counts:=counts+1;else counts:=0;end if;end if;end process;process(clk)variable countms:integer range 0 to 50000;分频段beginif clkevent and clk=1 then 时钟高电平有效if(countms25000) then 计数周期为0.1ms.0到0.5毫秒为低电平clkms=1;countms:=countms+1; elsif(countms50000) then 0.05到0.05毫秒为低电平clkms=0;countms:=cou
37、ntms+1;else countms:=0;end if;end if;end process;end architecture fenp;end if;c=co;ssec=secs;gsec=secg;end process;end architecture;动态扫描,时间1s计数达到59秒后本身清零,进位给分位,依次类推时钟信号的输入模式的切换,闹钟的输入端口三个图分别为秒分时的输入端口位选六位,段选8位5.2 硬件的测试 本次选用EP2c5Q208C8N芯片。外部需接几上升沿按键,并接扬声器和不许译码器的数码管。下载测试后,按复位键后数码管显示0时0分0秒开始计数,分秒时计数都正确。按
38、动调分键或调小时键后,分位或小时位开始自加,再按键后停止。当时间到整点时会有十秒报时,按动停止键停止报时,不按此键时自动到十秒后停止报时。设计结果达到要求。5.2.1模拟时钟电路图与实物图 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟 实物电路图:此图为拨码开关的实物图,当4开关处于高电平时,说明选择模式已经打开了,你可以选择是计数模式,还是显示时分秒模式,还是闹钟模式当拨码开关2,拨至高电平时,所有数码管显示的数值将全部清
39、零校对分的独立按键,每按一下,计数值加一,计数范围0到59校对时的独立按键,每按一下,计数值加1,计数范围0到23校对秒的独立按键,每按一下,计数值加1,计数范围,0到59 假使此刻时间为早上九点九分57秒,我们在选择的模式(拨码开关)下,将状态调为闹钟模式,将闹钟定为十点整,也就是10.00.00。然后将拨码开关拨下,则数码管继续此刻的时间显示,当时间显示为10.00.00时,此时蜂鸣器将产生滴答滴答的声音。时间为一分钟。设计心得通过两星期的紧工作,最后完成了我的设计任务数字钟的设计与制作。通过 本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际操作
40、能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。 课程设计中要求要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别与其在电路设计上的优越性。用VHDL硬件描述
41、语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。也是本次课程设计,巩固了我们以前学过的专业知识,通过这次的程序设计,使我们对数字系统结构也有了更进一步的了解与认识,同时对数据库软件技术,语言等系列知识都有了一定的了解与认识。使用技术开发页面的能力也有了提高,也使我们把理论与实践从正真意义上结合了起来,考研了我们的动手能力,查阅相关资料的能力,还有组织材料的能力。通过此次实践,我们从中可以找出自己知识的不足与欠缺,以便我们在日后的学习中得以改进与提高。致感梁老师
42、一学期的教导,老师严谨的态度、严格的要求以与强烈的专业素养都对我们有十分深刻的影响,使得我们学会精益求精,端正自己的学习态度。在此,对梁老师表示衷心的感。通过本次设计实验,也使我们学到了很多,也借此机会综合巩固一学期所学的知识。也感身边帮助我的每一个同学。参考文献1 国丽,朱维勇.电子技术实验指导书.:中国科技大学,2000 2 松,黄继业.EDA技术实用教程.:科学,20023 家龙,王小海,章安元.集成电子技术基础教程.:高等教育,20024 宋万杰,罗丰,吴顺君.CPLD技术与其应用.:电子科技大学,1999 5 卢杰,赖毅.VHDL与数字电路设计.:科学,2001 6 王金明,吉斌.数
43、字系统设计与Verilog HDL.:电子工业,2002 附录 闹钟模块的程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity beep isport(clk: in std_logic;hh1,hh2,mm1,mm2,h1,h2,m1,m2: in std_logic_vector(3 downto 0);beep: out std_logic);end entity;architecture art of beep issignal bep : std_logic;beginpr
44、ocess(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2)beginif (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1=0000 and mm2=0000) thenif clk=1 and clkevent thenbep=not bep;end if;else bep=1;end if;beep=bep;end process;end architecture;数码管位选和段选library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigne
45、d.all;entity endslc isport(wei1,wei2: in std_logic_vector(5 downto 0);out1,out2: in std_logic_vector(7 downto 0);sel:in std_logic;wei: out std_logic_vector(5 downto 0);ot:out std_logic_vector(7 downto 0);end entity;architecture art of endslc isbeginprocess(sel,wei1,wei2,out1,out2)beginif(sel=1) then
46、wei=wei1;ot=out1;elsewei=wei2;otdata=f0;weidata=f1;weidata=f2;weidata=f3;weidata=f4;weidata=f5;weidata=f0;weidudududududududududududududududududududududu=11000000;end case;end if;end process;end architecture;蜂鸣器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity beep is
47、port(clk: in std_logic;hh1,hh2,mm1,mm2,h1,h2,m1,m2: in std_logic_vector(3 downto 0);beep: out std_logic);end entity;architecture art of beep issignal bep : std_logic;beginprocess(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2)beginif (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1=0000 and mm2=0000) thenif
48、clk=1 and clkevent thenbep=not bep;end if;else bep=1;end if;beep=bep;end process;end architecture;两个时钟信号library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fps isport(clk: in std_logic;clkms: out std_logic;clks: out std_logic);end entity;architecture fenp of fps isbeginpr
49、ocess(clk)variable counts:integer range 0 to 50000001;beginif clkevent and clk=1 thenif(counts25000000) thenclks=1;counts:=counts+1;elsif(counts50000000) thenclks=0;counts:=counts+1;else counts:=0;end if;end if;end process;process(clk)variable countms:integer range 0 to 50000;beginif clkevent and cl
50、k=1 thenif(countms25000) thenclkms=1;countms:=countms+1;elsif(countms50000) thenclkms=0;countms:=countms+1;else countms:=0;end if;end if;end process;end architecture fenp;外部触发时钟use ieee.std_logic_unsigned.all;entity count isport (cl_r,clk,add: in std_logic; gsec,ssec: out std_logic_vector(3 downto 0); c: out st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025十堰市张湾区汉江街道社区工作者考试真题
- 第三章化学部分重点内容专题复习-2024-2025学年浙教版八年级下册科学
- 初中生物初中生物教研组学科特色活动方案 2024-2025学年人教版生物七年级上册
- 2025厂里厂里安全培训考试试题加下载答案
- 2024-2025项目安全培训考试试题及参考答案(模拟题)
- 2024-2025公司安全培训考试试题a4版
- 2024-2025公司项目部安全培训考试试题【完整版】
- 2024-2025公司员工安全培训考试试题附下载答案
- 2024-2025公司项目负责人安全培训考试试题附参考答案(基础题)
- 2025厂级安全培训考试试题带答案(培优A卷)
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- 新进(转岗)职工三级安全教育培训表
- GB/T 44347-2024乡村绿化技术规程
- (修订版)粮油质量检验员理论考试复习题库-下多选、判断题
- 保险行业客户画像分析与精准营销方案
- 沪教版小学六年级数学应用题150道及答案
- 北师大版四年级下册小数乘法竖式计算练习100题及答案
- 2024年湖南省长沙市中考地理试卷真题(含答案解析)
- 《中国健康成年人身体活动能量消耗参考值》(编制说明)
- 食堂大米采购招标文件
- CJT 216-2013 给水排水用软密封闸阀
评论
0/150
提交评论