led彩灯控制器设计
主要内容及要求(1)以半导体数码管作为控制器的显示器,它能自动地依次显示出数字0、1、2、3、4、5、6、7、8、9(自然数列),1、3、5、7、9(奇数列),0、2、4...
主要内容及要求
(1)以半导体数码管作为控制器的显示器,它能自动地依次显示出数字0、1、2、3、4、5、6、7、8、9(自然数列),1、3、5、7、9(奇数列),0、2、4、6、8(偶数列)和0、1、2、3、4、5、6、7、0、1(音乐符号数列),然后又依次显示出自然数列、奇数列、偶数列和音乐符号数列……如此周而复始,不断循环。
(2)打开电源时,控制器可自动清零,从接通电源时刻起,数码管最先显示出自然数列的0,再显示出1,然后按上述规律变化。
希望有两种方案,再加100
发到我的邮箱里:512913457@qq.com
我们还没学单片机,不能用 展开
(1)以半导体数码管作为控制器的显示器,它能自动地依次显示出数字0、1、2、3、4、5、6、7、8、9(自然数列),1、3、5、7、9(奇数列),0、2、4、6、8(偶数列)和0、1、2、3、4、5、6、7、0、1(音乐符号数列),然后又依次显示出自然数列、奇数列、偶数列和音乐符号数列……如此周而复始,不断循环。
(2)打开电源时,控制器可自动清零,从接通电源时刻起,数码管最先显示出自然数列的0,再显示出1,然后按上述规律变化。
希望有两种方案,再加100
发到我的邮箱里:512913457@qq.com
我们还没学单片机,不能用 展开
2个回答
推荐于2016-08-15
展开全部
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CDKZ IS
PORT(CLK:IN STD_LOGIC;
D:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END CDKZ;
ARCHITECTURE ART OF CDKZ IS
SIGNAL A:INTEGER RANGE 0 TO 8;
SIGNAL B:INTEGER RANGE 0 TO 3;
SIGNAL Q,T:STD_LOGIC;
BEGIN
PROCESS(CLK)IS
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF A=8 THEN
A<=1;T<=NOT T;
IF B=2 THEN
B<=0;
else
B<=B+1;
END IF;
ELSIF A=0 THEN
A<=1;T<='1';
ELSIF T='1'THEN
A<=A+1;
ELSIF T='0'AND Q='1'THEN
A<=A+1;Q<=NOT Q;
ELSIF T='0'AND Q='0'THEN
Q<=NOT Q;
END IF;
END IF;
END PROCESS;
D<="01010101"WHEN A=1 AND B=1 ELSE
"10101010"WHEN A=2 AND B=1 ELSE
"01010101"WHEN A=3 AND B=1 ELSE
"10101010"WHEN A=4 AND B=1 ELSE
"01010101"WHEN A=5 AND B=1 ELSE
"10101010"WHEN A=6 AND B=1 ELSE
"01010101"WHEN A=7 AND B=1 ELSE
"10101010"WHEN A=8 AND B=1 ELSE
"10000000"WHEN A=1 AND B=2 ELSE
"11000000"WHEN A=2 AND B=2 ELSE
"11100000"WHEN A=3 AND B=2 ELSE
"11110000"WHEN A=4 AND B=2 ELSE
"11111000"WHEN A=5 AND B=2 ELSE
"11111100"WHEN A=6 AND B=2 ELSE
"11111110"WHEN A=7 AND B=2 ELSE
"11111111"WHEN A=8 AND B=2 ELSE
"10000001"WHEN A=1 AND B=0 ELSE
"11000011"WHEN A=2 AND B=0 ELSE
"11100111"WHEN A=3 AND B=0 ELSE
"11111111"WHEN A=4 AND B=0 ELSE
"01111110"WHEN A=5 AND B=0 ELSE
"00111100"WHEN A=6 AND B=0 ELSE
"00011000"WHEN A=7 AND B=0 ELSE
"00000000"WHEN A=8 AND B=0;
END ARCHITECTURE ART;
回答者: 四国天堂 - 试用期 一级 4-26 10:11
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CDKZ IS
PORT(CLK:IN STD_LOGIC;
D:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END CDKZ;
ARCHITECTURE ART OF CDKZ IS
SIGNAL A:INTEGER RANGE 0 TO 8;
SIGNAL B:INTEGER RANGE 0 TO 3;
SIGNAL Q,T:STD_LOGIC;
BEGIN
PROCESS(CLK)IS
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF A=8 THEN
A<=1;T<=NOT T;
IF B=2 THEN
B<=0;
else
B<=B+1;
END IF;
ELSIF A=0 THEN
A<=1;T<='1';
ELSIF T='1'THEN
A<=A+1;
ELSIF T='0'AND Q='1'THEN
A<=A+1;Q<=NOT Q;
ELSIF T='0'AND Q='0'THEN
Q<=NOT Q;
END IF;
END IF;
END PROCESS;
D<="01010101"WHEN A=1 AND B=1 ELSE
"10101010"WHEN A=2 AND B=1 ELSE
"01010101"WHEN A=3 AND B=1 ELSE
"10101010"WHEN A=4 AND B=1 ELSE
"01010101"WHEN A=5 AND B=1 ELSE
"10101010"WHEN A=6 AND B=1 ELSE
"01010101"WHEN A=7 AND B=1 ELSE
"10101010"WHEN A=8 AND B=1 ELSE
"10000000"WHEN A=1 AND B=2 ELSE
"11000000"WHEN A=2 AND B=2 ELSE
"11100000"WHEN A=3 AND B=2 ELSE
"11110000"WHEN A=4 AND B=2 ELSE
"11111000"WHEN A=5 AND B=2 ELSE
"11111100"WHEN A=6 AND B=2 ELSE
"11111110"WHEN A=7 AND B=2 ELSE
"11111111"WHEN A=8 AND B=2 ELSE
"10000001"WHEN A=1 AND B=0 ELSE
"11000011"WHEN A=2 AND B=0 ELSE
"11100111"WHEN A=3 AND B=0 ELSE
"11111111"WHEN A=4 AND B=0 ELSE
"01111110"WHEN A=5 AND B=0 ELSE
"00111100"WHEN A=6 AND B=0 ELSE
"00011000"WHEN A=7 AND B=0 ELSE
"00000000"WHEN A=8 AND B=0;
END ARCHITECTURE ART;
回答者: 四国天堂 - 试用期 一级 4-26 10:11
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |