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

紫外线消毒灯控制器设计VHDL代码Quartus仿真

08/12 15:16
878
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240R3154P92O.doc

共1个文件

名称:紫外线消毒灯控制器设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

设计一个基于FPGA的紫外线消毒灯控制器

设计要求:

1、系统主要外设:按键1个(自恢复式)、消毒灯1个(Led模拟)、系统时钟(1KHz);

2、系统主要功能:当用户短按一次按键,消毒灯亮15分钟。连续按键两次(3秒钟内),消毒灯常亮。任何状态下按住按键保持3秒,消毒灯熄灭。

3、设计语言:VHDL

(说明:紫外线灯控制端口高电平为熄灭状态,低电平为点亮状态。按键未按下时为高电平,按下时为低电平)

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图(系统框图)

状态机视图

5. Testbench

6. 仿真图

6.1 整体仿真图

6.2 长按检测模块仿真图

6.3 消毒灯控制模块仿真图

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
ENTITY Disinfection_lamp IS
   PORT (
      clk_1K  : IN STD_LOGIC;--1KHz时钟
      key     : IN STD_LOGIC;--按键,按下低电平
      Led     : OUT STD_LOGIC--LED消毒灯,低电平亮
   );
END Disinfection_lamp;
ARCHITECTURE RTL OF Disinfection_lamp IS
--按键模块
   COMPONENT long_key IS
      PORT (
         clk_1K  : IN STD_LOGIC;
         key     : IN STD_LOGIC;
         long_press : OUT STD_LOGIC
      );
   END COMPONENT;
--消毒灯控制模块   
   COMPONENT lamp IS
      PORT (
         clk_1K  : IN STD_LOGIC;
         key     : IN STD_LOGIC;
         long_press : IN STD_LOGIC;
         Led     : OUT STD_LOGIC
      );
   END COMPONENT;
   SIGNAL long_press : STD_LOGIC;
BEGIN
  
   --调用按长按检测模块
   i_long_key : long_key
      PORT MAP (
         clk_1K      => clk_1K,
         key         => key,
         long_press  => long_press
      );
   
   
   --调用消毒灯控制模块
   i_lamp : lamp
      PORT MAP (
         clk_1K      => clk_1K,
         key         => key,
         long_press  => long_press,
         Led         => Led
      );
   
END RTL;

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

  • 2-240R3154P92O.doc
    下载

相关推荐