1、 课程设计报告书课程设计任务书课程设计题 目电子密码锁课程设计时 间 2012 年06 月20 日 2012年 06月26 日课程设计小组成员课程设计目 的1、熟练掌握单片机指令系统2、具备一定单片机硬件电路设计和软件编程的能力3、掌握单片机编程软件、仿真软件的应用4、完成设计方案的论证、编程以及调试运行5、完成课程设计报告的撰写 课程设计任 务用单片机设计密码锁控制器,要求工作稳定可靠,保密性高,实用性强,并具有报警控制功能。课程设计主要技术指 标1密码正确时,绿灯点亮2密码错误时,红灯点亮,用户可再次输入密码3连续3次密码错误,黄灯点亮,同时启动报警信号课程设计进度计划6月21日确定课题查
2、找资料完成课程设计任务书6月22日寻找资料并完成摘要、绪论6月23日完成课题设计,设计总结,参考文献6月24日全部完结并打印提交课题报告任务签发时间2012 年 6 月21日任务完成时间2012 年6 月 26日学生签名指导教师签名课程设计报告书一 :功能描述 1设计的意义 在工业生产中,一些关键的控制核心部分,为防止非法进入或修改,需设置密码电路。在一些保密场合,为防止非法人员进入,也需设置密码电路。本任务主要讲解用单片机设计的密码锁控制器,要求工作稳定可靠,保密性高,实用性强,并具有报警控制功能。2应用密码锁的应用非常广泛,例如档案室,保险箱,电梯等等。3功能说明密码的输入由键盘输入,若密
3、码正确解锁指示灯D1亮;若输入密码错误指示灯D2亮,报警指示灯D3亮,需复位后方能重新输入密码。每次按键都能有数码管显示。二:硬件电路的设计与说明1单片机应用系统说明 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、AD转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。 由于单片机在工业控制领域的
4、广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。而最小系统是就是能让单片机运行起来的最少部件构成的系统。一般而言,单片机系统由主芯片,电源电路,时钟电路,复位电路,调试电路等构成。最小系统是由5v电源,12MHZ时钟电路,复位信号组成1显示电路P1口接3个共阳极二极管。470K电阻起限流作用。密码正确V5绿灯亮;密码错误,V6红灯亮;连续3次密码错误,V7黄灯亮。P0口接数码管,显示按键输入键号。2输入电路输入键盘有4*4共16个按键组成,15个数字或字母键,1个
5、输入键。每位字符可为09及AE的15个数字或字母中的任意义一个3报警电路报警电路密码连续3次输入错误,黄灯亮,同时启动报警信号。R9电阻限流。4原理图输入密码正确,绿灯亮,数码管显示按键号;输入密码错误,黄灯亮,用户可再次输入密码;连续三次密码错误,黄灯亮同时启动报警系统。三:程序设计1程序流程图 密码锁控制器主程序流程图 按键操作子程序流程图 2 程序及说明 ORG 0000H ;主程序 MOV P1,#0FFH ;P1口输出FFH MOV R4,#00H ;输入密码错误次数寄存器R4清0 MOV R0,#1FH ;输入密码暂存区指针R0赋初值1FH MOV R3,#00H ;输入密码位数寄
6、存器R3清0KEY:MOV P2,#0FH ;键盘扫描及计算键值 MOV A, P2 ANL A,#0FH CJNE A,#0FH,KEY1 SJMP KEYKEY1:MOV P1,#0FFH LCALL DEL12 MOV A,#0EFHKEY2:MOV R2,A MOV P2,A MOV A,P2 ANL A,#0FH CJNE A,#0FH,KEY3 MOV A,R2 SETB C RLC A JC KEY2 SJMP KEYKEY3:MOV B,#0FBHKEY4:RRC A INC B JC KEY4 MOV A,R2 SWAP AKEY5: RRC A INC B INC B IN
7、C B INC B JC KEY5KEY6:MOV A,P2 ANL A,#0FH CJNE A,#0FH,KEY6 LCALL DEL12 LCALL OPREAT ;调用按键操作程序 LJMP KEY ORG O100H ;按键操作子程序OPREAT:INC R0 ;将输入密码暂存区指针加1 MOV A,B ;将键值送入A MOV R0,A ;输入密码(按键号)暂存于片内RAM CJNE A,#0FH,COUNT ;判断输入按键是否为“输入”键,不是 ;转COUNT 处 CJNE R3,#08H,ERROR ;判断输入按键是否为8位,不为8为 ;转ERROR处 MOV R1,#20H ;将
8、R1置20H MOV B,#00H ;将设定密码数据表索引值寄存器B清0 MOV DPTR,#TAB ;将设定密码表的首地址送DPTR LOOP:MOV A,B ;将索引值送入A MOVC A,A+DPTR ;查表取得设定密码数据 CLR C ;C清0 SUBB A,R1 ;输入密码与设定密码比较 JNZ ERROR ;不相等则转至ERROR处 INC R1 INC B DJNZ R3,LOOP ;逐位比较OPEN: MOV R1,#0FEH ;输入的8位密码与设定的8位密码全相等 ;则输出开锁信号 LCALL LUCKDEL ;开锁延时3S MOV P1,#0FFH ;重新锁定 MOV R0
9、,#1FH ;将密码暂存区指针R0重新赋值为1FH MOV R3,#00H ;将密码位数寄存器R3清0 MOV R4, #00H ;将密码错误次数寄存器R4清0 RETERROR:MOV P1,#0FDH ;输入密码错误,则输出密码错误信号 INC R4 ;密码错误次数寄存器R4加1 CJNE R4,#03H,AGAIN ;判断是否为3次密码输入错误,不是则转 ;AGAIN处ALARM:MOV P1,#0F9H ;3次密码输入错误,则输出报警信号 LJMP $ ;动态停止AGAIN:MOV R0,#1FH ;密码输入错误不到3次,则重新输入密码 MOV R3,#00H;R0重新赋值为1FH,R
10、3清0 RETCOUNT:INC R3;输入密码位数寄存器R3加1 RET ORG 0200H;按键延时子程序DEL12:MOV R6,#1EHDEL2:MOV R7,#64HDEL1:DJNZ R7,DEL1 DJNZ R6,DEL2 RET;开锁延时子程序 ORG 0250HLUCKDEL:MOV R5,#06H K1: MOV R6,#0FAH K2: MOV R7,#0FAH K3:NOP NOP DJNZ R7,K3 DJNZ R6,K2 DJNZ R5,K1 RETTAB:DB 01H,03H,05H,07H,02H,04H,06H,08H ;设定密码数据表RETEND四:心得体会
11、通过这次课程设计,我深刻体会到了自己单片机知识的贫乏,编程时总是出现错误,导致我需要不断的翻书、查资料。在设计中有很多问题都是因为理论知识不够扎实。在有些管脚的置0置1上,概念的模糊,这使我明白要把所学到的理论知识转化为实践需要一段努力学习的过程。此次课程设计之前,我了解了相关的单片机理论知识的基础上通过自己动手实践,理论与实践的结合使得对知识的理解更加深刻,并且慢慢学会培养自己的创新精神,感觉很有成就感,但同时我也认识到自己在单片机方面还有很多不足。这使我明白,在做一个设计的过程中,一定要注意理论和实践的同步进行。光有理论知识是远远不够的,要用实践去检验理论,用理论指导实践。因为能力有限,没有充分利用所学的理论知识。如果适当的对该设计增加功能,并对程序进行改进,就可以既充分利用资源,还可以充分节约资源,更加适应市场的需求。五:参考文件单片机应用技术 李秀忠编著;中国劳动社会出版社。11