设计题目带时钟的电子密码锁的设计设计要求要求能显示实时时间,能通过按键预先设置密码,同样能通过按键输入密码后解锁,连入输入三次密码错误后报警。设计过程设计方案、程序编写、原理图的绘制及设计结果及心得体会见附页。成绩评定一、设计内容及要求要求能显示实时时间,能通过按键预先设置密码,同样能通过按键输入密码后解锁,连续输入三次密码错误后报警。二、设计原始资料单片机原理及应用教程范立南2006年01月单片机原理及应用教程刘瑞新2003年07月三、设计完成后提交的文件和图表1.计算说明书部分1)方案论证报告打印版或手写版2)程序流程图3)具体程序2.图纸部分:具体电路原理图四、进程安排教学内容学时地点集中学习1天教室资料查阅与学习讨论1天图书馆、实验室分散设计3天嵌入式系统实验室原理图绘制2天嵌入式系统实验室程序调试2天嵌入式系统实验室成果验收1天嵌入式系统实验室五、主要参考资料《电子设计自动化技术基础》马建国、孟宪元编清华大学出版2004年4月带电子时钟的密码锁设计目录第一章摘要………………………………………………………1第二章方案论证…………………………………………………2第三章系统设计…………………………………………………3一硬件设计………………………………………………31、51单片机……………………………………………32、发光二极管…………………………………………33、LED数码管…………………………………………44、电路原理图…………………………………………6二软件设计………………………………………………91、软件程序介绍………………………………………92、程序流程图…………………………………………103、具体程序……………………………………………13第四章、总结与体会……………………………………………23第一章摘要在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。本系统由单片机系统、LED显示和报警系统组成。系统能完成开锁、管理员解密、修改用户密码、输错报警基本的密码锁的功能,又具有实时显示时间功能。数字式电子钟用单片机的T0定时器计时,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。利用单片机实现数字时钟计时功能的主要内容,其中51单片机是核心元件同时采用数码管动态显示“年”、“月”、“日”、“时”、“分”、“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。第二章方案论证1.时钟显示方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零数码管显示方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。本设计从节省I/O口和降低能耗出发,采用方案二。2.设计密码锁时构思了两种方案:一种是用以8031为核心的单片控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。第三章系统设计一、硬件设计1、51单片机80C51是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,80C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。图1-1单片机管脚介绍2、发光二极管发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。它是半导体二极管的一种,可以把电能转化成光能。本系统采用红光和绿光二极管,分别用来在输错密码时的报警和正确后的解锁提示。其符号如图所示:3、LED数码管1、LED数码管的结构LED数码显示器是1种由LED发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。LED数码显示器有两种连接方法:(1)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。(2)共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。在本设计中所采用的是共阴极LED数码显示器,其引脚排列如下图所示:LED七段码表:四、电路原理图图1-2电子时钟电路仿真图图1-3密码锁仿真图二、软件设计1、软件程序介绍(1)单片机内寄存器用途分配50ms、秒、分、时、日、月、年记录存入片内RAM33H、30H、31H、32H、34H、35H、36H号单元中。P1.0—P1.5分别控制秒、分、时、天、月、年。(2)单片机工作方式单片机用12M晶振,定时器用16位计数器(1方式)工作。(3)时间初值设50ms时间初值为Z,Z的计算方法为(65535-Z)×1=50000,结果Z=060AH。2、具体程序1)电子时钟程序SECONDEQU30HMINUTEEQU31HNUMEQU33HDAYEQU34HMONTHEQU35HYEAREQU36HORG0000HSJMPMAINORG000BHLJMPINT_T0ORG0030HMAIN:MOVDPTR,#TABLEMOVHOUR,#16;时钟初始化MOVMINUTE,#30MOVSECOND,#0MOVDAY,#2MOVMONTH,#6MOVYEAR,#8MOVNUM,#0MOVTMOD,#01H;T0,模式1MOVTH0,#06H;定时50毫秒MOVTL0,#0AHMOVIE,#82H;开中断SETBTR0;T0工作A1:LCALLSDK0:JNBP1.1,K1JNBP1.2,K2JNBP1.3,K3JNBP1.4,K4JNBP1.5,K5LCALLSDSJMPK0K1:LCALLMDJNBP1.2,K2JNBP1.3,K3JNBP1.4,K4JNBP1.5,K5JNBP1.0,A1SJMPK1K2:LCALLHDJNBP1.3,K3JNBP1.4,K4JNBP1.5,K5JNBP1.0,A1JNBP1.1,K1SJMPK2K3:LCALLDDJNBP1.4,K4JNBP1.5,K5JNBP1.0,A1JNBP1.1,K1JNBP1.2,K2SJMPK3K4:LCALLMOTDJNBP1.5,K5JNBP1.0,A1JNBP1.1,K1JNBP1.2,K2JNBP1.3,K3SJMPK4K5:LCALLYDJNBP1.0,A1JNBP1.1,K1JNBP1.2,K2JNBP1.3,K3JNBP1.4,K4SJMPK5INT_T0:MOVTH0,#06HMOVTL0,#0AHINCNUMMOVA,NUMCJNEA,#20,RETUNE;计时1秒到,顺序执行INCSECONDMOVNUM,#0MOVA,SECONDCJNEA,#60,RETUNEINCMINUTEMOVSECOND,#0MOVA,MINUTECJNEA,#60,RETUNEINCHOURMOVMINUTE,#0MOVA,HOURCJNEA,#24,RETUNEINCDAYMOVHOUR,#0MOVA,DAYCJNEA,#31,RETUNE;1--31共30天,30天到顺序执行INCMONTHMOVDAY,#1MOVA,MONTHCJNEA,#13,RETUNEINCYEARMOVMONTH,#1;新年清零,月初值为1,日初值1MOVDAY,#1MOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0MOVNUM,#0RETUNE:RETIDISPLAY:SD:MOVA,SECOND;显示秒MOVB,#10DIVABCLRP3.0SETBP3.1MOVCA,@A+DPTRMOVP2,ALCALLDELAYMOVA,BCLRP3.1SETBP3.0MOVCA,@A+DPTRMOVP2,ALCALLDELAYJMPKKMD:MOVA,MINUTE;显示分钟MOVB,#10DIVABCLRP3.0SETBP3.1MOVCA,@A+DPTRMOVP2,ALCALLDELAYMOVA,BCLRP3.1SETBP3.0MOVCA,@A+DPTRMOVP2,ALCALLDELAYJMPKKHD:MOVA,HOUR;显示小时MOVB,#10DIVABCLRP3.0SETBP3.1MOVCA,@A+DPTRMOVP2,ALCALLDELAYMOVA,BCLRP3.1SETBP3.0MOVCA,@A+DPTRMOVP2,ALCALLDELAYJMPKKDD:MOVA,DAY;显示天MOVB,#10DIVABCLRP3.0SETBP3.1MOVCA,@A+DPTRMOVP2,ALCALLDELAYMOVA,BCLRP3.1SETBP3.0MOVCA,@A+DPTRMOVP2,ALCALLDELAYJMPKKMOTD:MOVA,MONTH;显示月MOVB,#10DIVABCLRP3.0SETBP3.1MOVCA,@A+DPTRMOVP2,ALCALLDELAYMOVA,BCLRP3.1SETBP3.0MOVCA,@A+DPTRMOVP2,ALCALLDELAYJMPKKYD:MOVA,YEAR;显示年MOVB,#10DIVABCLRP3.0SETBP3.1MOVCA,@A+DPTRMOVP2,ALCALLDELAYMOVA,BCLRP3.1SETBP3.0MOVCA,@A+DPTRMOVP2,ALCALLDELAYKK:RETTABLE:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDELAY:MOVR7,#5LOP1:MOVR6,#0FFHLOP2:NOPNOPDJNZR6,LOP2DJNZR7,LOP1RETEND2)密码锁程序:ORG0000HAJMPMAINORG00