北邮数电实验报告(猜数字) 联系客服

发布时间 : 星期三 文章北邮数电实验报告(猜数字)更新完毕开始阅读

else next_state<=idle; end if; when s1 =>

if ms1='1' then

next_state<=s2; else next_state<=s1;

end if; when s2 =>

if ms2='1' then

next_state<=s3; next_state<=over; elsif tm='1' then else next_state<=s2;

end if;

when s3 =>

if done='1' then

next_state<=over; else next_state<=s3; end if;

if st='1' then next_state<=idle; elsif tf='0' then

if tm='0' then

next_state<=s2; else next_state<=over; end if;

when over =>

else next_state<=over; end if;

when others =>next_state<=idle;

end case; end if;

idle是空白的等待状态,s1是输入要猜的数字状态,在s2状态输入猜的数字,确定后进入s3状态,没猜对会检测还有没有时间,有时间会回到s2状态,没时间会留在over状态,猜对了也会留在over状态,发现没时间后也会进入over状态

点阵显示:

begin

if clk_scan'event and clk_scan='1' then

if led=1 then --jiong

case led_row is

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

others

=>

led_row<=\

end case; case led_row is

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

others

=>

elsif led=2 then --xiao

led_row<=\

end case; case led_row is

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

others

=>

elsif led=3 then --x

led_row<=\

end case; case led_row is

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\

elsif led=4 then --kong

when others =>

led_row<=\

end case;

else

这里都是在显示特殊情况,下面是倒计时的显示:num_1是倒计时对8的取余,num_2是倒计时对8的除法运算。对应每个num_1,有num_x对应不同的点阵行的亮灯情况,这样的话使得61秒的倒计时只需要分8种情况讨论,即每一行一种情况。

num_1<=count_down rem 8; --quyu num_2<=count_down/8;

when 0=> num_x <=\when 1=> num_x <=\when 2=> num_x <=\when 3=> num_x <=\when 4=> num_x <=\when 5=> num_x <=\when 6=> num_x <=\when 7=> num_x <=\when others => num_x <=\end case; case num_2 is when 0 =>

case led_row is

when

\

=>

case num_1 is

led_row<=\

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

others

=>

led_row<=\

end case;

when 1 =>

case led_row is

when \=> led_row<=\when

\

=>

led_row<=\

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when end case;

others

=>

led_row<=\

when 2 =>

case led_row is

when \=> led_row<=\when \=> led_row<=\when

\

=>

led_row<=\

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

others

=>

led_row<=\

end case;

when 3 =>

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

\

=>

case led_row is

led_row<=\

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

others

=>

led_row<=\

end case;

when 4 =>

case led_row is

when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when

\

=>

led_row<=\

when \=> led_row<=\when \=> led_row<=\