电子密码锁proteus仿真设计报告Word文件下载.docx

上传人:b****1 文档编号:15335190 上传时间:2022-10-29 格式:DOCX 页数:19 大小:199.57KB
下载 相关 举报
电子密码锁proteus仿真设计报告Word文件下载.docx_第1页
第1页 / 共19页
电子密码锁proteus仿真设计报告Word文件下载.docx_第2页
第2页 / 共19页
电子密码锁proteus仿真设计报告Word文件下载.docx_第3页
第3页 / 共19页
电子密码锁proteus仿真设计报告Word文件下载.docx_第4页
第4页 / 共19页
电子密码锁proteus仿真设计报告Word文件下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

电子密码锁proteus仿真设计报告Word文件下载.docx

《电子密码锁proteus仿真设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子密码锁proteus仿真设计报告Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。

电子密码锁proteus仿真设计报告Word文件下载.docx

电容取值为20pF。

4、显示部分

为了提高密码锁的密码显示效果能力。

本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。

只有按下键盘上的开启按键后,显示器才处于开启状态。

同理只有按下关闭按键后显示器才处于关闭状态。

否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。

5、报警部分

报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警。

6、开锁部分

开锁控制电路的功能是当输入正确的密码后将锁打开。

系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。

用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。

四、软件设计

本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。

主要程序设计流程图如下所示:

五、仿真抓图

1、输入原始密码:

2.输入正确:

3.输入错误:

六、设计体会

设计刚开始时,我感到茫然不知从何下手,对程序的总体思路也缺乏了解。

后来在老师的指导下,渐渐有了思路知道大体的框架。

之后又参考了有关的书籍和资料,慢慢的经过两三周的时间才把程序调试好,理清仿真图的出口与入口。

在仿真方面因为程序的思路都理清了,所以只要按要求调用器件连接好电路,并且与KILL软件进行互接,功能比较顺利的就实现了,没有出现太大的问题。

设计很小,可是在这过程中我学会了很多课本上学不到的知识。

也明白书本的知识永远不够,我们自己要学会自学。

同时对于学工科的学生还是要多多动手,在调试硬件时很多东西是要靠经验来检查电路的问题,而且动手经验也可以免去很多不必要的错误。

七、设计程序

ORG0000h;

LJMPstart;

ORG000bh;

中断T0入口地址

LJMPintermit_t0;

调用中断服务程序清指示灯

ORG001bh;

中断T1入口地址

LJMPintermit_t1;

初始化喇叭

ORG0030h;

start:

MOVsp,#60h;

设栈底

lcallsys_initialization;

调用系统

初始化程序

;

主程序

main0:

lcallstrat_display;

液晶最初显示的程序

main:

MOV52h,#0;

52h判断输入错误次数储存地址

setbled;

使指示灯处于亮的状态

setbtr0;

开启定时器

lcallkey;

扫描键值

cjnea,#'

A'

next1;

输入A设置密码

LJMPset_password;

设置密码程序

next1:

cjnea,#'

B'

next2;

输入B输入密码

LJMPinput_password;

输入密码程序

next2:

ajmpmain;

系统初始化

sys_initialization:

clrled;

使指示灯处于初始灭的状态

clropen;

继电器的初始化

clrspeaker;

喇叭的初始化

MOV34h,#'

1'

MOV35h,#'

2'

MOV36h,#'

3'

MOV37h,#'

4'

MOV38h,#'

5'

MOV39h,#'

6'

34h~39h存放初始密码

MOVr7,#12;

MOVr0,#40h;

设置新密码存储的首地址

loop:

MOV@r0,#10h;

incr0;

djnzr7,loop;

密码键值存放区清零完毕

lcalldelay0_1s;

MOVp0,#03h;

液晶的控制代码

callwrite_instruction;

液晶软复位

MOVp0,#01h;

清屏

MOVp0,#3fh;

设置单片机与LCD接口数据位为8位

显示行数为2行,字型为5*10

MOVp0,#0fh;

整体开显示,显示光标光标字符位烁

MOVp0,#06h;

光标右移整体显示不移动

UnRegistered

液晶初始化

完毕

MOVr4,#10;

MOVtmod,#11h;

MOVth0,#3ch;

MOVtl0,#0b0h;

setbea;

允许开中断

setbet0;

定时器T0,0.5S定时中断初始化完毕

ret;

系统初始化完毕

中断服务程序

intermit_t0:

pushacc;

pushpsw;

初值的设置

djnzr4,return;

cplled;

return:

poppsw;

popacc;

reti;

intermit_t1:

MOVth1,#9eh;

MOVtl1,#58h;

初值设置

djnzr4,return_t1;

cplspeaker;

return_t1:

poppsw;

键盘扫描;

key:

callks;

调用行扫描程序

jnzk1;

判断是否有按键按下,若A不等于0按键按下

jmpkey;

A等于零再次扫描取值

k1:

calldelay;

调用延时子程序

callks;

调用扫描程序

jnzk2;

k2:

clrtr0;

关闭计时器

MOVr2,#0feh;

行扫描初值为"

0FE"

从0行开始逐行扫描

MOVr6,#00h;

设置行号初始值为"

00"

k3:

MOVa,r2;

取行扫描字

MOVp2,a;

行扫描字送至P2口

MOVa,p2;

到P2取值

jbacc.4,l1;

判断A取列值,第0列有键按下吗?

ACC.4=0说明有按键按下

MOVa,#0;

将第0列首号"

送到A

LJMPlk;

转至键号计算程序

l1:

jbacc.5,l2;

第1列有键按下吗?

若ACC.5=0说明有

按键按下

MOVa,#4;

将第1列首号"

04"

l2:

jbacc.6,l3;

第2列有键按

下吗?

若ACC.6=0说明有按键按下

MOVa,#8;

将第2列首号"

08"

l3:

jbacc.7,next_key;

第3列有键按下吗?

若ACC.7=0

说明有按键按下

MOVa,#12;

将第3列首号"

12"

lk:

adda,r6;

按键号=行号+列首号

(A)

MOVr6,a;

k4:

调用扫描子程序(等待按键释放)

jnzk4;

MOVa,r6;

MOVdptr,#table0;

MOVca,@a+dptr;

MOV50h,a;

查表取值存入50h,保护键值

next_key:

incr6;

行号加1

行扫描字送至A

jnbacc.7,key;

判断4行都扫描完了

rla;

若未扫描完将行扫描字左移

MOVr2,a;

行扫描字送至R2,为扫描下一行做准备

jmpk3;

循环继续扫描下一行

ks:

MOVp2,#0f0h;

送初值到P2口进行扫描,将列线P2.4~P2.7设置为低电平

将扫描的值输入A

xrla,#0f0h;

屏蔽与行按键无关的4

位,有任意键按下时,A不等于0

设置密码程序

set_password:

callclear_display;

调用LCD清零显示程序

MOVdptr,#table4;

查表液晶显示

'

INPUTPASSWROD:

'

callinput_hint;

LCD显示要显示的信息

输入密码的储存首地址

callpassword;

调用原始密码

jbcreturnbit,set_password;

先输入原密码完毕

MOVr5,#6;

输入的密码的首地址

MOVr1,#34h;

原始密码的首地址

input_compere:

MOVa,@r0;

xrla,@r1;

用异或进行比较输入密码和原密码

jnz

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1