
A35基于51单片机汇编语言六位密码锁Proteus设计
用51单片机汇编语言做一个六位密码锁:4×3矩阵键盘输入数字,8位数码管显示"PE"加6位密码,输满6位按ENTER比对,正确就吸合继电器开锁,错误就蜂鸣报警,CLR键可以退格。初始密码123456,开锁后还能原地改密码。
一、设计实现功能
本设计功能简介:使用51单片机和汇编语言设计一个六位密码锁的proteus仿真,要求以下功能:
1、使用汇编语言编写程序。
2、4×3矩阵键盘输入0~9,另有CLR退格、ENTER确认两个功能键。
3、8位数码管动态扫描,左侧固定显示"PE",右侧6位显示已输入的密码。
4、密码正确P1.0吸合继电器开锁,密码错误或操作错误蜂鸣器报警。
5、开锁状态下可重新设置6位新密码。
二、资源汇总
1、仿真文件:Proteus工程,7.8和8.6两个版本都能直接打开。
2、程序文件:main.asm汇编源码,以及编译好的cx.hex。
3、修改日期小工具:购买资料后赠送,用于修改文件创建日期,下载地址在文章最后。
三、设计介绍
拿到压缩包之后先解压,没有解压软件的直接搜"压缩",下载解压软件后先解压文件,再运行仿真和程序。
图1 Proteus仿真总览

硬件分成三块,引脚分配看表:
| 功能 | 引脚 | 说明 |
| 段码 | P0.0~P0.7 | 经74LS245缓冲后送数码管a~dp |
| 位选 | P2.0~P2.7 | 低电平选中,对应8位数码管 |
| 键盘行 | P3.0~P3.3 | 输出扫描行码 |
| 键盘列 | P3.4~P3.6 | 读入列状态 |
| 开锁 | P1.0 | 低电平吸合继电器(仿真里用指示灯代替) |
| 蜂鸣器 | P1.7 | T0中断翻转,约714Hz |
P0口是开漏输出,直接驱动数码管亮度不够,所以中间加了一片74LS245做缓冲,这是真实电路里的常规做法,仿真里不加也能亮,但加上以后波形干净很多。
键盘扫描是标准的"先行后列"两段式:先把P3写成0F0H输出行码,逐个判断P3.0~P3.3哪个变低确定行号;再把P3写成0FH输出列码,判断P3.4~P3.6确定列号。键值算法只有一句:
`asm
CALCU: MOV A,LINE ;行号0~3
MOV B,#03H
MUL AB ;行号×3
ADD A,ROW ;加列号0~2
MOV VAL,A ;键值0~11`
3列4行,键值正好0~9是数字键、10是CLR、11是ENTER,后面判断直接拿键值比大小,不用再查表。
密码的存储和显示是这个程序最值得看的地方。输入区38H~3DH存正确密码、3EH~43H存用户输入,两段都是"低位存最新一位":
`asm
SHIFTL: MOV LED_BIT_6,LED_BIT_5 ;段码整体左移一位
MOV LED_BIT_5,LED_BIT_4
...
MOV LED_BIT_1,#40H ;最右位先显示"-"
MOV KEY_6,KEY_5 ;输入值同步左移
...
MOV KEY_1,VAL ;最新按下的数字进KEY_1`
每按一个数字,老数字往左挪一格,新数字进最右边。于是输入顺序1、2、3依次按下去,屏幕上就从右往左长出来,最后显示成PE123456——看着是正序,实际存储是倒序的。所以初始密码在程序里写成WORD_1=6、WORD_2=5……WORD_6=1,比对时WORD_1对KEY_1,位对位相等才算通过:
| 输入第几个 | 送进哪个单元 | 屏幕最右位 |
| 第1个 | KEY_1 | 1 |
| 第2个 | KEY_1(原值移到KEY_2) | 2 |
| 第6个 | KEY_1 | 6 |
按ENTER时先判断KEY_CNT是不是6,不够6位直接报警;够6位才逐字节比对。比对全等就CLR P1.0开锁,然后进入等待状态:按P3.5重新上锁,按其他任意键进入改密码流程。
报警用的是T0方式1、700微秒中断翻转P1.7,中断里数30次×20组,约0.42秒的一串蜂鸣,然后自动CLR TR0停掉。密码错误比操作错误多响一次长延时(ALARM_2里多调了一次DLY_L),靠声音长短能听出是哪类错误。
特别注意: 显示8位数码管每位的点亮时间是DLY_S的10×250次循环,约5毫秒,8位扫一轮40毫秒,刷新率25Hz,实物上会看到轻微闪烁,把MOV R6,#10改小到3~5就顺了;键盘没反应,先查P3有没有被写死(扫描前必须MOV P3,#0F0H),再查按键是不是一端接行一端接列;输入的数字对但一直提示错误,检查密码存储顺序,程序里"最新一位在KEY_1",如果你自己改成正序存,比对时会出现123456输对了却打不开;开锁后继电器不动作,P1.0是低电平有效,仿真里要接继电器线圈加三极管,直接接LED看不出吸合;改密码后新密码不生效,CHPSW最后那段CHANGE循环是把48H~4EH搬到40H~46H,地址写错就会搬到别处去。
四、日期修改
资料中提供修改日期的小工具,购买资料赠送修改文件创建日期的小工具,三个下载地址都在文章最后。
五、资料下载
付费后获取下载链接,直接下载到电脑上,然后解压即可!每个链接前面都配了二维码,手机扫码可以直接跳转。
/

