verilog实验之密码箱实验报告
Verilog实现密码箱
1.功能概述
小脚丫开发板的有4位拨码开关,可以表示数字0-9,有两个七段数码管,所以密码设为两位(0099),初始密码00,利用四位拨码开关(sw)输入密码,,按下个位确认按键(low),在数码管上显示个位数字;再次输入密码,按下十位确认按键(high),在数码管上显示十位数字。按下确认按键(enter),比较密码正误,若正确,实现开锁功能,用l驱鼠ed8描写植物的诗歌现代诗灯亮表示;错误,实现报错功能,用led1灯亮表示;连续错三次,实现警报功能,用8个灯全亮表示,此时只有重置(rst才能重新输入密码。初始密码为21。为保证安全性,只有在开锁状态下,才可修改密码,修改拨码开关数值,按下个位确认按键(low赞丽生活为什么给我发验证码),设置新密码个位,再次修改拨码开关数值,按下个位确认按键(high),设置新密码十位(实际上两个位密码修改与输入顺序不影响。再按下重置键(rst),即可重新输入密码。同时在使用按键时,注意到了消抖。
2.效果展示
密码错误
密码正确
修改后密码正确
视频展示(双击播放)
3.代码分析
一、密码显示在数码管上
always@(*)
//数码管显示控制模块
begin
    case(code_low)
    4'd0:seg_led1=9'b000111111;//数码管1显示0
    4'd1:seg_led1=9'b000000110;//1
    4'd2:seg_led1=9'b001011011;//2
    4'd3:seg_led1=9'b001001111;//3
    4'd4:seg_led1=9'b001100110;//4
    4'd5:seg_led1=9'b001101101;//5
    4'd6:seg_led1=9'b001111101;//6
    4'd7:seg_led1=9'b000000111;//7
    4'd8:seg_led1=9'b001111111;//8
    4'd9:seg_led1=9'b001101111;//9
    default:seg_led1=9'b100111111;//0
    endcase
    case(code_high)
    4'd0:seg_led2=9'b000111111;//数码管2显示0
    4'd1:seg_led2=9'b000000110;//1
    4'd2:seg_led2=9'b001011011;//2
    4'd3:seg_led2=9'b001001111;//3
    4'd4:seg_led2=9'b001100110;//4
    4'd5:seg_led2=9'b001101101;//5
    4'd6:seg_led2=9'b001111101;//6
    4'd7:seg_led2=9'b000000111;//7
    4'd8:seg_led2=9'b001111111;//8
    4'd9:seg_led2=9'b001101111;//9
    default:seg_led2=9'b100111111;//0
    endcase
end
二、密码比对判断
always @(posedge clk) //密码判断
begin
    if(!rst)
    begin
        wrong_cnt<=2'b00;  //初始错误次数为0
        code_low<=4'b0000;爱不解释歌词
        code_high<=4'b0000;
        led<=8'b11111111;
    end
    else if(low_d)
    begin
        code_low<=sw;
    end
    else if(high_d)
    begin
        code_high<=sw;
    end
    else if(enter_d)
    begin
        if(wrong_cnt!=2'd2)
        begin
            if((code_low==Y&&code_high==X)||(code_low==newcode_low&&code_high==newcode_high))
            begin
                led<=8'b01111111;  //密码正确,led8黑社会老大排名
                wrong_cnt<=2'd0;
光驱启动
            end
            else

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。