《EDA-数字时钟-宁波工程学院-verilog-pldooj.docx》由会员分享,可在线阅读,更多相关《EDA-数字时钟-宁波工程学院-verilog-pldooj.docx(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDA 课 程程 设 计报告设计(论论文)题题目:多多功能数数字时钟钟的设计计学院名称称: 电电子与信信息工程程学院专业: 电电子科学学与技术术班级: 电科1102 姓 名名:感谢谢我吧学学号哈哈小组成员员: ook指导教师师:王 蔚蔚日期: 20113年12月18日一、 简述二、 设计要求求说明2.1设设计总体体要求2.2设设计基本本要求2.3设设计提高高部分要要求三、 系统设计计3.1整整体设计计方案3.2秒秒脉冲发发生电路路3.3译译码显示示电路3.4计计时电路路 3.5复复位电路路四、 功能模块块电路设设计4.1秒秒脉冲发发生电路路模块4.2 整体时时钟设计计模块五、 系统调试试5.1
2、 系统调调试5.111消抖电电路调试试5.122计时电电路调试试5.133 秒产产生电路路调试5.144整点报报时电路路调试5.155 数码码显示电电路调试试 5.166 时校校时电路路调试 5.177 状态态灯电路路调试 5.2 管脚分分配六、 参考文献献七、 实验感想想摘要:本次EDDA课程程设计利利是在QQuarrtussII软软件平台台上用vveriilogg硬件语语言来编编程设计计PLDD电路,最最终设计计出一简简单的数数字时钟钟电路,并并且将程程序代码码烧写到到EDAA试验箱箱进行验验证。本本次设计计充分采采用了软软件编程程中分层层次、模模块化的的编程思思想,同同时也充充分考虑虑到
3、了硬硬件结构构编程与与纯软件件编程的的差异性性,仿真真与实际际烧写相相结合,逐逐步完善善其逻辑辑、功能能。本系系统主要要由时钟钟基本功功能电路路、闹钟钟电路、动动态显示示控制电电路、分分频电路路,状态态灯显示示电路,按按键电路路组成,实实现了时时分秒的的计时、闹闹钟报时时,整点点报时,调调整时分分等功能能。关键字:数字时时钟 ;模块化化;分层层思想;硬件结结构Absttracct:The EDAA cuurriicullum dessignn beeneffit is thee sooftwwaree pllatfformm onn QuuarttusIII vveriilogg haardw
4、waree deesiggn llangguagge ffor proograammiing PLDD ciircuuit, thhe ffinaal ddesiign of a ssimpple diggitaal cclocck ccirccuitt, aand thee EDDA pproggramm coode intto tthe chaambeer ffor verrifiicattionn. TThe fulll uuse of thee sooftwwaree prrogrram dessignned hieerarrchiicallly, moodullar proograa
5、mmiing ideeas, buut aalsoo giive fulll cconssideerattionn too thhe sstruuctuure of proograammiing andd haardwwaree diiffeerenncess puure sofftwaare proograammiing, siimullatiion andd acctuaal pproggrammminng ccombbineed wwithh thhe ggradduall immproovemmentt off itts llogiic ffuncctioon. Thee syyste
6、em cconssistts oof aa baasicc fuuncttionnal cirrcuiit cclocck, alaarm cirrcuiits, dyynammic dissplaay cconttroll ciircuuit, diividder cirrcuiit, dissplaay ccirccuitt sttatuus llighhts, keey ccirccuitt, aachiieveed wwhenn evveryy miinutte cchroonoggrapph, alaarm timme, thee whholee poointt off tiime,
7、 addjusstinng hhourrs aand othher funnctiionss.Key worrd: Diggitaal cclocck; moddulaar; hieerarrchiicall thhinkkingg; hharddwarre aarchhiteectuure一、 简述在QuaartuusIII软件平平台上使使用veerillongg硬件编编程语言言设计了了简易的的数字时时钟,该该时钟在在控制电电路的作作用下具具有保持持、清零零、快速速校时、快快速校分分、整点点报时、闹闹钟等功功能。,可可以完成成一般的的时钟任任务。数字计时时器的系系统框图图如下图图所示:数字时
8、钟系统结构框图译码显示电路脉冲发生电路计时电路报时电路校时分电路清零电路闹钟电路复用开关电路段位码选择电路数字计时时器的硬硬件电路路框图如如下图所所示:数码管显示控制电路(本次设计的内容)本次设计就是设计这一部分的数字逻辑控制电路轻触按键(自动弹回式)蜂鸣器(报警彩铃)二、 设计要求求说明(1)设设计总体体要求:利用QuuarttusIII软件件设计一一个数字字钟,对对设计电电路进行行功能仿仿真,并并下载到到SmaartSSOPCC实验系系统中,可可以完成成00:00:00到到23:59:59的的计时功功能,并并在按键键控制电电路的作作用下具具有保持持、清零零、快速速校时、快快速校分分、整点点
9、报时、闹闹钟等功功能,做做到能够够创新的的添加自自己能够够实现的的功能。(2)设设计基本本要求1进行行正常的的时、分分、秒计计时功能能。2分别别由六个个数码管管显示时时、分、秒秒的计时时。3有系系统使能能开关4有系系统清零零开关5有系系统校分分开关6.有系系统校时时开关(3)设设计提高高部分要要求1使时时钟具有有整点报报时功能能2闹表表设定功功能3自己己添加其其他功能能(4)已已经完成成的设计计完成了进进行正常常的时、分分、秒计计时功能能,能够够通过数数码管正正常显示示时、分分、秒的的计时,能能够实现现闹钟的的设定以以及闹醒醒功能,同同时支持持整点报报时。按按键设计计上由于于试验箱箱上8个个按
10、键完完全足够够使用,不不需要按按键复用用,大大大简化了了按键扫扫描电路路的设计计,具体体分配如如下K0是系系统的清清零开关关K0=00正常工工作,KK0=1时时钟清零零K1是系系统的使使能开关关K1=00正常工工作,KK1=1时时钟保持持不变K2是系系统的校校时开关关K2=00正常工工作,KK2=1时时钟进入入校时K3是系系统的闹闹钟设置置开关K3=00正常工工作,KK3=1时时钟进入入闹钟设设置K4是系系统的时时 (单单位)加加按键K4=00正常工工作,KK4=1时时钟时加加一K5是系系统的分分 (单单位)加加开关K5=00正常工工作,KK5=1时时钟分加加一三、 系统设计计3.1整整体设计
11、计方案多功能数数字计时时器是由由计时电电路、译译码显示示电路、脉脉冲发生生电路和和控制电电路等几几部分基基本电路路组成的的,其中中控制电电路按照照设计要要求可以以由校时时电路、清清零电路路、报时时电路和和闹钟设设计电路路等组成成。多功能数数字钟控控制器的的系统框框图如下下图所示示:多功能数字钟控制器系统结构图译码显示电路脉冲发生电路计时电路报时电路校对电路清零电路闹钟电路控制电路路原则确确定的思思路:首先需要要考虑到到的是此此次设计计要实现现的功能能有:正常的的计时、保保持、清清零、校校时、校校分以及及整点报报时功能能;闹铃功功能,从从使用者者的角度度来看闹闹铃需要要设定相相应的校校分、校校时
12、功能能;其次需考考虑控制制电路的的设计有有以下一一些要求求:1. 考虑到有有8个按按键,按按键数量量完全能能够满足足本系统统设计要要求,不不采用按按键复用用技术,简简化编程程步骤,方方便使用用者的操操作,不不易出错错具有便便捷的特特点2. 按键的干干扰,充充分考虑虑完善按按键消抖抖的过程程,防止止误操作作3. 闹钟设定定模块、正正常时钟钟模块的的切换不不影响时时钟的正正常计时时;3.2整整体设计计算法流流程开始模式判断处理按键,执行操作3.3译译码显示示模块一般的显显示分为为两种,即即静态显显示与动动态显示示;所谓静态态显示,即即每一个个数码管管由单独独的七段段显示译译码器驱驱动,如如要显示示
13、N位字字符,必必须用NN个七段段显示译译码器,这这种现实实方法极极大地浪浪费了芯芯片的控控制管脚脚。动态态显示则则是利用用了数据据选择器器的分时时复用功功能,将将任意多多位数码码管的显显示驱动动,由一一个七段段显示译译码器来来完成。这这样即节节省了器器件及芯芯片管脚脚,又提提高了元元件的使使用效率率。在此次实实验中,我我们采用用了动态态显示的的方法,利利用八进进制计数数器分别别实现对对秒个位位、秒十十位、分分个位、分分十位、时时个位、时时十位利利用一个个六进制制计数器器实现扫扫描,扫扫描到的的显示管管的位选选信号为为1同时时相应段段码信号号同时传传到七段段显示。扫扫描频率率设置为为1KHHz,
14、这这样躲过过人眼的的辨别范范围,使使得肉眼眼看上去去与静态态显示没没有什么么区别。译码显示示结构图图:段选位选数码管显示模块CLK 1mss8位 时钟钟数据输输入 8位位3.4计计时电路路计时电路路用的是是1hzz的时钟钟信号输输入,从从秒的个个位开始始分别开开始自加加1,直直到秒信信号累计计到六十十,开始始进位至至分钟的的个位,一一次类推推一直到到小时的的十位。分分别采用用模600至模224 的的计数方方式,实实现计时时功能。计时电路路结构图图:3.5 清零电电路复位电路路采用kk0开关来来控制,实实现的功功能则是是,当该该键被按按下之后后,就可可以实现现计时清清零功能能。清零电路路结构图图
15、:具体的参参见上计计时电路路中的流流程框图图3.5 脉冲发发生电路路分频电路(时钟分频,为数码管,按键蜂鸣器等提供时钟信号)48MHHZ脉冲冲信号 11HZ 1KHHZ 5000HZ3.6 校时校校分流程程3.6 闹钟判断断流程四、 功能模块块电路设设计此次设计计一共有有以下几几个模块块:正常常显示模模块、分分频模块块闹铃设设定模块块、闹铃铃比较模模块、显显示管段段选模块块、显示示管位选选模块;为了写写代码方方便都放放在一个个moddulee 里,只只将分频频单独隔隔离出来来。4.1秒秒脉冲发发生电路路模块moduule makke_ssec(clkk,ouut_cclk11hz);inpuu
16、t cclk;outpput outt_cllk1hhz;reg secc;reg 244:0 coountt1; /定义计计数器alwaays (pposeedgee cllk) /定义义cloock上上升沿触触发begiincounnt1 = ccounnt1 + 11b11;if(ccounnt1 = 25d24400000000)/判断0.5Sbegiincounnt1 = 225dd0;/计数数器清零零sec = secc;/置位秒秒标志endendassiign outt_cllk1hhz=ssec; /秒输出出endmmoduule4.2 整体时时钟模块块moduule cloo
17、ck(clkk,cllk1hh,keey,ddig,segg,moodesstatteleed,bbsbeeep);/模块名名cloockinpuut cclk;inpuut cclk11h;/输入入时钟inpuut55:0 keey;/输入入按键outpput7:00diig;/数码码管选择择输出引引脚outpput7:00 sseg;/数数码管段段码outpput2:00 mmodeestaatelled;/模模式灯outpput bsbbeepp;/蜂鸣器器输出reg 7:0sseg_r; /数数码管段段输出引引脚reg 7:0ddig_r; /数数码管位位输出引脚脚reg3:00 dd
18、ispp_daat;/定义义显示数数据寄存存器reg24:0ccounnt;/定义义计数寄寄存器reg 244:0houur,jjzhoour,nzhhourr;/定义时时钟,闹闹钟,校校时寄存存器reg secc,keeyenn,bssbeeep_rr,zddbeeep_rr;/定义秒秒信号,乒乒乓开关关,蜂鸣鸣器寄存存器reg2:00 mmodeestaate;/定定义状态态模式reg5:00doout11,doout22,doout33;/寄存器器reg27:0zzdcoountt;/定义整整点计时时器wiree5:0kkey_donne;/定义义按下后后稳定的的键值wiree bssb
19、eeep;assiign digg = digg_r;/输输出数码码管选择择assiign segg = segg_r;/输输出数码码管译码码结果/各类类触发信信号alwaays (pposeedgee cllk) /定义义cloock上上升沿触触发begiinif(ccounnt = 225dd2400000000)/00.5SS到了吗吗?begiincounnt = 255d00;sec=seec;end /计数数器清零零elsee begiin couunt = ccounnt + 1b1; enddend/按键键消抖处处理部分分assiign keyy_doone = (douut1
20、| ddoutt2 | doout33);/按键键消抖输输出alwaays (pposeedgee coountt177)begiindoutt1 = kkey;doutt2 = ddoutt1;doutt3 = ddoutt2;endalwaays (nnegeedgee keey_ddonee1)/计数开开关begiinkeyeen = kkeyeen;end/按键键输入工工作模式式ledd显示处处理部分分assiign moddesttateeledd = moddesttatee;/令状态态可以用用灯输出出alwaays (kkey_donne)/工作作模式begiinif(kkey_
21、donne33:1=33b1110) bbegiin moddesttatee = 3bb1100;/计时模模式 eend elsse iif(kkey_donne33:1=33b1101)/校校时模式式 beggin mmodeestaate = 33b1101; endd elsse iif(kkey_donne33:1=33b0011)/闹闹钟模式式 beggin mmodeestaate = 33b0011; endd elsse iif (keyy_doone3:11=3bb0011) moddesttatee=3b0001;end/数码码管动态态扫描显显示部分分alwaays (p
22、poseedgee cllk) /coountt177:155大约约1mss改变一一次begiincasee(coountt177:155)/选择择扫描显显示数据据3d00:diisp_datt = houur33:0;/秒个位位3d11:diisp_datt = houur77:4;/秒十位位3d22:diisp_datt = 4hha;/显示示-3d33:diisp_datt = houur111:88;/分个个位3d44:diisp_datt = houur115:112;/分分十位3d55:diisp_datt = 4hha;/显示示-3d66:diisp_datt = houur11
23、9:116;/时时个位3d77:diisp_datt = houur223:220;/时时十位endccaseecasee(coountt177:155)/选择择数码管管显示位位3d00:diig_rr = 8bb1111111110;/选选择第一一个数码码管显示示3d11:diig_rr = 8bb1111111101;/选选择第二二个数码码管显示示3d22:diig_rr = 8bb1111110011;/选选择第三三个数码码管显示示3d33:diig_rr = 8bb1111101111;/选选择第四四个数码码管显示示3d44:diig_rr = 8bb1111011111;/选选择第五
24、五个数码码管显示示3d55:diig_rr = 8bb1100111111;/选选择第六六个数码码管显示示3d66:diig_rr = 8bb1011111111;/选选择第七七个数码码管显示示3d77:diig_rr = 8bb0111111111;/选选择第八八个数码码管显示示endccaseeendalwaays (pposeedgee cllk)begiincasee(diisp_datt)4h00:seeg_rr = 8hhc0;/显显示04h11:seeg_rr = 8hhf9;/显显示14h22:seeg_rr = 8hha4;/显显示24h33:seeg_rr = 8hhb0;
25、/显显示34h44:seeg_rr = 8hh99;/显显示44h55:seeg_rr = 8hh92;/显显示54h66:seeg_rr = 8hh82;/显显示64h77:seeg_rr = 8hhf8;/显显示74h88:seeg_rr = 8hh80;/显显示84h99:seeg_rr = 8hh90;/显显示94haa:seeg_rr = 8hhbf;/显显示-defaaultt:seeg_rr = 8hhff;/不不显示endccaseeif(couunt17:15= 3dd2)&secc)seg_r = 8hfff;if (coountt177:155=3dd5)&secc)/数
26、码管管秒和分分,分和和时之间间显示“-” sseg_r=88hfff;end/校时时以及闹闹钟校时时处理部部分alwaays (nnegeedgee keey_ddonee4)begiinif(mmodeestaate = 3bb1011)/计时模模式下 bbegiin jzzhouur119:116 = jjzhoour19:16 + 1bb1;/时个个位加一一 iff(jzzhouur119:116 = 4hha) beeginnjzhoour19:16 = 4hh0;jzhoour23:20 = jzhhourr233:200 + 1b1;/时时十位加加一end iff(jzzhouur
27、223:116 = 8hh24) jjzhoour23:16 = 8hh0;endif(mmodeestaate = 3bb0111)/闹钟模模式下 bbegiin nzzhouur119:116 = nnzhoour19:16 + 1bb1;/时个个位加一一 iff(nzzhouur119:116 = 4hha) beeginnnzhoour19:16 = 4hh0;nzhoour23:20 = nzhhourr233:200 + 1b1;/时时十位加加一end iff(nzzhouur223:116 = 8hh24) nnzhoour23:16 = 8hh0;endend/校时时分处理理部
28、分alwaays (nnegeedgee keey_ddonee5)begiinif(mmodeestaate = 3bb1011)/校时模模式 bbegiin jzzhouur111:88 = jzzhouur111:88 + 1b1;/分分个位加加一 iff(jzzhouur111:88 = 44haa) beeginnjzhoour11:8 = 44h00;jzhoour15:12 = jzhhourr155:122 + 1b1;/分分十位加加一 ennd iff(jzzhouur115:88 = 88h660) jzzhouur115:88 = 8h0; eendif(mmodeest
29、aate = 3bb0111)/闹钟模模式 bbegiin nzzhouur111:88 = nzzhouur111:88 + 1b1;/分分个位加加一 iff(nzzhouur111:88 = 44haa) beeginnnzhoour11:8 = 44h00;nzhoour15:12 = nzhhourr155:122 + 1b1;/分分十位加加一 ennd iff(nzzhouur115:88 = 88h660) nzzhouur115:88 = 8h0; eendend/计时时处理部部分alwaays (pposeedgee seec oor nnegeedgee keey_ddone
30、e0)/计时处处理begiinif(!keyy_doone0)/是是清零键键吗?begiinhourr = 24h0; /是,则则清零endelsee iff(moodesstatte = 33b1101)/是是校对时时间模式式吗? hhourr=jzzhouur;/是的的话则让让显示时时间为校校时的时时间elsee iff (mmodeestaate = 3bb0111)/is alaarm staate? hhourr=nzzhouur;/是的的话则让让显示时时间为闹闹钟的时时间elsee iff(!keyyen)&(moodesstatte = 33b1110)|(moddesttate
31、e=33b0011)/是计计时间模模式吗?begiinhourr3:0 = hhourr3:0 + 11b11;/秒加11if(hhourr3:0 = 4hha)begiinhourr3:0 = 44h00;hourr7:4 = hhourr7:4 + 11b11;/秒的十十位加一一if(hhourr7:4 = 4hh6)begiinhourr7:4 = 44h00;hourr111:8 = houur111:88 + 1b1;/分分个位加加一if(hhourr111:8 = 4ha)begiinhourr111:8 = 4hh0;hourr155:122 = hoour15:12 + 1bb
32、1;/分十十位加一一if(hhourr155:122 = 44h66)begiinhourr155:122 = 4h0;hourr199:166 = hoour19:16 + 1bb1;/时个个位加一一if(hhourr199:166 = 44haa)begiinhourr199:166 = 4h0;hourr233:200 = hoour23:20 + 1bb1;/时十十位加一一endif(hhourr233:166 = 88h224)hourr233:166 = 8h0;endendendendendend/闹钟钟歌曲reg yyqbeeep_r;/寄存存器reg7:00 sstatte;
33、/乐谱谱状态机机reg15:0ccounnt1,couunt_endd;reg23:0ccounnt2;/乐谱谱参数:D=FF/2KK (D:参参数,FF:时钟钟频率,K:音音高频率率)paraametter LL_5 = 116dd612224,/低低音5L_6 = 116dd545545,/低低音6M_1 = 116dd458863,/中中音1M_2 = 116dd408865,/中中音2M_3 = 116dd364402,/中中音3M_5 = 116dd306612,/中中音5M_6 = 116dd272273,/中中音6H_1 = 116dd229956;/高高音1paraamette
34、rTTIMEE = 1200000000;/控控制每一一个音的的长短(2500ms)alwaays(pooseddge clkk)begiincounnt1 = couunt11 + 1bb1;/计数数器加11if(ccounnt1 = couunt_endd)begiincounnt1 = 16h0;/计计数器清清零yqbeeep_r = !yqbbeepp_r;/输输出取反反endendalwaays (pposeedgee cllk)begiinif(ccounnt2 TTIMEE)/一个节节拍2550mSScounnt2 = ccounnt2 + 11b11;elseebegiinco
35、unnt2 = 224dd0;if(sstatte = 88d1147)statte = 8d0;elseestatte = sttatee + 1bb1;casee(sttatee)8d00,8d1:couunt_endd = L_55;/低音5,持续22个节拍拍8d22,8d3,8dd4,88d55,8d6,8dd7,88d88: ccounnt_eend = MM_1;/中中音11,持持续7个个节拍8d99,8d100:coountt_ennd = M_3;/中音音3,持续续2个节节拍8d111,88d112,88d113,88d114: couunt_endd = M_22;8d115: couunt_endd = M_11;8d116,88d117: couunt_endd = M_22;8d118,88d119: couunt_endd = M_33;8d220,88d221,88d222,88d223,88d224: couunt_endd = M_11;8d225,88d22