基于单片机的6位电子密码锁设计内容摘要:
11 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 } if(N==5) { temp=0xfe。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 12 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 } if(N==6) { temp=0xfe。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 P0=0x40。 P2=temp。 delay(1)。 P2=0xff。 temp=_crol_(temp,1)。 } } 4. 报警电路 报警电路流程图如图九所示: 13 图九 报警电路流程图 报警电路 C语言程序: void alarm() { if(km==3) { uchar n,m。 km=0。 for(m=50。 m0。 m) { for(n=200。 n0。 n) { K=~K。 delay_us(1000)。 } K=0。 delay(100)。 } } } 5. 密码重置子程序 密码重置的条件是在锁开,即灯亮的情况下进行的,所以调用密码子程序开始必须对显示器进行清零并熄灭,关闭发光二极管。 然后再调用输入密码子程序、键盘扫描子程序进行密码修改。 密码重置程序流程图如图十所示: 14 图十 密码重置流程图 重置密码 C语言程序: void rest_cipher() { a=b=c=d=e=f=0。 N=0。 D0=1。 while(con) { get_key()。 if(N6) cou_dis(num)。 disp(a,b,c,d,e,f)。 if(num==39。 D39。 ) {con=0。 } if(num==39。 C39。 ) {a=b=c=d=e=f=0。 N=0。 } a1=a。 b1=b。 15 c1=c。 d1=d。 e1=e。 f1=f。 } a=b=c=d=e=f=0。 N=0。 } 16 六、 系统调试 本次调试采用的是 protues 和 keil 软件进行仿真。 首先运用 keil 软件编写电子密码锁的源程序,本设计主要运用 C 语言编写。 源程序编写后运行生成目标文件供 protues 仿真调试。 图十一为 LED数码管显示六位密码的情况 图十一 数码管显示密码图 当密码正确按下确认键发光二极管亮,锁开。 如图十二 图十二 密码正确锁开灯亮 当密码输入错误三次蜂鸣器发出声音报警,如图十三所示 图十三 蜂鸣器报警 由图十三可以看到蜂鸣器非接地端为红色,即此时为高电平,所以蜂鸣器正在发出报警声 音。 Protues 仿真电路图如图十四所示 17 图十四 protues 仿真电路图 七、 设计总结与展望 课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。 因此作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。 本设计经过多次修改和整理,可以满足基本的要求。 密码正确,锁开;密码输入错误三次,报警;输入密码超过 6 位之后的数无效 ;数码管显示屏显示密码为“ — ”。 在设计的过程中遇到了各种各样的问题,譬如说断电密码保护的设计,由于电路和编程都过于复杂,本设计并未加入。 在编程的过程中问题也是很多,由于程序较长,当实现了这个功能另外一个功能有不能很好的实现,所以要做到模块与模块之间的衔接。 遇到的一些问题也经过努力一一克服。 回顾此次单片机课程设计,至今我仍感触颇多。 在设计过程中从理论到实践我们可以到很多很多东西,巩固了以前学过的知识,还懂得了如何将理论联系实际。 只有理论知识是远远不够的,只有将理论运用到实际中对我们来说才是有意义的,这样才 能真正的为社会服务。 18 八、 参考文献 【 1】周向红 .51 单片机课程设计 .华中科技大学出版社 .2020 年 1 月 【 2】潘育山 .单片机原理及 51 单片机开发技术 .西南交通大学出版社 .2020 【 3】何利民 .单片机高级教程 .北京航空航天大学出版社 .2020 【 4】江志红 .51 单片机技术于应用系统开发 .清华大学出版社 .2020 九、 附。基于单片机的6位电子密码锁设计
相关推荐
* * * * [硬件说明 ] * * 硬件环境 AVR At=Tmega8L * * 系统时钟 8M * * * ifndef _MACRODEFINITION_H_ define _MACRODEFINITION_H_ define Open_Light_1 PORTC|=BIT(2) define Open_Light_2 PORTC|=BIT(3) define Open_Light_3
(二).程序流程图 开始 SET按下 开始计时 RESET按下 R1=0 停止计时 Y Y Y N N N (三).程序 ORG 0000H JMP MAIN ORG 0003H JMP EX00 ORG 0013H JMP EX11 ORG 001BH JMP TT1 ORG 0030H MAIN:MOV SP,60H MOV DPTR,TABLE MOV TMOD,10H MOV P1
if(output1!=LS20[i][2]||output2!=LS20[i][3]) { ledR = 0。 //点亮红 led time=0。 break。 } if(output1==LS20[i][2]amp。 amp。 output2==LS20[i][3]) { time++。 } } if(time==16) { ledG = 0。 //点亮绿 led
.0 1 5 uC20 .0 1 5 uX11 2 M H Z 五、软件模块 本系统用了定时器 0和定时器 1。 6 7 开 始是 否 修 改 抢答 时 间。 抢 答 时 间 m a x减 一 倒 计 时 并显 示选 手 1 是 否抢 答。 选 手 2 是 否抢 答。 选 手 3 是 否抢 答。 选 手 4 是 否抢 答。 抢 答 倒 计 时m a x 是 否 为 0。 显 示 抢 答 时间 最
要求 见表格后的“填写 说明 5”。 基于动环系统实现基站油机发电管理精细化 1 前言 随着 公众对 移动通信 需求 的 不断增加 ,移动通信基站 数量大大增加。 基站站点也从市区扩展到 山区、郊外。 目前 市区外 电网 的 供电质量不够稳定,时常会发生停电。 为 保证基站通信设备的连续运转,维护方只用通过油机进行发电保障。 然而在 全国电信运营公司都进行维护体制的变革 中。 为 集中维护
near control performance. At a higher level, the tuning is performed by changing the knowledge base parameters to enhance the control performance. However, it is difficult to tune the knowledge base