FPGA秒表实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告

专业班级

课程

题目秒表的设计

学号

姓名

同组人

成绩

2013年5月

一、设计目的

1.进一步熟悉七段码译码器的硬件接口。

2.掌握用扫描方法驱动多个数码管硬件接口。

3.掌握秒表VHDL的编程方法

二、系统总体设计

(1).设计要求:

1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。当计时达60分钟后,蜂鸣器鸣响10声。

2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。

3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。在整个秒表中最关键的是如何获得一个精确的100HZ 计时脉冲。

(2).实验原理:

秒表由于其计时精确,分辨率高(0.01秒),在各种竞技场所得到了广泛的应用。秒表的工作原理与数字时基本相同,唯一不同的是秒表的计时时钟信号,由于其分辨率为0.01秒,所以整个秒表的工作时钟是在100Hz的时钟信号下完成。当秒表的计时小于1个小时时,显示的格式是mm-ss-xx(mm表示分钟:0~59;ss 表示秒:0~59;xx表示百分之一秒:0~99),当秒表的计时大于或等于一个小时时,显示的和多功能时钟是一样的,就是hh-mm-ss(hh表示小时:0~99),由于秒表的功能和钟表有所不同,所以秒表的hh表示的范围不是0~23,而是0~99,这也是和多功能时钟不一样的地方。在设计秒表的时候,时钟的选择为100Hz。变量的选择:因为xx(0.01秒)和hh(小时)表示的范围都是0~99,所以用两个4位二进制码(BCD码)表示;而ss(秒钟)和mm(分钟)表示的范围是0~59,所以用一个3位的二进制码和一个4位的二进制码(BCD)码表示。显示的时候要注意的问题就是小时的判断,如果小时是00,则显示格式为mm-ss-xx,如果小时不为00,则显示hh-mm-ss。

三、详细设计

1.计时模块:计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。他是由四个十进制计数器和俩个六进制计数器构成,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器。

源程序:

(1)十进制计数器(count_10)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity COUNT10 is

port (CLK,START,CLR : in std_logic;

COUT : out std_logic;

DAOUT : out std_logic_vector(3 downto 0)); end COUNT10;

architecture one of COUNT10 is

signal h0 : std_logic_vector(3 downto 0);

signal h1 : std_logic;

begin

process(CLK,CLR)

begin

if CLR='1' then h0<="0000";

elsif CLK'event and CLK='1' then

if START='1' then

if h0="1001" then

h0<="0000";

h1<='1';

else h0<=h0+1;

h1<='0';

end if;

end if;

end if;

end process;

DAOUT<=h0;

COUT<=h1;

end one;

(2)六进制计数器(count_6)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity COUNT6 is

port (CLK,START,CLR : in std_logic;

COUT : out std_logic;

DAOUT: out std_logic_vector(3 downto 0));

end COUNT6;

architecture two of COUNT6 is

signal h0 : std_logic_vector(3 downto 0);

signal h1 : std_logic;

begin

process(CLK,CLR)

begin

if CLR='1' then h0<="0000";

elsif CLK'event and CLK='1' then

if START='1' then

if h0="0101" then

h0<="0000";

h1<='1';

else h0<=h0+1;

h1<='0';

end if;

end if;

end if;

end process;

DAOUT<=h0;

COUT<=h1;

end two

2.计时显示器(deled)

计时显示电路的作用是将计时值在LED数码管上显示出来。计时电路产生的值经过BCD七段译码后,驱动LED数码管。计时显示电路的实现方案采用扫描显示。部分源程序:

相关文档
最新文档