单片机电子密码锁 (可以修改设置密码)――基于51单片机与AT24C02与LCD1602显示
其电路图连接如下本人已经用硬件实验程序可用。正确 ~~本程序特点装载后读者可以自改密码然后需要再次载入程序时可以把主程序aa=Sendstring(0xa0,1,table2,6)这一句去掉。然后程序的电子锁密码就是你个人设置的密码。
LCD1
程序代码为:
#include<reg51.=P0
XrMJ
Rir
F7 !|
uchar code table[]="Your Password...";void delayms(uint z)
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}void delay()短延时两个机器周期 ,做总线的延时{;;}void write_com(uchar com)
{rs=0;rd=0;lcden=0;
P2=com;delayms(3);lcden=1;delayms(3);lcden=0;
}void write_date(uchar date)
{rs=1;rd=0;lcden=0;
P2=date;delayms(3);lcden=1;delayms(3);lcden=0;
}void Display_String(uchar*p,uchar com)
{uchar i;write_co m(c o m);for(i=0;i<16;i++)
{write_date(p[i]);
}
}void init_lc d()
{lcden=0;write_co m(0 x38);write_co m(0 x0 c);write_co m(0 x06);write_co m(0 x01);write_co m(0 x80);
Display_String(table,0x80);
Display_String("Lock OK! ",0xc0);}
void start() {sda=1;scl=1;delay4us();sda=0;delay4us();scl=0;
}void stop()
{sda=0;scl=1;delay4us();sda=1;delay4us();scl=0;
}vo id init()初始化{sda=1;delay();scl=1;delay();
}
void ack()
{sda=0;scl=1;delay4us();scl=0;sda=1;
}void noack()
{sda=1;scl=1;delay4us();scl=0;sda=0;
}uchar recbyte()
{uchar i,rd;rd=0x00;sda=1;for(i=0;i<8;i++) {rd<<=1;scl=1;
rd|=sda;delay4us();scl=0;delay4us();
}scl=0;delay4us();return rd;
}uchar sendbyte(uchar wd)
{uchar i;bit ack0;for(i=0;i<8;i++)
{s da=(bit)(wd&0x80);
_nop_();
_nop_();scl=1;delay4us();scl=0;wd<<=1;
}delay4us();sda=1;
scl=1;delay4us();ack0=!sda;scl=0;delay4us();return ack0;
}uchar Recstring(uchar slaveuchar i;start();if(!sendbyte(slave))return 0;if(!sendbyte(subaddr))return 0;start();if(!sendbyte(slave+1))return 0;for(i=0;i<n-1;i++)
{buffer[i]=recbyte();ack();
}buffe r[n-1]=re cbyte();noack();stop();return 1;
uchar Sendstring(uchar slaveuchar i;start();if(!sendbyte(slave))return 0;if(!sendbyte(subaddr))return 0;for(i=0;i<n;i++)
{if(!sendbyte(buffer[i]))return 0;
}stop();return 1;
}void clear_password()
{ uchar i;for(i=0;i<6;i++)
{
Us e rpas swo rd[i]='';
}for(i=0;i<16;i++)
{
D SY_BUFFER[i]='';
}
()uchar temp,keynum;
P1=0x0F;delayms(5);te mp=P 1 A0 x0F;switch(temp)
{case 1:keynum=0;break;case 2:keynum=1;break;case 4:keynum=2;break;case 8:keynum=3;break;break;}
P1=0xF0;delayms(5);te mp=P 1>>4A0 x0F;switch(temp)
{case 1:keynum+=0;break;case 2:keynum+=4;break;case 4:keynum+=8;break;case 8:keynum+=12;break;break;}delayms(600);return keynum;void main()
{uchar temp,i=0,j=0,k=0,n;uchar IS_valid_user;beep=1;init();init_lc d();delayms(5);
欧路云 主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。由专业人员提供一系列的技术支持!官方网站:https://www.oulucloud.com/云服务器(主机测评专属优惠)全场8折 优惠码:zhuji...
每年的7月的最后一个周五是全球性质的“系统管理员日”,据说是为了感谢系统管理员的辛苦工作....friendhosting决定从现在开始一直到9月8日对其全球9个数据中心的VPS进行4.5折(优惠55%)大促销。所有VPS基于KVM虚拟,给100M带宽,不限制流量,允许自定义上传ISO...官方网站:https://friendhosting.net比特币、信用卡、PayPal、支付宝、微信、we...
对于如今的云服务商的竞争着实很激烈,我们可以看到国内国外服务商的各种内卷,使得我们很多个人服务商压力还是比较大的。我们看到这几年的服务商变动还是比较大的,很多新服务商坚持不超过三个月,有的是多个品牌同步进行然后分别的跑路赚一波走人。对于我们用户来说,便宜的服务商固然可以试试,但是如果是不确定的,建议月付或者主力业务尽量的还是注意备份。HostYun 最近几个月还是比较活跃的,在前面也有多次介绍到商...