发光二极管走马灯电路的设计与实现实验(一)
实验程序:
设计思路:首先用按键SW1来控制显示模式。用状态机来实现单点移动和幕布式移动。
VHDL程序如下
library ieee;
use ieee.std_logic_1164.all;
entity scan is
port(clk,reset:in std_logic;
light:out std_logic_vector(7 downto 0);
a:in std_logic
);
end scan;
architecture arch_scan of scan is
TYPE state_type is(s0,s1,s2,s3,s4,s5,s6,s7);
signal state:state_type;
begin
process(a,clk,reset) ——————process使用嵌套
begin
if(reset='1') then light<="00000000";
elsif(rising_edge(clk)) then
if a='0' then ——————‘a’代表BW1的值,控制显示模式
case state is ——————实现单点移动
when s0=>
state<=s1;
light<="10000000";
when s1=>
state<=s2;
light<="01000000";
when s2=>
state<=s3;
light<="00100000";
when s3=>
state<=s4;
light<="00010000";
when s4=>
state<=s5;
light<="00001000";
when s5=>
state<=s6;
light<="00000100";
when s6=>
state<=s7;
light<="00000010";
when s7=>
state<=s0;
light<="00000001";
end case;
else
case state is ——————实现幕布式移动
when s0=>
state<=s1;
light<="00011000";
when s1=>
state<=s2;
light<="00111100";
when s2=>
state<=s3;
light<="01111110";
when s3=>
state<=s4;
light<="11111111";
when s4=>
state<=s5;
light<="01111110";
when s5=>
state<=s6;
light<="00111100";
when s6=>
state<=s7;
light<="00011000";
when s7=>
state<=s0;
light<="00000000";
end case;
end if;
end if;
end process;
end arch_scan;
仿真波形如下:
600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-0.png" width="662" height="244" />
实验总结
仿照上个实验的状态机设计,自己写出了以上的程序。虽然程序简单,容易写出,但由于语法不熟,在编写的过程中走了很多的弯路也出现了较多的错误。还好,在老师的指导下,经过不段的调试,改正终于得出了正确的结果。
最初,我由于不知道要用嵌套PROCESS,而在一个PROCESS中又加入俩个PROCESS。导致编译不能通过。这是由于语法不清而犯的错误。
还有就是在写程序的时候没有进行深入的思考。简单的认为状态机不能实现幕布式的移动(因为我认为状态机的状态不足以表达幕布式的各个状态,其实是足够的)而使用了两个循环,这样就把程序弄的很复杂。编写的时候太草率了,应该进行细致的思考后再去编写。
最后的问题就是,整个编程的过程中,小错误总是不段。这里多个‘;’,那里少个字母的。这些小的错误虽然在编译后能够更正过来,但最好还是希望自己能在以后不要在出现类似的错误。
经过这次实验,存在的问题还是老问题——语法不清、不够细心。语法的问题是由于没有具体的学习过,又没有在课下反复的联系。要去系统的学习VHDL语言,在近期有点不切实际,还是要多加练习。在练习中熟练 VHDL的语法,而做的多了,也就能避免在细节问题上总是出错。
【发光二极管走马灯电路的设计与实现实验(一)】相关文章:
错误检测与纠正电路的设计与实现03-20
Boost电路的一种软开关实现方法03-18
AGC电路的设计03-07
用Protel99SE实现脉冲电路的仿真03-18
换体DMA高速数据采集电路的CPLD实现03-18
一款开关同步检波电路的设计03-07
开关电源控制及触发电路的设计(一)03-07
IP协议设计实现—重装模块(一)03-07