赞
踩
基于51单片机的多功能密码锁仿真设计,主要实现功能如下:
(1)能够从键盘中输入密码,并相应地在显示器上显示‘*’;
(2)能够判断密码是否正确,正确则开锁,错误则输出相应信息;
(3)能够实现密码的修改;
(4)断电或者单片机复位后能够保存之前的操作,比如密码的修改;
(5)在操作错误达到一定次数后能够报警。
本设计主要由单片机最小系统、矩阵键盘、LCD显示模块、掉电存储模块、报警机构和开锁机构组成。
附上AT24C02代码,可以移植参考
/******************************************************************************* * 函数名 : void At24c02Write(unsigned char addr,unsigned char dat) * 函数功能 : 往24c02的一个地址写入一个数据 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void At24c02Write(unsigned char addr,unsigned char dat) { I2cStart(); I2cSendByte(0xa0);//发送写器件地址 I2cSendByte(addr);//发送要写入内存地址 I2cSendByte(dat); //发送数据 I2cStop(); } /******************************************************************************* * 函数名 : unsigned char At24c02Read(unsigned char addr) * 函数功能 : 读取24c02的一个地址的一个数据 * 输入 : 无 * 输出 : 无 *******************************************************************************/ unsigned char At24c02Read(unsigned char addr) { unsigned char num; I2cStart(); I2cSendByte(0xa0); //发送写器件地址 I2cSendByte(addr); //发送要读取的地址 I2cStart(); I2cSendByte(0xa1); //发送读器件地址 num=I2cReadByte(); //读取数据 I2cStop(); return num; } /******************************************************************************* * 函数名 : TimerConfiguration() * 函数功能 : 配置定时器值 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void TimerConfiguration() { TMOD = 0x01; //选择工作方式1 TH0 = 0x3C; //设置初始值,定时50MS TL0 = 0xB0; EA = 1; //打开总中断 ET0 = 1; //打开定时器0中断 TR0 = 1; //启动定时器0 }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。