数码管静态显示 及作业--“拨码控制数码管进行八进制数字显示”
照例是首先学习教程,演练教程里的实例,在成功下载并运行后再仔细分析个中的语句。
看到:
always@(posedge sys_clk or negedge sys_rstn) //
begin
if(!sys_rstn)
disp_dat<=4'd0;
else
begin
if(delay_cnt==26'd49999999) // 到1S?
disp_dat<=disp_dat+1'b1 ; // disp_dat +1
// else
// disp_dat<=disp_dat ; // 不变 (不变,还要赋值?)
end
end */
觉得其中2行注解掉可以照样运行,不知何意。
=作业=
准备:
从电路图上并对照实际pcb板,可以看出:
段,seg0--seg7 对应数码管的 a---dp ,低电平点亮相应段
位,dig7--dig0 对应数码管从左到右,低电平点亮相应位
拨码开关,sw8--sw1 对应于开关上的数字(1--8);开关拨在下方,sw对应位是高电平;开关拨在上方,sw对应位是低电平
按键,key1--key9 与S1--S8 对应;S未按下时,对应的key是高电平;S按下时,对应的key是低电平(本行与本次作业无关,暂放于此))
思路:以教程的例子为基础,增加SW输入;除按要求显示1-8外,无拨码时显示0,多个拨码显示F.
代码:



原本考尝试一下“复位”的功能,未能成功(在中间注解掉的47-49行),目前自己不明原因,如果你知道了,请告诉我。
运行结果图片:




