单片机 密码门锁的模拟 课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用单片机模拟密码门锁

学院:土木班级:交通021班设计人:赵会凯成绩:

1.总体设计:

1)所实现功能描述:密码门锁工作过程比较简单,用户只有输入了正确的密码,才开锁,当三次输入错误以后,则延时一段时间才允许再次输入。

2)设计方案的描述:

(1) 鉴于实际条件的限制,我们只是从试验板上模拟这个过程,可以利用红绿灯的亮灭来模拟门的开关状态,用键盘来输入密码,用定时中断来延时。

(2)可以用某个特定键来进行密码输入完成后的确认,检测到这个键则进行密码比较并改变锁的状态。

2.

1)实验设备:8051单片机及其机器设备等。

2)设计方案:这个实验是单片机模拟数字密码锁的功能,程序初试设定一个默认密码1,程序运行后,如果连续输入三次密码错误,那么亮红灯,表示输入有误。如果输入正确密码,则绿灯亮,表示门开。这个程序密码默认是一位的,如果应用到实际中,会比较容易被破结,安全上有不足。初始默认密码可以通过程序中的设置键号来改变。

3. 四、主要技术问题的描述:

本题内容比较简单,主要技术点有如下几个:

(1)主程序不断检测键盘按键并记录到缓冲区,当确认键被按下后进行密码比较。

(2)用一个存储单元存储错误次数,当到达错误次数以后,则启动定时中断,并设置某个标志位使主程序不记录下面的按键,定时停止以后再纪录。

4.方案的不足:该方案只适合比较简单的密码,一旦超过三位程序将无反应;另一方面,密码轻易被识破。

5.改进方案:将程序的密码设为多位以不易识破。设置忘了密码后,可以找回的程序。例如:设置密码提示问题或提示音,修改电路原理图更复杂些。

6.

N

7,实验程序:

org 0000h ;设定初始值start: mov sp,#60h ;设置堆栈指针初值mov dptr,#0ff20h

mov a,#03h

movx @dptr,a

mov 70h,#00h

mov r1,#03h

key1: acall ks1 ;调用ks1

jnz lk1

n1: acall dir

ajmp key1

lk1: acall dir

acall dir

acall ks1

jnz lk2

acall dir

ajmp key1 ;跳转到key1

lk2: mov r2,#0feh

mov r4,#0

lk4: mov dptr,#0ff21h

mov a,r2

movx @dptr,a

inc dptr ;数据指针+1

inc dptr

movx a,@dptr

jb acc.0,lone ;判断acc.0

mov a,#0

ajmp lkp

lone: jb acc.1,ltwo

mov a,#08h

ajmp lkp

ltwo: jb acc.2,lthr

mov a,#10h

ajmp lkp

lthr: jb acc.3,lfor

mov a,#18h

sjmp lkp

lfor: jb acc.4,next

mov 70h,#19h

ajmp key1

lkp: add a,r4

mov 70h,a

push acc ;压栈保存

lk3: acall dir

acall ks1

jnz lk3

pop acc

lcall y1

ret

next: inc r4

mov a, r2

jnb acc.7,knd

rl a ;左移

mov r2,a

ajmp lk4

knd: ajmp key1

ks1: mov dptr,#0ff21h

mov a,#0

movx @dptr,a

inc dptr

inc dptr

movx a,@dptr

cpl a ;取反

anl a,#1fh

ret

dir: mov r0,#70h

mov a,@r0

anl a,#0fh

mov 30h,a

mov a,@r0

swap a ;高低位交换

anl a,#0fh

mov 31h,a

mov r0,#30h ;把30h值赋给r0

mov r3,#01h

do1: mov a,r3

mov dptr,#0ff21h

movx @dptr,a

inc dptr

mov a,@r0

add a,#0dh

movc a,@a+pc ;查表

dir1: movx @dptr,a

acall dl1

mov a,r3

rl a

jb acc.2,ld1

mov r3,a

inc r0

ajmp do1

ld1: ret

dseh: db 0f8h,99h,80h,92h,90h,82h,88h,83h

db 0f9h,0c0h,0a4h,8eh,0b0h,86h,0c6h,0a1h,0ffh,0c0h

dl1: mov r7,#2 ;延时子程序

dl: mov r6,#0ffh

dl6: djnz r6,dl6

djnz r7,dl

ret

y1: cjne a,#8h,set1 ;设置初始密码

ljmp next2

set1: dec r1

cjne r1,#0,y2

clr p1.7

lcall dlr

setb p1.7

ljmp y2

ret

next2: clr p1.6

lcall dlr

ret

y2:ljmp key1

dlr: mov r7,#250 ;延时子程序

l2:mov r6,#124

l1:djnz r6,l1

djnz r7,l2

ret

end

8自评分:80

实验心得:虽说这些程序不完全是自己的,但里面倾注了我白分之八十的心血。这之中有同学们的汗水,更摸不去的是老师们的辛勤汗水,在此我要感谢老师们给我这次机会。以前都以为这些不太重要,。但现在知道了单片机的重要性,以后一定要深入学习它,使它用于我们的生活中。

相关文档
最新文档