接开锁,当密码输入错误时,单片机的P21引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警。6、开锁部分开锁控制电路的功能是当输入正确的密码后将锁打开。系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。
四、软件设计
f本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。主要程序设计流程图如下所示:
f五、仿真抓图1、输入原始密码:
2.输入正确:
f3输入错误:
六、设计体会
设计刚开始时,我感到茫然不知从何下手,对程序的总体思路也缺乏了解。后来在老师的指导下,渐渐有了思路知道大体的框架。之后又参考了有关的书籍和资料,慢慢的经过两三周的时
f间才把程序调试好,理清仿真图的出口与入口。在仿真方面因为程序的思路都理清了,所以只要按要求调用器件连接好电路,并且与KILL软件进行互接,功能比较顺利的就实现了,没有出现太大的问题。
设计很小,可是在这过程中我学会了很多课本上学不到的知识。也明白书本的知识永远不够,我们自己要学会自学。同时对于学工科的学生还是要多多动手,在调试硬件时很多东西是要靠经验来检查电路的问题,而且动手经验也可以免去很多不必要的错误。
七、设计程序
ORG0000hLJMPstartORG000bh中断T0入口地址LJMPi
termit_t0调用中断服务程序清指示灯ORG001bh中断T1入口地址LJMPi
termit_t1初始化喇叭ORG0030hstartMOVsp60h设栈底lcallsys_i
itializatio
调用系统初始化程序
f主程序mai
0lcallstrat_display液晶最初显示的程序mai
MOV52h052h判断输入错误次数储存地址setbled使指示灯处于亮的状态setbtr0开启定时器lcallkey扫描键值cj
eaA
ext1输入A设置密码LJMPset_password设置密码程序
ext1cj
eaB
ext2输入B输入密码LJMPi
put_password输入密码程序
ext2ajmpmai
系统初始化sys_i
itializatio
clrled使指示灯处于初始灭的状态clrope
继电器的初始化clrspeaker喇叭的初始化MOV34h1MOV35h2MOV36h3MOV37h4
fMOV38h5MOV39h634h39h存放初始密码MOVr712MOVr040h设置新密码存储的首地址loopMOVr010hi
cr0dj
zr7loop密码键值存放区清零完毕lcalldelay0_1sMOVp003h液晶的控制代码callwrite_i
structio
液晶软复位MOVp001hcallwrite_i
structio
清屏MOVp03fh设置单片机与LCD接口数据位为8位;显示行r