




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 论 文(设计)题 目:基于 FPGA 电子密码锁门禁系统的设计 学 号: 姓 名:年 级:学 院:专 业:指导教师:完成日期:基于 FPGA 电子密码锁门禁系统的设计摘 要经过市场调查,电子密码锁的性能与安全性已经远超传统机械锁,而且消费者也越来越能够倾向于电子密码锁的使用。随着芯片的快速发展,电子密码锁的性能日益提高,价格也变得更便宜。电子密码锁倍受青睐的原因是它有能够根据个人需求订制特定的功能,如电子锁最基本的功能有:保密功能,密码错误警报,修改密码等;另外,还可按照消费者需求外加功能,如:火灾警报,弱电提醒电量不足,自动上锁等。现在科技进步飞速,生产商只需要基于芯片以及简单电路就能制造出性价比较高的电子锁。总之,电子密码锁逐渐会适用在每个家庭之中。市面上存在一些基于单片机的密码锁,其安全性和性能必定远不及基于 FPGA。因为单片机运行速度慢,逻辑性差,所以不利于将电子密码锁集成到大型的门禁系统当中;相反,FPGA 则克服了这些缺点,而且其具有处理更复杂功能的能力,能够实现更多的功能。经过市场调查后发现,基于 FPGA 的电子密码锁具有功能实用且多样化,超高性能,较低成本等特点,具有一定的实际应用价值。关键词:现场可编程门阵列;电子密码锁;程序仿真;基于 FPGA 电子密码锁门禁系统的设计AbstractAccording to the market research, electronic code locks have laid over traditional mechanical locks in performance and safety, which prompt consumers to use electronic code locks much more likely than ever before.With the rapid development of the chips, electronic code locks become much more accessible and acceptable both in performance and price. Whats more, here are a few reasons for electronic code locks popularity. For one thing, nowadays, electronic code locks can be customized specifically according to individual needs. For instance, confidentiality function, password error alert and changing password, etc. For another, there are more functions which can be applied accordingly, such as fire alarming, reminding the lack of electricity and automatic locking,etc. Thanks to the significant progress of technology, some manufacturers are able to produce cost-effective electronic locks which are simply based on chips and circuits. In short, the electronic code lock will apply to each family gradually.At present, some code locks based on the micro-controller in the market cannot hold a candle to those which are based on FPGA both in performance and safety. Since micro-controller is poor in speed and logic, its not suitable to apply such code locks to large-scale access systems. On the contrary, FPGA can overcomes such shortcomings effectively. Besides, it has the ability to process complex instructions which may benefit to implementing more functions. To sum up, it can be concluded according to the market research that electronic code locks, based on FPGA possess the characteristics of functional, diversified, high-performance and low-cost, which have the practical application value.Keywords:FPGA(Field-Programmable Gate Array);electronic code lock;simulation;基于 FPGA 电子密码锁门禁系统的设计目 录1 绪论 .11.1 电子密码锁的发展趋势 .11.2 电子密码锁发展背景及国内外现状 .21.3 设计的目的与意义 .21.4 设计方案对比 .21.5 设计内容与要求 .32 系统硬件综述 .42.1 系统设计方案 .42.2 电子密码锁系统组成 .42.3 主控模块 .52.3.1 Cyclone 器件的介绍 .52.4 键盘模块电路设计 .52.4.1 矩阵键盘的设计与原理 .52.4.2 键盘具体操作说明 .62.5 显示模块电路设计 .62.5.1 LCD1602 的简介 .62.5.2 显示模块原理 .72.6 存储模块电路设计 .82.6.1 24C02 的简介 .82.6.2 存储模块原理 .92.7 报警电路设计 .93 系统软件设计与仿真 .103.1 分频部分程序设计 .103.2 键盘驱动部分 .103.2.1 键盘驱动程序设计 .103.2.2 键盘驱动程序仿真 .133.3 蜂鸣器驱动部分 .133.3.1 蜂鸣器驱动程序设计 .13基于 FPGA 电子密码锁门禁系统的设计3.3.2 蜂鸣器驱动程序仿真 .143.4 LCD1602 驱动部分 .153.4.1 LCD1602 驱动程序设计 .153.4.2 LCD1602 驱动程序仿真 .194 系统实现 .204.1 系统功能验证 .204.2 结论 .22致谢 .23参考文献 .25附件 .27基于 FPGA 电子密码锁门禁系统的设计11 绪论 1.1 电子密码锁的发展趋势在当今社会,防止盗贼入室,加强防盗工作已经成为每家每户的必要工作。从古至今,锁的种类日新月异,性能也是越来越强 1。然而,目前中国大多数人仍在使用传统的机械锁,而且目前用外键解锁假冒机械锁的概率极高。当今时代,电子产品更新速度日益加快,电子设计技术更是突飞猛进,继而造成电子产品的研发周期缩短,开发成本降低,可兼容性和可扩展性变好,为此便引入了 EDA 技术。所谓 EDA(Electronic Design Automation)技术,就是电路设计者通过 Quartus软件采取从上而下的方式对电路进行设计,即在电脑上通过软件利用 verilog HDL 硬件描述语言完成编程,再利用计算机软件自动完成编译和仿真,最后对芯片进行编译,管脚配置和程序烧入,使其具备理想的功能 2。基于 FPGA 的电子密码锁是当前新一代门禁系统的核心,电子密码锁以其独特的优点逐渐取代现有的传统机械锁,已经成为现代锁业的发展趋势,电子密码锁在不久将来会进入每家每户的必备品。电子密码锁涉及领域广泛,包含电子,机械,计算机技术,通信技术,生物技术等等诸多新兴技术,它在解决重要部门出入口实现安全防范管理中扮演核心角色,同时也适用于各个领域,如工业,民用,军用,医院,家庭等等 3。而经过市场调查,目前市面上的电子密码锁的主控芯片大部分是微型计算机的。单片机与 FPGA 的区别在于:单片机是以软件的形式运行所写代码,运行速度慢,但是 FPGA 是可用电脑编辑的数字逻辑电路集成芯片,设计者所设计的程序内容,实际上是在设计一个数字电路,因而运行速度相对较快。另外,单片机在实际应用中,程序容易跑飞,所以系统可靠性较差 4。而采用基于 FPGA 的电子密码锁可以实现性能更佳,功能更加全面,能随时按照需求进行升级和扩展,使系统具有相当大的灵活性,因而更受消费者的青睐。国外对电子密码锁的研究比国内早很多,尤其是在欧美发达国家,但是基于 FPGA 的电子密码锁也只是在近几年在欧美国家和亚洲部分国家研究使用。在国内,随着国内生产商生产硬件的技术逐渐成熟,国内市场也基于 FPGA 电子密码锁门禁系统的设计2已逐渐进入中高速发展阶段,所以电子密码锁在国内的市场潜力巨大,发展前景值得期待 4。1.2 电子密码锁发展背景及国内外现状国内电子锁当下还集中存在一些主要的问题,第一是国内还未颁布关于电子密码锁的产品标准,这对电子锁产品的分类、规格和型号标准都是一大空缺,给生产商和用户带来了诸多不便;第二是电子锁的可靠性,当前电子锁的可靠性很大程度都是取决于电子元器件和制造工艺的严格把关。而当前国内的电子锁生产商因为国内元器件的生产质量问题而不敢使用;第三是电子密码锁的电源问题,当下电子锁电源问题主要集中于整体系统功耗大,备用电源缺少自动充电的功能等 5。而目前在西方发达国家,电子密码锁的技术已经相当发达,种类多样,在我国,电子密码锁开发的水平也在不断提高,但还稍落后于西方发达国家的技术水准,所以电子密码锁在我国的发展前景非常可观。希望在国家政策的支持下,我国的电子科学技术能不断提高,使得电子锁也能在我国成为每家每户的必备品 5。1.3 设计的目的与意义当前是信息时代,互联网发展迅速,因特网上资料的传播更是迅速,同时,个人甚至团体的隐私保护成了大问题。虽然现在云盘发展的很好,但依然经常看到云盘里资料被盗窃的新闻。所以,将重要信息锁在身边才是最踏实的。但传统的机械锁又十分脆弱,所以电子密码锁便名正言顺的成了最好的管家。电子密码锁不仅使用方便,而且安全系数高,是个人、企事业单位的最佳选择 7。1.4 设计方案对比方案一:基于微型计算机的电子密码锁设计随着微型计算机开发技术的日益成熟,单片机的性能和特点也越来越人性化,受到广大设计者的青睐,更因为其成本低、体积小、功耗低等特性被广泛运用到人们日常生活当中 10。由于微型计算机的可编程性,设计者可以根据实际使用情况增加密码数目,而且具有方便随时修改密码的基于 FPGA 电子密码锁门禁系统的设计3优点。但是单片机以软件形式运行代码,在实际运用中程序容易跑乱,导致系统的可靠性不高,这在产品生产和使用中是致命的 9。方案二:基于 FPGA 的电子密码锁设计随着数字集成电路的发展,FPGA 的开发与使用也是越来越广泛。因为 FPGA 克服了单片机程序易跑飞,系统可靠性差的缺点,让基于 FPGA控制的电子产品的性能更上一层,这让电子密码锁的功能扩展与系统的嵌入变得更加灵活。基于 FPGA 的电子密码锁系统分为矩阵键盘模块、警报模块、显示模块等。该方案的电子密码锁为 6 位数字密码,输入密码错误后会发出警报,且用户可修改密码。从上述两个方案可以看出,采用以 FPGA 为主控芯片的电子密码锁不仅性价比更高,而且可以进行功能的扩展,所以采取方案二。1.5 设计内容与要求1、设计一个基于 FPGA 为核心控制的电子密码锁,密码为 6 位数字,开锁后可修改密码,且掉电保存;2、按键输入密码,在 LCD1602 中显示输入状态;3、密码输入正确,则电磁继电器打开,led 灯亮;输入错误,则蜂鸣器发出警报;按复位键恢复原始状态;基于 FPGA 电子密码锁门禁系统的设计42 系统硬件综述2.1 系统设计方案该电子密码锁系统由主控芯片(FPGA),显示电路,报警电路,开/关门电路和键盘组成,而主控芯片又可分为按键处理部分,控制部分和显示部分。该系统总框图如图 2-1 所示图 2-1 系统总体框图2.2 电子密码锁系统组成电子密码锁系统主要由 FPGA 主控芯片、LCD1602、电磁继电器、蜂鸣器、LED 灯、按键和复位电路组成。FPGA 主控芯片:FPGA 是整个电子密码锁系统的控制核心,接收按键开关状态改变发来的信号,然后再发出处理信号,是按键开关与其他设备的桥梁。LCD1602:充当显示屏,时刻显示电子密码锁的输入状态,初始显示“input password”,当按动按键输入密码时,密码以“*”的形式逐一显示;电磁继电器:充当锁的作用,它是通过电信号使电磁铁产生磁性,从而影响触电位置来达到状态变化的效果。当按键输入正确密码按下确认键后,通过 FPGA 的 I/O 口向电磁继电器发送信号,将电信号转变为机械能,实现锁的开启与闭合;扫描模块 译码模块主控模块显示模块矩阵键盘报警模块FPGA开/关门电 路基于 FPGA 电子密码锁门禁系统的设计5蜂鸣器:充当警报器的作用。若输入错误密码,按下确认键后,蜂鸣器收到电信号,出发蜂鸣器发声。键盘:16 个按键组成 4x4 键盘,分别有 09 数字键,重新输入、恢复密码、确认键、闭合键、设置新密码、确认新密码。数字键用于输入密码;按下重新输入键后 LCD 清空,重新输入密码;恢复密码键是当忘记密码时,恢复初始密码 012345;确认键是输入密码后确认输入完成,给芯片发送信号;闭合键是当电磁继电器打开后,按下闭合键,电磁继电器关闭,充当闭合密码锁的作用;按下新密码键后先输入旧密码,再输入新密码,按下确认新密码键后新密码确定。复位电路:用于使系统恢复初始状态。2.3 主控模块2.3.1 Cyclone 器件的介绍Cyclone 现场可编辑门列阵是基于 1.5V,0.13m,全覆铜静态随机存储器工艺,密度高达 20060 逻辑元件和高达 288kb 的随机存取存储器。Cyclone 设备支持各种 I/O 标准,包括数据速率高达 311 兆比特每秒(Mbps)和 66MHz,32 位,可用于连接和支持 ASSP 和 ASIC 设备的外部设备互连总线(PCI )。 Altera 公司还提供新的低成本串口配置设备来配置 Cyclone 设备。2.4 键盘模块电路设计2.4.1 矩阵键盘的设计与原理键盘模块中总共有 16 个按键,每个按键都与 FPGA 的 I/O 口连接。识别按键的方法采用的是通用的列扫描法。列扫描法的原理是先用上拉电阻,这样以后,当没有按键按下时,所有输入端都是高电平,说明无按键按下;若按键按下,则为低电平。首先检测列值的状态,若检测发现有一列的电平为低,则说明这一列上的四个按键中有按键被按下;如果所有列线均为高电平,则没有按键按下。最后,确定了列线状态后,以同样的方法确定行线状态,即可确定按键具体位置15。矩阵键盘模块电路如图 2-2 所示。基于 FPGA 电子密码锁门禁系统的设计6图 2-2 矩阵键盘模块电路2.4.2 键盘具体操作说明键盘为 4x4 的矩阵键盘,其中十个键代表数字 09,其余六个按键分别代表重新输入、恢复密码、确认键、闭合键、设置新密码、确认新密码。数字键用于输入密码;按下重新输入键后 LCD 清空,可重新输入密码;恢复密码键是当忘记密码时,恢复初始密码 012345;确认键是输入密码后确认输入完成,给芯片发送信号;闭合键是当电磁继电器打开后,按下闭合键,电磁继电器关闭,充当闭合密码锁的作用;按下新密码键后先输入旧密码,再输入新密码,按下确认新密码键后新密码确定。当输入错误密码并确认后,电磁继电器不打开,蜂鸣器工作发出警报,此时必须按复位键才能恢复原始状态。2.5 显示模块电路设计2.5.1 LCD1602 的简介字符型液晶显示模块是一种专门用于显示字母、数字等点阵 LCD,常用的为 LCD1602 字符型液晶显示器。LCD1602 分为带背光和不带背光,但是两者在应用中无差别。在本次设计中,采用的是带背光的 LCD1602。以下为 16 脚接口的各引脚说明。基于 FPGA 电子密码锁门禁系统的设计72.5.2 显示模块原理该系统设计的显示模块为了能达到显示内容多样化以及给予使用者提醒的作用,系统的显示模块采用了 LCD1602 作为显示屏而取代了数码管。LCD1602 能够显示 16 列 2 行,即 32 个字符。每一个字符都有一个固定的代码,模块会自动识别,把相应的字符显示出来。密码锁系统上电后,LCD1602 第一行显示“Input Password ”,第二行用于显示系统当前状态。开锁时,按下数字按键输入密码,每按一次LCD 上出现一个“*”,输入六位密码也就会显示六个“*”,按下确认键,LCD 显示为“Right Open!”,同时 LED 灯亮起,电磁继电器打开。若密码输入错误,则 LCD 显示“Wrong Retry!”,同时警报器响起,需按复位键重新输入。显示模块电路如图 2-3 所示。基于 FPGA 电子密码锁门禁系统的设计8图 2-3 显示模块电路2.6 存储模块电路设计2.6.1 24C02 的简介(1)24C02 描述24C02 是电可擦除 PROM,即 E2PROM。待机电流和工作电流分别为1A 和 1mA。24C02 具有页写能力,每页为 8 字节。 24C02 具有 8-pin PDIP 和 8-pin SOP 两种封装形式。(2)24C02 特点基于 FPGA 电子密码锁门禁系统的设计92.6.2 存储模块原理该模块中数据的存储芯片选用的是 24C02,该芯片是电可擦除PROM,即 E2PROM。整个电子密码锁系统有掉电保存密码的关键就是这个芯片。首先对 24C02 初始化,并写入初始密码“012345”进行储存,以便将来用户需要更改密码时与新密码的对比。当用户输入正确密码并确认后,即可按下“修改密码”键进行修改密码,当确认新密码后,新密码便存储在 24C02 中,当下次给密码锁上电时,密码便为上次修改的新密码。密码存储模块电路如图 2-4 所示。图 2-4 密码存储模块电路2.7 报警电路设计当输入密码按下确认键后,数据传送至主控芯片,主控芯片将输入的密码与 24C02 里存储的数据进行比较,若数据不同,则驱动蜂鸣器发出警报。即该模块设计中,当密码不正确时,就会进行报警。报警模块电路如图 2-5 所示,在本模块电路中,由于芯片的电流不足以驱动蜂鸣器工作,于是使用了三极管放大电流进而达到驱动蜂鸣器的目的,三极管另外一个作用就是充当开关:当 I/O 口输出高电平时,三极管截止,蜂鸣器无法工作;当 I/O 口输出低电平时,三极管处于导通状态,蜂鸣器正常工作。同时使用 1k 电阻限流。基于 FPGA 电子密码锁门禁系统的设计10图 2-5 报警模块电路3 系统软件设计与仿真3.1 分频部分程序设计每个模块需要不同的频率,但是分频器的程序都是差不多的。因为芯片为 50MHz 时钟,需要经过分频后得到不同的频率,分频后获得的新时钟周期的公式为:新时钟周期= ,其中 cnt 即为计数子。msM50)(2计 数 子 位 宽分频部分程序如下所示:always (posedge i_clk, negedge i_rst_n)if (!i_rst_n)cnt = 0;elsecnt = cnt + 1b1;wire key_clk = cnt19;由于在 always 敏感列表里既有时钟信号 i_clk 也有清零信号 i_rst_n,所以显然这是异步清零的分频器,即计数器不需要等待下一个时钟信号来临,当接收到清零信号时可以直接清零。3.2 键盘驱动部分3.2.1 键盘驱动程序设计矩阵键盘驱动程序的关键在于以下的状态机部分。首先检测键盘行值是否出现低电平,即检测是否有按键按下,若有,则依次扫描各列,否则一直处于“没有按键按下”的状态。状态机部分程序如下所示。case (current_state) /根据条件转移状态基于 FPGA 电子密码锁门禁系统的设计11NO_KEY_PRESSED : / 没有按键按下if (row != 4hF)next_state = SCAN_COL0;elsenext_state = NO_KEY_PRESSED;SCAN_COL0 : / 扫描第 0 列 if (row != 4hF)next_state = KEY_PRESSED;elsenext_state = SCAN_COL1;SCAN_COL1 : / 扫描第 1 列 if (row != 4hF)next_state = KEY_PRESSED;elsenext_state = SCAN_COL2; SCAN_COL2 : / 扫描第 2 列if (row != 4hF)next_state = KEY_PRESSED;elsenext_state = SCAN_COL3;SCAN_COL3 : / 扫描第 3 列if (row != 4hF)next_state = KEY_PRESSED;elsenext_state = NO_KEY_PRESSED;KEY_PRESSED : / 有按键按下if (row != 4hF)next_state = KEY_PRESSED;elsenext_state = NO_KEY_PRESSED; 基于 FPGA 电子密码锁门禁系统的设计12Endcasealways (posedge key_clk, negedge i_rst_n)if (!i_rst_n)begincol = 4h0;key_pressed_flag = 0;endelsecase (next_state) /根据次态给相应寄存器赋值NO_KEY_PRESSED : / 没有按键按下begincol = 4h0;key_pressed_flag = 0; / 清键盘按下标志endSCAN_COL0 : / 扫描第 0 列col = 4b1110;SCAN_COL1 : / 扫描第 1 列col = 4b1101;SCAN_COL2 : / 扫描第 2 列col = 4b1011;SCAN_COL3 : / 扫描第 3 列col = 4b0111;KEY_PRESSED : / 有按键按下begincol_val = col; / 锁存列值row_val = row; / 锁存行值key_pressed_flag = 1; / 置键盘按下标志 endendcase基于 FPGA 电子密码锁门禁系统的设计13这两个状态机为摩尔型有限状态机,即输出只和状态有关而与输入无关。这个状态机是这样工作的:在状态机工作之前需要有外部按键按下,当按键按下后,col3:0出现低电平输出,由此开始工作。比如:我们模拟按下了第 3 行第 3 列的按键,则列输出为 4b1011,根据状态机程序检测行值 row3:0为 4b1011 不等于 4b1111,故标志有按键按下,同时锁存行值、列值。键盘驱动程序在 Quartus10.0 平台上全编译后,编译报告如图 3-1所示,从得到的编译报告可知,该模块总计逻辑器件 40 个,总计引脚数19 个。3-1 键盘驱动程序编译报告3.2.2 键盘驱动程序仿真由上一节的键盘驱动程序设计中可看出,因为 always 敏感列表里包含了 i_clk 和 i_rst_n,所以显然这个状态机是异步清零的,键盘驱动程序仿真如图 3-2 所示,从仿真波形可清晰地看见,当 i_rst_n 变为低电平时,所有输出信号立即清零,即模拟了按下重置键后,所有输出信号初始化的功能。从图 3-2 中还可看出,当行输入 row3:0为 4b1011,且列输出col3:0为 4b1011 时,按键标志位 key_pressed_flag 置 1,输出高电平,表明有按键按下,同时相应寄存器锁存行值、列值后,输出键值keyboard_val 为 8hf9,这就是在矩阵键盘上按下第三行第三列按键的仿真。基于 FPGA 电子密码锁门禁系统的设计14图 3-2 键盘驱动程序仿真波形图3.3 蜂鸣器驱动部分3.3.1 蜂鸣器驱动程序设计在报警电路设计的分析一节中已经提出,若 I/O 口输出高电平,则蜂鸣器截止不工作;若 I/O 口输出低电平,则蜂鸣器导通正常工作。因此在蜂鸣器驱动程序设计中只需设计两个状态即可,用 if-else 语句即可实现指定功能。蜂鸣器驱动部分程序如下所示,always (posedge i_clk, negedge i_rst_n)if (!i_rst_n)speek=1;elsebeginif(tim=2b00)speek=1;else if(tim=2b01)speek=0;end由于 always 敏感列表中有 i_clk 和 i_rst_n 两个敏感事件,所以这是异步置位的。蜂鸣器驱动程序在 Quartus10.0 平台上全编译后,编译报告如图 3-3 所示,从得到的编译报告可知,该模块总计逻辑器件 1 个,总计引脚数 5 个。图 3-3 蜂鸣器驱动程序编译报告基于 FPGA 电子密码锁门禁系统的设计153.3.2 蜂鸣器驱动程序仿真正如上节中关键程序所示,当 i_rst_n 为低电平时, speek 输出为 1,相当于 I/O 口输出高电平,则此时蜂鸣器不工作;当输入信号 tim1:0为2b00 时, speek 输出为 1,I/O 口输出高电平,蜂鸣器不工作;当输入信号 tim1:0为 2b01 时,speek 输出 0,I/O 口输出低电平,蜂鸣器不工作;蜂鸣器驱动仿真波形如图 3-4 所示。图 3-4 蜂鸣器驱动仿真波形3.4 LCD1602 驱动部分3.4.1 LCD1602 驱动程序设计在系统运行过程当中 LCD 只进行写入操作,一是写入指令,二是写入数据,因为 RW 为读写信号线,当 RW 为低电平时进行写操作,所以RW 应始终为 0。又 E 端为使能端,当时钟信号上升沿来临时,LCD 执行命令,因此只需要操作 RS 信号即可。当 RS 为 1 时,LCD 写入数据;当RS 为 0 时,LCD 写入指令。 LCD1602 驱动程序中运用到了两个摩尔型有限状态机,一个是对 RS 的控制和状态的转换,另一个是在相应状态下数据的逐一写入。状态机部分程序如下所示:对 RS 的控制和状态的转换的状态机:case(current_state)IDLE : next_state = DISP_SET; / 写指令,初始化DISP_SET : next_state = DISP_OFF;DISP_OFF : next_state = CLR_SCR;CLR_SCR : next_state = CURSOR_SET1;CURSOR_SET1 : next_state = CURSOR_SET2;CURSOR_SET2 : next_state = ROW1_ADDR;基于 FPGA 电子密码锁门禁系统的设计16ROW1_ADDR : next_state = ROW1_0; / 显示第一行ROW1_0 : next_state = ROW1_1;ROW1_1 : next_state = ROW1_2;ROW1_2 : next_state = ROW1_3;ROW1_3 : next_state = ROW1_4;ROW1_4 : next_state = ROW1_5;ROW1_5 : next_state = ROW1_6;ROW1_6 : next_state = ROW1_7;ROW1_7 : next_state = ROW1_8;ROW1_8 : next_state = ROW1_9;ROW1_9 : next_state = ROW1_A;ROW1_A : next_state = ROW1_B;ROW1_B : next_state = ROW1_C;ROW1_C : next_state = ROW1_D;ROW1_D : next_state = ROW1_E;ROW1_E : next_state = ROW1_F;ROW1_F : next_state = ROW2_ADDR;ROW2_ADDR : next_state = ROW2_0; / 显示第二行ROW2_0 : next_state = ROW2_1;ROW2_1 : next_state = ROW2_2;ROW2_2 : next_state = ROW2_3;ROW2_3 : next_state = ROW2_4;ROW2_4 : next_state = ROW2_5;ROW2_5 : next_state = ROW2_6;ROW2_6 : next_state = ROW2_7;ROW2_7 : next_state = ROW2_8;ROW2_8 : next_state = ROW2_9;ROW2_9 : next_state = ROW2_A;ROW2_A : next_state = ROW2_B;ROW2_B : next_state = ROW2_C;基于 FPGA 电子密码锁门禁系统的设计17ROW2_C : next_state = ROW2_D;ROW2_D : next_state = ROW2_E;ROW2_E : next_state = ROW2_F;ROW2_F : next_state = ROW1_ADDR;default : next_state = IDLE ;endcase在相应状态下数据的逐一写入的状态机:case(next_state)/ 写指令,初始化IDLE :begin lcd_data = 8hxx;lcd_rs = 0;end DISP_SET :begin lcd_data = 8h38;lcd_rs = 0;endDISP_OFF :begin lcd_data = 8h08;lcd_rs = 0;end CLR_SCR :begin lcd_data = 8h01;lcd_rs = 0;endCURSOR_SET1:begin lcd_data = 8h06;lcd_rs = 0;endCURSOR_SET2:begin lcd_data = 8h0C; lcd_rs = 0;end/ 写数据,显示第一行ROW1_ADDR :begin lcd_data = 8h80;lcd_rs = 0;endROW1_0 :begin lcd_data = row1_val127:120;lcd_rs = 1;endROW1_1 :begin lcd_data = row1_val119:112;lcd_rs = 1;endROW1_2 :begin lcd_data = row1_val111:104;lcd_rs = 1;endROW1_3 :begin lcd_data = row1_val103: 96;lcd_rs = 1;endROW1_4 :begin lcd_data = row1_val 95: 88;lcd_rs = 1;endROW1_5 :begin lcd_data = row1_val 87: 80;lcd_rs = 1;endROW1_6 :begin lcd_data = row1_val 79: 72;lcd_rs = 1;endROW1_7 :begin lcd_data = row1_val 71: 64;lcd_rs = 1;endROW1_8 :begin lcd_data = row1_val 63: 56;lcd_rs = 1;endROW1_9 :begin lcd_data = row1_val 55: 48;lcd_rs = 1;endROW1_A :begin lcd_data = row1_val 47: 40;lcd_rs = 1;endROW1_B :begin lcd_data = row1_val 39: 32;lcd_rs = 1;endROW1_C :begin lcd_data = row1_val 31: 24;lcd_rs = 1;end基于 FPGA 电子密码锁门禁系统的设计18ROW1_D :begin lcd_data = row1_val 23: 16; lcd_rs = 1;endROW1_E :begin lcd_data = row1_val 15: 8;lcd_rs = 1;endROW1_F :begin lcd_data = row1_val 7: 0;lcd_rs = 1;end/ 写数据,显示第二行ROW2_ADDR :begin lcd_data = 8hC0;lcd_rs = 1;endROW2_0 :begin lcd_data = row2_val127:120;lcd_rs = 1;endROW2_1 :begin lcd_data = row2_val119:112;lcd_rs = 1;endROW2_2 :begin lcd_data = row2_val111:104;lcd_rs = 1;endROW2_3 :begin lcd_data = row2_val103: 96;lcd_rs = 1;endROW2_4 :begin lcd_data = row2_val 95: 88;lcd_rs = 1;endROW2_5 :begin lcd_data = row2_val 87: 80;lcd_rs = 1;endROW2_6 :begin lcd_data = row2_val 79: 72;lcd_rs = 1;endROW2_7 :begin lcd_data = row2_val 71: 64;lcd_rs = 1;endROW2_8 :begin lcd_data = row2_val 63: 56;lcd_rs = 1;endROW2_9 :begin lcd_data = row2_val 55: 48;lcd_rs = 1;endROW2_A :begin lcd_data = row2_val 47: 40;lcd_rs = 1;endROW2_B :begin lcd_data = row2_val 39: 32;lcd_rs = 1;endROW2_C :begin lcd_data = row2_val 31: 24;lcd_rs = 1;endROW2_D :begin lcd_data = row2_val 23: 16;lcd_rs = 1;endROW2_E :begin lcd_data = row2_val 15: 8;lcd_rs = 1;endROW2_F :begin lcd_data = row2_val 7: 0;lcd_rs = 1;endendcase LCD1602 驱动程序在 Quartus10.0 平台上全编译后,编译报告如图3-5 所示,从得到的编译报告可知,该模块总计逻辑器件 75 个,总计引脚数 13 个。基于 FPGA 电子密码锁门禁系统的设计19图 3-5 LCD1602 驱动程序编译报告3.4.2 LCD1602 驱动程序仿真LCD1602 驱动程序仿真波形如图 3-6 所示,每当使能端从“0”变为“1”时,LCD 执行一次指令。当 RS 为“0”时, LCD 写指令,并完成初始化;当 RS 为“1”时, LCD 写数据,LCD 逐一写入 Input password 的 ASCII 码。图 3-6 lcd1602 驱动初始化仿真波形基于 FPGA 电子密码锁门禁系统的设计204 系统实现4.1 系统功能验证如图 4-1 所示为该系统上电后初始状态的实物图图 4-1 系统初始状态输入正确密码按下确认键后,如图 4-2 所示,开锁功能实现。基于 FPGA 电子密码锁门禁系统的设计21图 4-2 系统开锁状态按下重置键恢复为初始状态,输入错误密码按下确认键后,或者密码输入超过六位,系统发出警报。如图 4-3 所示,警报功能实现。图 4-3 系统警报状态系统开锁后,按下设置新密码键,即可进入设置新密码状态,如图 4-4 所示。基于 FPGA 电子密码锁门禁系统的设计22图 4-4 设置新密码4.2 结论本系统设计采用 EP1C3T100C8N 为主控芯片,主要通过计算机软件平台 Quartus编程,再结合外围电路实现电子密码锁的基本功能:若用户输入正确密码并按下确认键,则模拟密码锁即电磁继电器就会打开,LED 灯亮,LCD 显示“Input Password”以提示系统当前状态为开锁状态,密码锁开锁后系统不会自动闭锁,需要用户自己按下闭锁按钮才能将模拟密码锁闭合;若用户输入错误密码,则蜂鸣器发出持续警报,LCD 显示“Wrong Retry!”以警告系统当前状态,若用户要解除警报,需按下复位按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江国考试题及答案
- 河南历年高考试题及答案
- 线缆业务基础知识培训课件
- 网咖安全制度培训课件
- 煤泥制备复合材料-洞察与解读
- 线控底盘课件
- 2025国考辽源市航运管理岗位行测题库含答案
- 2025国考辽阳市国际合作岗位申论题库含答案
- 2025国考本溪市西班牙语翻译岗位申论必刷题及答案
- 缘虹黑茶课件
- 小学四年级道德与法治上册教材分析
- 2023年自学考试历年试题自学考试小学英语教育试题复习参考资料
- 艺术疗育余涵
- 路基路面工程现场检测技术培训课件
- 中考复习《中考经典错题集》课件
- 2型糖尿病防治指南解读共120张课件
- 大学生计算思维调查问卷
- 铁路下穿高速公路安全评价报告
- 《中国民间故事》整本书阅读交流展示课ppt课件(完美版) 小学语文五年级必读书目快乐读书吧
- 运动营养学全套教学课件
- 麻醉机注册技术审查指导原则(2019年 )
评论
0/150
提交评论