1、大连理工大学本科实验报告题目:八位串行左移密码锁课程名称: 数字电路课程设计 学院(系):电子信息与电气工程学部 专 业: 电子与信息工程 班 级: 电子 0801 学生姓名: 王曙亮 学 号: 200881325 完成日期: 2010.12.24 成 绩: 2010 年 12 月 08 日题目:八位串行左移密码锁1 设计要求随着人们生活水平的提高,商业竞争的日益激烈,如何实现安全防盗这一问题变得尤为突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电密码子锁由于其保密性高,使用灵活性好,安全系数高,广泛应用生活中。设计一款应用于某一商业公司高层内部的密码箱,带有电子密码锁,密码只允许公
2、司负责人一人更改,只允许少数员工掌握密码并在规定的时间内输入正确密码,当密码输入有误时,有信号显示错误,超时没有输入正确的密码时,发出报警信号,引起公司警觉。要求设计一款数字密码锁,采用串行左移输入模式,密码为 8 位二进制数,多拨一位或少拨一位都会造成错误,密码可以更改,密码输入正确,有数码管显示正确,否则显示错误。设计 99 秒倒计时显示,当超时并且没有正确输入密码时,密码箱发出报警信号。2 设计分析及系统方案设计系统需要设计一个 8 位 2 进制密码,实验室 GW48 型 EDA 开发系统上只有 8 个按键,所以设计串行左移来对密码进行输入与核对,利用 8 个 LED 灯的亮灭表示 8
3、位二进制数。系统主体需要设计出输入预置密码部分,输入密码部分。当输入密码后,通过芯片的内部与预置密码比较后得出正确与否的结论,通过一个数码管显示出来,当密码输入正确后,数码管显示 1,当密码输入错误后,数码管显示 0。另有两个数码管显示 99s 倒计时,当密码输入正确后,停止倒计时,保持数字不变,当计时计到 00 时,保持 00 不变。当倒计时结束时,通过一高频信号驱动蜂鸣器报警。整个系统应设置有一启动开关,当开关启动后开始倒计时,输入密码,核对密码,显示正确与否。总体系统分为以下几个模块(1)输入预置密码(2)输入密码(3)显示密码输入正确与否(4)99s 倒计时,设计 1Hz 的脉冲信号(
4、5)蜂鸣器报警,输入 1KHz 的信号。采用 MAX+PLUS 开发系统,利用实验室 GW48 型 EDA 开发系统上进行硬件验证。系统需要按键有 6 个,数码管 7 个,蜂鸣器一个,输入 1KHz 的信号。其中,两个按键用来输入两位 16 进制预置密码,两个数码管显示预置的密码(1位 16 进制数对应 4 位 2 进制数) ,同理需要两个按键输入密码,两个数码管显示输入的密码,另有一个数码管显示密码输入是否正确,0 代表错误,1 代表正确,两个数码管显示 99s 倒计时,一个按键进行串行左移,一个按键作为系统的开关按键(针对于 99s 倒计时) ,8 个 LED 灯的亮灭表示 8 位 2 进
5、制数。系统的总体的框图:显示正确与否显示预置密码显示输入密码显示时间1K 分频扬声器8 位 2进制LED窜行输入系统开关预置密码输入密码输入芯片3 系统以及模块硬件电路设计具体功能如下:(1)开关 7、8 用来输入两位 16 进制预置密码(2)数码管 7、8 显示预置的密码(3)开关 5、6 用来输入两位 16 进制输入密码(4)数码管 5、6 显示输入的密码(5)数码管 4 显示密码输入是否正确(6)数码管 1、2 显示 99s 倒计时(7)按键 3 进行串行左移,每按一下串行左移输入一位 2 进制数(8)按键 1 作为系统的开关按键,按下启动 99s 倒计时(9)8 个 LED 灯的亮灭表
6、示 8 位 2 进制数,亮表示“1” ,灭表示“0”(10)蜂鸣器用来报警(11)clk0 输入 1KHz 的信号根据系统的要求,选择模式 8,如图:附图 11 实验电路结构图 NO.8系统总体结构框图如下图所示:PIO10clr buttton下载时选择的开发系统模式以及管脚定义表 1 GW48-CK 开发系统工作模式:接口名称类型(输入/输出)结构图上的信号名 引脚号 说明clk1000 in std_logic clk0 2 接 1KHz 的信号clr in std_logic PIO8 17 系统启动开关din in std_logic PIO10 19 串行左移信号输入speaker
7、 out std_logic SPKER 3 扬声器button in std_logic PIO9 18 串行左移按键d in std_logic PIO7- PIO0 5,6,7,8,9,10,11,16 预置密码数1KHz5 译码器7 译码器8 译码器PIO27-24 PIO23-20 PIO23-20F P G A 最小系统 Clk0 PIO8 PIO9 PIO4 spk Key1Key3Key5Key6Key7Key82 译码器6 译码器4 译码器1 译码器yL out std_logic PIO40- PIO4366,67,70,71 倒计时低位数码管显示yH out std_lo
8、gic PIO44- PIO4772,73,78,79 倒计时高位数码管显示TF out std_logic PIO36- PIO3961,62,64,65 指示密码输入是否正确4 系统的 VHDL 设计信号定义:信号名称 类型 说明clk1 std_logic 分频得到 1Hz 频率counter1 integer range 0 to 510 分频的中间变量switch std_logic 99s 倒计时的启动开关speaker out std_logic 扬声器button in std_logic 串行左移按键Low std_logic_vector(3 downto 0) 低位数码管
9、High std_logic_vector(3 downto 0) 高位数码管j00 std_logic 扬声器开关speaker11std_logic 扬声器中间变量qq integer range 0 to 8 密码是否正确中间变量1 分频模块:process(clk1000)-(分频得到 1Hz 的频率)beginif(clk1000event and clk1000=1) then -(分频 clk 是 clk1000 的1/1000)if (counter1=499) then -中间变量 counter1,加到 499,clks 翻转一次, counter1if din=d(7)
10、then qqif din=d(6) then qqif din=d(5) then qqif din=d(4) then qqif din=d(3) then qqif din=d(2) then qqif din=d(1) then qqif din=d(0) then qqqq=0;end case;end if;end process;7、显示密码输入是否正确模块process(qq)-(显示密码正确数码管)beginif qq=8 then TF=“0001“; -密码输入正确,则显示 1else TF=“0000“; -密码输入错误,则显示 0end if;end process;5 结论以及结果说明本系统采用 MAX+PLUS II10.2 开发系统,利用实验室 GW48 型 EDA 开发系统上进行硬件验证,开发箱的芯片型号是 FLEX10K-EPF10K10LC84-4。输入信号时钟选用 1KHz,选用模式 8,仿真图如下图所示:1、99s 倒计时电路:可知,当计时 counter1 计数到 1F3 即 499 时,计时减一。2、蜂鸣器响模拟电路可见当计时到 00s 时,speaker 即蜂鸣器开始报警,频率为 1KHz。3、输入密码正确仿真图:连续 8 次正确的窜行输入后,qq 分别从 0 加到 8,保持在 8 不动,倒计时停止