基于51单片机的数码管密码锁设计资料

本文介绍了一款采用六位数码管实现的密码门禁系统,具备门控开关、蜂鸣器报警、矩阵键盘输入及LED状态显示功能。初始密码为000000,系统支持密码更改、重试和门禁关闭。程序详细描述了各功能实现步骤,并提供了源代码。
AI助手已提取文章相关产品:

百度网盘下载地址(950):点击下载

采用了六位数码管实现六位密码锁设计,包含门控开关继电器、蜂鸣器报警电路,矩阵键盘实现,两个led灯能实时显示当前门开关状态。

初始密码:000000     密码位数:6位
注意:掉电后,所设密码会丢失,重新上电时,密码恢复为原始的000000
与P1.0相连的8位发光LED点亮代表门禁被打开;熄灭代表门禁被门禁上

程序功能:
          1、开:
          下载程序后,直接按六次数字0(即代表密码000000),LED亮,门被打开,输入密码时,
          六位数码管依次显示小横杠。
          2、更改密码:
          只有当开门禁(LED亮)后,该功能方可使用。
          首先按下更改密码键,然后设置相应密码,此时六位数码管会显示设置密码对应
          的数字。最后设置完六位后,按下确认密码更改,此后新密码即生效。
          3、重试密码:
          当输入密码时,密码输错后按下重试键,可重新输入六位密码。
          当设置密码时,设置中途想更改密码,也可按下此键重新设置。
          4、关闭门禁:
          按下上门禁按键即可将打开的门禁关闭。
          
功能测试:输入原始密码000000---按下更改密码按键---按0到9设置密码---按确认键
       密码更改---按上门禁按键关闭密码门禁---输入新的密码打开密码门禁

#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

uchar old1,old2,old3,old4,old5,old6; //原始密码000000
unsigned char PassWord[6];
uchar new1,new2,new3,new4,new5,new6;  //每次MCU采集到的密码输入
uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量
uchar wei,key,temp;
unsigned char st=0;

bit allow,genggai,ok,wanbi,retry,close;	 //各个状态位


sbit beep=P3^6;
sbit Lock=P3^7;

sbit GLED=P3^5;
sbit RLED=P3^4;

sbit SCL = P3^3;		  //引脚定义
sbit SDA = P3^2;

unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};



void InitI2C();
void I2CStart();
void I2CStop();
void I2CSend(uchar byte);
uchar I2CRead();
uchar read_eeprom(uchar addr);
void write_eeprom(uchar addr, uchar databyte); 

 

您可能感兴趣的与本文相关内容

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值