基于MCU的数字密码锁设计-论文

基于MCU的数字密码锁设计-论文

ID:39474292

大小:21.26 KB

页数:14页

时间:2019-07-04

基于MCU的数字密码锁设计-论文_第1页
基于MCU的数字密码锁设计-论文_第2页
基于MCU的数字密码锁设计-论文_第3页
基于MCU的数字密码锁设计-论文_第4页
基于MCU的数字密码锁设计-论文_第5页
资源描述:

《基于MCU的数字密码锁设计-论文》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于MCU的数字密码锁设计-论文基于MCU的数字密码锁设计Ⅰ、设计任务:利用STC89C52芯片设计一个带有四位LED显示,报警系统,时间显示,输入、修改密码,4*4键盘功能的数字密码锁。Ⅱ、设计方案:利用单片机芯片,先确定硬件电路设计,利用PROTEL软件进行模块仿真,调整个元器件的参数,测试硬件的可行性,然后通过软件编程分块实现设计任务所要求的各项功能,并分别加以测试。先通过软件仿真系统将程序加载到仿真系统,检验程序的可行性,最后进入实际硬件电路的焊接制作过程并调试硬件电路,最终完成设计成型。Ⅲ、基本原理:

2、单片机以其小巧灵活、成本低、易于产品化、可靠性高、适用的温度范围宽、易扩展、控制功能强、指令系统简单、可编程化等特点在广泛的领域得到应用。基于MCS-51单片机的指令系统实现程序化的编程,加上单片机的内、外资源的综合利用实现功能化的产品,主要编程方式有:汇编语言和C51Ⅳ、系统框图 Ⅴ、电原理图 Ⅵ、元器件清单ⅰ、STC89C52芯片,四位封装FJ5461BHLED,12MHz晶振ⅱ、蜂鸣器,发光二极管,PNP型三极管,继电器,小按键ⅲ、100Ω、300Ω、1KΩ、5KΩ电阻若干,电容10uf,30pf各两个、

3、开关、USB接口、导线若干Ⅶ、结果及分析  ⒈结果:经过最终的硬件修改以及软件的调试实现了设计任务所要达到的目标,主要是十六个按键0-F的十六进制符号组成,一次为从左至右、从上到下,其中A-F为功能键,分别是时间的修改键、输入密码键、设置密码键、修改密码键、闭锁键以及开锁键,通过这些功能键可以设置四位数字密码,利用继电器代替电子锁的功能以节约成本。  ⒉分析:基于这个设计项目,利用单片机芯片实现数字密码锁的功能,此次设计主要利用汇编语言实现功能,因为汇编语言的效率高于C51,程序中主要包括以下几个模块:⑴密码输

4、入、修改模块⑵键盘扫描模块⑶时间显示模块⑷报警模块。此次设计中主要实行分模块编程实现模块化功能,分多步实现,最终将各个模块整合一个完整的囊括以上所有模块功能的整体。硬件方面,利用万能版制作一个简单的电路以实现上述功能,采取自己布线合理安排板子上的各个功能模块,实现合理的布局。在焊接的过程中出现了在焊接中经常碰到的插曲就是虚焊,比如说LED显示有时会出现有些段不亮,这往往造成硬件测试的时候不容易发觉错误,还有一点就是对于整个的电路要有一个整体的思维。针对以上问题的分析,在实际的操作中会出现一些小的插曲。在以上的功

5、能实现中以密码输入及修改的编程难度最大,时间显示可以通过中断系统来实现,键盘输入主要是矩阵键盘的扫描,所以最重要的还是密码输入修改模块,程序中有比较复杂的嵌套,这造成了有时候对程序的修改出现一定的难度。最初写程序的时候,程序有些显得重复,需要进一步的修改删减。报警系统采用的是密码输入三次错误即采取报警1分钟的措施并且程序将进入死循环以达到锁死的目的。Ⅷ、实物图612基于MCU的数字密码锁设计Ⅸ、源程序代码#include#include#defineucharunsign

6、edcharsbitP30=P3^0;sbitspk=P2^1;sbitled1=P2^6;sbitled2=P2^7;sbitjdq=P2^0;ucharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,                      0x8c,0x92,0x89,0xf9,0x8e,0x86,0xc8};//段码值0~9,'p','f','e','n','s','h','i' uchardispbuf[4

7、]; //显示数组ucharhour,min,sec,sec20;uchardispbit,count,keynum,keysec,keysec1;bitid,flag,buzz,key1,key2,flag1,bit1,bit2;ucharps[4]={1,2,3,4}; //初始密码ucharpw[4];           //密码数组,用于存放输入的密码,用于比较 ucharkeycount;biterror,right,hibit;ucharwr,ok,wr1,ok10;//密码锁标志voiddisp

8、time()      //显示数组更新{if(flag) {dispbuf[0]=hour/10; dispbuf[1]=hour%10; dispbuf[2]=min/10; dispbuf[3]=min%10; }}voiddelayms(intms){uchari; while(ms--) {   for(i=0;i<250;i++);   {_nop_();     _nop

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。