湖南工程学院基于CPLD的数字锁报告书.doc_第1页
湖南工程学院基于CPLD的数字锁报告书.doc_第2页
湖南工程学院基于CPLD的数字锁报告书.doc_第3页
湖南工程学院基于CPLD的数字锁报告书.doc_第4页
湖南工程学院基于CPLD的数字锁报告书.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

目 录一.设计总体思路1 1.1基本原理1 1.2总设计框图1二.单元电路设计2 2.1消除抖动模块2 2.2键盘扫描模块4 2.3七段数码显示电路模块5 2.4译码电路模块5 2.5 密码控制电路模块8 2.6 总电路10三.设计仿真10四.编程下载14五.总结与体会17六.参考文献18一、总体设计思路1.1基本原理:本次设计我把逻辑功能划分为两个大的模块:控制部分和处理部分。控制模块是整个系统的控制核心 ,负责接收其模块传来的输入信号 ,再根据系统的功能产生相应的控制信号送到相关的模块。具体操作如下:密码预先存入寄存器中,开锁时,输入密码存入另一寄存器中,当按下“确定”键时,启动比较器,比较两个寄存器中的内容,当结果相同时M1,LT绿灯亮,并开锁;当结果不同时M0,LF红灯亮,不开锁。用户需要修改密码时,先开锁,再按“设定密码”,清除预先存入的密码,通过键盘输入新的2位十进制数,然后再按下确定键完成操作。1.2总设计框图如下:键盘译码开锁LED显示输入密码寄存器键盘消抖密码预存寄存器绿灯亮键盘扫描红灯亮报警M=1消除密码输入两位十进制数密码修改YN2、 单元电路设计2.1 消除抖动模块我们使用的按键通常都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。然而,抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合都要用到。在这里,我们用软件去除抖动。当检测到键闭合时,执行一个延时程序产生数毫秒的延时,让前沿弹跳消失后再检测闭合;当发现键松开后,也给数毫秒的延时,当后沿弹跳消失后,再检测下一个键的输入。或者当前沿弹跳消失后,将检测到的信号所存,然后再输出,这样就不需要后沿延时了。消除抖动的电路封装图如下:2 程序如下:LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; LIBRARY altera; USE altera.maxplus2.ALL; ENTITY xiaodou IS PORT ( CLK,B_IN : IN STD_LOGIC; B_OUT : OUT STD_LOGIC ); END ; ARCHITECTURE a OF xiaodou IS signal Vcc, INV_B : std_logic ; signal A0, A1 : std_logic ; signal B0, B1 : std_logic ; BEGIN Vcc = 1 ; INV_B Vcc , q = A0 , clk = CLK, prn = Vcc, clrn = INV_B ); dff2 : dff PORT MAP (d =Vcc , q = A1 , clk = CLK, prn = Vcc, clrn = INV_B ); process (CLK) begin if CLKEVENT and CLK=1 then B0 = not A1; B1 = B0; end if ; end process ; B_OUT = not (B1 and not B0); END ;2.2 键盘扫描模块我们在键盘的四列输入口中输入一个低电平时钟扫描,当有按键被打下时,对应的行被键接通也呈现低电平状态,然后将此输入输出信号输出到键盘编码就可以进行键盘按键识别了。键盘扫描封装图如下:该模块程序如下:LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY SAOMIAO IS PORT ( CLK : IN STD_LOGIC ; CLK_SAOMIAO : OUT STD_LOGIC_VECTOR (4 downto 1) ); END ; ARCHITECTURE a OF SAOMIAO IS Signal M : STD_LOGIC_VECTOR(2 DOWNTO 1); SIGNAL N: STD_LOGIC_VECTOR(4 DOWNTO 1); Begin PROCESS (CLK) Begin IF CLKEvent AND CLK=1 THEN N = N+1; M =N(4 DOWNTO 3); END IF; END PROCESS; CLK_SAOMIAO BT=01;EBT=10;E NULL; END CASE;END PROCESS;PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1THEN NE=0000;C(6 downto 0)E=0001;C(6 downto 0)E=0010;C(6 downto 0)E=0011;C(6 downto 0)E=0100;C(6 downto 0)E=0101;C(6 downto 0)E=0110;C(6 downto 0)E=0111;C(6 downto 0)E=1000;C(6 downto 0)E=1001;C(6 downto 0)COCOE=0000;C(6 downto 0)F=0000;D(6 downto 0)F=0001;D(6 downto 0)F=0010;D(6 downto 0)F=0011;D(6 downto 0)F=0100;D(6 downto 0)F=0101;D(6 downto 0)F=0110;D(6 downto 0)F=0111;D(6 downto 0)F=1000;D(6 downto 0)F=1001;D(6 downto 0)E=0000;D(6 downto 0)=0111111; END CASE; END IF; END PROCESS;END; 2.5 密码控制电路模块密码控制电路是本次课题设计的核心部分,我们通过密码控制来断定数字锁的开或关。当密码输入时,按下确定键,输入数字和所存的密码进行比较,若相同则进入开锁状态。若输入密码不正确则立刻进入报警状态,然后按下清零键,重新输入密码。密码控制封装图如下: 具体程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY kongzhi IS PORT(E_IN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); F_IN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CO_IN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); K,M:OUT STD_LOGIC);END ;ARCHITECTURE luoji OF kongzhi IS SIGNAL G,H:STD_LOGIC_VECTOR(3 DOWNTO 0):0; SIGNAL S,EN,EN1: STD_LOGIC; SIGNAL COUNT1,COUNT2: STD_LOGIC:=0; SIGNAL CO: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CO_IN) begin IF CO_IN=1011THEN EN1=1; ELSIF CO_IN=1010THEN EN=0;EN1=0; END IF;if(S=1)and(en=1)and(count1=0) then G(3 downto 0)=E_IN(3 downto 0); H(3 downto 0)=F_IN(3 downto 0); count1=not(count1); end if;if(en1=1)and(count2=0) then if(E_IN(3 downto 0)= G(3 downto 0) and F_IN(3 downto 0)=H(3 downto 0) then k=1;EN=1;s=1; else k=0;m=1; end if; count2=not(count2);ELSif(en=0)and(en1=0) then count1=0;count2=0;k=0;s=0;m=0; end if;END PROCESS ;END;2.6总电路图如下:3、 设计仿真3.1消抖电路的仿真波形图:3.2键盘扫描模块仿真图:3.3七段数码显示电路仿真图:3.4键盘译码电路仿真波形图:4、 编程下载MAX+PLUS 支持Altera公司的FLEX10K,FLEX10KA,FLEX8000,MAX9000,MAX7000,Classic等系列可编程逻辑器件。 4.1选择器件 应参照设计电路的规模,所需工作速度等诸多因素对器件进行选择。这里以将上述电路下载到FLEX10K系列器件中的EPF10K10LC84为例进行说明。 (1)返回到编辑窗口 (2)在主菜单Assign中选择Device项,打开器件选择对话框 (3)单击Device Family 区的下拉列表,选择FLEX10K系列(4)在Devices的下拉列表中选择EPF10K10LC84 (5)选择OK 。对话框关闭即完成器件选择 4.2管脚锁定 管脚锁定即是将所设计的原理图的输入、输出信号定义到实际器件某个具体的管脚,此项工作可以由编译器自动分配,也可以由设计者根据设计要求进行人工分配。若进行人工分配,具体操作步骤如下: (1)在原理图编辑窗中用鼠标右键单击输入或输出信号 (2)在出现的下拉菜单中选择AssignPin/Location/Chip ,出现Pin/Location/Chip对话框 (3)在Node Name项中显示的应是待锁定管脚的输入或输出信号,在Pin项中键入想要锁定的管脚号码 (4)选择OK,则管脚号即分配在所选的输入输出信号上 (5)重复上述步骤,将所有输入输出信号的管脚锁定好总电路图如下:(6)在主菜单中,选FileSave保存文件 (7)再次编译项目,通过项目编译后即可生成一个.sof文件,此文件用于下载4.3器件编程/配置 此项工作即是完成将所设计的电路下载到实际器件中,使其具有所设计电路的功能。 在Altera器件中,一类为MAX系列,另一类为FLEX系列。其中MAX系列为CPLD结构,编程信息以EEPROM方式保存,故对这类器件的下载称为编程;FLEX系列有些类似于FPGA,其逻辑块LE及内部互连信息都是通过芯片内部的存储器单元阵列完成的,这些存储器单元阵列可由配置程序装入,存储器单元阵列采用SRAM方式,对这类器件的下载称为配置。因为MAX系列编程信息以EEPROM方式保存,FLEX系列的配置信息采用SRAM方式保存,所以系统掉电后,MAX系列编程信息不会丢失,而FLEX系列的配置信息会丢失,需每次系统上电后重新配置。 使用的器件是EPF10K10LC84,为FLEX系列。下面对其进行配置。 (1)将下载电缆一端插入LPT1(计算机的并行口,打印机口),另一端插入实验系统板,打 开实验系统的电源。 (2) 在主菜单MAX+PLUS 中选择Programmer,出现Programmer对话框。 (3)在出现的对话框中单击 configure,即可完成配置。 注:若在软件首次运行时,上述对话框可能皆为灰色,此时可从Options菜单下选择“Hardware Setup”对话框,在“Hardware Type”下拉框中选择“Byte Blaster”,单击“OK”即可。五、心得体会为期两周的课程设计结束了,刚开始由于对嵌入式系统不熟悉,拿到这个课题时毫无头绪,根本不知道从何处入手,并且在设计过程中遇到了很多的问题,但在陈老师的指导和自己的努力下,终于逐个解决了每一个难题。 在这两周中的学习使我对EDA这门课程有了进一步的了解,使我加强了动手、思考和解决实际问题的能力。并让我深刻的体会到,嵌入式系统的应用十分广泛,运行硬件描述语言,能很容易地设计出具有严格要求的数字锁。在做完每一个单元模块后,都要验证它是否能够满足此单元的功能。有时候就是按照了原理来连接,但就是不能实现预期的功能。这就需要细心地找问题,是不是哪根线坏了,还是哪块芯片坏了或接触不好,但有时也存在原理上的错误。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。在设计过程中,同时也暴露出了自身的许多不足,如自己自主解决问题的能力有所欠缺,这在以后需要更好的加强。同时在此设计过程中还用到了MAX+PLUS等软件,我更熟悉了此软件的使用,这对以后的工作和解决实际问题都有了很好的帮助。 我感觉本次课程设计我的收获还是颇多的!六、参考文献 1. 康华光主编.电子技术基础(数字部分),高等教育出版社。2. 阎石主编. 电子技术基础(数字部分),清华大学出版社。3. 陈大钦主编,电子技术基础实验,高等教育出版社。4. 彭介华主编,电子技术课程设计指导,高等教育出版社。5. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。6.荀殿栋,徐志军编著,数字电路设计实

温馨提示

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

评论

0/150

提交评论