四位数字密码锁设计

更新时间:2023-08-16 12:48:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子科技大学

数字电路课程设计报告

题目:保险箱用四位数字代码锁

院系: 专业: 学号: 学生姓名: 指导教师:

保险箱用四位数字代码锁

一.设计要求:

设计一个保险箱用的4位数字代码锁,该锁有规定的地址代码A、B、C、D4个输入端和一个开箱钥匙孔信号E的输入端,锁的代码由实验者自编。当用钥匙开箱时,如果输入的4个代码正确,保险箱被打开;否则,电路将发出警报(可用发光二极管亮表示)。

具体要求:1)写出改组合逻辑电路的分析和设计方法;

2)参考有关资料画出原理图,找出要使用的芯片;

3)画出真值表以验证是否真确; 4)使用Verilog HDL语言进行仿真。

二.设计方案:

1.该组合逻辑电路的分析和设计方法:

本设计方案中我采用多路复用器,2-4译码器,LED灯和或门等器件来完成设计。用2个74x151多路复用器扩展为16-2多路复用器,题目中的地址代码A、B、C、D4个输入端作为扩展的多路复用器的地址端,D0-D8作为数据端。开箱钥匙孔信号E作为2-4decoder的使能端。设计开锁的正确代码为0101,当用钥匙开锁(即2-4decoder的使能端有效)时,如果正确输入开锁密码:0101,则输出Y为逻辑高电平,Y’为逻辑低电平,锁被打开,而LED灯不会亮(即不会报警);如果输入的密码错误或者钥匙孔信号无效,则输出Y为逻辑低电平,Y’为逻辑高电平,锁无法打开,逻辑高电平Y’驱动LED灯亮,产生报警效果。 2.设计原理图:(以下电路图为用Quartus II综合后截屏所得)

总体逻辑电路图

2-4 译码器逻辑电路图

假设用钥匙开锁(即钥匙孔信号E有效)时的真值表

4.Verilog HDL语言仿真: 程序代码:

module e2_4decoder(i,en,y); input en;

input [1:0] i; output [3:0] y; reg [3:0] y;

always @(i or en)begin if(en)

151多路复用器逻辑电路图

case(i)

0:y=4'b0001; 1:y=4'b0010; 2:y=4'b0100; 3:y=4'b1000; endcase

else y=4'b0000; end

endmodule

module mutiplexer16_1(a,b,c,en,d,y,y_l); input a,b,c,en; input [7:0] d; output y,y_l; reg y,y_l;

always @(a,b,c,en) begin

if(en==0) if(c==0&b==0&a==0) y=d[0]; else if(c==0&b==0&a==1) y=d[1]; else if(c==0&b==1&a==0) y=d[2]; else if(c==0&b==1&a==1) y=d[3]; else if(c==1&b==0&a==0) y=d[4]; else if(c==1&b==0&a==1) y=d[5]; else if(c==1&b==1&a==0) y=d[6]; else y=d[7];

else y=0; y_l=!y; end

endmodule

module liuyong(A,B,C,D,set,LED,LATCH); wire [3:0] y; wire [1:0] i; input A,B,C,D; input [15:0] set; output LED,LATCH;

assign i[1]=0; assign i[0]=D;

e2_4decoder u1(i,1,y);

mutiplexer16_1 m1(A,B,C,!y[0],set[7:0],y1,y1_l);

mutiplexer16_1 m2(A,B,C,!y[1],set[15:8],y2,y2_l); or (LATCH,y1,y2); not (LED,LATCH); endmodule

以下为仿真得到的时序图:

本文来源:https://www.bwwdw.com/article/jowj.html

Top