单片机综合实训二-密码锁的设计.doc

单片机综合实训二-密码锁的设计.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE4/NUMPAGES23

密码锁的设计报告

设计内容:

用4*3的键盘组成0~9的数字键及确认键、删除键;用8位数码管组成显示电路提示信息,当输入密码时,只显示“—”,当密码位数输入完毕按下确认键时,对输入的密码和设定的初始密码进行比较,若密码正确,则开锁,此时P3.0口的LED(即黄灯)亮一秒作为提示;若密码不正确,禁止输入3秒种,同时发出报警声。初始密码为8位。

增加功能:利用外部中断0和1分别实现复位和密码修改功能,说明见原理图

参考器件:89C51,RES,CAP,CAP-ELEC,CRYSTAL,LED-YELLOW,

7SEG-MPX8-CC-BLUE,SOUNDER,BUTTON,74LS245

原理图:

说明:外部中断0和1是复位和修改密码,由于篇幅不够,在此没有画出密码修改和复位的流程图是是第2列

说明:外部中断0和1是复位和修改密码,由于篇幅不够,在此没有画出密码修改和复位的流程图

第2列?

第1列?

第3列?

第4列?

开始

设置按键序号初值为0

置表首地址送DPTR

设置标志位R7初值为0

设置初始密码设置P1高4位为输入

是否有低电平

是否为有效按键

第1行?

第2行?

第3行?

开外部中断0和总中断

CLR?ENTER?KEY_CNT值加1显示数码管个数加1显示横杆存储KEY_VAL

CLR?

ENTER?

KEY_CNT值加1

显示数码管个数加1

显示横杆

存储KEY_VAL

密码正确?

亮灯

延时1S

发出警报

延时3S

KEY_CNT值加1

显示数码管个数加1

显示横杆

存储KEY_VAL

KEY_CNT值加1

显示数码管个数加1

显示横杆

存储KEY_VAL

是是

KEY_CNT值减1显示数码管个数减1改变KEY_VAL值

KEY_CNT值减1

显示数码管个数减1

改变KEY_VAL值

是是

四、实物图:

五、源程序

LINE_NOEQU20H;行号

ROW_NOEQU31H;列号

LINEinitialKEYVALEQU30H;行初始键值

KEY_VALEQU32H

KEY_CNTEQU33H;数字按键的序号,如按键541,这时KEYORDER=3

BIT_SELEQU34H

FLAGBIT00H

;初始密码存储区

LED_BIT1EQU41H

LED_BIT2EQU42H

LED_BIT3EQU43H

LED_BIT4EQU44H

LED_BIT5EQU45H

LED_BIT6EQU46H

LED_BIT7EQU47H

LED_BIT8EQU48H

;输入密码存储区

PASSWD1EQU51H

PASSWD2EQU52H

PASSWD3EQU53H

PASSWD4EQU54H

PASSWD5EQU55H

PASSWD6EQU56H

PASSWD7EQU57H

PASSWD8EQU58H

ORG0000H

LJMPSTART

ORG0003H

LJMPINTT0;中断处理,实现复位功能,清楚所有的有关操作

ORG0013H

LJMPINTT1

ORG0040H

START:MOVSP,#70H

MOVP0,#0FFH

MOVA,#0FFH

MOVR0,#00H

MOVR7,#0

MOVBIT_SEL,#0;显示数码管的位数初始为0

MOVKEY_CNT,#0;按键序号初始为0

MOVDPTR,#TAB

;设置初始密码

MOVLED_BIT1,#6

MOVLED_BIT2,#7

MOVLED_BIT3,#8

MOVLED_BIT4,#9

MOVLED_BIT5,#0

MOVLED_BIT6,#1

MOVLED_BIT7,#2

MOVLED_BIT8,#3

MAIN:SETBEX0

SETBIT0

SETBEA;开中断总允许

SETBPX0

MOVP1,#0F0H;设置P1高4位(行线)输入状态

MOVA,P1

CJNEA,#0F0H,M;P1高4位(行线)有低电平,转M进一步判断是按键还是抖动

SJMPMAIN;P1高4位(行线)无低

您可能关注的文档

文档评论(0)

159****4253 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档