资源简介

含有protues图和程序(全注释,连变量都注释) 要求: 1、在锁开的状态下输入密码,设置的密码共4位,用数据开关K1∼K10分别代表数字1、2、…、9、0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上的显示左移一位。可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。 2、用一位输出电平的状态代表锁的开闭状态,绿色发光管指示。 3、为保证密码锁主人能打开密码锁,设置一个万能密码,在主人忘记密码时使用。

资源截图

代码片段和文件信息

/*******************************************************************************
================================================================================
【平    台】STC89C51_sumjess平台
【编    写】sumjess
【E-mail  】1371129880@qq.com
【软件版本】V2.0
【最后更新】2019年06月10日
【相关信息参考下列地址】
【网    站】
           https://blog.csdn.net/qq_38351824
           http://www.51hei.com/bbs/mcu-2-1.html
---------------------------------------------------------------------------------
【dev.env.】MDK4.02及以上版本
【Target  】STC89C51
第一次修订:2019/05/09
第二次修订:2019/05/21
第三次修订:2019/06/10
【problem 】
    (1)库内补充的不全面;
    (2)库内解释部分不全面;
    (3)库内还存在一定的bug;
【direction】
      下一步的目标就是把库继续集成!
【explain 】
      为了方便使用,我也自己写了很多的库,和优化了算法和表示方式!
【warning】
      目前程序中暂无错误 !   
---------------------------------------------------------------------------------
没有完美的代码,只有不断的奉献,大家一起努力;
赠人玫瑰手留余香,欢迎大家反馈bug!
================================================================================
********************************************************************************/
#include
#include

#define uchar unsigned char 
#define uint  unsigned int
 
sbit beep=P2^4;//蜂鸣器接口
sbit D1=P2^2;  //开锁信号
sbit k1=P3^2;  //恢复初始密码按键
sbit RS=P2^7;  //数据命令选择 
sbit RW=P2^6;  //读写控制
sbit E=P2^5;   //液晶使能 
sbit SDA=P2^1; //数据线接口
sbit SCL=P2^0; //时钟线接口 
 
uchar idata table1[6]={123456}; //初始密码
uchar dd; 
uchar aa;//存放密码错误的次数,够三次报警
uchar bb;
uchar cc;
//延时子函数
void delay1(uint z)
{
uint xy;
for(x=0;x for(y=0;y<110;y++);
}
void delay2() 
{
;;
}
//总线初始化子函数
void i2cinit()
{
SDA=1;
delay2();
SCL=1;
delay2();
}
//启动信号子函数
void start()
{
SDA=1;
SCL=1;
delay2();
SDA=0;
delay2();
}
//停止信号子函数
void stop()
{
SDA=0;
delay2();
SCL=1;
delay2();
SDA=1;
delay2();
}
//应答信号子函数
void respons()
{
uchar i=0;
SCL=1;
delay2();
while(SDA==1&&i<255)//等待应答,过一段时间不应答退出循环
i++;
SCL=0;
delay2();
}
//写一个字节子函数
void writebyte(uchar date)
{
uchar itemp;
temp=date;
for(i=0;i<8;i++)
{
temp<<=1;//temp左移一位后高位进CY
SCL=0;
delay2();
SDA=CY;
delay2();
SCL=1;
delay2();
}
SCL=0;//应答信号中SCL = 1,所以这里要置0
delay2();
SDA=1;//用完要释放数据总线
delay2();
}
//读一个字节子函数
uchar readbyte() 
{
uchar ik;
SCL=0;
delay2();
SDA=1;
for(i=0;i<8;i++)
{
SCL=1;
delay2();
k=(k<<1)|SDA; //和最低位或,一位位送到K
SCL=0;
delay2();
}
delay2();
return k;
}
//向地址写一个字节数据子函数
void write_add(uchar addressuchar date)
{
start();
writebyte(0xa0);//A0A1A2接地,AT24C02芯片地址为1010,送控制字为1010A2A1A0R/~W
respons();
writebyte(address);
respons();
writebyte(date);
respons();
stop();
}
//向地址读一个字节数据子函数
uchar read_add(uchar address)
{
uchar date;
start();
writebyte(0xa0);//A0A1A2接地,AT24C02芯片地址为1010,送控制字为1010A2A1A0R/~W
respons();
writebyte(address);
respons();
start();
writebyte(0xa1);//A0A1A2接地,AT24C02芯片地址为1010,送控制字为1010A2A1A0R/~W
respons();
date=readbyte();
stop()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-07-22 22:33  课程设计题十二:电子密码锁\
     目录           0  2019-07-23 10:11  课程设计题十二:电子密码锁\Sum_Stc51\
     文件        6376  2009-05-07 14:37  课程设计题十二:电子密码锁\Sum_Stc51\STARTUP.A51
     文件       14049  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\STARTUP.LST
     文件         749  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\STARTUP.OBJ
     文件       32226  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock
     文件       42187  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.LST
     文件       47206  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.M51
     文件       38482  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.OBJ
     文件       15990  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.c
     文件        9544  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.hex
     文件          49  2019-07-23 10:10  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.lnp
     文件        1581  2019-07-23 10:11  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.plg
     文件       64915  2019-07-23 10:11  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.uvopt
     文件       13408  2019-07-22 22:32  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock.uvproj
     文件       64915  2019-07-22 22:32  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock_uvopt.bak
     文件           0  2019-07-22 22:27  课程设计题十二:电子密码锁\Sum_Stc51\Sum_lock_uvproj.bak
     目录           0  2019-07-23 10:16  课程设计题十二:电子密码锁\仿真图\
     文件       26309  2019-07-23 10:16  课程设计题十二:电子密码锁\仿真图\Backup Of Sum_lock.pdsbak
     文件       25541  2019-07-22 22:35  课程设计题十二:电子密码锁\仿真图\Last Loaded Sum_lock.pdsbak
     文件      135024  2016-06-26 12:17  课程设计题十二:电子密码锁\仿真图\Sum_lock.DSN
     文件       26309  2019-07-23 10:16  课程设计题十二:电子密码锁\仿真图\Sum_lock.pdsprj
     文件        2625  2019-07-23 10:16  课程设计题十二:电子密码锁\仿真图\Sum_lock.pdsprj.DESKTOP-37880EN.别想打开!.workspace

评论

共有 条评论