您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 60秒倒计时器MAXII240T
1EDA课程设计报告设计题目:基于verilog的倒计时器设计专业班级:姓名学号:姓名学号:姓名学号:指导教师:设计时间:2目录摘要...................................................................................................................3关键字...............................................................................................................3前言...................................................................................................................31倒计时的功能和设计结构...................................................................31.1倒计时器的系统的功能....................................................................31.2倒计时器的设计结构........................................................................42主要模块程序........................................................................................42.1分频器................................................................................................42.2计时器................................................................................................52.3显示器................................................................................................72.4指示器................................................................................................93各模块原理图........................................................................................103.1顶层模块原理图..............................................................................103.2计数模块原理图..............................................................................113.3分频模块原理图..............................................................................113.4彩灯模块原理图..............................................................................113.5显示模块原理图...............................................错误!未定义书签。24实际电路运行效果图..........................................................................125软件介绍和管脚说明..........................................................................135.1管脚说明..........................................................................................135.2软件介绍..........................................................................................136总结与心得体会...................................................................................147致谢...........................................................................................................147参考文献.................................................................................................153基于Verilog的60秒倒计时器设计()摘要本文提出一种基于VerilogHDL语言的60秒倒计时器设计方法。该设计实现有两组输入,具有清零功能和暂停功能,能进行60秒的倒计时器。文中介绍了倒计时器设计架构和控制程序的设计方法。该倒计时器采用VerilogHDL语言模块化和层次化的思想,使设计十分简单,并能在MAXII开发板上实现验证,具有广泛的现实意义。关键字倒计时器;VerilogHDL;层次化和模块化;仿真验证前言现行的倒计时器主要有两种,基于小规模数字逻辑芯片设计,另外一种基于单片机设计。小规模数字逻辑电路比较复杂,单片机随着倒计时器功能输入的增加,存在I/O资源不足的情况。本文提出一种方便可行的倒计时器的设计方法,即利用VerilogHDL硬件描述语言来设计倒计时器,并且在MAXII开发板上仿真实现,VerilogHDL语言满足数字系统设计和综合的所有要求,设计中充分利用VerilogHDL层次化和模块化的思想,使得倒计时器的整个设计过程简单,灵活;同时,在设计过程中始终运用EDA工具开发板对设计进行验证,使得设计更加可靠。由于开发板的I/O端口比较丰富,可以在本设计基础上稍加修改设计具有更多功能的倒计时。1倒计时器的功能和设计结构1.1倒计时器系统的功能本文设计一个电子倒计时器:可进行60秒倒计时,七段显示译码管显示秒数,循环彩灯显示电路正常工作。倒计时器具体功能如下:(1)可进行60秒倒计时,倒计时开始,开发板上7段显示译码管上从60开始进行倒数,直至0,重新返回60重新开始计时,这一过程用七段译码管显示器显示;(2)设置了一个复位控制开关reset,可以进行复位清零功能控制,当倒计时正在进行倒数工作时,当按下清零复位开关,4倒计时器重新返回60,开始倒计时。(3)设置了一个暂停控制开关stop,可以进行暂停功能控制,当倒计时进行倒数工作,无论倒数进行到哪一步,当按下暂停控制开关stop时,七段显示译码管的数字将保持不变,循环彩灯也将保持不变,说明整个倒计时器停止工作。当松开暂停控制开关,倒计时器重新开始工作,循环彩灯开始闪亮,说明倒计时器正在工作。1.2倒计时器的设计结构本文以VerilogHDL语言为基础设计的60秒的倒计时器,根据设计功能的要求,该设计主要包括分频器产生时钟信号,倒计时的计数,和清零复位、暂停按键的键入,数码管的显示,以及循坏彩灯的设置。2.主要模块程序2.1分频器modulediv_fre(clk,sec);inputclk;outputsec;regsec;reg[27:0]count;分频器产生时钟信号把50MHZ分频成1HZ计数器用来进行倒计时七段译码管进行数字的显示循环彩灯用来显示倒计时器的工作状态暂停、清零控制开关用来控制倒计时的工作5always@(posedgeclk)begincount=count+1'b1;if(count==28'd24999999)//用于产生1HZ的脉冲begincount=0;sec=~sec;endendendmodule该模块是用以实现把50MHZ的信号转化为1HZ的信号,从而产生一个1秒的时钟信号。2.2计时器modulecontrol(clk,reset,disp,stop);inputclk,reset,stop;integercount;output[7:0]disp;reg[5:0]num;always@(negedgeclk)beginif(~reset)count=1'b0;elseif(~stop)//用于实现计数器的暂停功能count=count+1'b0;6elseif(count==6'b111100)//用于计数器计数到达60,重新置0count=1'b0;elsecount=count+1'b1;endassigndisp[7:4]=num/10,//用于向数码管送显示数据,A方向十位disp[3:0]=num%10;always@(negedgeclk)beginif(~reset)//用于倒计时器的清零功能beginnum=0;endelseif(count7'b1100100)beginnum=6'b111100-(count);//用于实现倒计时endendendmodule该模块首先用count进行计数,将倒计时器的初始时间设置为60秒,再用7一个条件语句执行倒计时功能。除此以外,该模块还可进行清零复位和暂停功能的实现。2.3显示模块moduleseg7(clk,dataout,en,datain);input[7:0]datain;inputclk;output[6:0]dataout;output[1:0]en;//COM使能输出reg[6:0]dataout;//各段数据输出reg[1:0]en;reg[15:0]cnt_scan;//扫描频率计数器reg[3:0]dataout_buf;always@(posedgeclk)begincnt_scan=cnt_scan+1;endalways@(cnt_scan)begincase(cnt_scan[15])1'b0:en=2'b10;1'b1:en=2'b01;default:8en=2'b11;endcaseendalways@(en)//对应COM信号给出各段数据begincase(en)2'b10:dataout_buf=datain[7:4];2'b01:dataout_buf=datain[3:0];default:dataout_buf=8;endcaseendalways@(dataout_buf)begincase(dataout_buf)4'b0000:dataout=7'b0111111;4'b0001:dataout=7'b0000110;4'b0010:dataout=7'b1011011;4'b0011:dataout=7'b1001111;4'b0100:dataout=7'b1100110;4'b0101:dataout=7'b1101101;4'b0110:dataout=7'b1111101;4'b0111:dataout=7'b0000111;4'b1000:dataout=7'b1111111;94'b1001:da
本文标题:60秒倒计时器MAXII240T
链接地址:https://www.777doc.com/doc-1401494 .html