实验报告-数字秒表_第1页
实验报告-数字秒表_第2页
实验报告-数字秒表_第3页
实验报告-数字秒表_第4页
实验报告-数字秒表_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学院:物理与信息工程学院专业:电子信息工程姓名:肖伟学号:112207301106指导老师:漆为民一.设计题目:数字秒表的设计二.设计目的:1、了解数字秒表的工作原理。2、进一步熟悉用VHDL语言编写驱动七段码管显示的代码。3、掌握VHDL编写中的一些小技巧。三.设计功能(1)计时功能:设计一个秒表,该秒表计时范围为0--59分59秒990毫秒,分辨率为10毫秒(0.01秒)。(2)显示功能:分、秒、毫秒各用2位数码管(共6位数码管)显示。(3)清零,启动计时,暂停及继续计时功能:2.2秒表基本原理及设计方法(1)秒表的基本结构:该秒表有3个输入端,分别为时钟输入(输入时钟为1毫秒)、复位输入和启动/暂停(2)复位信号高电平有效,可以对整个系统异步清0;当启动/暂停为低电平时秒表开始计时,为高电平时暂停,变低后在原来的数值基础上再计数。(3)百分秒、秒和分钟信号用七段LED显示。(4)“毫秒计数器”采用100进制计数器,每累计1000毫秒(1秒)产生一个“秒脉冲”信号,该信号将作为“秒计数器”的时钟脉冲。“秒计数器”采用60进制计数器,每累计60秒,发出一个“分脉冲”信号,该信号将被送到“分计数器”。“分计数器”采用60进制计时器,可实现对60分钟的累计。四.数字秒表设计原理数字秒表采用模块化设计:(1)输入信号:基准时钟clk电平时启动,高电平时暂停)(2)计时器:以10ms为计时分辨率,每10ms产生一个“10毫秒脉冲”信号,每990ms产生一个“秒脉冲”信号,每60秒产生一个“分脉冲”信号;(3)取数模块:对计时器输出的分、秒、十毫秒信号进行逐位取数,变成将在数码管上显示的十进制数;(4)编码模块:将分、秒、十毫秒的十进制数转换成数码管显示的编码;(5)数码管显示控制模块:每隔3ms使能更新不同数码管的数据,位数码管更新一次共用时18ms,6刷新频率大于50HZ,利用人的视觉暂留,好像6位LED是同时点亮的,并不察觉有闪烁现象;(6)数码管地址选择模块:每隔3ms使能点亮不同的数码管,6位数码管一共用时18ms。另外为了控制方便,需要一个复位按键、启动计时按键和停止计时按键,分别选用实验箱按键模块的AN1、AN2和AN3,按下AN1,系统复位,所有寄存器全部清零;按下AN2,秒表启动计时;按下AN3,秒表停止计时,并且七段码管显示当前计时时间,如果再次按下AN2,秒表继续计时,除非按下AN1,系统才能复位,显示全部为00-00-00五.实验步骤:1、打开QUARTUSII软件,新建一个工程。2、建完工程之后,再新建一个VHDLFile,打开VHDL编辑器对话框。3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。4、编写完VHDL程序后,保存起来。方法同实验一。5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。6、编译仿真无误后,依照拨动开关、LED与FPGA的管脚连接表或参照附录进行管脚分配。表21-1是示例程序的管脚分配表。分配完成后,再进行全编译一次,以使管脚分配生效。端口名使用模块信号对应FPGA管脚说明CLK数字信号源PIN_M1时钟为2048HZRESET按键开关AN1PIN_J17复位信号START按键开关AN2PIN_J15秒表开始计数OVER按键开关AN3PIN_P15秒表停止计数LEDAG0数码管A段PIN_H19秒表计数结果输出LEDAG1数码管B段PIN_J14LEDAG2数码管C段PIN_H18LEDAG3数码管D段PIN_H17LEDAG4数码管E段PIN_H14LEDAG5数码管F段PIN_G20LEDAG6数码管G段PIN_G18SEL0位选DEL0PIN_F20SEL1位选DEL1PIN_E20SEL2位选DEL2PIN_E19SEL3位选DEL3PIN_E18SEL4位选DEL4PIN_D20SEL5位选DEL5PIN_D19SEL6位选DEL6PIN_C18SEL7位选DEL7PIN_C17表21-1端口管脚分配表7、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。六、程序:moduleexp21(Clk,reset,start,over,z,SEL);inputClk;inputreset;inputstart,over;output[6:0]ledag;output[7:0]SEL;wireClk;wirereset;wirestart;wireover;reg[6:0]ledag;reg[7:0]SEL;reg[0:15]Disp_Temp;reg[6:0]Disp_Decode;reg[0:9]mSEC1;reg[0:9]mSEC10;reg[0:9]SEC1;reg[0:9]SEC10;reg[0:9]MIN1;reg[0:9]MIN10;reg[0:9]HOUR1;reg[0:9]HOUR10;reg[4:0]Clk_Count1;100Hzreg[2:0]Clk_Count2;wireClk100Hz;regStart_Flag;wire[2:0]Music_Count;always@(posedgeClk)beginif((Clk_Count1<20))beginClk_Count1<=Clk_Count1+1;endelsebeginClk_Count1<=5'b00001;endendassignClk100Hz=Clk_Count1[4];always@(posedgeClk)beginif((Clk_Count2<7))beginClk_Count2<=Clk_Count2+1;endelsebeginClk_Count2<=3'b000;endendalways@(Clk_Count2)begincase(Clk_Count2)3'b000:beginSEL<=8'b11111110;end3'b001:beginSEL<=8'b11111101;end3'b010:beginSEL<=8'b11111011;end3'b011:beginSEL<=8'b11110111;end3'b100:beginSEL<=8'b11101111;end3'b101:beginSEL<=8'b11011111;end3'b110:beginSEL<=8'b10111111;end3'b111:beginSEL<=8'b01111111;enddefault:beginSEL<=8'b11111111;endendcaseendalways@(posedgeresetornegedgeStart_FlagorposedgestartorposedgeStart_FlagorposedgeoverorposedgeClk100Hz)beginif((reset==1'b1))beginmSEC1<=0;mSEC10<=0;SEC1<=0;SEC10<=0;MIN1<=0;MIN10<=0;HOUR1<=0;HOUR10<=0;Start_Flag<=1'b0;endelseif((start==1'b1&&Start_Flag==1'b0))beginStart_Flag<=1'b1;endelseif((over==1'b1&&Start_Flag==1'b1))beginStart_Flag<=1'b0;endelsebeginif((Start_Flag==1'b1))beginif((mSEC1==9))beginmSEC1<=0;if((mSEC10==9))beginmSEC10<=0;if((SEC1==9))beginSEC1<=0;if((SEC10==5))beginSEC10<=0;if((MIN1==9))beginMIN1<=0;if((MIN10==5))beginMIN10<=0;if((HOUR1==9))beginHOUR1<=0;if((HOUR10==9))beginHOUR10<=0;endelsebeginHOUR10<=HOUR10+1;endendelsebeginHOUR1<=HOUR1+1;endendelsebeginMIN10<=MIN10+1;endendelsebeginMIN1<=MIN1+1;endendelsebeginSEC10<=SEC10+1;endendelsebeginSEC1<=SEC1+1;endendelsebeginmSEC10<=mSEC10+1;endendelsebeginmSEC1<=mSEC1+1;endendendendalways@(SEL)beginif((HOUR1==0))begincase(SEL)8'b10111111:beginDisp_Temp<=MIN10;end8'b11011111:beginDisp_Temp<=MIN1;end8'b11101111:beginDisp_Temp<=10;end8'b11110111:beginDisp_Temp<=SEC10;end8'b11111011:beginDisp_Temp<=SEC1;end8'b11111101:beginDisp_Temp<=10;end8'b11111110:beginDisp_Temp<=mSEC10;end8'b01111111:beginDisp_Temp<=mSEC1;enddefault:beginDisp_Temp<=11;endendcaseendelsebegincase(SEL)8'b10111111:beginDisp_Temp<=HOUR10;1end8'b11011111:beginDisp_Temp<=HOUR1;2end8'b11101111:beginDisp_Temp<=10;3end8'b11110111:beginDisp_Temp<=MIN10;4end8'b11111011:beginDisp_Temp<=MIN1;5end8'b11111101:beginDisp_Temp<=10;6end8'b11111110:beginDisp_Temp<=SEC10;7end8'b01111111:beginDisp_Temp<=SEC1;8enddefault:beginDisp_Temp<=11;endendcaseendendalways@(posedgeClk)beginledag<=Disp_Decode;endalways@(Disp_Temp)begincase(Disp_Temp)0:beginDisp_Decode<=7'b0111111;0end1:beginDisp_Decode<=7'b0000110;1end2:beginDisp_Decode<=7'b1011011;2end3:beginDisp_Decode<=7'b1001111;3end4:beginDisp_Decode<=7'b1100110;4end5:beginDisp_Decode<=7'b1101101;5end6:beginDisp_Decode<=7'b1111101;6end7:beginDisp_Decode<=7'b0000111;7end8:beginDisp_Decode<=7'b1111111;8end9:beginDisp_Decode<=7'b1101111;9end10:beginDisp_Decode<=7'b1000000;-end11:beginDi

温馨提示

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

评论

0/150

提交评论