欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    电子密码锁 单片机.docx

    • 资源ID:14148491       资源大小:230.56KB        全文页数:23页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子密码锁 单片机.docx

    1、电子密码锁 单片机项目六 电子密码锁设计设计说明书任务一 电子密码锁一、任务设计要求1、基本要求: (1)用单片机控制查询式键盘的8个按键,当按下1-8号按键时,分别在1位数码管上依次显示数字“1”-“8”(2)用单片机控制矩阵式键盘的16个按键,当按下1-16号按键时,分别在1位数码管上依次显示数字“0”-“9”和字符“A”-“F”。2、技能提高:(1)控制要求:用单片机控制查询式键盘,输入一位密码,为0-3之间的数字,密码正确,显示字符“P”3秒,同时开锁LED亮,若错误,则显示字符“E”3秒,再继续输入;(2)要求:用单片机控制矩阵式键盘,矩阵式键盘采用列扫描方式,输入一位密码,为0-1

    2、5之间的数字,密码正确,显示字符P3秒,同时开锁LED亮,若错误,则显示字符E3秒,再继续输入。二、设计过程1、设计方案确定2、硬件电路设计3、软件设计(1)、绘制流程图 (2)、编写源程序:PSD EQU 21HORG 0000HLJMP MAINORG 0010HMAIN:MOV SP,#3FHST1:MOV P0,#0FFHMOV PSD,#02MAIN1:SETB P3.0MOV P1,#0111111BKEY:MOV A,P0KEY0:JB ACC.0,KEY1LJMP ERRKEY1:JB ACC.1,KEY2LJMP ERRKEY2:JB ACC.2,KEY3LJMP PASSK

    3、EY3:JB ACC.3,KEYERR:SETB P3.0MOV P1,#86H LCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLJMP MAIN1PASS:MOV P1,#00001100BCLR P3.0LCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLJMP MAIN1DELAY1S:MOV R3,#250DEL3:MOV R5,#4 DEL2:MOV R4,#250DEL1:NOP NOPDJNZ R4,DEL1DJNZ R5,DEL2DJNZ R6,DEL3RET ENDPSD EQU 21HORG 0000HLJMP M

    4、AINORG 0010HMAIN:MOV SP,#3FHST1:MOV P0,#0FFHMOV PSD,#02MAIN1:SETB P3.0MOV P1,#0111111BKEY: ACALL KS ;调用按键查询子程序 JNZ K1 ;判断是否有键按下,若A0,说明有键按下 AJMP KEY ;无键按下,继续查询K1: ACALL DELAY100MS ;调用延时程序去抖动 ACALL KS ;再次调用按键查询子程序 JNZ K2 ;若A0,说明确实有键按下 AJMP KEY ;否则因为抖动引起,继续查询按键状态K2: MOV R3, #0FEH ;设列扫描字为0FEH,从第0列开始逐列扫描

    5、 MOV R4, #00 ;设置列号初始值为00K3: MOV A, R3 ;取列扫描字送P2口 MOV P2, A ;扫描第1列 MOV A, P0 ;读入P0口键盘行线状态 ANL A, #0FH ;屏蔽无关的高4位 JB P0.0, L1 ;第0行有键按下吗?若P0.0=0,说明有键按下 MOV A, #00H AJMP LK ;将第0行首号00送A,转至键号计算程序L1: JB P0.1,L2 ;第1行有键按下吗?若P0.1=0,说明有键按下 MOV A, #04H AJMP LK ;将第1行首号04送A,转至键号计算程序L2: JB P0.2,L3 ;第2行有键按下吗?若P0.2=0

    6、,说明有键按下 MOV A, #08H AJMP LK ;将第2行首号08送A,转至键号计算程序L3: JB P0.3,NEXT ;第3行有键按下吗?若无键按下,则扫描下一列 MOV A, #0CH ;将第3行首号12送A AJMP LKLK: ADD A, R4 ;键号计算程序,按键号=行首号(A)+列号(R4) PUSH ACC ;进栈暂存按键号K4: ACALL DELAY100MS ACALL KS ;等待按键释放 JNZ K4 ACALL KS JNZ K4 POP ACC ;出栈取按键号给A AJMP PR ;转到密码识别与处理程序NEXT: INC R4 ;列号加1 MOV A,

    7、 R3 ;列扫描字送A JNB ACC.3,KEY ;判断4列都扫描完了吗? RL A ;未完,将列扫描字左移 MOV R3, A ;列扫描字送R3,为扫描下一列做准备 AJMP K3 ;循环继续扫描下一列KS: MOV A,#00H MOV P2, A ; 将列线P2.0-P2.3设置为低电平 NOP MOV A, P0 ; 读行线按键输入状态 CPL A ;变正逻辑,高电平表示有键按下 ANL A, #0FH ; 屏蔽与按键无关的高4位,有任意键按下时,A0 RETPR: CJNE A,PSD,ERR;PASS:MOV P1,#00001100B CLR P3.0 LCALL DELAY1

    8、S LCALL DELAY1S LCALL DELAY1S LJMP MAIN1ERR:MOV P1,#86H LCALL DELAY1S LCALL DELAY1S LCALL DELAY1S LJMP MAIN1DELAY1S:MOV R3,#250DEL3:MOV R5,#4 DEL2:MOV R4,#250DEL1:NOP NOPDJNZ R4,DEL1DJNZ R5,DEL2DJNZ R6,DEL3RET DELAY100MS:MOV R6,#200D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET ENDORG 0000H AJMP MAIN ORG 0

    9、010H MAIN:MOV P2,#00H KEY0:MOV P3,#0FEH JNB P3.4,K0 JNB P3.5,K1 JNB P3.6,K2 JNB P3.7,K3 MOV P3,#0FDH JNB P3.4,K4 JNB P3.5,K5 JNB P3.6,K6 JNB P3.7,K7 MOV P3,#11111011B JNB P3.4,K8 JNB P3.5,K9 JNB P3.6,K10 JNB P3.7,K11 MOV P3,#11110111B JNB P3.4,K12 JNB P3.5,K13 JNB P3.6,K14 JNB P3.7,K15K0:MOV P2,#3FH

    10、 ACALL DELAY LJMP MAINK1:MOV P2,#06H ACALL DELAY LJMP MAINK2:MOV P2,#5BH ACALL DELAY LJMP MAINK3:MOV P2,#4FH ACALL DELAY LJMP MAINK4:MOV P2,#66H ACALL DELAY LJMP MAINK5:MOV P2,#6DH ACALL DELAY LJMP MAINK6:MOV P2,#7DH ACALL DELAY LJMP MAINK7:MOV P2,#07H ACALL DELAY LJMP MAINK8:MOV P2,#7FH ACALL DELAY

    11、 LJMP MAINK9:MOV P2,#6FH ACALL DELAY LJMP MAINK10:MOV P2,#77H ACALL DELAY LJMP MAINK11:MOV P2,#7CH ACALL DELAY LJMP MAINK12:MOV P2,#39H ACALL DELAY LJMP MAINK13:MOV P2,#5EH ACALL DELAY LJMP MAINK14:MOV P2,#79H ACALL DELAY LJMP MAINK15:MOV P2,#71H ACALL DELAY LJMP MAINDELAY: MOV R3,#250DEL3:MOV R5,#4

    12、 DEL2:MOV R4,#250DEL1:NOP NOPDJNZ R4,DEL1DJNZ R5,DEL2DJNZ R6,DEL3RET END4、软、硬件调试仿真(效果图)任务二 简易计算器一、任务设计要求1、基本控制要求:由16键矩阵式键盘和两个数码管构成一个1位简易四节运算计算器。 1)实现1位的加、减、乘、除四节运算; 2) 如果结果为负(减法)或溢出(除数位0),数码管显示“EE”; 3)可以清零。二、设计过程1、设计方案确定2、硬件电路设计3、软件设计(1)、绘制流程图(2)、编写源程序:1个程序LOCK BIT P3.0 ;开锁阀,用LED代表,0:开锁ECODE1 DATA 3

    13、0H ;存放密码值ECODE2 DATA 31H ;存放密码值ECODE3 DATA 32H ;存放密码值ECODE4 DATA 33H ;存放密码值ECODE5 DATA 34H ;存放密码值ECODE6 DATA 35H ;存放密码值EKEY1 DATA 36H ;暂存放按键值EKEY2 DATA 37H ;暂存放按键值EKEY3 DATA 38H ;暂存放按键值EKEY4 DATA 39H ;暂存放按键值EKEY5 DATA 3AH ;暂存放按键值EKEY6 DATA 3BH ;暂存放按键值DISP1 DATA 3CH ;暂存放显示码DISP2 DATA 3DH ;暂存放显示码DISP3

    14、 DATA 3EH ;暂存放显示码DISP4 DATA 3FH ;暂存放显示码DISP5 DATA 40H ;暂存放显示码DISP6 DATA 41H ;暂存放显示码BUFF DATA 42H ;临时存储区SEG_ EQU 01000000B ;-显示码SEG_P EQU 01110011B ;P显示码SEG_A EQU 01110111B ;A显示码SEG_S EQU 01101101B ;S显示码SEG_E EQU 01111001B ;E显示码SEG_d EQU 01011110B ;d显示码SEG_r EQU 01010000B ;r显示码SEG_o EQU 01011100B ;o显

    15、示码SEG_H EQU 01110110B ;H显示码SEG_L EQU 00111000B ;L显示码SEG_0 EQU 3FH ;0显示码SEG_1 EQU 06H ;1显示码SEG_2 EQU 5BH ;2显示码SEG_3 EQU 4FH ;3显示码SEG_4 EQU 66H ;4显示码SEG_5 EQU 6DH ;5显示码SEG_6 EQU 7DH ;6显示码SEG_7 EQU 07H ;7显示码SEG_8 EQU 7FH ;8显示码SEG_9 EQU 6FH ;9显示码SEG_OFF EQU 00000000B ;熄灭显示码 ORG 0000H LJMP MAIN ORG 0030H

    16、MAIN: ;初始化 MOV SP,#50H MOV ECODE1,#6 MOV ECODE2,#5 MOV ECODE3,#4 MOV ECODE4,#3 MOV ECODE5,#2 MOV ECODE6,#1_BEGIN: LCALL INIT SETB LOCK _CHECK: LCALL CHECK_KEY CJNE A,#0BH,_CHECK LCALL PSW_CHK JC _ERROR ;密码正确: MOV DISP1,#SEG_P MOV DISP2,#SEG_A MOV DISP3,#SEG_S MOV DISP4,#SEG_S MOV DISP5,#SEG_E MOV DI

    17、SP6,#SEG_d CLR LOCK LCALL DELAY5S AJMP _BEGIN_ERROR: ;密码错误: MOV DISP1,#SEG_E MOV DISP2,#SEG_r MOV DISP3,#SEG_r MOV DISP4,#SEG_o MOV DISP5,#SEG_r MOV DISP6,#SEG_ LCALL DELAY5S AJMP _BEGINDELAY5S:MOV R4,#5_DELAY5:ACALL DELAY1S DJNZ R4,_DELAY5 RETDELAY1S: MOV R5, #160;_LP1: ACALL DISPLAY DJNZ R5,_LP1 R

    18、ETCHECK_KEY: LCALL SCAN_KEY CJNE A,#0BH,_CHK_KEY1 AJMP _CHK_KEY4 _CHK_KEY1: JNB F0,_CHK_KEY2 LCALL LED_OFF CLR F0_CHK_KEY2:CJNE A,#0AH,_CHK_KEY3 MOV EKEY1,EKEY2 MOV EKEY2,EKEY3 MOV EKEY3,EKEY4 MOV EKEY4,EKEY5 MOV EKEY5,EKEY6 MOV EKEY6,#0FFH MOV DISP1,DISP2 MOV DISP2,DISP3 MOV DISP3,DISP4 MOV DISP4,D

    19、ISP5 MOV DISP5,DISP6 MOV DISP6,#SEG_OFF AJMP _CHK_KEY4_CHK_KEY3:MOV EKEY6,EKEY5 MOV EKEY5,EKEY4 MOV EKEY4,EKEY3 MOV EKEY3,EKEY2 MOV EKEY2,EKEY1 MOV EKEY1,A MOV DISP6,DISP5 MOV DISP5,DISP4 MOV DISP4,DISP3 MOV DISP3,DISP2 MOV DISP2,DISP1 MOV DISP1,#SEG_ _CHK_KEY4:RETSCAN_KEY:ACALL KEY_TEST JNZ _S_KEY1

    20、 ACALL DISPLAY SJMP SCAN_KEY _S_KEY1: ACALL DISPLAY ACALL KEY_TEST JNZ _S_KEY2 ACALL DISPLAY SJMP SCAN_KEY _S_KEY2: MOV R2,#0FEH MOV R3,#00H _LINE0: MOV A,R2 MOV P2,A MOV A,P0 JB ACC.0,_LINE1 MOV A,#00H AJMP _KEY_NO _LINE1: JB ACC.1,_LINE2 MOV A,#01H AJMP _KEY_NO _LINE2: JB ACC.2,_LINE3 MOV A,#02H A

    21、JMP _KEY_NO _LINE3: JB ACC.3,_NEXT MOV A,#03H AJMP _KEY_NO _NEXT: INC R3 INC R3 INC R3 INC R3 MOV A,R2 JNB ACC.2,_EXIT RL A MOV R2,A AJMP _LINE0 _EXIT: AJMP SCAN_KEY _KEY_NO: ADD A,R3 PUSH ACC _KEY_REL:ACALL KEY_TEST JNZ _KEY_REL POP ACC SETB LOCK RET KEY_TEST: MOV A,#00H MOV P2,A MOV A,P0 CPL A ANL

    22、 A,#0FH RETDISPLAY: PUSH PSW PUSH ACC SETB RS0 MOV A,#0FFH MOV P0,A MOV R0,#DISP1 MOV R7,#00H MOV R6,#06H MOV R5,#0FEHDIS1: MOV P0,#0FFH MOV A,R0 MOV P1,A MOV A,R5 MOV P0,A HERE: DJNZ R7,HERE DJNZ R7,$ INC R0 MOV A,R5 RL A MOV R5,A DJNZ R6,DIS1 CLR RS0 POP ACC POP PSW RETPSW_CHK:MOV R0,#ECODE1 MOV R

    23、1,#EKEY1 MOV R6,#6_PSW_CHK1:MOV A,R0 MOV BUFF,R1 CJNE A,BUFF,_PSW_ERR INC R0 INC R1 DJNZ R6,_PSW_CHK1 CLR C RET_PSW_ERR:SETB C RETINIT: MOV EKEY1,#0FFH MOV EKEY2,#0FFH MOV EKEY3,#0FFH MOV EKEY4,#0FFH MOV EKEY5,#0FFH MOV EKEY6,#0FFH MOV DISP1,#SEG_H MOV DISP2,#SEG_E MOV DISP3,#SEG_L MOV DISP4,#SEG_L MOV DISP5,#SEG_o MOV DISP6,#SEG_1 SETB F0 RETLED_OFF: MOV DISP1,#SEG_OFF MOV DISP2,#SEG_OFF MOV DISP3,#SEG_OFF MOV DISP4,#SEG_OFF MOV DISP5,#SEG_OFF MOV DISP6,#SEG_OFF RET END4、软、硬件调试仿真(效果图)三、设计总结和体会单片机的系统扩展主要有程序存储器扩展、数据存储器扩展以及I/O口的扩展。通过这次实验,我们了解了简易计算器和简易密码锁的设计方案


    注意事项

    本文(电子密码锁 单片机.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开