欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的数字密码锁设计.docx

    • 资源ID:2560538       资源大小:101.53KB        全文页数:13页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的数字密码锁设计.docx

    1、基于单片机的数字密码锁设计郑州航空工业管理学院单片机课程设计说明书 2011 届 电子信息工程 专业 1113082 班级 题 目 基于单片机的数字密码锁设计 学 号 111308207 姓 名 凡涛 指导教师 周鹏 二一三年 十二 月 二十八 日一、 基于单片机的数字密码锁的基本原理 本设计选用单片机STC89C52RC 作为核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接四位数码管用于显示作用,输入错误显示”OFF”,输入密码正确显示”ON”,密码正确才可以重置密码。 先通过程序将

    2、初始密码储存到单片机的ROM存储器中,当输入新密码时就判断所输入密码是否与初始密码相同,输入完成按下确认键,若不同,则在数码管上显示错误提示”OFF”,若相同则显示正确提示,重置密码则是向单片机ROM重新存储数据。这样,即可实现密码锁的解锁,密码重置等功能。二、 数字密码锁的硬件设计 1、 时钟电路设计 时钟产生方式包括内部振荡方式和外部时钟方式两种,本设计采用外部时钟方式,如图1所示,振荡源由12M晶振,和两个微调电容C1,C2组成,与单片机的XTAL1和XTAL2相连接,便可为单片机产生时钟信号。 图 12、 手动复位电路 单片机STC89C52RC的复位信号是由RST引脚输入,高电平有效

    3、。当RST引脚输入高电平并保持2个机器周期以上时,单片机内部就会执行复位操作。本设计采用手动复位设计,如图2所示,手动复位时电容C3通过1K电阻R3迅速放电,使RST端迅速变为高电平,即可实现复位。 图 2 3、 显示电路设计 显示电路是由4个共阳极数码管构成,软件编程时采用动态显示方法,其结构图如图3所示。 图 3 数码管是由发光二极管组成,有共阴和共阳之分,对于共阳极来说,一位数码管由八个二极管组成,它们的阳极接在一起,接+5V电源,而各个阴极与某个端口如P1的8个引脚相连接,当某个引脚输出低电平的时候,数码管对应的二极管点亮。4、 接口电路设计 本设计采用MAX232芯片实现单片机与计算

    4、机的连接。如图4所示。 图 4 5、 数字密码锁的完整原理图 6、 元器件列表序号器件名称参数数量1USB座12USB线13双排针(2)14跳帽25104电容0.1uF66LED灯17电阻2K18STC89C5219晶振12MHz110电容20pF211复位键112电阻10K113蜂鸣器114三极管9015515电阻33011616针座117MAX232118单排针(5)119按键820单排针(3)121跳帽1224位LED数码管123电阻4.7K824电阻3308三、 数字密码锁的软件设计1、 密码锁设计的程序流程图系统初始化2、 源程序#include#include #define ui

    5、nt unsigned int#define uchar unsigned char/* 0 1 2 3 4 5 6 7 8 9 灭 f n 口 _ g d 二 全亮 P e*/uchar code DuanMa=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x8e,0xc8,0x9c,0xf7,0x90,0xa1,0xfd,0x00,0x8c,0x86 ; /共阳 uchar code WeiMa=0x7f,0xbf,0xdf,0xef;/位码 void delay_50us(uint t);uchar xianshi=14,

    6、14,14,14;unsigned char pw4=8,8,8,8; unsigned char pwin4=0,0,0,0; bit updataflag; bit pwflag; /密码正确uchar count; /密码位计数void display(uchar *point);void delayaj();void delay();void bijiao(void);unsigned char keyscan(void);void anjian_xianshi();void main() count=0; updataflag=0;pwflag=0;while(1) anjian_x

    7、ianshi(); display(xianshi);void delay(uint z) uchar j = 244; for(;z 0;z-) while(-j); void delay_50us(uint t) uchar j; for(;t0;t-) for(j=19;j0;j-) ;void delayaj(uchar ddd) uchar dd; for(dd=0;ddddd;dd+) display(xianshi);void display(uchar *point) unsigned char i=0; for(i=0;i4;i+) P2=WeiMai; /取位 P0=Dua

    8、nMa*(point+i); delay_50us(20); P0 = 0xFF;/消除重影 P2 = 0x0; void bijiao(void)unsigned char j,aa;aa=0;for (j=0;j4;j+) if (pwj=pwinj) aa+; if(aa=4) pwflag=1; else pwflag=0;j=4;if (count4)/密码小于4位,直接显示OFFpwflag=0;count=4;if (pwflag=1) /正确显示ON xianshi0=10; xianshi1=0; xianshi2=12; xianshi3=10; else xianshi0

    9、=10; /显示off xianshi1=0; xianshi2=11; xianshi3=11; unsigned char keyscan(void) unsigned char keyvalue; P3 = 0x7F; switch(P3) case 0x7E: keyvalue = 1;break; case 0x7D: keyvalue = 2;break; case 0x7B: keyvalue = 3;break; case 0x77: keyvalue = 4;break; default: keyvalue = 17;break; if(keyvalue = 17) P3 =

    10、 0xBF; switch(P3) case 0xBE: keyvalue = 5;break; case 0xBD: keyvalue = 6;break; case 0xBB: keyvalue = 7;break; case 0xB7: keyvalue = 8;break; default: keyvalue = 17;break; if(keyvalue = 17) P3 = 0xDF; switch(P3) case 0xDE: keyvalue = 9;break; case 0xDD: keyvalue = 10;break; case 0xDB: keyvalue = 11;

    11、break; case 0xD7: keyvalue = 12;break; default: keyvalue = 17;break; if(keyvalue = 17) P3 = 0xEF; switch(P3) case 0xEE: keyvalue = 13;break; case 0xED: keyvalue = 14;break; case 0xEB: keyvalue = 15;break; case 0xE7: keyvalue = 16;break; default: keyvalue = 17;break; return keyvalue;void anjian_xians

    12、hi() uchar n,j; n=keyscan(); if(n!=17) if(1=n&n=8) if (count4) xianshicount=13; if (updataflag=1)/按下修改密码键 pwcount=n; else pwincount=n; count+; delay(350); else if(n=14)/确认密码键 if (updataflag=0) bijiao(); else xianshi0=15; /good xianshi1=13; xianshi2=13; xianshi3=16; delayaj(1000); updataflag=0; else

    13、if(n=15) /重新输入键 for (j=0;j4;j+) xianshij=14; count=0; pwin0=0;pwin1=0;pwin2=0;pwin3=0; else if(n=16&pwflag=1)/重设密码键 updataflag=1; for (j=0;j4;j+) xianshij=18; count=0;pwin0=0;pwin1=0;pwin2=0;pwin3=0; 四课程设计总结 为了能够更好地完成这次课程设计的任务,我通过不同的渠道学习课题相关的一些知识,这是我课堂上无法学到的,在这短暂的时间里不仅让我对学过的东西有了很多的巩固,同时也对单片机这一门课程有了更大的兴趣。 作为一名电子信息工程专业的大三学生,单片机作为我们最主要的专业课之一,在这课程设计后我们发现自己在一点一滴的努力对单片机的兴趣在增加,我觉得这次课程设计对我们来说非常重要,虽然过去从未用过它,但是学习过程中带着问题去学我们发现效率很高,这是我们课程设计的又一个收获。五指导教师评语成绩 指导教师签名


    注意事项

    本文(基于单片机的数字密码锁设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开