数字钟实训报告具有8点报时,按键调时功能

上传人:痛*** 文档编号:90285955 上传时间:2022-05-14 格式:DOC 页数:24 大小:66KB
收藏 版权申诉 举报 下载
数字钟实训报告具有8点报时,按键调时功能_第1页
第1页 / 共24页
数字钟实训报告具有8点报时,按键调时功能_第2页
第2页 / 共24页
数字钟实训报告具有8点报时,按键调时功能_第3页
第3页 / 共24页
资源描述:

《数字钟实训报告具有8点报时,按键调时功能》由会员分享,可在线阅读,更多相关《数字钟实训报告具有8点报时,按键调时功能(24页珍藏版)》请在装配图网上搜索。

1、-*电子科技大学职业技术学院FPGA应用实训报告数字钟学院(系): 电子信息工程系 专 业: 电子信息工程技术学 号: 1212220217 学生*:李建军 指导教师:叶俊明 . z.-目 录摘 要21 绪论32 课题背景42.1设计任务与要求42.2 设计目的42.3总体设计方案43 程序方案论证53.1分频方案论证5分频模块方案I5分频模块方案II53.2计时模块方案论证6计时模块方案I6计时模块方案 II63.3方案总结74 系统软件设计74.1程序流程图74.2计时模块84.3闹钟模块84.4显示模块85系统硬件设计95.1 FPGA的介绍9 FPGA概述95.1.2 FPGA基本结构

2、95.2原理框图116调试126.1调时程序调试126.2闹钟程序调试12总 结13致 谢14参考文献15附 录16摘 要数字钟是由振荡器、分频器、计数器、译码器、数码显示器等几部分组成。振荡电路:主要用来产生时间标准信号,因为时钟的精度主要取决于时间标准信号的频率及稳定度,所以采用石英晶体振荡器。 分频器:因为振荡器产生的标准信号频率很高,要是要得到“秒”信号,需一定级数的分频器进行分频。计数器:有了“秒”信号,则可以根据60秒为1分,24小时为1天的制,分别设定“时”、“分”、“秒”的计数器,分别为 60进制,60进制,24进制计数器,并输出一分,一小时,一天的进位信号。译码显示:将“时”

3、“分”“秒”显示出来。将计数器输入状态,输入到译码器,产生驱动数码显示器信号,呈现出对应的进位数字字型。 由于计数的起始时间不可能与标准时间(如时间)一致,故需要在电路上加一个校时电路可以对分和时进行校时。另外,计时过程要具有报时功能,当时间到达整点时开始响,蜂鸣器不停地响1分钟后不响。关键词:数字钟,振荡,计数,校正,报时1 绪论数字钟是采用数字电路实现对时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站,码头、办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大地方便,而

4、且大大地扩展了钟表原先的报时功能。诸如定时自动报警、校时自动打铃、时间程序自动控制、定是广播、自动启闭路灯、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用有着非常现实的意义。伴随着集成电路技术的发展, 电子设计自动化(EDA)技术逐渐成为数字电路设计的重要手段。基于FPGA的EDA技术的发展和应用领域的扩大与深入,使得EDA技术在电子信息,通信,自动控制,计算机等领域的重要性日益突出。本设计给出了一种基于FPGA的多功能数字钟方法,测试结果表明本设计实现了一个多功能的数字钟功能,具有时、分、秒计时显示功能,以24小时循

5、环计时;具有校正小时和分钟的功能;以及清零,整点报时功能。2 课题背景数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。利用EDA技术进行电子系统的设计具有以下几个特点:采用自顶向下的设计方法;用软件的形式设计硬件;用软件的方式设计过程中可用相关软件进行仿真;系统可现场编程,在线升级;整个系统集成在一个芯片上,体积小,功耗低,可靠性高.因此,EDA技术是现代电子设计的发展趋势.用硬件描述语言结合FPGA可编程器件可以极大地方便集成电路

6、的设计,使其成为集成电路的发展趋势,也是每一个电子工程师必须掌握的技术,故基于FPGA(现场可编程门阵列)的设计型实验成为高校电类专业学生的必修且重要环节。2.1设计任务与要求 (1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式) (2)到点报时、闹钟时间固定为8:00 (3)同时设置按键调时。2.2 设计目的为了更好的运用掌握FPGA多功能数字钟编程知识,学会自我找到问题、分析问题并解决问题的方法,培养认真学习和工作的作风,锻炼自己的思考能力和团结合作能力。充分发挥思维创造性,开发功能多样的扩展功能电路并锻炼自己的动手能力。2.3总体设计方案 (1)方案一 用数电制作一个数字

7、钟,通过74L74芯片实现数码管计数功能 用与非门结合,用按键来设置实现闹钟和整点报时的功能。 (2)方案二 用fpga来制作一个数字钟,通过编写程序来控制fpga芯片输 出输入来得到数字钟的功能,同时用fpga板来实现该功能。 (3)方案三 用单片机来控制数字钟,通过编写程序来实现时钟计时功能, 通过单片机试验箱来实现该功能,最终达到相应的结果。总结:方案一用数电的方式做数字钟,用的芯片多同时之制作麻烦,不适合制做数字钟。方案二制作比较便捷,只需要写程序,制作业是比较方便,也比较实现功能。方案三用单片机虽然也是编写程序,可是和FPGA相比我个人觉得还是比单片机好做一点。综合上述我选择FPGA

8、来制作该程序3 程序方案论证3.1分频方案论证分频模块方案I定义变量并且设定一个上限值,每次加计数到该上限值时,输出该计数值的最高位parameter DIV_SIZE=25;always(posedge clock)counter=counter+1;assign clkdiv=counterDIV_SIZE-1;分频模块方案II 定义一个变量,使得counter_1hz=20000000,使得输入1hz信号,让counter_1hz自加always(posedge clk) Begin if(counter_1hz=20000000) begin counter_1hz=0;clk_1hz

9、=10000)begin counter=0;clk_1khz=clk_1khz;end else begin counter=counter+1;End3.2计时模块方案论证计时模块方案I计时分每个信号的高低位进行判断及计时if(sL=9) begin sL=0;if(sH=5) begin sH=0; if(mL=9)begin mL=0; if(mH=5) begin mH=0; if(hL=9) begin hL=0;hH=hH+1;end else if(hL=3&hH=2) begin hL=0;hH=0; end else hL=hL+1;end else mH=mH+1; en

10、d else mL=mL+1; end else sH=sH+1; end else sL=4&hour_h=2)|(hour_h=3)beginhour_h=0;hour_l=0;endendelse b=b+1;end3.3方案总结分频采用方案2来实现设计。方案2在思路方面较为通俗易懂,且判断过程简短明了,在最终的显示时出现毛刺干扰现象,其他方案中不便于增加小时和分钟的调节信号,方案最终失败。方案2比较判断复杂,在最终的数码管显示时可能不怎么稳定。方案2我们上课时学的也是这个方案用起来也比较熟悉。综合考虑,使用方案2。4 系统软件设计软件部分有分频模块,按键防抖动,时钟主体,闹铃模块,动态

11、扫描模块等来实现此方案。程序流程图3-1使用此方案首先进行分频得到一个信号,使得信号稳定。进而促使时钟主体工作。再通过按键防抖来控制调时和闹钟模块最后用动态扫描来实现软件的所有功能。4.1程序流程图 图3-14.2计时模块second_l,second_h;miniute_l,miniute_h;hour_l,hour_h;分别表示秒,分,小时的高位和低位L组成十六进制计数器。以1hz作为一秒,自加计时,当秒加到60后自动向分进位,当分加到60后自动向时进位,当时到24小时候变为00。4.3闹钟模块always(posedge clk)beginif(hour_h=0&hour_l=8&min

12、iute_h=0&miniute_l=0)/8:00报时,闹钟模块 begin if(counter_clock=8000) begin counter_clock=0;alarm_clock=alarm_clock;end else counter_clock=counter_clock+1;end闹钟模块从CLk中分出8000hz的频率,驱动蜂鸣器。当时钟到8:00时,蜂鸣器电平取反,产生报时。4.4显示模块/动态扫描模块 always(posedge clk_1khz) begin case(state) s0:begin seg_bit=4b0111; display_tab=mini

13、ute_l; state=s1;led_test=1;end s1:begin seg_bit=4b1011; display_tab=miniute_h; state=s2;led_test=1;end s2:begin seg_bit=4b1101; display_tab=hour_l; state=s3;led_test=clk_1hz;end s3:begin seg_bit=4b1110; display_tab=hour_h; state=s0;led_test=1;end default:begin led_out=7bz;state=0;end endcase end 动态显

14、示扫描,将分的高低位和时的高低位依次显示在4位数码管上。5系统硬件设计5.1 FPGA的介绍 FPGA概述FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件 (ple* Programmable Logic Device )的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一*白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字

15、系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。5.1.2 FPGA基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程

16、逻辑模块(CLB-ConfigurableLogicBlock)、输入/输出模块(IOB-I/OBlock)和互连资源(IRInterconnectResource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。1.CLB是FPGA的主要组成部分。它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻

17、辑函数发生器分别是G、F和H,相应的输出是G、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端*或Y,并用来选择触发器的激励输入信号、时

18、钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。2.输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为

19、输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MU*,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MU*送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。3.可编程互连资源IR。可编

20、程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。5.2原理框图FPGA的多功能数字钟的设计方案是设计一个具有计时、报时和显示这三部分的主要功能。系统原理框图如图4-1所示。其中计时功能是整个多功能数字钟的核心部分;报时顾名思义,也就是在时钟到达整点时的鸣叫功能;显示起到了一个译码功能,使得程序在实验箱上下载时我们能清晰、明了的整个运行过程。这三部分相结合,就基本完成了这样的一个多功能数字钟。 图4-1 数字钟原理框图原理框图功能如下:首先输入电源

21、然后进入FPGA芯片,来实现最基本的数字钟计时电路,其计数输出送7段译码电路,由数码管显示。PPGA芯片工作使得基准频率分频器可分频出标准的1hz 频率信号,用于秒计数的时钟信号;分频出频率信号用于校时、校分的快速递增信号;分频出 频率信号用于对于按动校时、校分按键的消除抖动。然后用按键控制电路模块是一个校时、校分、秒清零的模式控制模块, 频率信号用于键的消除抖动。而模块的输出则是一个边沿整齐的输出信号。控制电路模块是一个校时、校分、秒清零的模式控制模块,64Hz 频率信号用于键KEY1、KEY2、KEY3的消除抖动。而模块的输出则是一个边沿整齐的输出信号。闹时电路模块也需要音频信号以及来自分

22、计数器和时计数器的输出信号6调试6.1调时程序调试原始程序下载时,数字钟能正常显示,初始化值7:59分55秒,当到8:00时,蜂鸣器不响没有报时。按键模块没有进位设计,调时位按键程序异常显示。后加入:if(hour_l =4&hour_h=2)|(hour_l=10)begin hour_l=0;hour_h=hour_h+1;/按键进位if(hour_h=3)hour_h=0;程序后按键调时能正常显示,也可以进位。6.2闹钟程序调试原始程序8:00没有报时,可能是蜂鸣器频率不对,于是写了个蜂鸣器响的小程序,试着探索蜂鸣器的鸣响频率,最后发现当将CLK进行8000hz分频是,蜂鸣器能响,将此小

23、程序放在:if(hour_h=0&hour_l=8&miniute_h=0&miniute_l=0)条件中能实现8:00报时功能。具体程序如下:always(posedge clk)beginif(hour_h=0&hour_l=8&miniute_h=0&miniute_l=0)/8:00报时,闹钟模块 begin if(counter_clock=8000) begin counter_clock=0;alarm_clock=alarm_clock;end else counter_clock=counter_clock+1;endend总 结 此次实训基本实现了多功能数字钟的功能,该程序

24、能让数字钟整点报时,也能够实现按键调时,和8:00报时的闹钟功能。不足之处在于闹钟时间无法自由设定,缺少闹钟设置按键,也无法复位清零。最后是设计作品时的设计逻辑和设计思想,在选择不同的系统方案时要综合考虑,选择最优方案。各个模块的实现也要考虑综合情况而制定出最符合实际情况的实现方案,方案间要进行对比、实践,最终确定。在这次的课程设计中我不仅学习到有关程序编写以及设计方面的逻辑思维,对系统功能的实现也有了较为深入的了解,对各模块的调试等也学习到不少东西,总之,从这次设计中学到很多东西,也巩固了我的理论学习。. z.-致 谢首先要感谢叶俊明老师,老师知识渊博,治学认真而严谨,感谢您从本文研究开始一

25、路指导至本论文的完成,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”的豁然开朗!由衷感谢您在论文上倾注的大量心血,您宽厚待人的学者风*令我无比感动。感谢授课老师叶俊明老师课上对我们的教导,你们丰富的授课内容拓宽了我的视野,让我能更顺利的完成这篇文章;感谢我的同学们,你们不仅让我感受到友情的力量,也让我感觉到了生活的愉悦,通过课堂讨论学到的思维方式使我受益终生。最后,我要向我的同学表示深深的谢意。你们的理解、支持、鼓励和鞭策催我更加上进,我竭尽全力的努力,更希望的是能够让你们高兴和满意。你们的情感永远都是我上进的不竭的动力源泉。

26、这些时光会慢慢的沉淀下来,但无论何时,我想到这段岁月,都如同是看到一枚珍藏已久的夹在书里发黄的书签,永远都是则璀璨、则绚烂。. z.-参考文献【1】夏宇闻. Verilog 数字系统设计教程第二版.航空航天大学,【2】康华光等. 电子技术基础(数字部分)第五版高等教育,【3】罗朝霞等. CPLD/FPGA设计及应用. 人民邮电,【4】亿特科技编著. CPLD/FPGA应用系统设计与产品开发. 人民邮电。【5】付文红.花汉兵着.EDA技术与实验. 机械工业【6】*建明.电工电子EDA仿真技术。 高等教育【7】侯伯亨.Verilog HDL硬件描述语言与数字逻辑电路设计.*电子科技大学出版. z.

27、-附 录module test(clk,led_out,seg_bit,led_test,alarm_clock,key,key_1,key_2,key_3,key_4); input clk; input key,key_1,key_2,key_3,key_4; reg clk_1hz; reg clk_1khz; output reg led_test; output reg6:0 led_out; output reg3:0seg_bit; output reg alarm_clock;reg31:0counter_clock; reg20:0counter; reg30:0counte

28、r_1hz; reg7:0display_tab; reg7:0second_l,second_h; reg7:0miniute_l,miniute_h; reg7:0hour_l,hour_h; reg1:0state; parameter s0=2d0,s1=2d1,s2=2d2,s3=2d3; /定时8:00 integer j,b; initial begin state=0;counter=0;counter_1hz=0;miniute_l=9;miniute_h=5; second_h=5;second_l=5;hour_h=0;hour_l=7;end /初始化寄存器,初始时间为

29、7点59分55秒/分频模块 always(posedge clk) begin if(counter_1hz=20000000) begin counter_1hz=0;clk_1hz=10000) begin counter=0;clk_1khz=clk_1khz;end else begin counter=4&hour_h=2)|(hour_l=10)begin hour_l=0;hour_h=hour_h+1;if(hour_h=3)hour_h=0;endend if(!key_4)j=j+1; if(j=200)&(!key_4) begin j=0;hour_h=hour_h+1

30、;if(hour_h=3)hour_h=0;endif(b=1000)/时钟主体,计时模块。beginb=0;second_l=second_l+1; if(second_l=10)begin second_l=0;second_h=second_h+1;end if(second_h=6)begin second_h=0;miniute_l=miniute_l+1;end if(miniute_l=10)begin miniute_l=0;miniute_h=miniute_h+1;end if(miniute_h=6)begin miniute_h=0;hour_l=hour_l+1;en

31、dif(hour_l=10) begin hour_l=0;hour_h=hour_h+1;end if(hour_l=4&hour_h=2)|(hour_h=3)beginhour_h=0;hour_l=0;endendelse b=b+1;endalways(posedge clk)beginif(hour_h=0&hour_l=8&miniute_h=0&miniute_l=0)/8:00报时,闹钟模块 begin if(counter_clock=8000) begin counter_clock=0;alarm_clock=alarm_clock;end else counter_c

32、lock=counter_clock+1;end endalways(posedge clk_1khz) /动态扫描模块,扫描时和分的高位和低位。 begin case(state) s0:begin seg_bit=4b0111; display_tab=miniute_l; state=s1;led_test=1;end s1:begin seg_bit=4b1011; display_tab=miniute_h; state=s2;led_test=1;end s2:begin seg_bit=4b1101; display_tab=hour_l; state=s3;led_test=clk_1hz;end s3:begin seg_bit=4b1110; display_tab=hour_h; state=s0;led_test=1;end default:begin led_out=7bz;state=0;end endcase end endmodule. z.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!