⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 彩灯控制1.txt

📁 该程序为用vhdl语言编写的彩灯控制程序! 通过状态机实现三个彩灯的状态装换
💻 TXT
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY Ledcontrol IS
PORT (CLK,CLR:IN STD_LOGIC;
       Red,Green,Yellow:OUT STD_LOGIC);
END Ledcontrol;
ARCHITECTURE BEHAV OF Ledcontrol IS
TYPE color IS (S0,S1,S2,S3,S4,S5,S6);  
SIGNAL Now_STATE,Next_STATE:color;
BEGIN
	PROCESS(CLK,CLR)
	BEGIN
	IF CLR='1' THEN Now_STATE<=S6;
	ELSIF CLK'EVENT AND CLK='1' THEN
 		Now_STATE<=Next_STATE;
  END IF;
END PROCESS;

COM1:PROCESS(Now_STATE) BEGIN
CASE Now_STATE IS 
WHEN S0=>Next_STATE<=S1;
WHEN S1=>Next_STATE<=S2;
WHEN S2=>Next_STATE<=S3;
WHEN S3=>Next_STATE<=S4;
WHEN S4=>Next_STATE<=S5;
WHEN S5=>Next_STATE<=S6;							--全部熄灭
WHEN OTHERS =>Next_STATE<=S0;
END CASE;
END PROCESS COM1;
COM2:PROCESS(Now_STATE) BEGIN
CASE Now_STATE IS
WHEN S0=>RED<='1';GREEN<='0';YELLOW<='0';			--红灯亮2秒
WHEN S1=>RED<='1';GREEN<='0';YELLOW<='0';			
WHEN S2=>RED<='0';GREEN<='1';YELLOW<='0';			--绿灯亮3秒
WHEN S3=>RED<='0';GREEN<='1';YELLOW<='0';			
WHEN S4=>RED<='0';GREEN<='1';YELLOW<='0';
WHEN S5=>RED<='0';GREEN<='0';YELLOW<='1';			--黄灯亮1秒
WHEN S6=>RED<='0';GREEN<='0';YELLOW<='0';           --复位时的状态(全部熄灭)
WHEN OTHERS =>RED<='0';GREEN<='0';YELLOW<='0';
END CASE;
END PROCESS COM2;
END BEHAV;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -