已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密码锁的设计报告一、 设计内容:用4*3的键盘组成09的数字键及确认键、删除键;用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列?第1列?第3列?第4列?否开始设置按键序号初值为0置表首地址送DPTR设置标志位R7初值为0设置初始密码为67890123设置P1高4位为输入是否有低电平是否为有效按键否是第1行?第2行?第3行?是是否否否开外部中断0和总中断三、流程图:是CLR ?ENTER?KEY_CNT值加1显示数码管个数加1显示横杆存储KEY_VAL密码正确?亮灯延时1S发出警报延时3SKEY_CNT值加1显示数码管个数加1显示横杆存储KEY_VALKEY_CNT值加1显示数码管个数加1显示横杆存储KEY_VAL是是是是是是是是是否否是KEY_CNT值减1显示数码管个数减1改变KEY_VAL值是是是是是四、实物图:五、源程序LINE_NO EQU 20H;行号ROW_NO EQU 31H;列号LINEinitialKEYVAL EQU 30H;行初始键值KEY_VAL EQU 32HKEY_CNT EQU 33H;数字按键的序号,如按键541,这时KEYORDER=3BIT_SEL EQU 34HFLAG BIT 00H;初始密码存储区LED_BIT1 EQU 41H LED_BIT2 EQU 42HLED_BIT3 EQU 43HLED_BIT4 EQU 44HLED_BIT5 EQU 45HLED_BIT6 EQU 46HLED_BIT7 EQU 47HLED_BIT8 EQU 48H;输入密码存储区PASSWD1 EQU 51HPASSWD2 EQU 52HPASSWD3 EQU 53HPASSWD4 EQU 54HPASSWD5 EQU 55HPASSWD6 EQU 56HPASSWD7 EQU 57HPASSWD8 EQU 58HORG 0000HLJMP STARTORG 0003HLJMP INTT0 ;中断处理,实现复位功能,清楚所有的有关操作ORG 0013HLJMP INTT1 ORG 0040HSTART: MOV SP,#70H MOV P0,#0FFH MOV A,#0FFH MOV R0,#00H MOV R7,#0 MOV BIT_SEL,#0 ;显示数码管的位数初始为0 MOV KEY_CNT,#0 ;按键序号初始为0 MOV DPTR,#TAB;设置初始密码MOV LED_BIT1,#6 MOV LED_BIT2,#7MOV LED_BIT3,#8MOV LED_BIT4,#9MOV LED_BIT5,#0MOV LED_BIT6,#1MOV LED_BIT7,#2MOV LED_BIT8,#3MAIN: SETB EX0 SETB IT0 SETB EA; 开中断总允许SETB PX0 MOV P1,#0F0H ;设置P1高4位(行线)输入状态 MOV A,P1 CJNE A,#0F0H,M ; P1高4位(行线)有低电平,转M进一步判断是按键还是抖动 SJMP MAIN ; P1高4位(行线)无低电平,转MAIN继续监控M: ACALL DELAY ; P1高4位(行线)有低电平,去抖延时 MOV P1,#0F0H ; 设置P1高4位(行线)输入状态,已经延时,准备再读 MOV A,P1 CJNE A,#0F0H,MM ; 再读P1高4位(行线),仍有低电平,确认是按键,转MM SJMP MAIN ; 再读P1高4位(行线),无低电平,表示抖动,非有效按键,;转MAIN继续监控MM: MOV LINE_NO,A ; P1高4位(行线)低电平持续时间符合按键要求,有效按键,;保存行号到LINE_NO MOV P1,#0FH ; 设置P1低4位(列线)输入状态 MOV ROW_NO,P1 ; 保存列号到ROW_NOMMM: MOV P1,#0F0H ; 设置P1高4位(行线)输入状态 MOV A,P1 CJNE A,#0F0H,MMM ; 读出P1高4位(行线)是否低电平(未松开键)? ; 未松开转MMM,继续监控松开否。 ; P1高4位(行线)有低电平,表明按键松开, ; 完成一次按键动作,执行下面语句 JNB LINE_NO.4, E1 ; LINE_NO.4!=1第1行有按键,转E1, ; 否则第1行无按键,执行下面语句,判断其他行有按键否JNB LINE_NO.5, E2 ; LINE_NO.5!=1第2行有按键,转E2, ; 否则第1、2行无按键,执行下面语句,判断其他行有按键否JNB LINE_NO.6, E3 ; LINE_NO.6!=1第3行有按键,转E3,LJMP MAIN ; 否则无按键,转MAIN重新监控E1: MOV LINEinitialKEYVAL,#0 ;第1行有按键,该行键初值(30H内容)为0 LJMP KEYVAL ;转KEYVAL,求按键号E2: MOV LINEinitialKEYVAL,#4 ;第2行有按键,该行键初值(30H内容)为4 LJMP KEYVAL ; 转KEYVAL,求按键号E3: MOV LINEinitialKEYVAL,#8 ; 第3行有按键,该行键初值(30H内容)为8 MOV A, ROW_NO ; 将31H单元内容-列号取出 JNB ACC.0,D31 ; 第3行第1列按键,转D31, JNB ACC.1,D32 ; 第3行第2列按键,转D32 JNB ACC.2,D33 ; 第3行第3列按键,转D33 JNB ACC.3,D34 ; 第3行第4列按键,转D34 D31: MOV R0,KEY_CNT INC R0 MOV KEY_CNT, R0 ;按键序号KEY_CNT增1MOV A,KEY_CNT ;按键序号超过9个不做处理SUBB A,#09JZ NEXT1INC BIT_SEL MOV A, BIT_SELMOVC A,A+DPTRMOV P2,A ;选择要显示的数码管 ;MOV BIT_SEL, A ;数码管位号BIT_SEL左移1位 MOV A,#0 ADD A, LINEinitialKEYVAL MOV KEY_VAL, A ;MOVC A,A+DPTR ; 从键值代码显示表tab中查到该按键号对应的显示代码 MOV A,#0BFH MOV P0,A MOV P1,#0F0HACALL PASSWD LJMP MAIND32: MOV R0,KEY_CNT INC R0 MOV KEY_CNT, R0 ;按键序号KEY_CNT增1MOV A,KEY_CNT ;按键序号超过9个不做处理SUBB A,#09JZ NEXT1 INC BIT_SEL MOV A, BIT_SELMOVC A,A+DPTRMOV P2,A ;选择要显示的数码管 ;MOV BIT_SEL, A ;数码管位号BIT_SEL左移1位 MOV A,#1 ADD A, LINEinitialKEYVAL MOV KEY_VAL, A ;MOVC A,A+DPTR ; 从键值代码显示表tab中查到该按键号对应的显示代码 MOV A,#0BFH MOV P0,A MOV P1,#0F0HACALL PASSWD LJMP MAIND33: MOV A,KEY_CNT JZ D331 ;无输入数字按键时进行清除的处理MOV A,KEY_VALCLR A ;清楚原来输入的按键值MOV KEY_VAL,AACALL PASSWD ;调用密码存储子程序对当前操作进行存储 DEC KEY_CNTDEC BIT_SELD331:MOV A, KEY_CNTMOVC A,A+DPTRMOV P2,A ;选择要显示的数码管MOV A,#0BFH MOV P0,A MOV P1,#0F0H LJMP MAIN NEXT1: MOV KEY_CNT,#08 LJMP PWN_SOUND ;超过8个按键时的警告D34: MOV A,R7 JNZ BIT0 MOV A,LED_BIT1 ;初始密码 CJNE A,PASSWD1,PWN_SOUND ;初始密码与输入密码进行比较 MOV A,LED_BIT2 CJNE A,PASSWD2,PWN_SOUND MOV A,LED_BIT3 CJNE A,PASSWD3,PWN_SOUND MOV A,LED_BIT4 CJNE A,PASSWD4,PWN_SOUND MOV A,LED_BIT5 CJNE A,PASSWD5,PWN_SOUND MOV A,LED_BIT6 CJNE A,PASSWD6,PWN_SOUND MOV A,LED_BIT7 CJNE A,PASSWD7,PWN_SOUND MOV A,LED_BIT8 CJNE A,PASSWD8,PWN_SOUNDCLR P3.0 ;密码正确,LED发光二极管亮一秒作为提示ACALL DELAY1SSETB P3.0SETB EX1 ;开重置密码中断 LJMP MAIN BIT0: MOV A,KEY_CNT SUBB A,#08 JNZ PWN_SOUND ;密码修改不是8位警报 LJMP BIT_closePWN_SOUND: MOV A,R7 JZ SOUND CLR P3.7 ;密码修改错误,LED发光二极管亮并报警SOUND: MOV R2,#3START1: JNB FLAG, NEXT3 ; flag=0报警低音声,flag=1报警高音声 MOV R6,#200DV: CPL P3.5 ; P1.0产生200个500Hz脉冲,报警低音声 LCALL DELY500 LCALL DELY500 DJNZ R6,DV CPL FLAG ;标志位取反,两种报警声音(500Hz和1KHz)交替鸣响NEXT3: MOV R6,#200DV1: CPL P3.5 ; P1.0产生200个1KHz脉冲,报警高音声 LCALL DELY500 DJNZ R6,DV1 CPL FLAG ; 标志位取反,两种报警声音(500Hz和1KHz)交替鸣响 DJNZ R2,NEXT4 MOV A,R7 JZ NEXT5 SETB P3.7NEXT5: LJMP MAIN NEXT4:LJMP START1KEYVAL: MOV R0,KEY_CNT INC R0 MOV KEY_CNT, R0 ;按键序号KEY_CNT增1 MOV A,KEY_CNT ;按键序号超过8个不做处理,为无效按键,序号仍然为8个,并返回主函数 SUBB A,#09 JZ NEXT1 INC BIT_SEL MOV A, BIT_SEL MOVC A,A+DPTR MOV P2,A ;选择要显示的数码管 ;MOV BIT_SEL, A ;数码管位号BIT_SEL左移1位 MOV A, ROW_NO ; 将31H单元内容-列号取出 JNB ACC.0,D1 ; 第1列按键,转D1 JNB ACC.1,D2 ; 第2列按键,转D2 JNB ACC.2,D3 ; 第3列按键,转D3 JNB ACC.3,D4 ; 第4列按键,转D4D1: MOV A,#0 ADD A, LINEinitialKEYVAL ; 按键号=行键初值+列键值(列键值为0 ) MOV KEY_VAL, A ;MOVC A,A+DPTR ; 从键值代码显示表tab中查到该按键号对应的显示代码MOV A,#0BFH MOV P0,A MOV P1,#0F0HACALL PASSWD LJMP MAIND2: MOV A,#1 ADD A, LINEinitialKEYVAL ; 按键号=行键初值+列键值(列键值为1) MOV KEY_VAL, A ;MOVC A,A+DPTR ; 从键值代码显示表tab中查到该按键号对应的显示代码 MOV A,#0BFH MOV P0,A MOV P1,#0F0HACALL PASSWD LJMP MAIND3: MOV A,#2 ADD A, LINEinitialKEYVAL ; 按键号=行键初值+列键值(列键值为2) MOV KEY_VAL, A ;MOVC A,A+DPTR ; 从键值代码显示表tab中查到该按键号对应的显示代码 MOV A,#0BFH MOV P0,A MOV P1,#0F0H ACALL PASSWD LJMP MAIND4: MOV A,#3 ADD A, LINEinitialKEYVAL ; 按键号=行键初值+列键值(列键值为3) MOV KEY_VAL, A ;MOVC A,A+DPTR ; 从键值代码显示表tab中查到该按键号对应的显示代码 MOV A,#0BFH MOV P0,A MOV P1,#0F0H ACALL PASSWD LJMP MAIN DELY500: MOV R0,#250 ;500us软件延迟程序,用于报警LOOP: NOPDJNZ R0,LOOPRET;复位实现INTT0: MOV PASSWD1,#0 MOV PASSWD2,#0 MOV PASSWD3,#0 MOV PASSWD4,#0 MOV PASSWD5,#0 MOV PASSWD6,#0 MOV PASSWD7,#0 MOV PASSWD8,#0 MOV KEY_CNT,#0 MOV BIT_SEL,#0 MOV A, BIT_SEL MOVC A,A+DPTR MOV P2,A MOV A,#0BFH MOV P0,A RETI;修改密码实现INTT1:MOV R7,#1MOV KEY_CNT,#0 MOV BIT_SEL,#0MOV A, BIT_SEL MOVC A,A+DPTR MOV P2,A MOV A,#0BFH MOV P0,A LJMP MAINBIT_close: MOV LED_BIT1,PASSWD1 MOV LED_BIT2,PASSWD2 MOV LED_BIT3,PASSWD3 MOV LED_BIT4,PASSWD4 MOV LED_BIT5,PASSWD5 MOV LED_BIT6,PASSWD6 MOV LED_BIT7,PASSWD7 MOV LED_BIT8,PASSWD8MOV PASSWD1,#0MOV PASSWD2,#0MOV PASSWD3,#0MOV PASSWD4,#0MOV PASSWD5,#0MOV PASSWD6,#0MOV PASSWD7,#0MOV PASSWD8,#0CLR P3.7 ;密码修改正确,LED发光二极管亮一秒作为提示 ACALL DELAY1S SETB P3.7CLR EX1MOV R7,#0MOV KEY_CNT,#0MOV BIT_SEL,#0MOV A, BIT_SELMOVC A,A+DPTRMOV P2,ARETI;依据按键序号顺序存入密码缓冲区PASSWD: MOV A,KEY_CNT SUBB A,#01HJNZ PD2MOV PASSWD1,KEY_VALPD2:MOV A,KEY_CNTSUBB A,#02HJNZ PD3MOV PASSWD2,KEY_VALPD3:MOV A,KEY_CNTSUBB A,#03HJNZ PD4MOV PASSWD3,KEY_VALPD4:MOV A,KEY_CNTSUBB A,#04HJNZ PD5MOV PASSWD4,KEY_VALPD5:MOV A,KEY_CNTSUBB A,#05HJNZ PD6MOV PASSWD5,KEY_VALPD6:MOV A,KEY_CNTSUBB A,#06HJNZ PD7MOV PASSWD6,KEY_VALPD7:MOV A,KEY_CNTSUBB A,#07HJNZ PD8MOV PASSWD7,KEY_VALPD8:MOV A,KEY_CNTSUBB A,#08HJNZ NEXTMOV PASSWD8,KEY_VALNEXT: RETDELAY1S:MOV R3,#10DEL3: MOV R4,#200DEL2: MOV R5,#125DEL1: NOP NOP DJNZ R5,DEL1 DJNZ R4,DEL2 DJNZ R3,DEL3 RETDELAY: MOV R1,#3 ; 延时程序D: MOV R2,#255 DJNZ R2,$ DJNZ R1,D RETTAB:;DB 0C0H,0F9H,0A4H,0B0H ;DB 99H,92H,82H,0F8H,80H,90H,88H,83H ;DB 0C6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水生哺乳动物驯养员安全技能评优考核试卷含答案
- 复合材质文物修复师标准化知识考核试卷含答案
- 并购退出机制设计-洞察与解读
- 上海市上戏附中2025年高一上数学期末学业水平测试模拟试题含解析
- 河北省教考联盟2025-2026学年化学高二上期末质量检测模拟试题含解析
- 嵌塞传播路径分析-洞察与解读
- 四川省阆中中学新区2025-2026学年高一上物理期末检测试题含解析
- 陕西省西安铁一中2025年高二数学第一学期期末经典模拟试题含解析
- 山东省牟平一中2025-2026学年高二上数学期末教学质量检测模拟试题含解析
- 吉林外国语大学《智能制造大数据技术》2024-2025学年第一学期期末试卷
- 文明工地施工宣传标语
- 基于太阳能电池板的智能跟踪系统设计
- 小学六年级全册体育教案(已整理)
- 2 试验二 系统相频特性对信号传输的影响试验 2
- 建筑装饰设计收费标准(完整版)资料
- GB/T 12970.1-2009电工软铜绞线第1部分:一般规定
- JB∕T 13977-2020 液化天然气(LNG)低温潜液泵
- 湖南省邵阳市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 危险源辨识风险评价记录表格范例范例
- 阀门维修要求及验收标准
- 劳动防护用品规范使用培训课件
评论
0/150
提交评论