多功能密码锁陈远宾_第1页
多功能密码锁陈远宾_第2页
多功能密码锁陈远宾_第3页
多功能密码锁陈远宾_第4页
多功能密码锁陈远宾_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程设计多功能密码锁姓名:陈远宾班级:电子3班学号:09101103课程设计多功能密码锁一 任务要求:a) 利用开发系统板设计一个多功能密码锁控制芯片。b) 利用开发板上的8个拨码开关设定开锁密码、输入开锁密码。8个LED灯显示工作状态以及输入密码正误提示。3个按键用来切换不同德模式,包括设定密码、开锁等。七段数码管用来显示输入密码的数值或者相应的编号。系统的输入信号包括8个拨码开关和时钟信号,输出信号有8个LED、3个七段数码管。多功能密码锁控制芯片需要8拨码开关,可以0255,共计256个数,密码可以设定为0255中任意一个数。2个按键可以作为控制开关,第一个按键代表设置密码状态,第二个

2、按键代表上锁状态,第3个俺家那倒不输入密码开锁。同时8个发光二极管LED在不哦天哪状态下也有不同的含义:LED4:设置密码信号灯LED5:上锁信号灯LED6:开锁信号灯8个LED全亮:密码错误,报警信号系统的状态转换过程:1. 当复位以后,系统进入等待状态,此时所有LED灯熄灭2. 按下第一个键Keyin0,进入设置密码状态,表示设置密码。密码设置信号灯LED4亮,并且把拨码开关上的密码存入系统,有七段数码管显示此时的密码数据。3. 按下第二个键Keyin1,进入锁定状态,即密码保护状态,上锁信号灯LED5亮,数码管显示“0”。4. 处于锁定状态,按下第一个键Keyin0,系统判断密码(拨码开

3、关代表的数值)是否正确,如果密码正确,则开锁信号灯LED6亮,表示开锁;如果密码错误,8个LED灯全亮,进入报警状态,表示报警。5. 开锁之后,如果按下按键Keyin1,则可以再次锁定系统,等待下一次开锁操作。二系统设计1.系统结构框图多功能密码锁控制芯片系统结构框图如图:2.系统原理分析多功能密码分3个模块:分频模块、核心状态控制模块和按键与七段数码管控制。其中,分频器模块主要是产生供按键、七段数码管扫描的时钟,周期大约在0.0010.0001s之间。同时,分频时钟也可以用于核心控制模块的基本控制,由于扫描时钟要和按键、七段数码管控制电路构成一个同步电路,因此,必须使用同一个分频时钟。按键和

4、七段数码管显示控制电路时对外部的控制以及动态显示硬件进行驱动,该模块嘟ianjia内进行扫描,输出经过扫描至后的按键结果,并且可以把核心模块输出的二进制显示数据转换为BCD吗,通过BCD译码和动态显示技术最终输出到动态七段数码管显示。核心控制模块的作用是控制系统的状态。系统一共有5个状态,状态之间由外部按键和拨码进行切换,而状态显示则由LED灯以及数码管进行输出。3.系统接口信号描述多功能密码锁系统接口信号定义如表所示:信号名I/O位宽含义clk11bit系统时钟输入rst11bit系统复位信号led08bit8个led数码管boma18bit8个拨码开关scan04bit动态显示扫描片选信号

5、m07bit七段数码管的段码控制信号keyin011bit矩阵键盘输入,2X4矩阵键盘第一行信号keyin111bit矩阵键盘输入,2X4矩阵键盘第二行信号三模块设计1. 分频器模块设计(1)模块原理分析。分频器完成由50MHz时钟产生0.0010.0001s时钟的功能,原始 未分频时钟是50MHz,根据计算公式:n=T/2t,令n=5000,也就是每次计数5000个原始时钟周期以后就把输出的分频时钟信号反转一次。输出时钟频率而10KHz。(2)模块接口定义。分频器模块接口定义如下表信号名I/O位宽含义clk11bit系统50Hz时钟输入clk101bit分频后频率为5KHz的时钟输出(3)模

6、块Verilog代码设计,代码如下:/clk_div.v/Verilog 代码段6-19module clk_div(clk,clk1);inputclk;/输入时钟outputclk1;/输出时钟reg12:0counter;/定义计数器来计数时钟,计数5000,需要用13位计数器regclk1;always(posedge clk)if(counter=13d5000)/如果等于5000begincounter=13b1;/把counter恢复成1clk1=clk1;/把clk1翻转endelse/如果不等于5000counter=counter+1b1;/counter继续计数endmo

7、dule状态编码状态含义8b00000000 初始状态8b00010000设定密码状态8b00100000锁定状态8b01000000开锁状态8b11111111报警状态2. 核心控制模块设计(1)模块原理分析。核心控制模块控制五个状态,分别是“初始状态”、“设定密码状态”、“锁定状态”、“开锁状态”和“报警状态”,分别对应5种LED灯的输出状态。核心控制模块的状态编码如下表:1. 当复位以后,系统进入等待状态,此时所有LED灯熄灭,四位数码管显示为“0000”,等待第一个键Keyin0按下,如果没按下,则状态不改变。2. 按下第一个键Keyin0,进入设置密码状态,LED灯显示“000100

8、00”,表示设置密码。密码设置信号灯LED4亮,并且把拨码开关上的密码存入系统,有七段数码管显示此时的密码数据。3. 按下第二个键Keyin1,进入锁定状态,即密码保护状态,上锁信号灯LED5亮,显示为“00100000”,数码管显示“0000”。4. 处于锁定状态,按下第一个键Keyin0,系统判断密码(拨码开关代表的数值)是否正确,如果密码正确,则开锁信号灯LED6亮,显示为“01000000”,表示开锁;如果密码错误,8个LED灯全亮,显示为“11111111”,进入报警状态,表示报警。5. 开锁之后,如果按下按键Keyin1,则可以再次锁定系统,等待下一次开锁操作。(2)模块接口定义。

9、控制模块接口定义如下表:信号名I/O位宽含义rst11bit系统复位信号clk111bit分频后频率为5KHz的时钟输出led08bit8个led数码管boma18bit8个拨码开关display08bit七段数码管显示的二进制数据key_s18bit键制(3)模块Verilog代码设计,代码如下:/state.v/Verilog代码段module state(rst,clk1,led,boma,display,key_s);inputrst,clk1;input7:0boma;/拨码开关input7:0key_s;/键值,此处只用到 key_s0.key_s1,key_s2output7:0

10、led;/8个LED输出信号output7:0display;/七段数码管显示数据/-reg7:0led;/ LED数码管储存状态机的状态编码areg7:0display;reg7:0mima;/+always(posedge clk1)beginif(rst=1b0) /如果复位信号有效,密码清零begindisplay=8b00000000; /七段数码管显示数据led=8b00000000;mima=8b00000000;endelsebegincase(led)8b00000000:begin/处于复位状态,只能接受密码设定if(key_s0=1b1) /如果按键1按下,LED4亮,并

11、且确认密码beginled=8b00010000;display=boma;mima=boma;endend8b00010000:begin/处于密码设定完毕状态,只能等待上锁设定if(key_s1=1b1) /如果按键2按下,LED5亮,密码上锁beginled=8b00100000;display=8b0;endend8b00100000:begin/处于锁定状态,只能等待开锁操作if(key_s2=1b1)/ 判断密码是否正确,如果正确则LED6亮beginif(boma=mima)beginled=8b01000000;display=boma;endelsebeginled=8b11

12、111111;/密码不正确则8个LED灯全亮display=boma;endendenddefault:begin /处于开锁状态,或者其他无关状态,直接转换到锁定状态if(key_s1=1b1) /如果按键2按下,LED5亮,密码上锁beginled=8b00100000;display=8b0;endendendcaseendendendmodule3. 按键、七段数码管控制模块设计(1)模块原理分析。该模块是整个设计比较复杂的模块,其结构图如下。按键、七段数码管控制模块主要负责包要显示的二进制数据转换为BCD码,进而通过动态显示技术在七段数码管上显示出来。此外,还负责外部2 *4矩阵键盘

13、的扫描处理。电路首先对二进制数据进行BCD译码,输入数据在0255之间,经过BCD转换,可以得到3个四位二进制数据。为了配合动态显示,需要生成一个动态扫描信号,不停地扫描动态数码管的位码,再配合扫描信号,把静态七段数码管的数据放到“段码数据总线”。(2)模块接口定义。模块接口定义如下表:信号名I/O位宽含义display18bit七段数码管要显示的数据key_s08bit键制scan04bit矩阵键盘和数码管的扫描信号m07bit七段数码管的段码控制信号,采用keyin011bit矩阵键盘的输入信号keyin111bit矩阵键盘的输入信号clk111bit分频后周期为0.0010.0001s的

14、时钟输出(3)模块Verilog代码设计,代码如下:/scan_crl.v/Verilog 代码段module scan_crl(display, /七段数码管显示二进制数据key_s, /键盘输出信号scan, /矩阵键盘和数码管的扫描信号m, /七段数码管的段码控制信号keyin0, /矩阵键盘的第一行输入信号keyin1, 矩阵键盘的第二行输入信号clk1);input7:0display;inputke段yin0,keyin1,clk1;output7:0key_s;output3:0scan;/扫描控制output6:0m;/7个段码reg3:0scan;reg7:0key_s;re

15、g6:0m;/产生用于矩阵键盘和数码动态扫描的scan信号reg1:0st;always(posedge clk1)st=st+1b1;always(st)begincase(st)2b00:scan=4b0001;2b01:scan=4b0010;2b10:scan=4b0100;2b11:scan=4b1000;default:scan=4b0000;endcaseend/由矩阵按键产生内部使用的键值always(posedge clk1)beginif(scan=4b0001)beginif(keyin0=1b0)key_s0=1b1;else key_s0=1b0;if(keyin1=

16、1b0)key_s4=1b1;else key_s4=1b0;endif(scan=4b0010)beginif(keyin1=1b0)key_s1=1b1;else key_s1=1b0;if(keyin1=1b0)key_s5=1b1;else key_s5=1b0;endif(scan=4b0100)beginif(keyin0=1b0)key_s2=1b1;else key_s2=1b0;if(keyin1=1b0)key_s6=1b1;else key_s6=1b0;endif(scan=4b1000)beginif(keyin0=1b0)key_s3=1b1;else key_s3

17、=1b0;if(keyin1=1b0)key_s7=1b1;else key_s78d199)bai7d99)bai=4d1;elsebai=7d90)shi=7d80)shi=7d70)shi=7d60)shi=7d50)shi=7d40)shi=7d30)shi=7d20)shi=7d10)shi=4d1;elseshi=4d0;endassign ge=display_2wei-shi*4d10;/BCD convert/利用bai shi ge,生成动态数码管显示数据”bin”reg4:0bin;always(st,ge,shi,bai)begincase(st)2b00:bin=4b

18、0000;2b01:bin=bai;2b10:bin=shi;2b11:bin=ge;default:bin=4b0000;endcaseend/七段数码管译码模块always(bin)begincase(bin)4b0000:m=7b0111111;4b0001:m=7b0000110;4b0010:m=7b1011011;4b0011:m=7b1001111;4b0100:m=7b1100110;4b0101:m=7b1101101;4b0110:m=7b1111101;4b0111:m=7b0000111;4b1000:m=7b1111111;4b1001:m=7b1101111;default:m=7b0000000;endcase endendmodule4. 顶层链接模块设计前面设计了三个电路模块,包括分频器、核心控制模块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论