下载手机汽配人

EDA-设计彩灯控制器

设计彩灯控制器 要求 1、8个灯全亮 ; 2、8个灯全灭; 3、从左到右第一个开始每隔一个亮; 4、从右到左第一个开始每隔一个灭; 5、左四个灭,右四个亮; 6、左四个亮,右四个灭; 要vhdl源码
提问者:网友 2018-07-18
最佳回答
程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CDKZ IS PORT(CLK,CLR:IN STD_LOGIC; --时钟和复位-- COUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --输出-- END; ARCHITECTURE BVE OF CDKZ IS TYPE STATE_DDRAM IS --定义状态机-- (READY, ONE, TWO, THREE, FOUR, FIVE, SIX); SIGNAL STATE,NEXT_STATE:STATE_DDRAM; SIGNAL CNT8:STD_LOGIC_VECTOR(5 DOWNTO 0); --计数信号--- SIGNAL C_T:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN P1:PROCESS(CLR,CLK) BEGIN IF CLR='1' THEN STATE<=READY; ELSIF CLK'EVENT AND CLK='1' THEN STATE<=NEXT_STATE;CNT8<=CNT8+1; --双线状态机运行方式,计数器到上升沿加1--- END IF; END PROCESS P1; STATE_COM:PROCESS(STATE,NEXT_STATE,CNT8)---状态机的转向--- BEGIN CASE STATE IS WHEN READY=>NEXT_STATE<=ONE; ---开始--- WHEN ONE=>NEXT_STATE<=TWO; IF CNT8<"000111" THEN C_T<="11111111";END IF;---8个灯全亮--- WHEN TWO=>NEXT_STATE<=THREE; IF (CNT8>"000111")AND(CNT8<"001111") THEN C_T<="00000000";END IF;--8个灯全灭-- WHEN THREE=>NEXT_STATE<=FOUR; IF CNT8="010000" THEN C_T<="10000000";END IF; IF CNT8="010001" THEN C_T<="01000000";END IF; IF CNT8="0
回答者:网友
产品精选
在移动端查看: EDA-设计彩灯控制器
搜索问答
还没有汽配人账号?立即注册

我要提问

汽配限时折扣

本页是网友提供的关于“EDA-设计彩灯控制器”的解答,仅供您参考,汽配人网不保证该解答的准确性。