• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

设计一个用于篮球比赛的定时器VHDL代码Quartus仿真

08/08 11:29
263
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240Q9202139219.doc

共1个文件

名称:设计一个用于篮球比赛的定时器VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

设计一个用于篮球比赛的定时器 (一个工程)

1.基础部分:

(1)定时时间为24秒,按递减方式计时,每隔1秒,定时器减1;

(2)定时器的时间用两位数码管显示。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
ENTITY?timer_i?IS
???PORT?(
??????clk_in??:?IN?STD_LOGIC;--时钟100Hz
??????reset????:?IN?STD_LOGIC;--复位
??????HEX1?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--数码管1
??????HEX2?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管2
???);
END?timer_i;
ARCHITECTURE?trans?OF?timer_i?IS
???
???SIGNAL?count????:?integer?:=?0;
???
???SIGNAL?time_ten?:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???SIGNAL?time_one?:?STD_LOGIC_VECTOR(3?DOWNTO?0);
BEGIN
--分频,分频到1Hz,计数
???PROCESS?(clk_in,?reset)
???BEGIN
??????IF?(reset?=?'1')?THEN
?????????count?<=?0;
??????ELSIF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????IF?(count?>=?99)?THEN--计数0~99,即计数100个周期
????????????count?<=?0;
?????????ELSE
????????????count?<=?count?+?1;--累加
?????????END?IF;
??????END?IF;
???END?PROCESS;
???--24秒计数器
???PROCESS?(clk_in,?reset)
???BEGIN
??????IF?(reset?=?'1')?THEN--24s开始倒计时
?????????time_ten<="0010";
?time_one<="0100";
??????ELSIF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????IF?(count?>=?99)?THEN--1s时间到
????????????IF?(time_ten?=?"0000"?and?time_one="0000")?THEN--判断是否倒计时到0
time_ten<="0000";
time_one<="0000";
????????????ELSIF(time_one="0000")THEN
time_ten<=time_ten-"0001";--倒计时
time_one<="1001";
ELSE
time_one<=time_one-"0001";--倒计时
????????????END?IF;
?????????ELSE
time_ten<=time_ten;
time_one<=time_one;
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???--?time_ten?<=?time_cnt?/?10;
???--?time_one?<=?time_cnt?%10;
???--数码管显示
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????CASE?time_ten?IS--倒计时十位数字显示码
????????????WHEN?"0000"?=>
???????????????HEX1?<=?"11000000";
????????????WHEN?"0001"?=>
???????????????HEX1?<=?"11111001";
????????????WHEN?"0010"?=>
???????????????HEX1?<=?"10100100";
????????????WHEN?"0011"?=>
???????????????HEX1?<=?"10110000";
????????????WHEN?"0100"?=>
???????????????HEX1?<=?"10011001";
????????????WHEN?"0101"?=>
???????????????HEX1?<=?"10010010";
????????????WHEN?"0110"?=>
???????????????HEX1?<=?"10000010";
????????????WHEN?"0111"?=>
???????????????HEX1?<=?"11111000";
????????????WHEN?"1000"?=>
???????????????HEX1?<=?"10000000";
????????????WHEN?"1001"?=>
???????????????HEX1?<=?"10010000";
????????????WHEN?OTHERS?=>
?????????END?CASE;
??????END?IF;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=914

  • 2-240Q9202139219.doc
    下载

相关推荐