vdhl语言多功能数字钟设计大学论文.docx
- 文档编号:1657337
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:35
- 大小:1.02MB
vdhl语言多功能数字钟设计大学论文.docx
《vdhl语言多功能数字钟设计大学论文.docx》由会员分享,可在线阅读,更多相关《vdhl语言多功能数字钟设计大学论文.docx(35页珍藏版)》请在冰点文库上搜索。
vdhl语言多功能数字钟设计大学论文
南京理工大学
电子线路课程设计
多功能数字钟设计
(题名和副题名)
(作者姓名)
(学号)
指导教师姓名姜萍老师
学院电子工程与光电技术学院
年级2012级专业名称通信工程
论文提交日期2014.12
摘要
本文主要使用VDHL语言完成了多功能数字钟设计,其具有23:
32:
35计时、清零保持、12/24时制切换、快速校时校分、整点报时、闹钟设置、闹钟响铃(铃声为“小苹果”)、钢琴等功能。
利用QuartusII7.0完成设计、仿真等工作。
并利用Altera公司开发的CycloneIII系列EP3C25F324C8实验箱实现电路。
本文使用模块化的设计理念,将整体电路分为8个子模块设计,分别为:
分频模块、时钟计数与校时校分模块、闹钟设置模块、闹钟响铃模块、整点报时模块、译码显示与计时、闹钟显示复用模块、消颤模块、钢琴模块。
其后,本文给出了本实验的计算机仿真图,并进行结果分析,对实验中出现的问题进行反思,提出未来改进方向,最后在文末给出了本实验所设计的电路的使用说明书。
关键词:
VHDL、数字钟、“小苹果”铃声、钢琴
Abstract
VDHL languageisusedto designamultifunctionaldigitalclockinthispaper, whichhasclockof23:
32:
35, reset, 12/24switching, fasthoursetandminuteset, thewholepointtimekeeping,alarmsetting, alarm bell (bell as"little apple"), piano andotherfunctions. WeuseQuartusII7.0tocompletethe design, simulationandother works.andthenusetheEP3C25F324C8experimentalboxof Cyclone IIIseries developedbytheAlteratoimplementthedesign.
Inthispaper,themodular designconceptisused, andthewholecircuit isdividedinto9sub moduledesign, respectivelyis:
frequencydivisionmodule,clockandminute/hoursettingmodule,alarmsettingmodule, alarmbellmodule,thewholepointtimekeepingmodule, decodingdisplay andtiming, alarmmultiplexingdisplay module,vibrationeliminatingmodule,pianomodule.
Then, thecomputer simulationdiagramisgiveninthispaper, followedbytheresultsanalysis,reflectionson theproblemsappearedintheexperiment,andputtingforwardthedirectionofimprovementinthefuture.Finally,wegivetheexperimental instructionsofthecircuit designattheendofthepaper.
Keywords:
VHDLdigitalclock "littleapple" bellspiano
1绪论
1.1数字钟的发展概况
数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。
1.2选题背景及意义
进入大三,我们的专业理论知识已经达到一定程度,但却没有合适的机会应用于实践。
基于可编程逻辑器件实现的多功能数字钟,核心电路基础,功能可拓展性强大,能够极大地开发我们理论应用于实践的能力,调动我们的科研积极性。
而QuartusII软件的使用,更是锻炼了我们用VHDL语言实现数字电路设计的能力,对日后我们从事相关行业科研开发具有启蒙意义。
1.3课题研究现状
目前数字钟基本技术实现方案:
数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。
其中,利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用越来越普及了,并且由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,使单片机在电子和一些自动化行业中应用也越来越广泛了。
数字钟的组成模块主要由一个AT89C51单片机模块、用于放大信号来驱动数码管显示的SN74LS244N、用于显示时间的数码管显示模块、还有用于复位的按键部分,还有电源等部分组成[]。
1.4本文主要工作
本文主要使用VDHL语言完成了多功能数字钟设计,其具有23:
32:
35计时、清零保持、12/24时制切换、快速校时校分、整点报时、闹钟设置、闹钟响铃(铃声为“小苹果”)、钢琴等功能。
利用QuartusII7.0完成设计、仿真等工作。
并利用Altera公司开发的CycloneIII系列EP3C25F324C8实验箱实现电路。
本论文主要完成工作如下:
1.利用CycloneIII系列EP3C25F324C8实验箱实现多功能数字钟的设计。
2.能进行正常的时、分、秒计时功能,计时标准为23:
32:
35,即一分钟36秒,一小时33分钟,一天24小时;
3.分别由六个数码管显示时分秒的计时;
4.时钟具有整点报时功能(当时钟计到32’29”时开始报时,在32’29”,32’31”,32’33”时报时频率为500Hz,32’35”时报时频率为1KHz);
5.时钟具有闹表设定功能,当时钟到设定时间时能够响铃,响铃铃声为小苹果。
6.具有钢琴功能。
当进入钢琴模式,K1——K7共7个键,分别代表do,re,me,fa,so,la,si7个音。
拨动一次开关,则发出对应的音调,每次琴声维持0.5s后自动关闭。
7.具有消颤电路,防止按下开关时的抖动影响电路工作。
8.K1为系统清零开关,K2为系统保持开关,K3为系统校分开关,K4为系统校时开关,K5为闹钟设置开关,K6为铃声开关,K7为12/24时制切换开关,K8为钢琴开关。
论文一共分为七章,其结构如下:
第1章绪论,主要介绍数字钟的发展现状与现今主要数字钟实现方法,主要分析了本课题的研究意义及选题背景,最后给出了本文的主要工作内容。
第2章介绍了Altera® Cyclone系列第三代产品性能,给出了我们实验平台CycloneIIIEP3C25F324C5开发板原理图。
第3章介绍了多功能数字钟的基本原理,给出了本实验所完成的电路总图。
第4章介绍了多功能数字钟的子组成模块。
共分为8个子组成模块,分别为:
分频模块、时钟计数与校时校分模块、闹钟设置模块、闹钟响铃模块、整点报时模块、译码显示与计时、闹钟显示复用模块、消颤模块、钢琴模块。
第5章介绍了电路调试与仿真,给出了数字钟计算机仿真图,之后给出管脚设置与程序下载运行具体步骤。
第6章给出多功能数字钟系统的使用说明书。
第七章论文总结,对本实验过程中出现的问题进行反思,并且对未来可以展开的工作进行了展望。
2实验平台CycloneIII EP3C25F324C5
2.1CycloneIII
2.1.1CycloneIII系列产品介绍
低成本Cyclone® IIIFPGA是Altera® Cyclone系列的第三代产品。
CycloneIII FPGA系列前所未有地同时实现了低功耗、低成本和高性能,进一步扩展了FPGA在成本敏感大批量领域中的应用。
采用台湾半导体生产公司(TSMC)的65-nm低功耗(LP)工艺技术,CycloneIII器件对芯片和软件采取了更多的优化措施,在所有65-nmFPGA中是功耗最低的,在对成本和功耗敏感的大量应用中,提供丰富的特性推动宽带并行处理的发展。
CycloneIII系列包括8个型号,容量在5K至120K逻辑单元(LE)之间,最多534个用户I/O引脚。
如表1所示,CycloneIII器件具有4-Mbit嵌入式存储器、288个嵌入式18x18乘法器、专用外部存储器接口电路、锁相环(PLL)以及高速差分I/O等。
CycloneIIIFPGA系列为成本敏感的各种大批量应用提供多种器件和封装选择。
CycloneIII器件结温在-40°C至125°C之间,有三种温度等级,支持各种工作环境[]。
2.1.2CycloneIIIEP3C25F324C5开发板原理图
图2.1CycloneIIIEP3C25开发板原理图[2]
3多功能数字钟基本原理与总电路图
3.1数字钟的基本原理
要实现数字钟的基础计时功能,首先需要获得1HZ的脉冲信号。
在此我们通过VHDL语言设计了一个数字分配器,可实现分频数的改变。
对实验箱给出的振荡频率源进行48M分频,我们得到计时所需时钟信号。
我们所要设计的数字钟秒位为35,即设计一个模35计数器,对1HZ的脉冲进行秒计数,产生秒位;为产生分位,通过秒位的进位产生分计数脉冲,分位也由模32计数器构成;为产生时位,用一个模24计数器对分位的进位脉冲进行计数。
整个数字计时器的计数部分共包括六位:
时十位、时个位、分十位、分个位、秒十位和秒个位。
由此,最终可实现要求的23:
32:
35的数字钟。
清零功能是通过控制计数器清零端的电平高低来实现的。
只需使清零开关按下时,各计数器的清零端均为接入有效电平(本实验中是高电平),而清零开关断开时各清零端均接入无效电平即可。
保持功能是通过控制计数实现。
正常情况下,保持键为低电平,不影响正常计数,当按下开关后,保持键呈高电平,使脉冲无法进入计数端,从而实现计时保持功能。
校分校时的基本原理是,通过逻辑门电路控制分计数器的计数脉冲,当校分校时开关断开时,计数脉冲由低位计数器提供;当按下校分校时开通时,有恒定的2Hz脉冲提供恒定的进位信号,计数器在此脉冲驱动下可快速计数。
整点报时功能的的实质是对计数器各位进行判决,若达到XX:
32:
29、XX:
32:
31、XX:
32:
33秒则将指定的500HZ频率信号送入蜂鸣器中,若达到XX:
32:
35,则将指定的1000HZ频率信号送入蜂鸣器中,实现在规定的时刻以指定频率发音报时。
图3.1系统逻辑框图(*)(*)为引用图,详见致谢
3.2多功能数字钟总电路封装图
图3.2多功能总电路封装图
图3.3总电路封装图左上1/4放大图
图3.4总电路封装图右上1/4放大图
图3.5总电路封装图左下1/4放大图
图3.6总电路封装图右下1/4放大图
4多功能数字钟各子模块设计原理
4.1分频模块
本实验中使用的CycloneIII实验箱给出的振荡频率源为48MHz,因此我们需要使用分频电路得到作为时钟计时电路与铃声电路所使用的各种频率脉冲。
时钟计时使用1HZ,闹钟校时校分使用2HZ,消颤使用4HZ,整点报时使用500HZ与1000HZ。
do、re、mi、fa、so、la、si七个音使用523HZ、587HZ、659HZ、698HZ、784HZ、880HZ、988HZ七个频率。
封装后分频模块电路如下:
图4.1分频模块封装图
内部电路连接如下图:
图4.2分频模块内部图
图4.3数字分频子模块封装图
当需要一个48分频信号时,设置n为计数参数,对输入CLK计数,当n由0计数到23,将输出信号取非,由此得到占空比为50%的48分频信号。
具体程序如下:
仿真结果:
图4.448分频仿真图
4.2时钟计数与校时校分模块
本文所设计的数字钟能进行正常的时、分、秒计时功能、校时校分功能、12/24时制切换功能。
计时标准为23:
32:
35,即一分钟36秒,一小时33分钟,一天24小时。
当秒位达到35,由进位端向分位发出一个脉冲;当分位达到32,由进位端向时位发出一个脉冲。
Reset为清零开关,当其为“1”,时钟清零为00:
00:
00;pause为保持开关,当其为“1”时,时钟停止计数。
本文将时钟计数与校时校分这两个功能集成在一个模块中。
当校时、校分输入端口min_set与hour_set为低电平时,时钟正常计数;当其中一个为高电平,则将该子模块的1HZ输入信号赋予其进位输出端,从而实现1HZ校时校分的功能。
同时,在本文中,12/24时制切换切换也被集成在这个模块中的时钟时位子模块中。
当mode为0,为24时制;当mode为1,为12时制。
图4.5时钟计数与校时校分模块封装图
4.2.1时钟秒位子模块
图4.6时钟秒位子模块封装图
具体程序如下:
仿真图如下:
图4.7时钟秒位子模块仿真图
4.2.2时钟分位子模块
图4.8时钟分位子模块封装图
具体程序如下:
仿真图如下:
图4.9时钟分位子模块仿真图
4.2.3时钟时位(包含12/24时制切换)子模块
图4.10时钟时位(包含12/24时制切换)子模块封装图
具体程序如下:
4.3闹钟设置模块
闹钟设置模块的校时与校分开关与时钟计数电路的校时校分开关复用,当进入闹钟设置模式(即alarm_enable=“1”),hour_set和min_set不作用于时钟计数电路,而是作用于闹钟设置。
此时,时位(分位)以2HZ的频率跳动,关闭闹钟设置(即alarm_enable=“0”),完成闹钟设置。
图4.11闹钟模块封装总图
具体程序如下:
4.4闹钟响铃模块
闹钟响铃模块由比较电路和响铃电路组成。
图4.12闹铃响铃模块封装图
4.4.1闹铃判断开启子模块
闹铃判断开启子模块实质上是一个比较电路,输入为计时电路时位和分位,以及闹钟设置电路的时位和分位。
在闹铃开启的情况下(compare_enable=”1”),对这8个4位二进制数进行比较,若完全一致,则ring_enable输出高电平。
图4.13闹铃判断开始子模块封装图
仿真图如下:
图4.14闹铃判断开始子模块仿真图
具体程序如下:
4.4.2铃声“小苹果”子模块
图4.15铃声“小苹果”子模块封装图
图4.16“小苹果”简谱图
取《小苹果》后四句作为响铃铃声:
你是我的小呀小苹果儿/就像天边最美的云朵
春天又来到了花开满山坡/种下希望就会收获
如简谱所示,我们对每个全音设置为2个4HZ脉冲,即每个全音持续时间为0.5s;
对于两个音符连唱的,则称每个音符为半音,设置为1个4HZ脉冲,即每个半音持续时间为0.25s。
简谱中数字上打点为高音,不打点为中音,在此我们对所有音降一调处理。
所有上方打点的设为中音,不打点的设为低音。
中音do、re、mi、fa、so、la、si已在前面分频电路给出,我们在此再由分频电路分出低音so、la、si三个音,分别为392HZ、440HZ、494HZ。
程序设计中,对4HZ时钟信号计数。
设置count为计数参数,对于不同的count,把对应的不同的频率赋给输出信号ring_enable,从而实现“小苹果”响铃。
仿真效果图如下:
图4.17铃声“小苹果”子模块仿真图
具体程序如下:
4.5整点报时模块
图4.18整点报时模块封装图
整点报时功能的的实质是对计数器各位进行判决,若达到XX:
32:
29、XX:
32:
31、XX:
32:
33秒则将指定的500HZ频率信号送入蜂鸣器中,若达到XX:
32:
35,则将指定的1000HZ频率信号送入蜂鸣器中,实现在规定的时刻以指定频率发音报时。
具体程序如下:
4.6计时、闹钟显示复用与译码显示模块
计时、闹钟显示复用与译码显示模块,顾名思义,分为2选1显示复用电路与译码显示电路两个电路。
图4.19计时、闹钟显示复用与译码显示模块封装总图
4.6.1计时、闹钟显示复用子模块
2选1显示复用电路对输出的6位数码管进行复用,当进入闹钟设置模式,alarm_enable为“1”,则输出闹钟设置的时位和分位,秒位仍是输出计时电路的秒位;当退出闹钟设置模式,alarm_enable为“0”,则输出计时电路的时位、分位和秒位。
图4.20计时、闹钟显示复用子模块封装图
具体程序如下:
4.6.2译码显示子模块
图4.21译码显示子模块封装图
具体程序如下:
仿真结果如下:
图4.22译码显示子模块仿真图
4.7消颤模块
图4.23消颤模块封装图
内部电路连接如下:
图4.24消颤模块内部连接图
4.8钢琴模块
当进入钢琴模式(piano_enable为“1”),则K1——K7共7个键,分别代表do,re,me,fa,so,la,si7个音。
拨动一次开关,则发出对应的音调,每次音符维持0.5s后自动关闭。
在电路实现中,我们对前7个KEY键复用,进入钢琴模式,则7个键对应7个音符;退出钢琴模式,原计时与闹钟电路均正常运行。
即进入钢琴模式时,外部计时与闹钟电路均正常运行,只是此时7个KEY都无效。
图4.25钢琴模块封装总图
4.8.1钢琴按键对应琴声子模块
图4.26钢琴按键对应琴声子封装图
此子模块实质上是一个数据选择器和编码器,当KEY1--KEY7七个键发生电平变化,则根据是哪个键按下,将对应键的序号通过KEY_A输出,将对应的频率的脉冲信号通过tone输出:
具体程序如下:
4.8.2判断按键按下子模块
前向电路中,我们得到KEY_A代表的KEY1——KEY7哪一个键按下或推上,共有0000——1110总计14个状态。
在此模块中,我们设置KEY_A为敏感参数,当KEY_A发生变化,则将SIGN置为“1”。
图4.27判断按键按下子模块封装图
具体程序如下:
4.8.3琴声延时时长子模块
图4.28琴声延时时长子模块封装图
此模块的目的是对按下每个键发出的琴声的时长进行限定。
设置一个计数器,时间脉冲为500HZ,当计数结果小于250,则将tone(即该按键对应的频率)输出;若大于,则输出”0“。
从而达到每拨动一次按键,则发出对应的琴声,维持0.5s的效果。
具体程序如下:
5数字钟调试仿真与下载
5.1数字钟仿真
在下载运行前,我们对数字钟主程序进行计算机仿真。
由于我们无法在计算机实现48M分频,所以我们手动为1HZ、2HZ等分频得到的信号置相应的频率值。
进行计算机仿真,我们得到计时电路的结果。
图5.1数字钟总电路仿真图
如图,本实验所设计的数字钟的计数标准为:
23:
32:
35。
5.2数字钟管脚设定与下载运行
(1)在主菜单Assignments选“Pins”,打开平面布置图编辑器窗口,将设计的电路图中的各输入输出锁定在相应的管脚上。
图5.2管脚分配图
(2)在主菜单选File\Save保存文件,再次编译项目,生成.sof文件,以用于下载。
(3)在主菜单Tools选Programmer,在弹出的对话框中单击start,即可完成下载。
(4)要注意在实验的不同阶段,系统板上各短路帽、跳线帽的插拔与否。
6多功能数字钟使用说明书
K1为系统清零开关,K2为系统保持开关,K3为系统校分开关,K4为系统校时开关,K5为闹钟设置开关,K6为铃声开关,K7为12/24时制切换开关,K8为钢琴开关。
进入数字钟时,所有开关默认置为0,此时数字钟处于正常计数,计数标准为23:
32:
35。
当数字钟达到XX:
32:
29、XX:
32:
31、XX:
32:
33、XX:
32:
35时,则进行整点报时。
KTY1置“1”,则系统清零,计时电路从零重新开始计数。
KEY2置“1”,则系统保持,时钟计数暂停。
KEY3置“1”,则进入时钟校分电路。
调整到合适的值时,将KEY3置“0”,退出时钟校分。
KEY4置“1”,则进入时钟校时电路。
调整到合适的值时,将KEY4置“0”,退出时钟校时。
KEY5置“1”,则进入闹钟设置模块。
在此情况下,KEY3与KEY4分别用来调整闹钟设置时间的分位和时位。
KEY6置“1”,则系统关闭铃声铃声(正常情况下KEY6为“0”),此时若走到闹钟设定的时间,系统铃声“小苹果”不会响起。
KEY7置“1”,则系统时制切为12小时时制(默认时为24小时时制)。
KEY8置“1”,则系统进入钢琴模块。
此时KEY1——KEY7分别代表do、re、mi、so、la、si等7个音符。
每拨动一次按键,则发出对应的琴声,维持0.5s。
7结论
本文主要使用VDHL语言完成了多功能数字钟设计,其具有23:
32:
35计时、清零保持、12/24时制切换、快速校时校分、整点报时、闹钟设置、闹钟响铃(铃声为“小苹果”)、钢琴等功能。
利用QuartusII7.0完成设计、仿真等工作。
并利用Altera公司开发的CycloneIII系列EP3C25F324C8实验箱实现电路。
7.1论文工作总结
本文所述多功能数字钟设计全程使用VHDL语言完成。
其中,钢琴模块由于时间原因,在最后并没有在实验箱上真正实现,本文仅给出了计算机理论编程实现。
另外,实验中还遇到其他小问题,其解决过程如下:
(1)译码电路一开始显示为332352,即时钟时位变到了数码管的最后一位,而在计算机仿真中并没有出现这种情况。
可能由于一开始使用的原理图实现译码电路,导致了一些无法解决的问题。
后来仍换用VHDL语言设计显示译码电路,才使电路显示正常。
所以,计算机仿真与实验箱的结果匹配性与QuartusII7.0软件原理图VHDL混合设计的稳定性仍亟待提高。
(2)“小苹果”铃声一开始出来没有声音,后来经过与同学老师交流,得知是因为分配器的分频输出信号占空比不是50%,后来改进程序,最终完成设计。
(3)钢琴模块由于时间原因,在最后并没有在实验箱上真正实现,具体问题也并未找到。
猜测可能与KEY_A输出有关。
7.2论文工作展望
对于多功能问题,尚有很多地方值得研究,由于时间和水平有限,本课题涉猎有限。
作者认为以下一些问题也值得研究:
(一)、在实验中,VHDL语言设计与图形设计结合的时候会出现不能理解的问题,且仿真结果与实验平台示波器结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vdhl 语言 多功能 数字 设计 大学 论文