基于单片机的电子密码锁设计


    目录

    设计总说明································································I
    Introduction······························································I
    第章 绪 1
    11 设计背景 1
    12 电子密码控制简介 1
    13 电子密码控制发展趋势 2
    14 设计实现目标简述 2
    第二章 控制方案设计选择 3
    21 采数字电路控制 3
    22 采单片机核心控制方案 4
    第三章 元器件介绍I2C总线串行通信说明 5
    31 控芯片AT89C51 5
    311 AT89C51性简介 5
    312 AT89C51引脚功简介 5
    32 LCD1602显示器 8
    321 LCD结构引脚功 8
    322 LCD显示指令系统 9
    33 晶体振荡器 9
    34 I2C总线说明M24C01串行EEPROM 10
    341 I2C总线硬件结构 10
    342 I2C总线工作原理: 11
    343 存储器24C01 13
    35 串口通信 14
    第四章 系统硬件构成 16
    41 设计原理 16
    42 键盘输入部分 17
    421 矩阵式键盘结构工作原理 18
    43 复位部分 19
    44 晶振部分 20
    45 显示部分 20
    46 开锁部分报警部分 21
    第五章 系统软件构成 22
    51 系统软件流程图设计 22
    511 程序流程图 22
    512 键功流程图 24
    513 设置密码流程图 24
    514 开锁流程图 25
    52 Proteuskeil开发软件功介绍 28
    521 Proteus简介 28
    522 Proteus实功 29
    523 Keil简介 31
    524 Keil软件方法 32
    525 系统仿真运行 33
    第六章 结 36
    参考文献 37
    致谢 38
    附录A 39
    附录 B 40

    第章 绪
    11 设计背景
    安全问题现代社会界普遍关注焦点目前常见安全产品指纹识系统IC卡辨识系统红外防盗系统等系统般保密求较高供保险柜然产品安全性高生产成高携带安装方便等缺点定程度限制类产品普推广具防盗报警功电子密码控制系统逐渐代传统机械式密码控制系统克服机械式密码控制密码量少安全性差缺点电子密码控制系统技术性提高步着规模集成电路技术发展特单片机问世出现带微处理器智密码控制系统具传统电子密码控制系统功外引入智化理专家分析系统等功密码控制系统具高安全性性应日益广泛基单片机电子密码锁C51单片机实现功密码模块种电路设计具加密更快速性更高成更低特点特适合家庭办公室学生宿舍等场具强社会推广价值电子密码锁电子电路控制锁体新型锁具采键盘方式输入开锁密码操作方便科学技术断发展天电子密码锁具独特市场设计基单片机设计款简单适具开锁报警功电子密码锁

    12 电子密码控制简介
    电子密码控制种通密码输入控制电路芯片工作控制机械开关闭合完成开锁闭锁务电子产品电子密码控制性安全性已超机械类特点:
    1) 保密性编码量远远机械控制机开锁成功率零
    2) 密码变户时更改密码防止密码盗时避免员更控制保密性降
    3) 误码输入保护输入密码次错误时报警系统动启动
    4) 活动零件会磨损寿命长
    5) 灵活性机械锁必须佩带钥匙开锁
    6) 电子密码控制系统具操作简单易行学会特点

    13 电子密码控制发展趋势
    电子器件限前开发电子密码控制系统种类保密性差基简单模拟电子开关实现制作简单安全便基EDA实现电路结构复杂电子元件繁早先20引脚2051系列单片机实现密码简单易破解着电子元件进步发展电子密码控制系统出现种类功日益强更加方便安全保密性更强前单密码输入发展现密码加感应元件实现更真正电子加密户密码电子钥匙中样开锁着电子元件发展保密性需求提高出现越越电子密码控制系统
    数字字符图形图体生物特征时间等素均成电子信息组合信息够电子防盗密码控制获更高保密性防范森严金库需复合信息密码电子防盗密码控制系统组合信息够电子防盗密码控制系统获穷扩展出组合电子信息电子密码控制系统发展趋势

    14 设计实现目标简述
    设计采单片机控芯片结合外围电路组成电子密码控制系统户想开锁必先通提供键盘输入正确密码密码输入错误提示提高安全性密码输入错误三次报警密码户修改设定锁开修改密码修改密码前必须次输入密码输入新密码时候需二次确认防止误操作

    第二章 控制方案设计选择
    21 采数字电路控制

    图21 数字密码锁电路控制方案


    74LS112双JK触发器构成数字逻辑电路作密码控制系统核心控制设9户输入键中4效密码键干扰键干扰键键盘输入电路动清零原先输入密码效需重新输入果户输入密码时间超10秒(般情况户会超10秒户觉便修改)电路报警20秒电路连续报警三次电路锁定键盘2分钟防止非法操作 采数字电路设计方案时设计然简单控制准确性灵活性差采
    电路两部分组成:密码锁电路备电源(UPS)中设置UPS电源防止停电造成密码锁电路失效户免遭麻烦
    密码锁电路包含:键盘输入密码修改密码检测开锁电路执行电路报警电路键盘输入次数锁定电路

    22 采单片机核心控制方案

    图22 单片机控制方案
    单片机种类繁种型号定应环境选时加较合理选择期获佳性价般说选取单片机时面方面考虑:性存储器运行速度IO口定时计数器串行接口模拟电路功工作电压功耗封装形式抗干扰性保密性基:中断源数量优先级工作温度范围没低电压检测功单片机时钟振荡器电复位功等开发程中单片机受:开发工具编程器开发成开发员适应性技术支持服务等等素 基素设计选单片机AT89C51作设计核心元件利单片机灵活编程设计丰富IO端口控制准确性实现基密码控制功单片机外围电路外接输入键盘密码输入功控制外接LCD1602显示器显示作户需开锁时键盘数字键0-9输入密码密码输完开锁键果密码输入正确开锁正确显示密码错误重新输入密码三次密码错误发出报警时设计支持串行通信PC机实现远程操控户需修改密码时先键盘设置键果未开锁需输入原密码输入原密码正确设置新密码新密码输入误确认键新密码存储密码修改成功
    出方案二控制灵活准确性保密性强具扩展功根现实生活需次设计采方案

    第三章 元器件介绍I2C总线串行通信说明
    31 控芯片AT89C51
    AT89C51低功耗高性CMOS 8位单片机片含4k Bytes反复擦写1000次Flash读程序存储器器件采ATMEL公司高密度非易失性存储技术制造兼容标准MCS51指令系统AT80C51引脚结构芯片集成通8位中央处理器ISP Flash存储单元功强微型计算机AT89C51许嵌入式控制应系统提供高性价解决方案

    311 AT89C51性简介
    AT89C51具特点:40引脚4k Bytes Flash片程序存储器128 bytes机存取数存储器(RAM)32外部双输入输出(IO)口5中断优先级2层中断嵌套中断2 16位编程定时计数器2全双工串行通信口片时钟振荡器

    AT89C51引脚功简介
    芯片引脚图图31

    31 AT89C51芯片引脚图
    VCC:电源电压 GND:
    P0口:P0口组8位漏极开路型双IO口址数总线复口作输出口时位驱动8TTL逻辑门电路端口写1作高阻抗输入端口访问外部数存储器程序存储器时组口线分时转换址(低8位)数总线复访问期间激活部拉电阻Flash编程时P0口接收指令字节程序校验时输出指令字节校验时求外接拉电阻
    P1口:P1带部拉电阻8位双IO口P1输出缓级驱动(吸收输出电流)4TTL逻辑门电路端口写1通部拉电阻端口拉高电时作输入口作输入口时部存拉电阻某引脚外部信号校验期间P1接收低8位址
    P2口:P2带部拉电阻8位双IO口P2输出缓级驱动4TTL逻辑门电路端口写1通部拉电阻端口拉高电时作输入口作输入口时部存拉电阻某引脚外部信号拉低时会输出电流I访问8位址外部数存储器(执行:MOVX @Ri 指令)时P2口线(特殊功寄存器整访问期间改变Flash 编程校验时P2接收高位址控制信号
    P3口:P3口组带部拉电阻8位双IO口P3口输出缓级驱动(吸收输出电流)4TTL逻辑门电路P3口写入1时部拉电阻拉高作输入端口作输入端口时外部拉低P3口拉电阻输出电流IP3口作般IO口线外更重途第二功P3口第二功表32
    表32 P3口第二功
    端口功
    第二功
    端口引脚
    第二功
    RXD(P30)
    串行输入口
    T0(P34)
    定时计数器0外部输入
    TXD(P31)
    串行输出口
    T1(P35)
    定时计数器1外部输入
    INT0(P32)
    外中断0
    WR(P36)
    外部数存储器写选通
    INT1(P33)
    外中断1
    RD(P37)
    外部数存储器读选通
    RST:复位输入振荡工作时RST引脚出现两机器周期高电单片机复位ALEPROG:访问外部程序存储器数存储器时ALE(址锁存允许)输出脉锁存址低8位字节访问外部存储器ALE时钟振荡频率16输出正脉信号外输出时钟定时目注意:访问外部数存储器时跳ALE脉必通特殊功寄存器(SFR)区中8EH单元D0位置位禁止ALE操作该位置禁位条MOVX MOVC指令ALE会激活外该引脚伎微弱拉高单片机执行外部程序时应设置ALE效
    PSEN:程序储存允许(PSEN)输出外部程序存储器读选通信号AT89S51外部程序存储器取指令(数)时机器周期两次PSEN效输出两脉访问外部数存储器高两次效PSEN信号
    EAVPP:外部访问允许欲CPU访问外部程序存储器(址0000H-FFFFH)EA端必须保持低电(接)需注意:果加密位LB1编程复位时部会锁存EA端状态EA端高电(接VCC端)CPU执行部程序存储器中指令Flash存储器编程时该引脚加+12V编程电压VPP
    XTAL1:振荡器反相放器部时钟发生器输入端
    XTAL2:振荡器反相放器输出端
    32 LCD1602显示器
    现字符型液晶模块已单片机应设计中常信息显示器件1602型LCD显示模块具体积功耗低显示容丰富等特点1602型LCD显示2行16字符8位数总线D0D7RSRWEN三控制端口工作电压5V具字符度调节背光功
    LCD结构引脚功
    LCD1602液晶屏外观示意图图33

    图33 LCD液晶显示屏
    LCD液晶屏引脚功表34列:
    表34 LCD引脚功表
    编号
    符号
    引脚说明
    编号
    符号
    引脚说明
    1
    VSS
    电源
    9
    D2
    Data IO
    2
    VDD
    电源正极
    10
    D3
    Data IO
    3
    VEE
    液晶显示偏压信号
    11
    D4
    Data IO
    4
    RS
    数命令选择端
    12
    D5
    Data IO
    5
    RW
    读写选择端(HL)
    13
    D6
    Data IO
    6
    E
    信号
    14
    D7
    Data IO
    7
    D0
    Data IO



    8
    D1
    Data IO



    LCD1602引脚中中VSS电源VDD接5VVEE液晶显示器度调节端接正电源时度弱接电源时度高度高时会产生鬼影时通110K电位器调整度
    RS寄存器选择高电时选择数寄存器低电时选择指令寄存器RW读写信号线高电时进行读操作低电时进行写操作E端端D0~D78位双数线
    322 LCD显示指令系统
    通RSRWE三控制脚状态配合LCD1602操作两类四种两类分读写四种读状态写指令读数写数面具体四种状态:
    1) 读状态 输入:RSLRWHEH输出:D0~D7状态字
    2) 写指令 输入:RSLRWLD0D7指令E高脉输出:
    3) 读数输入:RSHRWHEH输出:D0~D7数
    4) 写数输入:RSHRWLD0~D7数E高脉输出:
    解四种状态LCD1602进行操作
    33 晶体振荡器
    晶体振荡器简称晶振作产生原始时钟频率频率频率发生器放缩成电脑中种总线频率声卡例实现模拟信号441kHz48kHz采样频率发生器必须提供441kHz48kHz时钟频率果需两种音频时支持话声卡需两颗晶振现娱乐级声卡降低成通常采SCR输出采样频率固定48kHzSRC会音质带损害现娱乐级声卡没解决问题现应广泛石英晶体振荡器
    石英晶体振荡器种高精度高稳定度振荡器石英晶体振荡器称石英晶体谐振器稳定频率选择频率种取代LC谐振回路晶体谐振元件石英晶体振荡器广泛应电视机影碟机录机线通讯设备电子钟表单片机数字仪器仪表等电子设备中数处理设备产生时钟信号特定系统提供基准信号单片机中提供时钟频率
    石英晶体振荡器利石英晶体(二氧化硅结晶体)压电效应制成种谐振器件基构成致:块石英晶体定方位角切薄片(简称晶片正方形矩形圆形等)两应面涂敷银层作电极电极焊根引线接脚加封装外壳构成石英晶体谐振器简称石英晶体晶体晶振产品般金属外壳封装玻璃壳陶瓷塑料封装晶体振子板极施加交变电压会晶片产生机械变形振动现象谓逆压电效应外加电压频率等晶体谐振器固频率时会发生压电谐振导致机械变形振幅突然增
    设计中采110592MHZ做系统外部晶振选择原面串口通信时候会具体说明电容取值22pF
    34 I2C总线说明M24C01串行EEPROM
    I2C(Inter-Integrated Circuit)总线种PHILIPS公司开发两线式串行总线连接微控制器外围设备I2C总线产生80年代初音频视频设备开发服务器理中中包括单组件状态通信例理员组件进行查询理系统配置掌握组件功状态电源系统风扇时监控存硬盘网络系统温度等参数增加系统安全性方便理
    341 I2C总线硬件结构
    I2C串行总线般两根信号线根双数线SDA根时钟线SCL接I2C总线设备串行数SDA接总线SDA设备时钟线SCL接总线SCL
    避免总线信号混乱求设备连接总线输出端时必须开漏输出集电极开路输出设备串行数线SDA接口电路应该双输出电路总线发送数输入电路接收总线数串行时钟线应双作控制总线数传送机方面通SCL输出电路发送时钟信号方面检测总线SCL电决定什时候发送时钟脉电作接受机命令机总线SCL信号发出接收SDA信号SCL线发出低电信号延长总线时钟信号周期总线空闲时设备开漏输出拉电阻RPSDASCL线保持高电设备输出低电相应总线信号线变低说:设备SDA关系SCL关系
    总线设备接口电路制造工艺电没特殊求(NMOSCMOS兼容)I2C总线数传送率高达秒十万位高速方式时秒四十万位外总线允许连接设备数电容量超400pF限
    总线运行(数传输)机控制谓机指启动数传送(发出启动信号)发出时钟信号传送结束时发出停止信号设备通常机微处理器机寻访设备称机进行通讯接I2C总线设备唯址便机寻访机机数传送机发送数机机发机发送数总线设备称发送器总线接收数设备称接受器
    I2C总线允许连接微处理器种外围设备存储器LEDLCD驱动器ADDA转换器等保证数传送时刻总线某台机控制微处理器应该总线空闲时发送启动数妥善解决台微处理器时发送启动数传送(总线控制权)突决定台微处理器控制总线问题I2C总线允许连接传送速率设备台设备间时钟信号步程称步化
    342 I2C总线工作原理:
    1总线构成信号类型:
    I2C总线数线SDA时钟SCL构成串行总线发送接收数CPU控IC间ICIC间进行双传送高传送速率100kbps种控制电路均联条总线电话机样拨通号码工作电路模块唯址信息传输程中I2C总线接模块电路控器(控器)发送器(接收器)取决完成功CPU发出控制信号分址码控制量两部分址码选址接通需控制电路确定控制种类控制量决定该调整类(度亮度等)需调整量样控制电路然挂条总线彼独立互相关
    I2C总线传送数程中三种类型信号 分:开始信号结束信号应答信号
    开始信号:SCL高电时SDA高电低电跳变开始传送数
    结束信号:SCL高电时SDA低电高电跳变结束传送数
    SDA
    SCL
    开始
    结束

    图35开始结束信号图
    应答信号:接收数IC接收8bit数发送数IC发出特定低电脉表示已收数CPU受控单元发出信号等受控单元发出应答信号CPU接收应答信号根实际情况作出否继续传递信号判断未收应答信号判断受控单元出现障
    2总线基操作:
    I2C规程运双通讯器件发送数总线定义发送器器件接收数定义接收器器件器件工作接收发送状态 总线必须器件(通常微控制器)控制器件产生串行时钟(SCL)控制总线传输方产生起始停止条件SDA线数状态仅SCL低电期间改变SCL高电期间SDA状态改变表示起始停止条件
    控制字节:起始条件必须器件控制字节中高四位器件类型识符(芯片类型定义EEPROM般应1010)接着三位片选位读写位1时读操作0时写操作
    写操作:写操作分字节写页面写两种操作页面写根芯片次装载字节
    读操作:读操作三种基操作:前址读机读序读图4出序读时序图应注意:读操作第9时钟周期关心结束读操作机必须第9周期时发出停止条件者第9时钟周期保持SDA高电然发出停止条件
    I2C总线应中应注意事项总结点
    a)严格时序图求进行操作
    b)口线带部拉电阻单片机接口连接外加拉电阻
    c)程序中配合相应传输速率口线操作指令NOP指令加定延时
    d)减少意外干扰信号EEPROM数改写外部写保护引脚(果)者EEPROM部没空间写入标志字次电时复位时做次检测判断EEPROM否意外改写
    3添加:I2C 总线:
    现代电子系统中数众IC 需进行相互间外界通信提供硬件效率简化电路设计PHILIPS 开发种部IC 控制简单双两线串行总线I2C(inter IC 总线)I2C 总线支持种IC 制造工艺PHILIPS 厂商提供种类非常丰富I2C 兼容芯片作专利控制总线I2C 已成世界性工业标准
    I2C 器件唯址单接收器件(例:LCD 驱动器)者接收发送器件(例:存储器)发送器接收器模式模式操作取决芯片否必须启动数传输仅仅寻址I2C 总线连接器件控制
    早期I2C 总线数传输速率高100Kbitss采7 位寻址数传输速率应功迅速增加I2C 总线增强快速模式(400Kbitss)10 位寻址满足更高速度更寻址空间需求I2C 总线始终先进技术保持步然保持兼容性增加高速模式速度达34MbitssI2C 总线够支持现高速串行传输应例EEPROM Flash 存储器
    343 存储器24C01
    叙述I2C总线接I2C总线串行EEPROM中具体应M24C01128字节串行CMOS EEPROM设计里面存空间足够具体特性:
    建128x8存储序列
    2线制串行接口
    双数传送协议
    100kHz(18V25V27V) 400kHz(5V)兼容
    写步时钟(10ms)
    高性
    极限:1M写时钟周期
    数保存100年
    断推进芯片等级扩设备温度范围
    M24CO1脚示意图图36

    图36M24CO1
    图中第7引脚写保护引脚果连接Vcc容写保护读连接Vss者悬空允许器件进行正常读写操作实验中第7引脚接便24C01写入
    第5引脚SDA串行数址引脚24C01双串行数址引脚器件数发送接收SDA开漏输出引脚开漏输出者集电极开路输出进行线

    第6引脚SCL24C01串行时钟输入引脚产生数发送接收时钟输入引脚
    实际连线中需记连接拉电阻
    面简描述工作方式:
    1 写操作: 字节写页写
    2 读操作: 前址读指定址读连续读

    35 串口通信
    目前RS232PC通信工业中应广泛种串行接口中RS代表推荐标准232标识号RS232定义种低速率串行通信中增加通信距离单端标准RS232采取衡传输方式单端通信单片机间串口通信传输距离1515米间时采RS232通讯协议进行数传输基RS232电气特性限制实现点点通信(单机通信)
    设计部分C51单片机PC串口间通讯实现单片机PC机间远程通信设计分发送接收两模块发送部分通硬件电路引中包括RS232接口电路MAX232接口电路引相应脚相连相应软件程序转入电路中运行电路相独立时直接调速电路参数值影响干扰满足发射接收模块求单独控制进行调整程序编入接收部分相应结果实现实现PC机远端单片机控制
    C51PC机通RS232标准总线串行通信时RS232信号电C51单片机信号电致必须进行信号电转换常方法两种种采运算放器晶体光电隔离器等器件组成电路实现种采专门集成芯片实现设计中MAX232集成芯片实现具体连线方法图

    图37 MAX232芯片COM口

    关串行通信基础知识里赘述里补充波特率设置晶振里提
    串行通信中收发双方发送接收数波特率约定通信双方波特率必须相方通信51单片机串行通信四种方式方式0方式2波特率固定变方式1方式3波特率变化通常定时器T1(者T2)溢出率决定
    里需根系列公式慢慢计算表列出常波特率
    表38常波特率
    串行口工作方式
    波特率
    (Kbs)
    晶振频率
    (MHz)
    SMOD
    定时器T1
    CT
    方式
    时间常数
    方式0
    1000()
    12
    X
    X
    X
    X
    方式2
    375
    12
    1
    X
    X
    X
    方式13
    625
    12
    1
    0
    2
    FFH
    192
    110592
    1
    0
    2
    FDH
    96
    110592
    0
    0
    2
    FDH
    48
    110592
    0
    0
    2
    FAH
    方式13
    24
    110592
    0
    0
    2
    F4H
    12
    110592
    0
    0
    2
    E8H
    01375
    11986
    0
    0
    2
    1DH
    0110
    6
    0
    0
    2
    27H
    0110
    12
    0
    0
    1
    FEEBH
    图中知选择波特率9600bps时应晶振110592MHz时T1工作方式2串口工作方式1

    第四章 系统硬件构成
    41 设计原理
    设计单片机矩阵键盘液晶显示器密码存储等部分组成中矩阵键盘输入数字密码进行种功实现户通连接单片机矩阵键盘输入密码单片机户输入密码保存密码进行判断密码否正确然控制引脚高低电传开锁电路者报警电路控制开锁报警
    系统两部分构成硬件部分软件部分中硬件部分电源输入部分键盘输入部分复位部分晶振部分显示部分报警部分组成软件部分应程序初始化程序LCD显示程序键盘扫描程序启动程序关闭程序键功程序密码设置程序EEPROM读写程序延时程序等组成
    确定选什型号单片机确定外围电路外围电路包括键盘输入部分复位部分晶振部分显示部分报警部分组成元器件构成第三章已介绍根实际情况具体:键盘输入部分选择4*4矩阵键盘实现密码输入键功实现显示部分选择字符型液晶屏LCD1602更显示提示信息报警部分蜂鸣器密码存储选择M24C01存较里较合适锁开合通电磁继电器闭合开启实现
    具体原理框图图41示目然 具体介绍部分




    AT89C51
    键盘输入
    复位电路
    晶振电路
    电源输入
    显示电路
    报警电路
    开锁电路

    41 电子密码锁原理框图
    42 键盘输入部分
    设计键数量较适合独立键式键盘采矩阵式键键盘行线列线组成称行列式键盘键位行列交叉点密码锁密码键盘输入完成独立式键键盘相节省IO口设计中4*4键盘完成密码输入作特功键清空显示功等键盘键功程序设计中设置
    421 矩阵式键盘结构工作原理
    键盘中键数量较时减少IO口占通常键排列成矩阵形式图42示矩阵式键盘中条水线垂直线交叉处直接连通通键加连接样端口(P2口)构成4*416键直接端口线键盘出倍线数越区越明显加条线构成20键键盘直接端口线出键(9键)见需键数较时采矩阵法做键盘合理
    矩阵式结构键盘显然直接法复杂识复杂图中条水(行线)垂直线(列线)交叉处相通通键连通利种行列式矩阵结构需N条行线M条列线组成具N×M键键盘


    图42 矩阵键盘
      种行列式矩阵键盘非键盘编码单片机系统中键盘处理程序首先执行等键确认键程序段
    确认键步识键键识通常两种方法:种常逐行扫描查询法种速度较快线反转法
    里仅介绍矩阵式键盘键识方法 :行扫描法
      行扫描法称逐行(列)扫描查询法种常键识方法图示键盘介绍程
      1)判断键盘中键 全部行线置低电然检测列线状态列电低表示键盘中键闭合键位低电线4根行线相交叉4键中列线均高电键盘中键
      2)判断闭合键位置 确认键进入确定具体闭合键程方法:次行线置低电置某根行线低电时线高电确定某根行线位置低电逐行检测列线电状态某列低该列线置低电行线交叉处键闭合键
      3)保证键闭合次CPU仅作次处理必须消键释放时抖动

    43 复位部分
    单片机复位CPU系统中功部件处确定初始状态状态开始工作单片机刚开始接电源时断电者发生障复位复位期间(RST高电期间)P0口高组态P1-P3口输出高电外部程序存储器读选通信号PSEN效址锁存信号ALE高电根实际情况选择图43示复位电路该电路简单复位电路增加手动复位键接通电源瞬间电容C3电压复位拉电阻电压接电源电压RST高电电容充电程中RST端电压逐渐降RST端电压某数值CPU脱离复位状态电容C3足够保证RST高电效时间24振荡周期CPU够复位增加手动复位键避免死机时法复位复位键电容C3通R2放电电容C3放电结束RST端电位R2R3分压决定R2<

    图43复位电路

    44 晶振部分
    AT89C51引脚XTAL1XTAL2晶体振荡器电容C2C1图44示方式连接晶振电容C1/C2片非门(作反馈放元件)构成电容三点式振荡器振荡信号频率晶振频率电容C1C2容量关晶振频率决定范围0~33MHz间电容C1C2取值范围5~30pF间根实际情况设计中110592MHZ做系统外部晶振电容取值22pF


    图44 晶振电路
    45 显示部分
    提高密码锁密码显示效果力设计显示部分液晶显示器LCD1602取代普通数码完成系统初始化化LCD会显示Welcome需密码锁进行开锁时键盘数字键0-9输入密码数字键显示器显示*字符输入少位显示少字符密码输入完成时开锁键果输入密码正确话 LCD显示Success单片机接电磁继电器引角会输出低电三极导通电磁继电器吸合电子密码锁开果密码正确LCD显示屏会显示ErrorHave try 引脚输出高电电子密码锁开通LCD显示屏清楚判断出密码锁处状态
    关LCD1602图示第三章介绍元器件时候已附里重复

    46 开锁部分报警部分
    开锁部分电磁继电器组成密码输入正确时单片机引脚低电三极导通电磁继电器开关吸合变断开开锁程密码输入错误时单片机引脚高电三极断开电磁继电器开关继续保持原始吸合状态闭锁状态设计时安全性较高方面保险箱锁断电时然会维持初始锁存状态考虑安全性合理性场合断电状态存定矛盾处开门锁果断电常开间接帮助歹徒偷盗断电常闭误事时候助系统中连接备电源弥补缺陷系统设计断电锁存更合理
    报警部分外接蜂鸣器组成密码输入错误满三次时单片机引脚低电三极导通蜂鸣器发出噪鸣声报警
    关开锁部分报警部分示意图见图45:


    图45 开锁部分报警部分

    第五章 系统软件构成
    51 系统软件流程图设计
    系统软件设计程序初始化程序LCD显示程序键盘扫描程序键功程序密码设置程序EEPROM读写程序串行通信程序等组成里简介绍程序流程图键功流程图密码设置流程图开锁流程图

    511 程序流程图
    图51示程序流程图接电源程序进行初始化设置调EEPROM密码流程图中没展示里做说明接流程:LCD面显示Welcome欢迎界面时候键盘输入密码输入完成开锁键程序会匹配输入密码否正确正确开锁错误错误次数加1输入完成错误继续输入密码连续错误三次转入报警电路锁开设置键修改密码前提已锁开输入新密码确定键密码设置成功程序流程图整系统工作程表现清晰明
    目前程序流程图算简单实然方案决定实现样功样实现程序硬件连线需考虑进
    力限裁决方案选择稍微简单方案流程图改简单终仿真出
    软件流程图程序设计基础达事半功倍效果程序编写更合理清晰简明流程图呈现非常必
    重程序流程图:



    图51 程序流程图
    512 键功流程图
    图52键功流程图键中开锁清屏设置确认程序相应键序输入键值相较键值吻合时进入密码程序图流程图中列举键功关锁功里省略意思样时子程序流程图反映体程具体功实现着求程序里面实现密码设置程序嵌套开锁成功程序中流程图绘制太绘制里点缺陷图中特说明简化绘图

    图52 键功子程序

    513 设置密码流程图
    图53设置键进入密码设置界面时需保证锁已开果没开先需输入原密码输入新密码确认键密码修改成功设置密码部分系统亮点样避免旧密码泄露导致系统安全隐患需时修改新密码

    图53 设置密码子程序流程图
    514 开锁流程图
    系统关键处根究底然锁字切切安全开锁开锁子程序然简单认忽视部分
    通流程图演示目然读者呈现系统开锁工作程流程图重性
    图54开锁流程图初始化显示Welcome时输入密码开锁键果输入正确开锁成功锁开果输入错误继续重复述程错误次数累计达三次执行报警程序

    图54 开锁子程序流程图
    面附开锁子程序便更理解时算做说明具体程序见附录键扫描段程序精彩
    case 10 S10开锁键输入密码 键起确认作然输入密码否正确决定否开锁
    for(k0k<6k++)
    {
    if(buffer[k]Userpassword[k])
    flag1
    else
    flag0
    }
    if (flag1)
    { flag0
    i0
    lock0
    clear_password()
    Display_String(Success 0xc0)
    IS_valid_user 1
    j0
    }
    else
    {
    j++
    lock1
    clear_password()
    Display_String(ErrorHave try 0xc0)
    write_com(0xcf)
    write_date(0x30+j)
    IS_valid_user0
    if(j3)
    {
    Display_String(Alarm 0xc0)
    j0
    beep0
    }
    }
    i0
    break
    52 Proteuskeil开发软件功介绍
    521 Proteus简介
    设计中采ProteusKeil两款软件没前开题报告中说protel开展设计发现Proteus仅画硬件原理图PCB板Keil联合进行系统仿真方面然protel软件系统兼容问题综合考虑选择两款软件完成设计容
    Proteus软件英国Labcenter electronics公司出版EDA工具软件(该软件中国总代理广州风标电子技术限公司)仅具EDA工具软件仿真功仿真单片机外围器件目前仿真单片机外围器件工具然目前国推广刚起步已受单片机爱者事单片机教学教师致力单片机开发应科技工作者青睐Proteus世界著名EDA工具(仿真软件)原理图布图代码调试单片机外围电路协仿真键切换PCB设计真正实现概念产品完整设计目前世界唯电路仿真软件PCB设计软件虚拟模型仿真软件三合设计台处理器模型支持8051HC11PIC101216182430DsPIC33AVRARM8086MSP430等2010年增加CortexDSP系列处理器持续增加系列处理器模型编译方面支持IARKeilMPLAB等种编译器
    该软件具设计相关特点:
    1 提供种虚拟元器件调试非常方便
    2 提供软件调试功时支持第三方软件编译调试环境Keil等软件
    3 具强原理图绘制功Proteus单片机仿真软件仅仿真单片机CPU工作情况仿真单片机外围电路没单片机参电路工作情况仿真程序调试时关心某语句执行时单片机寄存器存储
    器容改变工程角度直接程序运行电路工作程结果样仿真实验某种意义讲弥补实验工程应脱节矛盾现象时硬件调试成功利Proteus ARES软件容易获PCB图制造提供方便

    522 Proteus实功
    1 智原理图设计(ISIS)
    ISISProteus系统中心远仅图表库具控制原理图画图外观超强设计环境户求快速实现复杂设计仿真PCB设计设计精美原理图供出版ISIS完成
    ISIS提供户图形外观包括线宽填充类型字符等全部控制户够生成杂志样精美原理图远胜CAD软件绘制出稀薄线条画完图图形文件输出者拷贝剪切板便文件ISIS成制作技术文件学术文项目报告理想工具PCB设计出色前端画图外形风格模板定义外方案允许户定制元件库提供库部件外观

    绘制原理图:绘制原理图原理图编辑窗口中蓝色方框完成原理图编辑窗口操作常WINDOWS应程序正确操作:左键放置元件右键选择元件双击右键删元件右键拖选元件先右键左键编辑元件属性先右键左键拖动元件连线左键删右键改连接线:先右击连线左键拖动中键放缩原理图
    时ISIS绘制原理图时具特点:
    1)丰富器件库:超27000种元器件方便创建新元件2)智器件搜索:通模糊搜索快速定位需器件   
    亮点关重正画硬件原理图时元件选择方面没遇太困难然元件软件中标号名称实际名称出入通查找相关资料容易找
    3)智化连线功:动连线功连接导线简单快捷缩短绘图时间支持总线结构:总线器件总线布线电路设计简明清晰输出高质量图纸:通性化设置生成印刷质量BMP图纸方便供WORDPOWERPOINT等种文档
    第三点样重总线原理图显更加简洁明生成BMP图纸A0图更清晰相截图高明
    2 独特仿真功
    支持流CPU类型:ARM7805152AVRPIC1012PIC16PIC18PIC24dsPIC33HC11BasicStamp8086MSP430等CPU类型着版升级继续增加支持CORTEXDSP处理器   
    支持通外设模型:字符LCD模块图形LCD模块LED点阵LED七段显示模块键盘键直流步进伺服电机RS232虚拟终端电子温度计等等COMPIM(COM口物理接口模型)仿真电路通PC机串口外部电路实现双异步串行通信   
    实时仿真:支持UARTUSARTEUSARTs仿真中断仿真SPII2C仿真MSSP仿真PSP仿真RTC仿真ADC仿真CCPECCP仿真   
    编译调试:支持单片机汇编语言编辑编译源码级仿真带8051AVRPIC汇编编译器第三方集成编译环境(IARKeilHitech)结合进行高级语言源码级仿真调试
    Proteus仿真功特重模块Proteus里面实现软件仿真硬件调试减许调试误区非常实部分
    3 实PCB设计台
    原理图PCB快速通道: 原理图设计完成键便进入ARESPCB设计环境实现概念产品完整设计  
    先进动布局布线功:支持器件动工布局支持网格动布线工布线支持引脚交换门交换功PCB设计更合理   
    完整PCB设计功:设计16铜箔层2丝印层4机械层(含板边)灵活布线策略供户设置动设计规检查3D 视化预览  
    项功更彻底坚定代Protel决心样制版时候方便 
    制版程中遇问题网络真东西家起讨出现问题坛前辈印记帮助加载网络表前需元件进行封装部分元件已封装开关COM口等必须手动加载封装库中找应元件验确实前没Proteus制版操作流程需头学起生断学实践中总结方法资料中说加载网络表会动弹出选择没封装元件封装信息发现原理图修改右键Packaging Tool选择封装信息然具体选择需参考前辈验里予赘述Edit Properties里面封装信息然保存加载网络表需点击Tools工具栏Netlist to ARES接着规划电路板里较容易手里简述实践中遇问题元件分布稍作调整先动布线时遇问题提示栏闪出failed to load layout里出问题坛仔细查询知道保存形式问题出现中文恍然悟啊毕竟软件英文版点偷偷想前安装英文游戏出现中文目录否法运行改动布线调整元件分布连线元件非常尤开关加入显特布线时候选择双层布线Top CopperBottom Copper样避免线交叉然美观确折扣设计PCB图绘制冰山隅更精致复杂绘制程需更学实践完成PCB制版工作图中导出样画质清晰方便印
    里插入完成PCB图张
    图55 PCB制版图
    523 Keil简介
    Keil C51美国Keil Software公司出品51系列兼容单片机C语言软件开发系统汇编相C语言功结构性读性维护性明显优势易学易汇编语言C开发体会更加深刻Keil C51软件提供丰富库函数功强集成开发调试工具全Windows界面外重点编译生成汇编代码体会Keil C51生成目标代码效率非常高数语句生成汇编代码紧凑容易理解开发型软件时更体现高级语言优势Keil C51软件基32位Windows环境应程序支持C语言汇编语言编程60版编译仿真软件统μVision(通常称μV2)Keil提供包括C编译器宏汇编连接器库理功强仿真调试器等完整开发方案部分组成:μVision IDE集成开发环境C51编译器A51汇编器LIB51库理器BL51连接定位器OH51目标文件生成器 Monitor51RTX51实时操作系统
    524 Keil软件方法
    Keil进行软件仿真开发步骤:编写源程序保存—建立工程添加源文件—设置工程—编译汇编连接产生目标文件—程序调试Keil工程(Project)概念工程(单源程序)进行编译汇编连接等操作工程建立设置编译汇编连接产生目标文件方法非常易掌握首先选择菜单FileNew源程序编辑器中输入汇编语言C语言源程序者直接开已编辑器编辑源程序文档保存注意保存时必须文件名加扩展名asmc然选择菜单ProjectNew Project建立新工程保存(保存时需加扩展名加扩展名uv2)工程保存会立弹出设备选择话框选择CPU点确定返回界面时工程理窗口文件页(Files)会出现Target1前面+号展开接着选择Source Group1右击鼠标弹出快捷菜单选择Add File to Group Source Group1’出现话框求寻找加入源文件(加入源文件该话框会消失等继续加入文件)加入文件点close返回界面展开Source Group1前面+号会加入文件双击文件名开该源程序文件紧接着工程进行设置选择工程理窗口Target1选择ProjectOption for TargetTarget1’(点右键弹出快捷菜单选择该选项)开工程属性设置话框8选项卡设置工作包括Target选项卡中设置晶振频率Debug选项卡中设置实验仿真板等写片必须Output选项卡中选中Creat Hex Fi选项卡容般取默认值工程设置F7键(点击编译工具栏相应图标)进行编译汇编连接产生目标文件 
    成功编译汇编连接选择菜单DebugStartStop Debug Session(Ctrl+F5键)进入程序调试状态Keil提供程序模拟调试功建功强仿真CPU模拟执行程序Keil单步执行(F11选择DebugStep)程单步执行(F10选择DebugStep Over)全速执行等种运行方式进行程序调试果发现程序错采线汇编功程序进行线修改(DebugInline Assambly)必执行先退出调试环境修改源程序工程重新进行编译汇编连接然次进入调试状态步骤必须满足定条件(键等)执行难单步执行方式进行调试程序行采断点设置方法处理(DebugInsertRemove BreakpointDebugBreakpoints等)模拟调试程序须通编程器hex目标文件烧写入单片机中观察目标样机真实运行状况
    关Keil介绍非常详细设计中差产生hex目标文件载入Proteus中实现仿真
    525 系统仿真运行
    助面两软件联合系统仿真运行基完成串口通信需载串口调试助手款软件里先做详细介绍
    面简单仿真图介绍系统工作程
    1)电状态系统初始化LCD显示欢迎字样锁时状态

    图56 电状态
    2)输入六位密码密码位数程序中设定密码输入正确显示Success密码错误显示Errorhave try [i]i3会报警实里截取LCD显示信息锁开状态通LED检测出报警时蜂鸣器会发声仿真电路里面体现继电器具体仿真时连接稍微做变化原理图遵循实际电路设计



    图57 输入密码程状态
    3)介绍功键:S10开锁键S11关锁键S12设置键S13确认键S14清屏键S15取消键
    关锁键紧急情况安全起见清屏键清屏幕输入值某位输入值输错取消键设置确定键密码重置
    仿真东西做出难做出天甚星期弄源程序编写修改痛苦程然编译时候部分子程序合拢起N种error解决种errorwarning感觉错Keil中生成hex文件载入Proteus中帆风开始键LCD面显示脚出键效果慢慢解决问题守云开见月明种程错
    4)贴张报警图

    图 58 报警示意图






    第六章 结
    漫长设计程整设计终做终结整体系统基实现电子密码锁基功仔细回顾难发现然需提高方力定关系花时间精力呈现定关系例串行通信方面涉软件单片机通信尝试次未果没继续深究粗略解部分程序应该态度定杜绝
    时间紧慢中想起设计刚开始段时间想干场雄心现真觉丢现起前活意义段时间然抓紧赶工种紧张感实觉特充实未尝尝试种样方案综合运
    实矩阵键盘排序方面样选种方案终敲定原理图中方案样排序键盘数字键排序效防止根手型猜出密码样排序输出数字正应键盘键值省列方程求键值数值间关系麻烦改良
    设计终应处前稍微提断电常锁方会影响正常生活便系统够更安全保险箱
    希机会设计继续更深层次发展




    参考文献
    [1] 杨振江 单片机原理实践指导北京:中国电力出版社2008
    [2] 周惠潮孙晓峰常电子器件典型应[M]北京:电子工业出版社2007
    [3] 高金源夏洁计算机控制系统[M]北京:清华学出版社2007
    [4] 赵会成王金51单片机C程序应实例详解 北京:北京航空航天学出版社2011
    [5] 张天 完全手册51单片机C语言开发详解 北京:电子工业出版社2008
    [6] 陈涛 单片机应C51程序设计 北京:机械工业出版社2010
    [7] 彭伟 单片机C语言程序设计实训100例 北京:电子工业出版社 2009
    [8] 岳学军陈姗陆健强 基单片机串行通信电子密码锁设计云南农业学学报200924(1):154~157
    [9] 宋锦 电子密码锁设计调试电脑知识技术20117(33)8218~8221





    致谢
    毕业设计——基单片机电子密码锁设计历时十余周张波老师悉心教导终利完成
    次设计实性较高设计程中温学四年学东西重实知识技术动化专业密切相关次设计中理运实践通亲动手调试程序硬件电路深刻明白理实践区联系理指导实践重性唯理知识学扎实实践中游刃余终身受益
    做毕设期间张老师提供帮助题目选择资料搜集系统设计调试整程张老师建议指导隔段时间会开会讲解毕设涉容知识利完成毕业设计毕业设计张老师倾注量心血汗水严谨治学态度踏实工作精神留深刻印象张老师诲倦精神受益终生整毕业设计程中身学东西里感谢张老师辛苦认真指导直提供帮助细心讲解提出问题感谢起研究毕业设计学毕设完成少协作帮助
    毕业设计完成意味着学生涯结束四年磨练前徒理想稚气少年已变更加坚强成熟日子里会谨记母校立立 兴安安国校训老师教诲工作中奋发图强




    附录A

    附录 B
    #include
    #include
    #include
    #define uchar unsigned char
    #define uint unsigned int
    #define delay4us() _nop_()_nop_()_nop_()_nop_()
    uchar buffer[6]{0}
    sbit sdaP1^3
    sbit sclP1^2
    sbit beepP1^1
    bit flag0aa
    uchar DSY_BUFFER[16]
    uchar DSY_BUFFER1[16]
    uchar Userpassword[6]{0}
    sbit rsP1^5
    sbit rdP1^6
    sbit lcdenP1^7
    sbit lockP1^0
    uchar code table2[]123456
    uchar code table[]Welcome
    void delayms(uint z)
    {
    uint xy
    for(xzx>0x)
    for(y110y>0y)
    }
    void delay() 短延时两机器周期做总线延时
    {


    }
    void write_com(uchar com)
    {
    rs0
    rd0
    lcden0
    P0com
    delayms(3)
    lcden1
    delayms(3)
    lcden0
    }

    void write_date(uchar date)
    {
    rs1
    rd0
    lcden0
    P0date
    delayms(3)
    lcden1
    delayms(3)
    lcden0
    }
    void Display_String(uchar *puchar com)
    {
    uchar i
    write_com(com)
    for(i0i<16i++)
    {
    write_date(p[i])
    }
    }
    void init_lcd()
    {
    lcden0
    write_com(0x38)
    write_com(0x0c)
    write_com(0x06)
    write_com(0x01)
    write_com(0x80)
    Display_String(table0x80)
    Display_String(Lock on 0xc0)
    }


    void initcom(void) 初始化串口
    {
    SCON0x50
    TMOD0x20
    PCON0x00
    TH10XFD
    TL10xFD
    REN1
    TR11
    EA1
    ES1
    }


    void comout(uchar sdat)串口发送数
    {
    SBUFsdat发送数送缓
    while(TI0)TI0表示未传完 需等
    TI0清发送结束标志
    }


    void comrec(uchar rdat)
    {
    while(RI0)
    RI0
    rdatSBUF
    comout(rdat)
    return(SBUF)

    }

    void com()
    {
    uchar dat[6]
    uchar dat1[]Please Input The Password
    uchar dat2[]Welcome
    uchar dat3[]ERRORPlease Input The Password Again
    uchar fag1ijk
    if(fag1)
    SBUFdat1[i++]
    while(TI)TI0
    if(i26)
    {
    SBUF13
    while(TI)
    TI0
    SBUF10
    while(TI)
    TI0
    i0
    fag2
    }
    }
    if(fag3)
    {
    if(dat[0]'0'&&dat[1]'0'&&dat[2]'0'&&dat[3]'0'&&dat[5]'0'&&dat[6]'0')
    {
    SBUFdat2[j++]
    while(TI)
    TI0
    if(j8)
    {
    SBUF13
    while(TI)
    TI0
    SBUF10
    while(TI)
    TI0
    j0
    fag0
    }
    }
    else
    {
    SBUFdat3[k++]
    while(TI)TI0
    if(k38)
    {
    SBUF13
    while(TI)
    TI0
    SBUF10
    while(TI)
    TI0
    k0
    fag1}
    }
    }
    }
    }
    void zd() interrupt 4
    {
    if(fag2)
    {
    RI0
    dat[j++]SBUF
    if(j4){j0fag3
    }
    }

    void start()
    {
    sda1
    scl1
    delay4us()
    sda0
    delay4us()
    scl0
    }
    void stop()
    {
    sda0
    scl1
    delay4us()
    sda1
    delay4us()
    scl0
    }
    void init() 初始化
    {
    sda1
    delay()
    scl1
    delay()
    }


    void ack()
    {
    sda0
    scl1
    delay4us()
    scl0
    sda1
    }
    void noack()
    {
    sda1
    scl1
    delay4us()
    scl0
    sda0
    }
    uchar recbyte()
    {
    uchar ird
    rd0x00
    sda1
    for(i0i<8i++)
    {
    scl1
    rd<<1
    rd|sda
    delay4us()
    scl0
    delay4us()
    }
    scl0
    delay4us()
    return rd
    }
    uchar sendbyte(uchar wd)
    {
    uchar i
    bit ack0
    for(i0i<8i++)
    {
    sda(bit)(wd&0x80)
    _nop_()
    _nop_()
    scl1
    delay4us()
    scl0
    wd<<1
    }
    delay4us()
    sda1
    scl1
    delay4us()
    ack0sda
    scl0
    delay4us()
    return ack0
    }
    uchar Recstring(uchar slaveuchar subaddruchar *bufferuchar n)
    {
    uchar i
    start()
    if(sendbyte(slave)) return 0
    if(sendbyte(subaddr)) return 0
    start()
    if(sendbyte(slave+1)) return 0
    for(i0i{
    buffer[i]recbyte()
    ack()
    }
    buffer[n1]recbyte()
    noack()
    stop()
    return 1
    }

    uchar Sendstring(uchar slaveuchar subaddruchar *bufferuchar n)
    {
    uchar i
    start()
    if(sendbyte(slave)) return 0
    if(sendbyte(subaddr)) return 0
    for(i0i{
    if(sendbyte(buffer[i])) return 0
    }
    stop()
    return 1
    }
    void clear_password()
    {
    uchar i
    for(i0i<6i++)
    {
    Userpassword[i]' '
    }
    for(i0i<16i++)
    {
    DSY_BUFFER[i]' '
    }
    }
    uchar Keys_Scan()
    {
    uchar tempkeynum
    P20x0f
    delayms(5)
    tempP2^0x0f
    switch(temp)
    {
    case 1keynum0break
    case 2keynum1break
    case 4keynum2break
    case 8keynum3break
    break
    }
    P20xf0
    delayms(5)
    tempP2>>4^0x0f
    switch(temp)
    {
    case 1keynum+0break
    case 2keynum+4break
    case 4keynum+8break
    case 8keynum+12break
    break
    }
    delayms(600)
    return keynum
    }
    void main()
    {
    uchar tempi0j0k0n
    uchar IS_valid_user
    beep1
    init()
    init_lcd()
    initcom()
    delayms(5)
    aaSendstring(0xa01table26)
    delayms(5)
    aaRecstring(0xa01buffer6)
    delayms(10)
    P20x0f
    while(1)
    {
    com()
    if(P20x0f)
    {
    tempKeys_Scan()
    switch(temp)
    {
    case 0 case 1 case 2 case 3 case 4
    case 5 case 6 case 7 case 8 case 9
    if (i<5)
    {
    Userpassword[i]temp
    DSY_BUFFER[i]'*'
    Display_String(DSY_BUFFER0xc0)
    i++
    }
    break

    case 10 开锁键
    for(k0k<6k++)
    {
    if(buffer[k](Userpassword[k]+48))字符 0ASCII码值48
    flag1
    else
    flag0
    }
    if (flag1)
    { flag0
    i0
    lock0
    clear_password()
    Display_String(Success 0xc0)
    IS_valid_user 1
    j0
    }
    else
    {
    j++
    lock1
    clear_password()
    Display_String(ErrorHave try 0xc0)
    write_com(0xcf)
    write_date(0x30+j)
    IS_valid_user0
    }
    i0
    break

    case 11 关锁键
    lock1
    beep0
    clear_password()
    Display_String(table0x80)
    Display_String(Lock on 0xc0)
    i0
    IS_valid_user0
    break

    case 12 设置键
    if ( IS_valid_user)
    {
    i0
    Display_String(No rights 0xc0)
    delayms(1000)
    Display_String(Input code0x80)
    Display_String(Lock on 0xc0)
    }
    else
    {
    i0
    Display_String(Input new code 0x80)
    Display_String( 0xc0)
    }
    break

    case 13 确认键保存新密码
    if ( IS_valid_user)
    { i0
    Display_String(No rights 0xc0)
    delayms(1000)
    Display_String(Input code0x80)
    Display_String(Lock on 0xc0)
    }
    else
    {i 0
    init()
    delayms(5)
    for(k0k<6k++)
    {
    Userpassword[k]Userpassword[k]+48
    }
    aSendstring(0xa01Userpassword6)
    delayms(5)
    aaRecstring(0xa01buffer6)
    delayms(5)
    clear_password()
    Display_String(table0x00)
    Display_String(Code Saved 0xc0)
    delayms(1000)
    Display_String(Thank you 0xc0)
    }
    break
    case 14 清屏键
    i0
    clear_password()
    Display_String( 0xc0)
    break
    case 15 取消键
    if(i0)i
    for(n0n{
    DSY_BUFFER1[n]'*'
    }
    Display_String(DSY_BUFFER10xc0)
    }
    P20x0f
    }
    if(j3)
    {
    Display_String(Alarm 0xc0)
    j0
    beep0
    }
    }
    }
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于单片机的电子密码锁设计

    目录设计总说明································································IIntroduction············...

    4周前   
    250    0

    电子信息工程基于单片机的指纹密码锁设计与实现

    基于单片机的指纹密码锁设计与实现 Design and implementation of fingerpri...

    1年前   
    270    0

    基于51单片机的电子密码锁设计

    近年来,在我国社会经济不断进步和迅猛发展的背景下,人们的生活水平越来越高,更多的人开始享受高质量的生活。就拿我们家家离不开的锁具来说,从我国古代历史上就有了各种锁的记载和使用,发展到今天人们追求...

    3年前   
    679    0

    基于单片机的电子琴设计

    综合课程设计题 目:可演奏的电子琴 学 院:管理科学与工程学院可演奏的电子琴摘要:随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们...

    4周前   
    79    0

    毕业论文:基于plc的电子密码锁毕业论文设计

    本毕业设计介绍了可编程序控制器(PLC)和PLC控制系统的基本知识,包括PLC的定义、特点、分类、技术指标、基本结构、工作原理、硬件知识及PLC控制系统等相关知识。采用松下公司系列的PLC,设计...

    5年前   
    1843    0

    基于单片机的时钟设计

    随着时间的推移,事物的发展越来越趋向于高科技,单片机的出现,受到了社会各界的广泛关注,这是由于单片机具备丰富的功能。单片机的特点为:尺寸小,价格低,抗干扰强,开发容易等。运用的范围也很广,如检测...

    4年前   
    1039    0

    数字电子密码锁课程设计

    课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 《数字电子密码锁》 ...

    3年前   
    583    0

    电子密码锁设计方案

    密码锁设计方案第一部分:课题背景描述l 课题来源:课题思路来源于本次大赛的参考题目l 市场分析:电子密码锁是一种通过单片机来控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简...

    1年前   
    382    0

    基于51单片机的定时闹钟设计单片机课程设计

    单片机 课 程 设 计 报 告 院系: 信息工程学院 ...

    2年前   
    498    0

    数字电子技术课程设计电子密码锁

    课程设计说明书课程名称: 数字电子技术课程设计 题 目: 电子密码锁 学生姓名: ...

    1年前   
    502    0

    开题报告-基于单片机的交通灯设计

    开题报告电气工程及自动化基于单片机的交通灯设计一、综述本课题国内外研究动态,说明选题的依据和意义当今社会,随着日益增长的社会发展,人们对于社活的水平也日益提高,不仅在物质享受方面有所提高,在精...

    4年前   
    1255    0

    基于单片机的数控恒流源设计

    该数控直流恒流源采用模块化,主要由单片机控制模块、键盘输入模块、A/D转换模块、恒流源模块、D/A转换模块和显示模块六部分组成。通过开关和按钮的设置,配合AT89S52单片机的编程实现数字控制及...

    3年前   
    914    0

    基于凌阳单片机的红外通信接口设计

    科 研 训 练 报 告报告题目:基于凌阳单片机的红外通信接口设计姓 名 院(系) 电气与电子工程学院 ...

    2年前   
    396    0

    基于单片机的万年历设计

     基于单片机的万年历设计 二、实验要求设计一个万年历,将时钟显示在LCD1602的显示屏上并且可以进行年、月、日以及时、分、秒的设置。此外还可以通过按键...

    3年前   
    684    0

    基于单片机的程控放大器设计

     毕业设计(论文) 基于单片机的程控放大器设计 专 业: 电子科学与技术 ...

    5年前   
    1673    0

    基于单片机的智能小车设计开题报告

    电气与信息学院毕业设计(论文)开题报告 基于单片机的智能小车设计 电子 ...

    5个月前   
    315    0

    基于单片机的果实品质分类装置设计

    机器视觉简而言之就是利用摄像头拍摄实际图像,通过摄像头模块自动将图像信息转化为对应的电信号,输送给单片机逻辑处理,以此来达到对图像的智能化识别。果实采摘系统中使用机器视觉较多。

    3年前   
    2077    0

    基于单片机智能小车毕业设计

    毕 业 设 计(论 文)设计(论文)题目: 基于单片机的智能小车 ...

    6个月前   
    202    0

    基于单片机的智能灭火小车设计

    摘要:当今社会,火灾在现实生活中普遍存在,被称为自然界三大灾害之一。当火灾发后,灭火工作坏境恶劣时,人工不能完成一些灭火任务,此时便可以使用智能灭火小车去完成相应的任务。本文设计了一个以单片机为...

    4年前   
    1501    0

    单片机课程设计报告基于单片机的温控系统

    职业学院机械与电子工程学院基于单片机温控系统课程设计报告班 级 电信班 学生姓名 学 号 指导教...

    3年前   
    1001    0

    文档贡献者

    天***猩

    贡献于2024-04-06

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档