基于at89c51单片机的电子密码锁的设计内容摘要:
密码锁开锁机构示意图 当用户输入的密码正确而且是在规定的时间输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。 其实际电路如图 所示。 由 D R T10 组成驱动电路,其中 T10 可以选择普通的小功率三极管。 D5 作为开锁的提示 , 由 D C2 T11 组成。 其中 D C24 是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。 在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁; 没亮而且报警 ,表示 密码错误或输入有误。 图 开锁装置图 单片机控制系统 AT89C51 报警 输入密码 校正密码 灯亮开锁 正确 错误 12 显示电路设计 电子密码锁中需要显示的信息比较少,一般密码设计为 6 位。 本设计采用的是 8位数码显示管,前面用 6 位是用来存储密码的,后面两位是来识别是否按下 Enter 键,具体连接方式如图 所示。 图 显示电路连接图 AT24C02 掉电存储单元的设计 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。 AT24C02 是 ATMEL 公司的 2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到 ,额定电流为 1mA,静态电流 10Ua(),芯片内的资料可以在断电的情况下保存 40 年以上,而且采用 8 脚的 DIP 封装,使用方便。 其电路如图 所示。 13 图 掉电存储电路原理图 图 中 R R10 是上拉电阻,其作用是减少 AT24C02 的静态功耗,由于AT24C02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和 SDA(数据 /地址)与单片机传送数据。 电源电路设计 为了防止停电情况的发生,本电路后备了 UPS 电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。 市电 供 电路图如图 所示。 图 电源电路原理图 220V 市电通过变压器降压成 12V 的交流电 ,再经过整流桥整流 ,7805 稳压到5V 送往电由 R8, R9, R6, R7 及 IC14 构成电压比较器,正常情况下, V+V IC14输出高电平,继电器的常闭触点和市电相连;当市电断开, V+V IC14 输出高电平,由 T3, T4 构成的达林顿管使继电器 J 开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。 其电路图如 图 所示: 14 R850KR940KR730KR620KT39018R 10T49014123I C 1 4741继电器蓄电池供电5V 直流电源 A1蓄电池 A25V 直流电源 A1蓄电池 A2VCC常闭常开 图 蓄电池电路 原理图 T1, T2 构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中 D1亮为正在充电, D2 为工作指示。 由 R4, R5, T1 构成电压检测电路,蓄电池电压低,则 T1, T2 导通,实现对其充电;充满后, T1, T2 截止,停止充电,同时 D1熄灭,电路中 C4 的作用是滤除干扰信号。 其电路图如图 所示: 图 蓄电池自动充电原理图 15 总体原理图 图 总体电路原理图 16 第 4 章 软件设计 程序设计 程序设计 (Programming)是指设计、编制、调试程序的 方法和过程。 它是目标明确的智力活动。 在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。 因此,软件设计在微机控制系统设计中占重要地位。 对于本系统,软件也占有重要的地位。 在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。 数据处理包括:数据的采集、数字滤波、标度变换等。 过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。 为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。 把一个程序分成 具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。 所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。 模块程序设计法的主要优点是: (1)单个模块比起一个完整的程序易编写、调试 及修改。 (2)程序的易读性好。 (3)程序的修改可局部化。 (4)模块可以共存,一个模块可以被多个任务在不同条件下调用。 (5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 本系统软件采用模块化结构,由 主程序模块,键盘扫描及识别子程序,调电存储服务程序,显示子程序。 主程序设计 (1)主程序模块 主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。 当初始化就会自动等待输入密码,若操作有误便会报警提示并对各位进行清零,等待密码的再次输入;若输入密码正确,在输完之后等待你按下 Enter 键,再判断密码是否正确,若错误便报警并再次将各位密码清零;若输入密码正确就会自动开锁并亮灯。 主程序的流程图如 图 所示。 17 图 主程序流 程图 在系统的程序设计中, 主控模块只负责根据消息调用相应模块的处理函数,具体如何处理这些消息由各功能模块中的对应 程序 决定。 主程序 LED_BIT_1 EQU 30H LED_BIT_2 EQU 31H LED_BIT_3 EQU 32H LED_BIT_4 EQU 33H 开 始 初 始 化 等待密码的输入 有键按下。 操作有误。 各位清零并报警提示 继续输入密码 密码正确。 开锁并亮灯 N Y Y N Y N 18 LED_BIT_5 EQU 34H LED_BIT_6 EQU 35H LED_BIT_7 EQU 36H LED_BIT_8 EQU 37H。 以下 6 个字节存放初始密码 WORD_1 EQU 38H WORD_2 EQU 39H WORD_3 EQU 3AH WORD_4 EQU 3BH WORD_5 EQU 3CH WORD_6 EQU 3DH。 以下 6 个字节存放用户输入的 6 位密码 KEY_1 EQU 3EH KEY_2 EQU 3FH KEY_3 EQU 40H KEY_4 EQU 41H KEY_5 EQU 42H KEY_6 EQU 43H CNT_A EQU 44H CNT_B EQU 45H KEY_CNT EQU 46H。 已输出的密码位数 LINE EQU 47H。 按键行号 ROW EQU 48H。 按键列号 VAL EQU 49H。 键值 ORG 00H SJMP START ORG 0BH LJMP INT_T0 START:MOV CNT_A,00H。 程序初始化 MOV CNT_B,00H MOV KEY_CNT,00H 19 MOV LINE,00H MOV ROW,00H MOV VAL,00H SETB MOV LED_BIT_1,00H。 段码存储区清 0 MOV LED_BIT_2,00H MOV LED_BIT_3,00H MOV LED_BIT_4,00H MOV LED_BIT_5,00H MOV LED_BIT_6,00H MOV LED_BIT_7,79H MOV LED_BIT_8,73H MOV KEY_1,00H。 输入密码存储区清 0 MOV KEY_2,00H MOV KEY_3,00H MOV KEY_4,00H MOV KEY_5,00H MOV KEY_6,00H MOV WORD_1,6。 设置初始密码为 123456 MOV WORD_2,5 MOV WORD_3,4 MOV WORD_4,3 MOV WORD_5,2 MOV WORD_6,1 MOV TMOD,01H MOV TH0,(65536700)/256 MOV TL0,(65536700)MOD 256 MOV IE,82H A0:LCALL DISP 键盘扫描及识别子程 序设计 20 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。 其程序流程如图 所示。 图 键盘扫描及识别子程序流程图 LSCAN:MOV P3,0F0H。 扫描行码 L1: JNB ,L2 LCALL DLY_S JNB ,L2 MOV LINE,00H LJMP RSCAN L2: JNB ,L3 LCALL DLY_S JNB ,L3 MOV LINE,01H LJMP RSCAN L3: JNB ,L4 LCALL DLY_S JNB ,L4 中 断 保护现场 报警器提示 清中断 结束 21 MOV LINE,02H LJMP RSCAN L4: JNB ,A0 LCALL DLY_S JNB ,A0 MOV LINE,03H RSCAN:MOV P3,0FH。 扫 描列码 C1: JNB ,C2 MOV ROW,00H LJMP CALCU C2: JNB ,C3 MOV ROW,01H LJMP CALCU C3: JNB ,C1 MOV ROW,02H CALCU:MOV A,LINE。 计算键值 MOV B,03H MUL AB ADD A,ROW MOV VAL,A CJNE A,0AH,J1。 是否为 CLR键 MOV R1,KEY_CNT CJNE R1,00H,J2 LCALL ALARM_1 LJMP START J2:LCALL SHIFTR DEC KEY_CNT W00:LCALL DISP。 等待按键抬起 MOV A,P3 CJNE A,0FH,W01 LJMP A0 22 W01:MOV A,P3 CJNE A,0F0H,W02 LJMP A0 W02:SJMP W00 J1: MOV A,VAL CJNE A,0BH,J3。 判断是否为 ENTER键 MOV R1,KEY_CNT CJNE R1,06H,J4 MOV A,WORD_1。 比较密码 CJNE A,3EH,J5 MOV A,WORD_2 CJNE A,3FH,J5 MOV A,WORD_3 CJNE A,40H,J5 MOV A,WORD_4 CJNE A,41H,J5 MOV A,WORD_5 CJNE A,42H,J5 MOV A,WORD_6 CJNE A,43H,J5 CLR LCALL DLY_L LJMP FINI J5: LCALL ALARM_2 LJMP START J4: LCALL ALARM_1 LJMP START J3: INC KEY_CNT。 按下数字键 MOV A,KEY_CNT CJNE A,07H,K1 LCALL ALARM_1 23 W10:LCALL DISP。 等待按键抬起 MOV A,P3 CJNE A,0FH,W11 LJ。基于at89c51单片机的电子密码锁的设计
相关推荐
、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。 ( 2) AT89C51 单片机,通过编写程序对数码显示进行控制。 ( 3) 八个 7 段数码管显示时钟和秒表信号。 7 3 软件总体设计方案 主程序流程图 软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。 如图 31: 图 31 主程序流程 图 开始
计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。 只要在硬件电路设计初期考虑到这 一点,就应该为系统将来升级留足够的 RAM 空间,哪怕多设计一个 RAM的插座,暂不插芯片也好。 (5) I/O 端口:在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。
驶员因方向感不强、判断和操作失误而引起的事故 , 同时它将对提高汽 车智能化水平和最终实现汽车无人驾驶产生积极的意义。 第三节 目前国内外的研究现状 超声波是指频率在 20kHz~ 106kHz 的机械波 , 波速一般为 1500m/s, 波长为~ 10cm。 超声波的波长远大于分子尺寸 , 说明超声波本身不能直接对分子起作用 ,而是通过周围环境的物理作用影响分子 ,
工具的使安康学院本科生毕业论文(设计) 29 用。 实验操作法 通过对前面整理知识的积累和软件的熟悉,能够架设出系统的 基本框架,然后进一步优化设计,完成软件的功能,在操作过程中发现问题。 技术概述 Android 平台及 java 语言 本系统是以 java 为编程语言,从接口到功能,灵活多变。 主要运用的事 Activity之间的相互跳转,然后利用 Intent 实现多个程序同时运行的效果。
目前约 100 单 /天,客单价 200 元,选择组合购买的用户约为 10%,用户男女比例持平,下单用户年龄集中在 1835 岁之间,目前它采用与合作商分成的盈利模式,分成比例高达 20%30%,就蛋糕、鲜花、礼品三类商品而言,目前销售比例约为 65%、 20%和15%。 随着产品的主体功能由记录工具向社交消费服务转变,生日管家的产品设计也正在朝着这个方向发展。 发展趋势 随着 3G
........................................................................ 13 致 谢 .....................................................................................................................