单片机综合设计实验单片机密码锁_第1页
单片机综合设计实验单片机密码锁_第2页
单片机综合设计实验单片机密码锁_第3页
单片机综合设计实验单片机密码锁_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机综合设计实验一、实验目的掌握嵌入式系统的设计原理、程序编写与调试的开发过程。二、实验内容电子密码锁设计(A类):根据设定好的密码,采用8个按键实现密码的输入功能,当密码输入正确之后,锁就打开,显示某个字符;如果输入的三次的密码不正确,就锁定按键3秒钟,同时发出报警声显示另一个字符,直到没有按键按下3秒后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。在单片机实验板上实现二、实验要求1、 根据给定题目设计Proteus仿真原理图;2、 根据给定题目设计有关的51汇编语言(或C语言)源程序,并编译成可执行文件;3、 在Proteus仿真界面下运行程序实现给定的

2、功能。三程序设计内容 (1) 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“21213232”共8位密码。(2) 密码的输入问题:由于采用按键来完成密码的输入,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。(3)按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。开始初始化有键按下?调用显示启动定时识别按键按键数=8?超时?比较密码开门开始

3、自动清除<3次?报警NNYYYYNN主程流程图Proteus仿真原理图:程序 TIM EQU -2000DISP DATA 30H ; 30-34HDIS DATA 35HKEY DATA 36HWRONG DATA 50HCNT DATA 51HCLK BIT P0.0DAT BIT P0.1 STR BIT P0.2BEEP BIT P0.7S4 BIT P2.7S3 BIT P2.6S2 BIT P2.5S1 BIT P2.4K1 BIT P2.3K2 BIT P2.2K3 BIT P2.1K4 BIT P2.0ORG 0000HLJMP MAINORG 000BHLJMP TIM

4、0ORG 001BHLJMP DT1MAIN:MOV SP,#60H;MOV IE,#82HSETB EASETB ET0SETB ET1MOV TMOD,#11HMOV TH0,#HIGH(TIM)MOV TL0,#LOW(TIM)MOV TH1,#70H ;定时20msMOV TL1,#00H ;SETB TR0MOV KEY,#0MOV R5,#08HMOV R0,#40HMOV WRONG ,#00HMOV DISP+0,#0FFHMOV DISP+1,#0FFHMOV DISP+2,#0FFHMOV DISP+3,#0FFH;.;大循环;.START: MOV R5,#08HMOV

5、R0,#40H LCALL INPUT LCALL COMPARE LJMP START;.LOOP: INC WRONGMOV DISP+1,#0EH ;第二个数码管显示"E"表示密码输入错误,锁没有打开MOV KEY,#0SJMP START ;. ;输入8位密码 ;.INPUT:MOV A,KEYJZ INPUTMOV R0,AMOV A,R0;MOV DISP+3,AMOV DISP+3,ALCALL DELAY_S ;消抖INC R0MOV KEY,#0DJNZ R5,INPUTMOV KEY,#0RET;.;判断输入的密码是否正确;.COMPARE: MOV R

6、1,#00HMOV R5,#08H MOV R0,#40H MOV A,WRONG CJNE A,#2,NEXT ;判断输入错误次数是否等于3,不等于跳转NEXT MOV WRONG,#00H;等于3调用按键锁定子程序 MOV KEY,#0 LCALL LOCK ;调用键盘锁定程序 SJMP NEXT_1;子程序返回 NEXT:MOV DPTR,#TAB;输入的密码与预先设定的密码相比较 MOV A,R1MOVC A,A+DPTR;MOV A,R1MOV B,R0CJNE A,B, LOOPINC R1INC R0DJNZ R5, NEXT ;判断8位有没有比较完;MOV DISP+3,#0F

7、FH;MOV DISP+2,#0FFHMOV DISP+1,#0AH ;密码正确显示A ;MOV DISP+0,#0FFH NEXT_1:RET;.;锁定按键3秒钟;.LOCK: MOV KEY,#00HMOV DISP+1,#0FH ;第二个数码管显示"F"表示 三次密码输入错误,锁定按键 锁定三秒过后第二个数码管显示关SETB TR1MOV CNT,#00HLOCK_N:CLR BEEP MOV A,KEY JNZ LOCK ;A=0说明没有按键按下,不需要重新锁定,程序顺序执行,A!=0说明有键按下,重新锁定 MOV A,CNT MOV KEY,#0CJNE A,#1

8、50,LOCK_N ;判断锁定时间是否到3秒CLR TR1;关中断SETB BEEP; 关蜂鸣器MOV DISP+1,#0ffhMOV CNT,#00H;计数器清零RET;中断返回;.;中断0的子程序;.TIM0:PUSH ACCPUSH PSWMOV TH0,#HIGH(TIM)MOV TL0,#LOW(TIM)MOV A,DISLCALL GETDISMOV A,DISADD A,#DISPMOV R1,AMOV A,R1LCALL GETSEGKEY0P: JB K1,KEY1PMOV A,DISADD A,#1MOV KEY,AKEY1P: JB K2,KEY2PMOV A,DISAD

9、D A,#5MOV KEY,AKEY2P: JB K3,KEY3PMOV A,DISADD A,#9MOV KEY,AKEY3P: JB K4,KEYPMOV A,DISADD A,#13MOV KEY,AKEYP:INC DISMOV A,DISCJNE A,#4,TIMEMOV DIS,#0TIME:POP PSWPOP ACCRETI ;. ;中断服务程序2 DT1: MOV TH1,#70H MOV TL1,#00H INC CNT RETI ;. ;延时子程序1 ;.DLYTIM:MOV R6,#200DLYR7:MOV R7,#200DJNZ R7,$DJNZ R6,DLYR7RE

10、T;.;延时子程序2;.DELAY_S:MOV R4,#10MOV R6,#200DLYR8:MOV R7,#200DJNZ R7,$DLAY1:DJNZ R6,DLYR8DJNZ R4, DLAY1RET ;. ;.GETSEG: MOV R1,ALCALL DISPLAYRET ;. ;.GETDIS: MOV DPTR,#NUMTABMOVC A,A+DPTRCPL AMOV P2,ARET;.;.DISPLAY:MOV A,R1MOV DPTR,#TABLEMOVC A,A+DPTRCPL AMOV R2,#8CLR CLK;.;.DLP: RRC AMOV DAT,CCLR CLKSETB CLKDJNZ R2,DLPSETB STRCLR STRRET;.;.;数码管译码;.TABLE: DB 0F5H,05H,0E3H,67H,17H,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论