基于单片机的电子门禁系统设计毕业设计论文(C语言程序)

上传人:无*** 文档编号:78743429 上传时间:2022-04-22 格式:DOC 页数:59 大小:1.15MB
收藏 版权申诉 举报 下载
基于单片机的电子门禁系统设计毕业设计论文(C语言程序)_第1页
第1页 / 共59页
基于单片机的电子门禁系统设计毕业设计论文(C语言程序)_第2页
第2页 / 共59页
基于单片机的电子门禁系统设计毕业设计论文(C语言程序)_第3页
第3页 / 共59页
资源描述:

《基于单片机的电子门禁系统设计毕业设计论文(C语言程序)》由会员分享,可在线阅读,更多相关《基于单片机的电子门禁系统设计毕业设计论文(C语言程序)(59页珍藏版)》请在装配图网上搜索。

1、洛阳理工学院毕业设计(论文)基于单片机的门禁系统的设计摘 要门禁系统设计上采用单片机作为控制核心,它相当于计算机的CPU,它负责整个系统输入、输出信息的处理和储存、控制等等。单片机外围加蜂鸣器控制电路、开门指示灯电路、电控锁控制电路以及LCD液晶显示电路等。常见的门禁系统有:密码门禁系统,非接触卡门禁系统,指纹、虹膜及掌型等生物识别门禁系统。门禁系统近几年发展很快,被广泛应用于管理控制系统中。本次设计采用密码与非接触相结合,构成一个完整系统。门禁系统主要由CPU、工作指示电路、振荡电路、蜂鸣器电路、门控锁电路、矩阵键盘、读卡模块、显示模块等组成。该门禁系统采用射频卡完成刷卡进门,按刷卡出门等功

2、能。其工作原理为:当刷卡时,蜂鸣器响一下,如卡权限获得允许,显示模块显示卡号,同时继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭。当按下出门按钮时,继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭。当输入初始密码时,若输入正确,继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭。若输入错误,则蜂鸣器报警,几秒自动停止,也可手动关闭蜂鸣器。此外,程序中还增加了射频卡权限判断的功能,当遇到合法卡时显示卡号,门锁打开,延时10s自动关闭,当遇到非法卡时不显示卡号门锁不开。本系统设计简单、性能优良,具有一定

3、的实用性。关键词:门禁,射频卡,电控锁,液晶显示,单片机控制Access Control System DesignABSTRACT Entrance guard system uses 89C52 single chip microcomputer as control core and periphery add a buzzer control circuit, open the door indicator light circuit, control circuit and control lock LCD display circuit, etc. Entrance guard s

4、ystem mainly by the CPU and reset circuit, the power indicative circuit, work instructions circuit, oscillating circuit, a buzzer circuit, door control circuit, go out and lock button reading card module, display module. The entrance guard system uses rf card complete charge take the door, according

5、 to credit to go out, and other functions. Its working principle is: when credit, a buzzer rang, such as card to be allowed to access, display module display card number, and at the same time relay action will open the door lock, indicator light, delay after period of time relay action will again on

6、ly door lock, lights go out. When the press out button, the relay action will open the door lock, indicator light, delay after period of time relay action will again only door lock, lights go out. When the input password, if you input the correct, relay action will open the door lock, indicator ligh

7、t, delay after period of time relay action will lock door lock again. In addition, the program will also increase the rf card authority judgment function, when facing legal card showed the card number, door open, delay 10 s automatically shut off, when meeting the illegal CARDS dont show the card nu

8、mber locks dont open. The system is simple in design, good performance, and has practical value!KEY WORDS: Access Control,Radio FrequencyCard, Electronically Controlled Lock,LCD,MCU55毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,

9、也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 目录前 言1第1章 概述21.1 系统方案论证21.1.1 选题论证2

10、1.1.2 方案选择21.1.3 CPU的选择31.1.4 射频卡的选择51.1.5 液晶显示的选择7第2章 系统硬件电路设计112.1 系统电路原理112.1.1 门禁系统主要模块112.1.2 门禁系统工作原理112.2 单片机资源分配122.3 最小系统的设计12第3章 系统软件设计143.1 Keil简介143.1.1 KeilC51系统概述143.1.2 Keil软件的使用143.2 主程序分析193.3 子程序分析203.3.1 显示模块程序分析213.3.2 键盘程序273.2.3 读卡程序33结 论35谢 辞36参考文献37附录38外文资料翻译46前 言随着科学技术的发展和企业

11、管理模式的日趋成熟,高度科学化的企业管理已成为企业生存的有力保障。出入口门禁安全管理系统是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。适用各种机要部门,如银行、宾馆、机房、军械库、机要室、办公间,智能化小区,工厂等。在数字技术网络技术飞速发展的今天,门禁技术得到了迅猛的发展。门禁系统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。因此,将实现门禁考勤管理系统,充分

12、的体现其优点,对人员进出、授权、查询、统计和防盗报警保安等多种功能,避免了早退,迟到,矿工等现象,使公司规律有序的进行,对考勤管理起到很大作用,减少了很大的麻烦。也正是由于门禁系统实用性强,市场需求大,应用广泛,我们便选此作为研究设计的课题。 第1章 概述1.1 系统方案论证1.1.1 选题论证在现今社会,随着人们对门禁系统各方面要求的不断提高,门禁系统的应用范围越来越广泛,因此门禁系统的研发已成为现代科技领域的一个热门课题。目前,门禁系统已成为安全防范系统中极其重要的一部分,在一些发达国家,门禁系统正以远远高于其它类安防产品的进度迅猛发展;门禁系统之所以能在众多安防产品中脱颖而出,根本原因是

13、因为其改变了以往安防产品,如:闭路监控,防盗报警等被动的安防方式,以主动的控制替代了被动监视的方式,通过对主要通道的控制,大大的防止了罪犯从正常通道的侵入,并且可以在罪案发生时通过对通道门的控制限制罪犯的活动范围,制止犯罪或减少损失。此外,人们对门禁系统的应用已不局限在单一的出入口控制,而且还要求它不仅可应用于智能大厦或智能社区的门禁控制、考勤管理、安防报警、停车场控制、电梯控制、楼宇自控等,还可与其它系统联动控制等多种控制功能。安装有门禁系统的建筑具有以下优点:(1)具有对门户出入控制,保安防盗,报警等多种功能。(2)方便内部员工或住户出入,同时杜绝外来人员随意进出,既方便了内部管理,又增强

14、了内部的保安。(3)门禁管理系统作为智能建筑中不可缺少的安保自动化的一部分,为用户提供一个高效的工作环境,从而提高管理的层次。也正是由于门禁系统实用性强,市场需求大,应用广泛,我们便选此作为研究设计的课题。1.1.2 方案选择 门禁系统有许多种方案:主要有联网和不联网型。 联网型:结构图如图1-1示:图1-1 联网型结构图联网型门禁系统的优点:(1) 实时联网;(2) 刷卡后立即把数据传输到主机上;(3) 便于查询并能生成报表。缺点:(1) 计算机要求24小时开机;(2) 计算机或管理机万一有故障系统瘫痪;(3) 有问题影响面大。不联网型门禁系统的优点:(1) 单台刷卡机就能工作;(2) 不用

15、布线;(3) 操作简单方便。缺点:不便于查询。根据以上分析,我们的课题选择了不联网型。因为此设计简单,提交作品方便,易操作。1.1.3 CPU的选择我们在这个课题的设计上采用了51单片机系统,之所以采用单片机系统是由于成本较低,功能完全可以满足,发展也比较成熟且完善。而DSP、ARM系统虽然科技含量高于51单片机系统,但是其价格昂贵并且发展尚未成熟。因此,根据我们学的知识和市面上的应用,经过比较我们选择了技术成熟、价格便宜、设计简单、使用方便的单片机平台。89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的M

16、CS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下

17、,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。89C52引脚图如图2-2示:图2-2 89C52的引脚图89C52 单片机外部有32个端口可供用户使用,其功能如表2-3示:表2-3 89C52外部端口功能表端口引脚位置第一功能区第二功能区符号功能符号功能P03932P0.0P0.7通用I/O口AD0AD7地址/数据总线(低位)P118P1.0P1.7通用I/O口P22128P2.0P2.7通用I/O口A8A15地址总线(高位)P310P3.0通用I/O口RXD串行通信发送口11P3.1TX0串行通信接收口12P3

18、.2INT0外部中断013P3.3INT1外部中断114P3.4T0计数器0输入端口15P3.5T1计数器1输入端口16P3.6WR外部储存器写使能17P3.7RD外部储存器读使能门禁系统数控部分采用89C52 单片机作为控制核心,其内部组成包括:一个8位的微处理器CPU及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器8KB RAM低128字节,存放读/写数据;高128字节被特殊功能寄存器占用;片内程序存储器 ROM;四个8位并行I/O(输入/输出)接口P3 -P0,每个口可以用作输入,也可以用作输出;两个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事

19、件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口。在89C52 单片机的基础上,外围增加蜂鸣器控制电路、开门指示灯电路、电控锁控制电路以及1602显示电路等,构成了门禁系统的控制电路。1.1.4 射频卡的选择目前市面上的卡有很多种类:条码、磁卡、接触式IC卡,非接触式IC卡等,条码和磁卡,在超市和银行方面应用的比较多,接触式IC卡,以前在公共电话中用的比较多,但接触式IC卡,芯片外露易坏、易折,而非接触式IC卡既射频卡,它把芯片和线圈封装卡片内,不容易损坏、不怕恶劣的环境,现在社会上很流

20、行,可靠性也高。根据卡的分析,我们选择目前流行最广,可靠性高,成本低的只读卡,即采用EM4000型的ID卡。设计上我们采用ID射频卡读卡器。EM9913BF 125KHz感应式读卡模组是针对125KHz非接触式RFID晶片而设计的读卡模组,它能针对目前市面上125KHz非接触式RFID晶片如凌航科技GK4001晶片或其它规格现相近产品进行资料读取与资料判断,使用者可以一次开发感应式读卡及相关应用系统,该模块主要范围为互动式玩具、门禁管制系统、人员考勤管理、动物或物品辨识及产品管理,此读卡模组主要优缺点叙述如下:优点:(1)独立性高;(2)二次开发容易,安装简单资料读取稳定性高;(3)统安全性高

21、,RFID资料不重复且难以复制;(4)可选择数据输出格式。缺点:电脑必须24小时开机,便于数据传送。125KHz感应式读卡机系统如图1-2示:感应线圈读卡器模组RS232outpu接CPU3.0图1-2 读卡机系统示意图1.1.5 液晶显示的选择1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个57或者511等点阵字符位组成,每个点阵字符位都可以显示一个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。因此,选择LCD1602能够满足门禁

22、系统设计的需要。(1) LCD1602 主要技术参数显示容量:162 个字符。芯片工作电压:4.55.5V。工作电流:2.0mA(5.0V)。模块最佳工作电压:5.0V。字符尺寸:2.954.35(WH)mm。(2) 引脚功能说明1602引脚如图1-3示:图1-3 1602引脚示意图1602引脚功能如表1-1示。(3)1602指令集1602 液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的(说明1为高电平,0为低电平)。如表1-2示:指令1:清显示,指令码01H,光标复位到地址 00H 位置。指令2:光标复位,光标返回到地址00H。表1-1 1602引脚功能表编号符号引脚说明编号符

23、号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/M读/写选择13D6数据6E使能信号14D9数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极指令3:光3标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。指令 4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 5:光标或显示移位 S/

24、C :高电平时显示移动的文字,低电平时移动光标。指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示 5X7 的点阵字符,高电平时显示 5X10 的显示字符。指令 7:字符发生器RAM地址设置。 指令 8:DDRAM 地址设置。指令 9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。表1-2 1602指令集序号指令RSR/WD7D6D5D4D3D2D1D01清显示屏00000000012光标返回000000001*3置输入模式00000001I/D4显示开

25、/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置位符发生存储器地址0001字符发生存储器地址8置数据存储器地址001显示数据储存器地址9读标志位地址01BF计数器地址10写数据到CGRAM或DDRAM10要写入数据内容11从CGRAM或DDRAM读数据11要读出数据内容(4) 与HD44780相兼容的芯片时序表。基本操作时序表如表1-4示:表1-3 基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0-D7=状态字写指令输入RS=L,R/W=H,D0-D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0-D7

26、=数据写数据输入RS=H,R/W=L,D0-D7=数据, E=高脉冲输出无读操作时序如图1-5示:图1-5 读操作时序图写操作时序如图1-6示:图1-6 写操作时序图第2章 系统硬件电路设计2.1 系统电路原理2.1.1 门禁系统主要模块由单片机、电源指示、工作指示、振荡电路、蜂鸣器电路、门控锁电路、矩阵键盘、读卡模块、显示模块组成。如图2-1示:图2-1 电路原理图2.1.2 门禁系统工作原理1、当刷卡时,蜂鸣器响一下,如卡权限获得允许,显示模块显示卡号,同时继电器动作将门锁打开指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭指示灯熄灭;当非法卡刷卡时,没有任何动作。2、当按下出门按钮时,

27、继电器动作将门锁打开指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭指示灯熄灭。3、当进门输入密码时,密码正确则继电器动作将门锁打开指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭指示灯熄灭;密码错误则蜂鸣器报警,延时一段时间后蜂鸣器自动停止报警,若再按“确认返回键”则可以手动停止报警。2.2 单片机资源分配软、硬件设计是设计中不可缺少的,为了满足功能和指标的要求,资源分配如下:1晶振采用11.0592MHZ;2单片机资源分配如表2-1、2-1示:表2-1单片机资源分配表(1)P0.0-P0.7P1.0-P1.7P2.0P2.1P2.2LCD显示矩阵键盘RSRWE表2-2单片机资源分配表(

28、2)P2.3P2.4P2.5P3.0P3.2锁蜂鸣器LED读卡按键中断0开0响0亮1不开1不响1不亮3、计算:因为射频卡的读卡头选用EM4000型,读卡频率是11.0592MHZ,所以最小系统晶振,必须用11.0592MHZ才能读卡。(1)定时控制字确定:选用定时器T1,方式2,所以 TMOD是20H。(2)计算初值 X = 256 -(foxc*(SMOD+1)/384*波特率 = 256 -(11.0592 *106 *(0+1)/384*9600 = 253TH1= 0FDH TL1= 0FDH2.3 最小系统的设计门禁系统数控部分采用89C52 单片机作为控制核心,其内部组成包括:一个

29、8位的微处理器CPU及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器8KB RAM低128字节,存放读/写数据;高128字节被特殊功能寄存器占用;片内程序存储器 ROM;四个8位并行I/O(输入/输出)接口P3P0,每个口可以用作输入,也可以用作输出;两个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口。在89C52 单片机的基础上,外围增加蜂鸣器控制电路、开门指示灯电路、电控锁控制电路以及1602显

30、示电路等,构成了门禁系统的控制电路。其原理图如图2-3示:图2-3 门禁系统控制原理图 第3章 系统软件设计3.1 Keil简介3.1.1 KeilC51系统概述单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统9,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发

31、调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部分功能和使用。C51工具包的整体结构,其中uVision是C51forWindows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生

32、成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。3.1.2 Keil软件的使用使用Keil的软件工具时,项目的开发流程基本上与使用其他软件开发项目一样。(1) 打开Keil软件,如图3-1示:图3-1 初始界面(2) 创建一个项目。点击Project菜单,选择弹出的下拉式菜单中的New Project,如图3-2示:图3-2 新建工程(3) 在“文件名”中输入C程序项目名称“电子门禁”, “保存”后的文件扩展名为uvproj,这

33、是KEIL uVision4项目文件扩展名。(4) 从器件数据库中选择目标芯片,这里选择要用的Ateml 公司的 AT89C52。如图3-3示:图3-3 选择芯片(5) 配置工具软件的设置,如图3-4图3-4 软件设置(6) 完成上面步骤后,可以进行程序的编写了。(7) 点击新建文件的快捷按钮,在开发环境下出现一个新的文字编辑窗口。用C创建源程序。(8) 编辑完成后,保存新建的程序,也可以用菜单FileSave或快捷键 Ctrl+S 进行保存。(9) 在屏幕左边的Source Group1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。点击Add File to Group

34、Source Group 1弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。这时在 Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。如图3-5示:图3-5 添加文件(10) C程序文件已加到了项目中,下面开始编译运行。图中第1、2、3 都是编译按钮,1是用于编译单个文件;2 是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的;3 是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。如

35、图3-6示:图3-6 编译运行下图中有一个小放大镜的按钮,这就是开启 关闭调试模式的按钮,它也存在于菜单 DebugStartStop Debug Session,快捷键为Ctrl+F5。进入调试模式,软件窗口样式大致如图3-7示:图3-7 调试按钮(11) 进入调试模式,软件窗口样式如图3-8示:图3-8调试(12) 图中按钮1 为运行,当程序处于停止状态时才有效。2为停止,程序处于运行状态时才有效。3 是复位,模拟芯片的复位,程序回到最开头处执行。如图3-9示:图3-9 运行按钮3.2 主程序分析1.主程序流程图主程序流程图如图3-10示:图3-10 主程序流程图2.主程序清单:#incl

36、ude#include#include#include#include#include#include#include#include/*主程序*/void main()LED = 0;/LED 亮BUZZER = 0;/蜂鸣器响EA = 1;/开所有中断INT0_init();T1_init();lcd_init();P1 = 0x0f;/键盘初始化delay(100);LED = 1;/熄灭LEDBUZZER=1; /关 蜂鸣器while(1)display();delay(50);3.3 子程序分析3.3.1 显示模块程序分析1. 显示程序流程图如图3-11示:图3-11 显示程序流程图

37、2.显示程序清单:/*函数功能:与最近一次lcd显示界面比较,以此作是否清屏处理入口参数:出口参数:*/void judge_clear_lcd()if( N_DISPLAY != N_DISPLAY_HISTORY )lcd_wcmd(0x01);/清屏/*函数功能:lcd显示第0幕入口参数:出口参数:*/void display0()uchar i;judge_clear_lcd(); /是否清屏处理lcd_pos(0x00);/设置显示位置delay1(1);for(i=0; weli!=0; i+)lcd_wdat(weli);N_DISPLAY_HISTORY=0; /记录 历史显示

38、界面编号/*函数功能:lcd显示第1幕入口参数:出口参数:*/void display1()uchar i;judge_clear_lcd();/是否清屏处理lcd_pos(0x00);/设置显示位置delay1(1);for(i=0; com_ini !=0; i+)/显示Come in please !lcd_wdat(com_ini); lcd_pos(0x40);/设置显示位置delay1(1);for(i=0; pushi !=0; i+) /显示Push the door !lcd_wdat(pushi);N_DISPLAY_HISTORY=1; /记录 历史显示界面编号/*函数功

39、能:lcd显示第2幕入口参数:出口参数:*/void display2()uchar i;judge_clear_lcd();/是否清屏处理lcd_pos(0x00);/设置显示位置delay1(1);for(i=0; pulli!=0; i+)/显示Pull the door !lcd_wdat(pulli);N_DISPLAY_HISTORY=2; /记录 历史显示界面编号/*函数功能:lcd显示第3幕入口参数:出口参数:*/void display3()uchar i;bit j = 0;/ 已显示* 标志judge_clear_lcd();/是否清屏处理lcd_pos(0x00);/设

40、置显示位置delay1(1);for(i=0; inputi!=0; i+)/显示Intput passwordlcd_wdat(inputi);lcd_wcmd(0x0d);/显示闪烁光标delay1(1);lcd_pos(0x43);/设置显示位置delay1(1);doif( (V_KEY=13) & (V_KEY=15) )lcd_wcmd(0x0c);/不显示闪烁光标delay1(1);return;/跳出本界面if( F_PASSW = 1 )/是否有密码输入lcd_wdat(*);F_PASSW = 0;j = 1;/置位 已显示* 标志if( (V_KEY = 12) & (j

41、 = 1) ) /是否在 已显示*下情况下按“输入密码”键/清除之前显示的字符*j = 0;/清除 已显示*标志lcd_pos(0x43);/设置显示位置for(i=0; i6; i+)lcd_wdat(0x0a);/显示空格lcd_pos(0x43);/设置显示位置while( F_PASSW_O != 1 );lcd_wcmd(0x0c);/不显示闪烁光标delay1(2);N_DISPLAY_HISTORY = 3; /记录 历史显示界面编号/*函数功能:lcd显示第4幕入口参数:出口参数:*/void display4()uchar i;judge_clear_lcd();/是否清屏处

42、理lcd_pos(0x00);/设置显示位置delay1(1);for(i=0; passw_erri!=0; i+)/显示Error !lcd_wdat(passw_erri);N_DISPLAY_HISTORY=4; /记录 历史显示界面编号/*函数功能:lcd显示第5幕入口参数:出口参数:*/void display5()uchar i;judge_clear_lcd(); /是否清屏处理lcd_pos(0x42);/设置显示位置delay1(1);for(i=0; passw_erri!=0; i+)/显示Test .lcd_wdat(testi);N_DISPLAY_HISTORY=

43、5;/记录 历史显示界面编号/*函数功能:lcd显示幕判别入口参数:出口参数:*/void display()switch( N_DISPLAY ) /根据当前界面编号N_DISPLAY进行显示case 0 : display0();break;case 1 : display1();break;case 2 : display2();break;case 3 : display3();break;case 4 : display4();break;case 5 : display5();break;3.3.2 键盘程序1. 键盘程序流程图如图3-12示:图3-12 键盘程序流程图2.键盘程序

44、清单:/*函数功能:键值计算程序,返回键值015入口参数:i出口参数:v*/uchar key_calcu(uchar i, uchar m)uchar v;switch(m)case 0x0e: v=(i*4)+0;break; /第i行第1列case 0x0d: v=(i*4)+1;break; /第i行第2列case 0x0b: v=(i*4)+2;break; /第i行第3列case 0x07: v=(i*4)+3;break; /第i行第4列default : v=0xff;return v;/*函数功能:键盘扫描程序,返回键值015入口参数:出口参数:(键值)*/uchar key

45、_scan(void) /使用行列逐级扫描法 uchar i, temp=0, m, v_key;P1 = 0x0f;/高四位低电平,低四位高电平if(P1 != 0x0f)/确认是否有键按下 delay(5);/去抖动,延时0.01sif(P1 != 0x0f) /有键按下for(i=0; i4; i+)/逐行扫描temp = ( 1(4+i) );/P1.4P1.7逐次给低电平,P1口其他引脚为高P1 = temp;if(P1 != temp)/确认第i行是否有键按下m = P1 & 0x0f;/取P1.0P1.3的状态,用于计算键值while( P1 != temp ) ;/等待按键松开

46、delay(5);/去抖动,延时0.01swhile( P1 != temp ) ;/等待按键松开v_key = key_calcu( i, m );/计算键值if(v_key != 0xff) return v_key; /返回有效键值return 0xff;/无键按下或扫描异常时,返回0xff作为键值 /*函数功能:密码验证程序入口参数:出口参数:*/void passw_check()uchar i, j = 0;rec_passwN_PASSW = V_KEY;/暂存输入密码F_PASSW = 1;/置位新密码输入标志N_PASSW+;/密码存放位加1if(N_PASSW = 6)/6

47、位密码是否输入完毕F_INPUT = 0; /清零 进入输入密码程序标志F_PASSW_O = 1;/置位 密码输入完毕标志 for(i=0; i= 0) & (V_KEY = 9) )/是否输入密码为09有效且进入输入密码程序标志为1passw_check();/密码验证处理else switch(V_KEY)case 12 : /输入密码 键N_DISPLAY=3;/改变显示界面F_INPUT = 1; /置位进入输入密码程序标志F_PASSW_O = 0;/清零密码输入完毕标志N_PASSW = 0;/密码比较位置零 break;case 13 : /出门按钮 键N_DISPLAY=2;

48、/改变显示界面go_out_OR_enter();/开锁等处理F_INPUT = 0;/清除 进入输入密码程序标志break;case 14 :/模拟刷卡 键N_DISPLAY=1; /改变显示界面go_out_OR_enter();/开锁等处理F_INPUT = 0;/清除 进入输入密码程序标志break;case 15 :/确认/返回 键N_DISPLAY=0;/改变显示界面if(F_INPUT = 1)BUZZER = 0;/蜂鸣器 响 N_DISPLAY = 4; /改变显示界面set_origscr(); /置位返回初始界面标志elseBUZZER = 1;/在密码错误使蜂鸣器响的情况下,按“确认/返回”键可关蜂鸣器F_INPUT= 0;/清除 进入输入密码程序标志break; /*函数功能:INTO初始化入口参数:出口参数:*/void INT0_init(void)IT0 = 0;/低电平触发IT0=1;/边沿触发方式EX0 = 1;/允许外部中断0中断/*函数功能:INT0中断服务程序入口参数:出口参数:*/void INT0_irq(void) interrupt 0V_KEY = key_scan();/取键值if(V_KEY != 0xff)key_dispose();/键值处理 P1 = 0x0f;3.2.3 读卡程序1. 读卡程序流程图如图3

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!