#include<reg52.h> //包含头文件
#include<zdy.h>
#include<string.h>
#define uint unsigned int //预定义一下
#define uchar unsigned char
uchar code tab[]="welcome to";//
uchar code tab1[]="BlueShadowDIY";//
uchar code dlcg[]="success";//登陆成功
uchar code tcdl[]="quit";//退出登陆
uchar code dlsb[]="fail";//登陆失败
uchar code cshwc[]="complete";//初始化完成
uchar code tab3[]="modify";//修改密码
uchar csmm[16]="1234";//初始化密码
uchar bcmm[16]="1234";//保存密码
uchar xssz[];//显示数组
bit dl=0;//登录标志位
void xshs(uchar *p,uchar q)//显示函数
{
int i=0;
lcd_wcom(q);
while(p[i]!='\0')
{
lcd_wdat(p[i]);
i++;
}
}
void dtxs()//动态函数
{
uchar dt[]="Electronic";
lcd_wcom(0x01);
delay(5);
xshs(tab,0x80);//第一行显示tab1
delay(5);
xshs(dt,0x80+0x40);//第二行显示登陆成功
delay(5);
}
void dlcgdh()//登陆成功动画
{
lcd_wcom(0x01);
delay(5);
xshs(tab1,0x80);//第一行显示tab1
delay(5);
xshs(dlcg,0x80+0x40);//第二行显示登陆成功
delay(5);
}
void dldh()//登陆动画
{
lcd_wcom(0x01);
delay(5);
xshs(tab,0x80);//第一行显示tab
delay(5);
xshs(tab1,0x80+0x40);//第二行显示tab1
delay(5);
}
uchar jpxg()//键码修复函数
{
uchar i=0;
i=jpsm(0);
while(!i)
i=jpsm(0);
delay(300);
return i-1;
}
bit qrhs(uchar *p,uchar *q)//字符串比较函数
{
int i=0;
for(i=0;i<16;i++)
if(p[i]!=q[i])return 1;
return 0;
}
void fzhs(uchar *p,uchar *q) //字符串赋值函数
{
int i=0;
while(p[i]!='\0')
{
q[i]=p[i];
i++;
}
}
void qkhs(uchar *p,uchar ws)//清空函数
{
int i=0;
for(i=0;i<ws;i++)
p[i]='\0';
}
void dlhs()//登陆函数
{
int j=0;
uchar zc,mmzc[16]="";//键码保存密码暂存函数
lcd_wcom(0x01);
if(dl)
{
xshs(tcdl,0x80);//第一行显示退出登陆
dl=0;
}
else
{
dldh();//显示登录动画
delay(5000);//显示5秒左右
lcd_wcom(0x01);//清空
for(j=0;;j++)//密码长度为16位
{
lcd_wcom(0x01);
xshs(tab1,0x80);//第一行显示登陆界面
xshs(mmzc,0x80+0x40);//第二行显示密码
zc=jpxg();//键码保存
if(zc<10)//记录数值按钮
mmzc[j]=zc+'0';
else if(zc==13)//全部清除功能
{
qkhs(mmzc,16);//清空密码
j=-1;
}
else if(zc==14)//清除一位
{
mmzc[j-1]='\0';
j=j-2;
}
else if(zc==15)//确认按钮
{
if(qrhs(mmzc,bcmm))//密码不同则清空重新开始
{
qkhs(mmzc,16);//清空密码
j=-1;
}
else
{
dl=1;
dlcgdh();//显示登陆成功动画
delay(5000);//显示5秒
break;
}
}
else j--;//无效按钮
xshs(mmzc,0x80+0x40);//第二行显示密码
}
}
}
void xiug()//密码修改函数
{
int i=0,j=0;
uchar zc=0;
DL: if(!dl) dlhs();//未登陆时进入登陆函数
else
{
qkhs(bcmm,16);//清空密码
for(j=0;;j++)//密码长度为16位
{
lcd_wcom(0x01);
xshs(tab3,0x80);//第一行显示修改密码界面
xshs(bcmm,0x80+0x40);//第二行显示密码
zc=jpxg();
if(dl==0) goto DL;//非登陆情况下强行跳转
if(zc<10)//记录数值按钮
bcmm[j]=zc+'0';
else if(zc==13)//全部清除功能
{
qkhs(bcmm,16);//清空密码
j=-1;
}
else if(zc==14)//清除一位
{
bcmm[j-1]='\0';
j=j-2;
}
else if(zc==15)//确认按钮
dl=0;//修改完成退出登陆
else j--;//无效按钮
xshs(bcmm,0x80+0x40);//第二行显示密码
}
}
}
void csh()//初始化程序
{
int i=0;
if(dl)
{
dl=0;
qkhs(bcmm,16);
fzhs(csmm,bcmm);
lcd_wcom(0x01);
lcd_wcom(0x80+0x40);
while(cshwc[i]!='\0')
{
lcd_wdat(cshwc[i]);
i++;
}
i=0;
delay(2000);
lcd_wcom(0x01);
lcd_wcom(0x80);
while(tab[i]!='\0')
{
lcd_wdat(tab[i]);
i++;
}
i=0;
lcd_wcom(0x80+0x40);
while(tab1[i]!='\0')
{
lcd_wdat(tab1[i]);
i++;
}
}
else dlhs();
}
void main() //主函数
{ uchar zc,m=0;
lcd_init(); //液晶初始化
dldh();//开机动画
delay(3000);
while(1)//
{
lcd_wcom(0x01);
if(dl)
dlcgdh();
else
dtxs();
zc=jpxg();//键码保存
if(zc==10) csh();//初始化登陆
else if(zc==11) dlhs();//登陆函数
else if(zc==12) xiug();//修改密码
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
针对大部分51单片机的模块化程序,可直接调用自行开发.zip (9个子文件)
ori_code_stm
ds1302.h 4KB
第一例:1位7段数码管使用.c 424B
第三例:595芯片的使用.c 696B
DS18B20.h 2KB
第八例:电子万年历.c 866B
zdy.h 12KB
第二例:4位八段数码管使用.c 704B
第四例:四相八拍步进电机的使用.c 613B
第七例:电子密码锁的设计.c 4KB
共 9 条
- 1
资源评论
毕业小助手
- 粉丝: 2747
- 资源: 5583
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java《基于springboot框架搭建的B2C商城》+项目源码+文档说明
- 【小程序毕业设计】面向企事业单位的项目申报小程序源码(完整前后端+mysql+说明文档+LW).zip
- 【小程序毕业设计】论坛小程序源码(完整前后端+mysql+说明文档).zip
- Java《基于SSM的高校共享单车管理系统》+项目源码+文档说明
- 【小程序毕业设计】讲座预约系统微信小程序源码(完整前后端+mysql+说明文档+LW).zip
- 【小程序毕业设计】驾校报名小程序源码(完整前后端+mysql+说明文档+LW).zip
- 程序设计竞赛-在线判题系统(OJ系统)【含Web端+判题端】+项目源码+文档说明
- 大数据时代下短视频观看行为数据采集与分析的设计与实现
- 【小程序毕业设计】图书馆座位再利用系统源码(完整前后端+mysql+说明文档).zip
- 【小程序毕业设计】自习室预约系统源码(完整前后端+mysql+说明文档).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功