




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子密码锁实验报告实验目的1、学习8051定时器时间计时解决、跑马灯、按键扫描及LED数码管显示的设计办法。2、设计任务及规定运用实验平台上8个LED数码管,按键,跑马灯实现设立密码,密码锁的功效二,实验规定基本规定:1:用44矩阵键盘构成0-9数字键及确认键和删除键。2:能够自行设定或删除8位密码。3:用5位数码管构成显示电路提示信息,当输入密码时,只显示“8、”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码对的,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不对的,严禁按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则严禁按键输入3秒被重新严禁。三,实验基本原理运用单片机定时器完毕计时功效,定时器0计时中断程序每隔0、05s中断一次并当作一种计数,设定定时1秒的中断计数初值为20。为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了多个显示。四,实验设计分析针对要实现的功效,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可重复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容原则MCS-51指令系统及80C51引脚构造。这样,既能做到经济合理又能实现预期的功效。在程序方面,采用分块设计的办法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功效。程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调节程序、闹钟调节程序、定时调节程序,延时程序等。运用这种办法,核心在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。首先,在编程之前必须理解硬件构造特别是各引脚的使用方法,以及内部寄存器、存储单元的使用方法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:根据想要的功效分块设计设计,例如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程办法再根据设计的硬件电路进行分块的编程调试,最后完毕程序设计。第四部分是软件画图部分:设计好电路后进行画图,涉及电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完毕时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全同样普通能实现想要的功效。最后进行功效扩展,在已经对的的设计基础上,添加额外的功效!五,实验规定实现A、电路设计1、整体设计本次设计重要是应用单片机来设计电子密码锁,硬件部分重要分下列电路模块:显示电路用8个共阴数码管显示输入的密码,通过动态扫描进行显示,从而避免了译码器的使用,同时节省了I/0端口,使电路更加简朴。跑马灯的红绿灯作批示灯,批示输入密码的对的与否。单片机采用AT89S52系列,这种单片机应用简朴,适合电子密码锁设计。电路的总体设计框架以下:单片机输入部分晶振和复位输出部分B、程序设计B、程序总体设计本实验用汇编程序完毕、主程序开始显示星期,时,分,秒与否有调转?T0中断秒,分,时等进位闪烁提示显示日期并调节响铃提示时间调节闹铃设立定时设立铃声测试秒表模式回主程序定时到按0键按0键闹铃到按1键按2键按3键按4键按5键按7键7键恢复按4键按8键按0键按0键倒计时启动并显示回主程序秒表暂停秒表清零回主程序按7键程序总的流程图以下:NOYES结合电路图,程序设计的整体思路为:下列为在该工作方式下模式选择的按键方式,环节以下:1、各模块(CPU,数码管,跑马灯,键盘)接好线2、第1到10个键代表0—9这个数字3、进行密码的设立。随意按下六个键(确保第一位密码不是0),并记住密码。然后按下第二个键(重置密码键),即完毕了密码的设立(此时数码管是不会亮的)4、随意输入6个数,构成新“密码”,然后按下第10个键(确认键)。按下后,程序自动进行与原设密码进行对比。若密码对的,则绿灯亮1秒,然后熄灭。若密码不对的,则红灯亮3秒,且在这三秒内按下任何数字键无效,按下一种数字键后,会重新计时红灯再亮三秒,三秒后,才干重新输入密码5、另外,第11个键是删除键,可进行数字的删除,重新输入B、2、3主程序主程序重要对按键进行扫描,以及判断定时和闹铃时间与否已到,若到则调用有关程序,该段程序以下:#include<reg52、h>#defineuintunsignedint#defineucharunsignedcharlongintshu=1,shu1,aa=0,password;uchark=0,key=0,bz=0,dk=0,num2;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};longintnum,temp,num1;voidinit();voiddisplay();voiddelay(uintz)//延时函数{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidkeyscan();voidmain(){init();while(1){keyscan();display();}}voidinit()//初始化函数{num=17;P1=0xff;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;}//键盘扫描函数voidkeyscan(){P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;k++;bz++;switch(temp){case0xee:num=0;break;case0xde:num=1;break;case0xbe:num=2;break;case0x7e:num=3;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;k++;bz++;switch(temp){case0xed:num=4;break;case0xdd:num=5;break;case0xbd:num=6;break;case0x7d:num=7;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case0xeb:num=8,k++,bz++;break;case0xdb:num=9,k++,bz++;break;case0xbb:num=10,num2=10;break;case0x7b:num=11;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xf7;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case0xe7:num=12;break;case0xd7:num=13;break;case0xb7:num=14;break;case0x77:num=15;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}if(key==0)//每输入一种数,执行一次{if(shu==k){dk=k;shu++;if(num<10)//只能够输入0--9num1=10*num1+num;//num1即为输入的密码的数值(由于程序的问题,密码的第一位不可觉得零)}}if(num2==10)//确认键(接下来进行密码的对比){shu1=num1;//将输入数字赋给shu1if(shu1==password)//输入密码对的,执行下面语句{TR0=1;//开定时器if(aa<=20)//绿灯亮一秒P1=0x7f;//具体是不是绿灯亮需根据自己的跑马灯调节elseP1=0xff;//一秒后熄灭}else//密码输入错误,则执行下面语句{TR0=1;//启动定时器if(aa<=60){key=1;//严禁输入P1=0xfb;//红灯亮if(dk==k)//再次严禁输入{aa=0;//重新计时,红灯亮三秒TH0=(65536-50000)/256;TL0=(65536-50000)%256;dk=99;//使dk不等于k跳出此if语句}}elseP1=0xff;//不不大于3秒后,灯全灭key=0;//能够重新输入密码}}if(num==11)//删除键{num=20;bz--;num1=num1/10;num2=0;key=0;}if(num==13)//重设密码{password=num1;num=20;num1=0;num2=0;bz=0;}}voidtimer0()interrupt1//定时器{TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;}voiddisplay()//显示程序{if(bz==0)//没有输入时,数码管全熄灭{P0=0x00;P2=0xff;}if(bz==1)//输入一位时,一种数码管亮{P0=0xff;P2=0xfe;delay(5);}if(bz==2)//输入两位时,两个数码管亮{P0=0xff;P2=0xfe;delay(5);P0=0xff;P2=0xfd;delay(5);}if(bz==3)//***********{P0=0xff;P2=0xfe;delay(5);P0=0xff;P2=0xfd;delay(5);P0=0xff;P2=0xfb;delay(5);}if(bz==4)//****************{P0=0xff;P2=0xfe;delay(5);P0=0xff;P2=0xfd;delay(5);P0=0xff;P2=0xfb;delay(5);P0=0xff;P2=0xf7;delay(5);}if(bz==5){P0=0xff;P2=0xfe;delay(5);P0=0xff;P2=0xfd;delay(5);P0=0xff;P2=0xfb;delay(5);P0=0xff;P2=0xf7;delay(5);P0=0xff;P2=0xef;delay(5);}if(bz==6){P0=0xff;P2=0xfe;delay(5);P0=0xff;P2=0xfd;delay(5);P0=0xff;P2=0xfb;delay(5);P0=0xff;P2=0xf7;delay(5);P0=0xff;P2=0xef;delay(5);P0=0xff;P2=0xdf;delay(5);}if(bz==7){P0=0xff;P2=0xfe;delay(5);P0=0xff;P2=0xfd;delay(5);P0=0xff;P2=0xfb;delay(5);P0=0xff;P2=0xf7;delay(5);P0=0xff;P2=0xef;delay(5);P0=0xff;P2=0xdf;delay(5);P0=0xff;P2=0xbf;delay(5);}if(bz==8){P0=0xff;P2=0xfe;delay(5);P0=0xff;P2=0xfd;delay(5);P0=0xff;P2=0xfb;delay(5);P0=0xff;P2=0xf7;delay(5);P0=0xff;P2=0xef;delay(5);P0=0xff;P2=0xdf;delay(5);P0=0xff;P2=0xbf;delay(5);P0=0xff;P2=0x7f;delay(5);}}C、程序调试及仿真本程序通过Keil单片机开发平台实现程序的编译,链接,生成HEX文献。程序再编译过程中能够发现错位,并及时改正,在设计时非常重要,使错误被扼杀在摇篮中。通过Keil和硬件仿真平台Proteus的联合,能够将设计效果仿真出来,根据效果,有目的的变化设计,优化程序。c、1运用Keil软件实验过程截图:1,建一种工程,并设定与Proteus仿真有关的参数2,c语言程序,并生成HEX文献c、2运用Proteu画原理图:五、实验总结及感想学习单片机是我们小学期的任务,刚接到课题的时候有点迷茫,感觉单片机这种东西,很高深不是几天就能够学好的,信心局限性。可是之后我们以小组为单位,以小组学习的方式一同窗习,共同分享探讨学习单片机,发现单片机并没有想象的那么难。它是以keil为软件平台,以AT89S52单片机为硬件平台,通过编程控制单片机实现多个功效。一分耕耘一分收获,我们搜索了大量的资料,网上的教学视频,图书馆的单片机的教程等等。对单片机渐渐有了柳暗花明又一村的效果,也收集了大量有关密码锁的资料。随着涉猎的点滴积累,我对电子密码锁的设计方案已经慢慢酝酿而成。有了方向和不少知识储藏后,在接下来的几天,几乎每天都有突破,即使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年考大连银行面试题及答案
- 钢架厂房吊顶施工方案
- 灯罩的检测标准
- 4个月婴幼儿体重身高标准
- 基坑钢管支撑施工方案
- 2025年硅湖职业技术学院单招职业技能测试题库1套
- 2025年江西司法警官职业学院单招职业适应性测试题库审定版
- 陕西省榆林市2025届高三下学期第三次模拟考试生物试题(原卷版+解析版)
- 三农村电商打造区域特色品牌方案
- 三农村居民耕地质量保护方案
- GB/T 41021-2021法庭科学DNA鉴定文书内容及格式
- 2023年陕西高职单招考试语文真题
- 石油焦生产工艺及设备解读课件
- 肺炎-疑难病例讨论课件
- 2023全国高中化学奥林匹克竞赛预赛试题及答案
- 音乐剧悲惨世界歌词
- 复合材料铺层设计说明
- 戴德梁行物业培训ppt课件
- GB∕T 16422.3-2022 塑料 实验室光源暴露试验方法 第3部分:荧光紫外灯
- 煤矿防治水中长期规划2017—2019
- 2022年乡镇(街道)执法人员资格考试题库(含答案)
评论
0/150
提交评论