汽车速度表VHDL代码开发板验证超速警告功能
名称:汽车速度表VHDL代码数码管显示车速超速警告(代码在文末下载)
软件:QuartusII
语言:VHDL
代码功能:
设计一个汽车速度表。车轮每转一圈会产生一个脉冲,每个脉冲代表1米的距离,根据单位时间的脉冲数可推算出汽车的速度。 要求:
(1)模拟产生车轮运转产生的脉冲信号并对其计数,用按键选择脉冲信号的不同频率
(2)每隔10秒读取一次脉冲计数器,并据此计算车速;
(3)用数码管显示车速,单位Kmh;
(4)给出超速警告
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在21EDA EPM240-CPLD学习板验证,开发板如下,其他开发板可以修改管脚适配:
21EDA EPM240-CPLD学习板使用说明书(1).pdf

演示视频:
设计文档:
1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

管脚

5. Testbench

6. 仿真图

按键模块

控制模块

速度模块

报警模块

显示模块

部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --速度计数模块 ENTITY speed IS PORT ( clk : IN STD_LOGIC;--输入时钟1000Hz pulse : IN STD_LOGIC;--传感器脉冲信号,每个脉冲1米 clk_en : IN STD_LOGIC;--输出10s使能信号 latch : IN STD_LOGIC;--输出锁存信号 rst : IN STD_LOGIC;--输出清零 speed_num : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--输出速度值 ); END speed; ARCHITECTURE behave OF speed IS SIGNAL cnt : STD_LOGIC_VECTOR(16 DOWNTO 0) := "00000000000000000"; SIGNAL cnt_lat : STD_LOGIC_VECTOR(16 DOWNTO 0) := "00000000000000000"; SIGNAL speed_num_buf : STD_LOGIC_VECTOR(23 DOWNTO 0); BEGIN PROCESS (clk, rst) BEGIN IF (rst = '1') THEN cnt <= "00000000000000000"; ELSIF (clk'EVENT AND clk = '1') THEN--传感器脉冲计数 IF (pulse = '1') THEN cnt <= cnt + "00000000000000001";--传感器脉冲计数 END IF; END IF; END PROCESS; PROCESS (clk) BEGIN IF (clk'EVENT AND clk = '1') THEN IF (latch = '1') THEN cnt_lat <= cnt;--输出锁存信号 END IF; END IF; END PROCESS; --速度换算:1 米/秒(米每秒)=3.6 千米/时(千米每时) --10s对应距离为cnt_lat米,速度为cnt_lat/10(米每秒) --输出速度值cnt_lat*92/256; speed_num_buf <= cnt_lat * "1011100";--*92/256 speed_num<=speed_num_buf(15 DOWNTO 8); --speed_num<=speed_num_buf(11 DOWNTO 4); END behave;
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 汽车速度表VHDL代码开发板验证超速警告功能
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 汽车速度表VHDL代码开发板验证超速警告功能
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm