简易六位密码锁

loading 分享 2026-8-15 下载文档

2 设计思想

2.1 硬件设计思想

2.11 键盘设计

本设计使用7按键,从上到下,从左至右依次设为确认键,数字1,数字2,数字3,数字4,数字5,数字6,用来输入密码,如下图

2.12 数字显示设计

使用共阳极七段数码管来显示输入的数字,图如下:

5

2.13 检验密码电路设计

使用LED灯和蜂鸣器来提示输入的密码是否正确,若密码正确,绿灯亮,若密码错误,红灯闪烁,蜂鸣器响,电路如图:

2.2软件设计思想

电子密码锁工作的主要过程是从键盘开始输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

密码的设定,在此程序中密码是固定的,预设的密码为\共6位密码。 在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。预设密码以外的数字都不能解开密码锁(如输入非6位或输入6位与预设密码不同的数字)

输入密码时,数码管要在单片机的控制下同步显示输入的数字。

6

3 电路原理与电路图

3.1 电路原理

单片机最小系统。一个AT89S52单片机做为控制电路,运用其P2口来实现密码的输入和蜂鸣器的报警,通过P0口给数码显示管高低不同电平信号,来实现输入密码的显示,P1接指示灯。

3.2 电路原理图

4 流程图

4.1流程图

7

5 程序清单与仿真结果

5.1 程序清单

#include

sbit mm1=P2^0;//密码按键1-8 sbit mm2=P2^1; sbit mm3=P2^2; sbit mm4=P2^3; sbit mm5=P2^4; sbit mm6=P2^5; sbit mmok=P2^6; sbit l1=P1^0; sbit l2=P1^2; sbit fmq=P2^7;

void init() {

P0=0xff;//禁止数码管显示 mm1=1; mm2=1; mm3=1; mm4=1; mm5=1; mm6=1; mmok=1; fmq=1; l1=1; l2=1; }

void delayms(unsigned int t) {

unsigned int i,j; for(i=t;i>0;i--) for(j=114;j>0;j--); }

void main() {

unsigned

mmsr,bn,bn1,bn2,bn3,bn4,bn5; mmsr=0; bn=0; bn1=0;

bn2=0; bn3=0; bn4=0; bn5=0; mmsr=1; init(); while(1) { if(mmsr==1) { if(mm5==0) //系统8位程序密码532416 { delayms(10); if(mm5==0) { bn=1; P0=0xff;//消隐 P0=0x92;//显示5 } } if((mm3==0)&(bn==1)) { delayms(10); if((mm3==0)&(bn==1)) { bn1=1; P0=0xff;//消隐 P0=0xb0;//显示3 char

} } if((mm2==0)&(bn1==1))

8


简易六位密码锁.doc 将本文的Word文档下载到电脑
搜索更多关于: 简易六位密码锁 的文档
相关推荐
相关阅读