《推荐-单片机C语言程序设计课程设计-密码锁-精品-精品.docx》由会员分享,可在线阅读,更多相关《推荐-单片机C语言程序设计课程设计-密码锁-精品-精品.docx(35页珍藏版)》请在第一文库网上搜索。
1、课程设计。任务书课程设计。题目:单片机C语言程序设计课程设计基本内容:利用实验室提供的实验仪器,自行选题设计一套硬件系统;采用单片机C语言编写程序,使之成为完整的设备。课程设计。专题部分:题目:电子密码锁基本内容:利用实验板上的1CD显示屏、24C02及8279等资源设计电子密码锁系统1要求实现输正确开锁,错误警告等相关理能。学生接受课程设计。题目日期第20周指导教师签字:20XX年7月18日摘要传统密码锁由于外形单一并容易人为损坏,以无法满足人们对安全日益增长的需求。而电子密码锁因其具有使用方便,可靠性强,成本低廉,正逐步代替传统密码锁,被广泛应用于安全领域。本文设计了一种智能电子式密码锁,
2、它以单片机为控制核心,配合输入模块,显示模块及报警模块共同完成了密码服务。控制部分使用AT89C51单片机,其价格低廉,功耗较低,配有足够的内部资源来完成电子密码锁的核心控制。使用Inte1公司的8279芯片,管理4*4键盘,作为密码输入及功能选择的输入模块。显示模块利用RT128641CD显示器,以更加友好的界面完成人机交互。而报警模块利用Ied等及蜂鸣器提示密码输入情况,并完成危机报警功能。电子密码锁功能丰富,正确输入密码时,可进入欢迎界面,进行功能选择,如修改密码服务,可对原始通用密码进行修改,修改过程中需二次确认密码,两次输入相同才可修改成功,防止了因用户手误造成无法再次进入系统。退出
3、功能保证用户在特殊情况下一键加锁,防止信息泄露。密码锁还配有三次报警功能和超时报警功能,当三次输入错误或第一次输入错误后,5s内无法进入系统,密码锁将进入自锁状态,防止他人暴力破解密码。关键词:电子密码锁,单片机,24C02,1CD,RT12864Hz;参考文献附录电子密码锁系统程序源代码第1章绪论1.1 设计目的(1)软件及硬件上进一步了解单片机的原理;(2)掌握、运用C51语言编程,提升C51编程能力;(3)熟练掌握RT12864液晶显示模块和8279键盘操作管理芯片;(4)熟悉24C02掉电存储功能。1.2 设计意义(1)深入了解了单片机C51语言的实际应用;(2)通过独立思考,独立操作
4、切实提高自己的编程能力;(3)增强团队合作意识;(4)运用所学知识发现问题、分析问题、解决问题;1.3 设计要求根据实验室提供的实验箱、计算机等设备由我们自行设计了电子密码锁系统,实现如下要求:基本要求:采用24C02或IC卡,设置6位密码,最多比较3次,利用1ED灯显示密码输入正确与否。(1)利用24C02或IC卡,设置6位密码;(2)当密码输入正确后的密码后开锁,用红灯亮绿灯灭表示关锁,绿灯亮红灯灭表示开锁;(3)密码最多可以试输入三次,如果三次输入错误,红灯闪烁,并发报警警报。附加要求:第一次输入密码与开锁的时间超过5s,红灯闪烁,并发报警警报。第2章总体设计方案2.1 设计思路本设计主
5、要由单片机、4*4键盘、1CD液晶显示屏和密码存储等部分组成。其中键盘用于输入数字密码和进行各种功能的实现。用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与之前保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者蜂鸣报警电路。2.2 系统设计总框图图2.1系统设计总框图各模块功能如下1、键盘输入控制模块:采用8279管理键盘输入,有效节省了VO的资源。4*4键盘上的键分别用于密码输入和其他功能调用;2、密码存储模块:芯片24C02用于完成密码的掉电存储,使密码断电后得以保存;3、1CD液晶显示模块:采用芯片RT12864Hz实现液晶显示功能,用于
6、实现友好的人机交互界面,提高了可读性,使用户对密码锁的运行情况一目了然;4、蜂鸣报警电路模块:通过1ED灯和压电蜂鸣器,对输错密码和输入超时实行报警;5、复位电路:完成系统的复位;6、时钟电路:用于单片机的起振;7、内部定时模块:利用内部定时器TO完成设计的附加要求。第3章硬件电路设计及简要描述3.1 硬件设计原理图硬件设计原理图如图3.1:3.2 图3.1硬件设计原理图3.3 内部资源的使用此设计中我们使用了单片机内部定时计数器To提供计时功能,判断密码输入是否超时,如果超时,系统将锁死。8279的IRQ端经反向器与89C51的外部中断INTO相连接,判断是否有按键按下,如果有按键按下,则处
7、理器去执行相应的操作。P1的P1.2和P1.3用于模拟24C02的双线通讯接口,P1O和P11连接红绿指示灯,通过控制其亮灭及闪烁状态,辅助显示密码输入情况。P1.4连接蜂鸣器,用于密码锁锁死时的报警功能。3.4 单片机外围电路3.4.1 复位电路的设计复位是单片机的初始化操作。单片机启动运行时,都需要先复位,起作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。但是单片机本身不能自动进行复位,必须配合外部电路才能实现。该复位电路采用按键电平复位电路,当单片机在运行中,按下复位键SO后松开,在RST引脚持续出现24个振荡周期的高电平信号使单片机复位,实现上电开关复位的操
8、作。如图3.2所示3.4.23.4.3 时钟发生电路设计时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在同一的时序脉冲驱动下进行的,当采用内部时钟时,连接方法如图3.3所示,在晶振引脚XTA11(19脚)和XTA12(18脚)之间接一个6MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容我们选取30pFo图3.3时钟发生电路图3.5 密码锁控制电路3.5.1 键盘管理芯片8279为了节省I/O口资源,我们没有使用传统的行扫描法管理键盘,而选择了8279控制芯片,由8279读入键盘键值,用键值来控制程序的执行。8279芯片是一种通用的可编程键盘、显示接口器件,能完
9、成对64位按键和16位1ED显示器的管理,但本次设计中没有使用1ED功能。8279有多种功能和多种工作模式,其功能和模式靠设定命令字来确定。8279的命令字近10种,在使用8279之前,借鉴了实验的相关程序,本文设计中的接线是:IRQ接INT0,采用中断方式,A1E接C1K。图3.4键盘管理电路图8279各端口地址分配如下:8279急令口8279敢据口0m20700x2071图3.5密码锁操作面板按键的操作面板如图3.5所示,共计10个数字键和6个功能键。019110个数字键用来输入密码,另外6个功能键分别是:【A】设置新密码键、【C】清零键、【E】确定键和【F】退出键。其中清零键的功能是清除
10、当前输入的密码后重新输入。确认键的功能是确认当前输入的密码。设置新密码键的功能是当密码输入正确时,可以重新修改密码。退出键的功能是退出到密码输入界面。表3.1按键功能表按键键名功能说明09数字键输入密码A设置新密码键选择重置密码C清零键密码清零E确认键确认F退出键退出3.5.2 1CD显示电路由RTI2864Hz,按键和保护电阻组成的外部扩展电路。其工作过程是通过单片机P3.6/WR和P3.7/RD接于RT12864,采用并行数据通讯模式。VCCRT12864UKDBOVO-DBIDB2PSB-D1BDIMD1HM-1B6RST-DB7NC-gIX1tD_ARM(SID)图3.6液晶显示电路图
11、E(C1K)21-1CD显示器各端口地址分配如下:1CD号命令字地埴0x2070iron致於地址0x2071IxD读状金字地址0x207218读数抵地址0x2073图3.71CD显示器各端口地址分配3.4.3密码存储电路因为考虑到密码锁的实际应用,要求掉电时密码不会丢失,所以密码不储存在单片机的RAM里,而是储存在外面扩展的EEPRoM里,因此本文选用AT24C02芯片单片机通过串口通信。AT24C02是ATME1公司生产的I2C串行EEPROM芯片,存储量为256字节。AT24C02的操作时序符合标准的I2C规范。通过SC1K(时钟线)和SDA(数据线)两线分别与89C51的P1.2和P1.
12、3相连,对芯片进行读写操作。SC1K为时号,SDA传送双向数据信号。图3.8掉电存储电路图3.4.4 蜂鸣报警电路按照题目的要求,当连续三次密码输入错误时,系统蜂鸣报警,我们采用实验板上的压电式蜂鸣器,当P1.4输出低电平时,三极管导通,蜂鸣器发音。3.5 图3.9蜂鸣报警电路图3.6 元件清单本次设计所用元件见表3.2表3.2元件清单器件名称数量89C511个82791个6MHz晶振1个RT12864Hz1个74A1S1381个741S2451个741S5731个741S001个741S081个AT24C021个电阻若干按键18个第4章软件程序设计4.1 程序流程图根据设计要求,我们设计了如
13、下的流程图,满足用户在任何时刻按下任何键均有反应。弄.)图4.1主程序流程图说明:以上流程图仅显示了该密码锁的主要功能,一些具体功能的实现在后文子程序中将做具体讲解。4.2 系统初始化系统的初始化包括如下方面:1、8279的扫描模式为编码扫描;2、内部定时/计数器TO的设定;3、液晶显示屏模式的设定。4.3 按键识别设计在系统初始化并读取密码完成后,液晶显示界面1状态:C1OSed任意键输入密码“,提示用户可以输入密码。此时程序即不断的扫描按键,检查是否有任意键被按下。如果有,则开始输入密码,此时液晶屏显示界面2“密码:在输入密码的时候,难免有输入错误的时候,我们特此设计了清零键,当输入密码时
14、,检测到清零键的按下,我们将清除所有输入的密码,然后重新进入界面2重新输入密码,在六位密码输入结束后,我们也设计了确定键,当检测到确定键按下时,开始密码比较。具体的流程图如4.2所示图4.2按键识别流程图图4.3界面14.4 图4.4界面24.5 5s定时设计根据该设计的附加要求“第一次输入密码与开锁的时间超过5s,红灯闪烁,并发报警警报我组对此的理解是在密码输入错误之后,重新输入密码到开锁的时间不超过5so利用89C51内部的定时器TO,用中断方式进行管理,初值在系统初始化时已经设置好,采用定时器方式1,每次定时25ms,设置变量time,每次定时中断,time自加,当第一次密码输入错误后,
15、便打开定时器中断,只有在5s内开锁成功,中断才关闭,否则将红灯闪烁并蜂鸣报警,显示为界面3。超时锁死图4.5界面34.6 密码修改设计为了丰富电子密码锁的功能,我们在完成设计的基本要求之外,额外增添了密码修改功能。即当用户密码输入正确后,可以进入界面4一功能选择模块,按下A键便可修改密码,此时显示界面5“新密码:”输入6位密码后按确定键,这时显示界面6”再次输入:”,需要再次输入密码进行确认,若两次输入密码一致,则显示“Succeeded”新密码便改好了,若前后两次输入不一致,则显示“TypeError”,然后返回到功能选择界面4。图4.6界面4图4.7界面5图4.8界面6超过三次错误辅证图4.9界面7参考文献1 .Inte18279datesheet2 .张志,高大志,杨为民等.微控制器原理及接口技术