当前位置: 首页 > news >正文

网站备案成功后怎么操作正在播网球比赛直播

网站备案成功后怎么操作,正在播网球比赛直播,网站科普信息化建设的意义,深圳公司官网制作目录 一、基本功能简介 1.四位密码锁 2.输入密码 3.删除已经输入一位数字 4.删除已经输入的所有数字 5.确认密码 二、进阶功能介绍 1.输入错误密码,进行锁机操作 2.执行开锁步骤,并可以自定义开锁后展示内容 3.重新设定密码 三、模块化代码和主代…

目录

 

一、基本功能简介

1.四位密码锁

2.输入密码

 

3.删除已经输入一位数字

4.删除已经输入的所有数字

5.确认密码

二、进阶功能介绍

1.输入错误密码,进行锁机操作

2.执行开锁步骤,并可以自定义开锁后展示内容

 3.重新设定密码

三、模块化代码和主代码

1.LCD1602初始化代码

2.LCD1602初始化代码调用(.h)

3.延时函数

4.延时函数调用(.h)

5.矩阵按键初始化代码

6.矩阵按键初始化代码(.h)

7.主函数

四、设备和原理图

1.LCD1602

2.STC89C52

3.矩阵键盘模块

4.Keil5界面


 

一、基本功能简介

1.四位密码锁

                默认密码为1201(小彩蛋*1),后续可自由修改密码。

2.输入密码

                按下不同按键,输入相应的数字(最多输入四位,输入少于四位使用0补全)

按键与数字对应表
按键数字
S11
S22
S33
S44
S55
S66
S77
S88
S99
S100

 

			if(KeyNum<=10)//如果S1~S10按键按下,输入密码{if(InputCount<4){Password*= 10;Password+= KeyNum%10;InputCount++;//1~9/10=1~9//10/10=0					}LCD_ShowNum(2,1,Password,4);}

3.删除已经输入一位数字

                按下按键S12,删除已经输入的一位数字。

			if(KeyNum==12)  //如果S12按下,删除已经输入的一位密码{Password = Password/10;InputCount--;LCD_ShowNum(2,1,Password,4);}

 

4.删除已经输入的所有数字

                按下按键S13,删除已经输入的四位数字。

			if(KeyNum==13)  //如果S13按下,删除已经输入的所有密码{Password = 0;InputCount=0;LCD_ShowNum(2,1,Password,4);LCD_ShowString(2,1,"****");				}						

 

5.确认密码

                按下按键S11,确认,将输入的数字与密码比较。

                相同则显示PASS。

c313cce8714e42019cca9d1c7d9aae3a.jpeg

                不同则会显示xx秒后重试(倒计时阶段类似锁机,不能进行操作)。

56b0bdbbadf7474cbb36b9473736746e.jpeg

 

 

			if(KeyNum==11) //如果S11按键按下时,确认输入密码,并且与已保存的密码进行比较{if(Password==secret){LCD_ShowString(1,13,"PASS");Password=0;        //密码清零InputCount=0;      //输入计数清零LCD_ShowNum(2,1,Password,4);LCD_ShowString(2,1,"****");	state=1;}else{/*每输入错一次增加5秒的等待时间变量ErrorCount记录累计输错次数变量InputCount控制每次只能输入4位密码*/	LCD_ShowString(1,11,"ERROR ");LCD_ShowString(2,1,"****");ErrorCount++;LCD_ShowString(1,1,"AFTER            ");LCD_ShowNum(1,8,ErrorCount*5,4);LCD_ShowString(1,13,"S");LCD_ShowString(2,1,"AND TRY AGAIN");state=0;for( i=ErrorCount*5;i>0 ; i--   )//for循环,一秒刷新一次倒计时{LCD_ShowNum(1,8,i,4);Delay(1000);}Password=0;   //密码清零InputCount=0;      //计数清零LCD_ShowString(1,1,"Password:             ");LCD_ShowString(2,1,"****                  ");	}}

 

 

 

二、进阶功能介绍

/*

第一次独自开发这类项目,代码逻辑和格式可能有点混乱。

不过功能都测试过啦,没问题的,还请多多包涵。

*/

1.输入错误密码,进行锁机操作

                每输入错误一次增加5秒的锁机时间,倒计时每秒刷新显示剩余锁机时间

f9ac5ab685bd4c50a3543a13f1f3d2bd.jpeg

                                                        图例:累计输入错误三次

			for( i=ErrorCount*5;i>0 ; i--   )//for循环,一秒刷新一次倒计时{LCD_ShowNum(1,8,i,4);Delay(1000);}

 

2.执行开锁步骤,并可以自定义开锁后展示内容

                按下按键S11,确认,将输入的数字与密码比较。

                相同则显示PASS,并且更改状态state=1。

              (当密码输入正确的时候状态变更为1,未输入时和密码输入错误是仍然为0)

                再按下按键S14,执行开锁步骤

4f23acd8f6124cbba5026454bb29786f.jpeg

 

                自定义展示开锁内容(小彩蛋*1)

			/*&&两个条件都满足,才能触发||两个条件任一满足都可以触发前面正确输入密码,并且按下按键14执行类似开锁的步骤*/if(KeyNum==14 && state==1)  {LCD_ShowString(1,1,"      OPEN       ");	LCD_ShowString(2,1,"Waiting...          ");		Delay(2000);LCD_ShowString(2,1,"                   ");LCD_ShowString(1,1,"   I LOVE YOU!          ");//可以自定义LCD屏幕的显示内容(彩蛋在此!!!)Delay(2000);LCD_ShowString(1,1,"Password:             ");LCD_ShowString(2,1,"****                  ");				}						

 3.重新设定密码

                按下按键S15                     

effc43427a1f4a54bc9f84f756a86307.jpeg

                                                                        加载

 

55e770ca8b1d462ba13b03b5a539ba69.jpeg

                                                      进入重新设定密码的界面

             

			if(KeyNum==15)  //如果S15按下,执行重新输入密码的操作{					Password=0;   //密码清零InputCount=0; //输入计数清零state=0;LCD_ShowString(1,1,"RESET Password             ");	LCD_ShowString(2,1,"Waiting...                ");	Delay(2000);				LCD_ShowString(1,1,"                   ");LCD_ShowString(2,1,"                   ");			LCD_ShowString(1,1,"NEW Password                   ");LCD_ShowString(2,1,"****                   ");						}	

 

                   输入新的四位密码(不输入默认密码为4个0)

                   在此之后按下S16

                2e3d5ae0e5cd4b9eabb360b60ce633c5.jpeg

                                                             显示新密码0226已经修改成功

 

			if(KeyNum==16)//如果S16按下,重新设定密码并且显示新密码{secret=Password;Password=0;InputCount=0;LCD_ShowString(1,1,"                   ");LCD_ShowString(2,1,"                   ");			LCD_ShowString(1,1,"NEW Password                   ");LCD_ShowString(2,1,"CHANGED           ");	LCD_ShowNum(2,9,secret,4);	Delay(2000);LCD_ShowString(1,1,"Password:             ");LCD_ShowString(2,1,"****                  ");					}

 

三、模块化代码

1.LCD1602初始化代码

#include <REGX52.H>//引脚配置:
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
#define LCD_DataPort P0//函数定义:
/*** @brief  LCD1602延时函数,12MHz调用可延时1ms* @param  无* @retval 无*/
void LCD_Delay()
{unsigned char i, j;i = 2;j = 239;do{while (--j);} while (--i);
}/*** @brief  LCD1602写命令* @param  Command 要写入的命令* @retval 无*/
void LCD_WriteCommand(unsigned char Command)
{LCD_RS=0;LCD_RW=0;LCD_DataPort=Command;LCD_EN=1;LCD_Delay();LCD_EN=0;LCD_Delay();
}/*** @brief  LCD1602写数据* @param  Data 要写入的数据* @retval 无*/
void LCD_WriteData(unsigned char Data)
{LCD_RS=1;LCD_RW=0;LCD_DataPort=Data;LCD_EN=1;LCD_Delay();LCD_EN=0;LCD_Delay();
}/*** @brief  LCD1602设置光标位置* @param  Line 行位置,范围:1~2* @param  Column 列位置,范围:1~16* @retval 无*/
void LCD_SetCursor(unsigned char Line,unsigned char Column)
{if(Line==1){LCD_WriteCommand(0x80|(Column-1));}else if(Line==2){LCD_WriteCommand(0x80|(Column-1+0x40));}
}/*** @brief  LCD1602初始化函数* @param  无* @retval 无*/
void LCD_Init()
{LCD_WriteCommand(0x38);//八位数据接口,两行显示,5*7点阵LCD_WriteCommand(0x0c);//显示开,光标关,闪烁关LCD_WriteCommand(0x06);//数据读写操作后,光标自动加一,画面不动LCD_WriteCommand(0x01);//光标复位,清屏
}/*** @brief  在LCD1602指定位置上显示一个字符* @param  Line 行位置,范围:1~2* @param  Column 列位置,范围:1~16* @param  Char 要显示的字符* @retval 无*/
void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char)
{LCD_SetCursor(Line,Column);LCD_WriteData(Char);
}/*** @brief  在LCD1602指定位置开始显示所给字符串* @param  Line 起始行位置,范围:1~2* @param  Column 起始列位置,范围:1~16* @param  String 要显示的字符串* @retval 无*/
void LCD_ShowString(unsigned char Line,unsigned char Column,char *String)
{unsigned char i;LCD_SetCursor(Line,Column);for(i=0;String[i]!='\0';i++){LCD_WriteData(String[i]);}
}/*** @brief  返回值=X的Y次方*/
int LCD_Pow(int X,int Y)
{unsigned c;char i;int Result=1;for(i=0;i<Y;i++){Result*=X;}return Result;
}/*** @brief  在LCD1602指定位置开始显示所给数字* @param  Line 起始行位置,范围:1~2* @param  Column 起始列位置,范围:1~16* @param  Number 要显示的数字,范围:0~65535* @param  Length 要显示数字的长度,范围:1~5* @retval 无*/
void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i;LCD_SetCursor(Line,Column);for(i=Length;i>0;i--){LCD_WriteData(Number/LCD_Pow(10,i-1)%10+'0');}
}/*** @brief  在LCD1602指定位置开始以有符号十进制显示所给数字* @param  Line 起始行位置,范围:1~2* @param  Column 起始列位置,范围:1~16* @param  Number 要显示的数字,范围:-32768~32767* @param  Length 要显示数字的长度,范围:1~5* @retval 无*/
void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length)
{unsigned char i;unsigned int Number1;LCD_SetCursor(Line,Column);if(Number>=0){LCD_WriteData('+');Number1=Number;}else{LCD_WriteData('-');Number1=-Number;}for(i=Length;i>0;i--){LCD_WriteData(Number1/LCD_Pow(10,i-1)%10+'0');}
}/*** @brief  在LCD1602指定位置开始以十六进制显示所给数字* @param  Line 起始行位置,范围:1~2* @param  Column 起始列位置,范围:1~16* @param  Number 要显示的数字,范围:0~0xFFFF* @param  Length 要显示数字的长度,范围:1~4* @retval 无*/
void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i,SingleNumber;LCD_SetCursor(Line,Column);for(i=Length;i>0;i--){SingleNumber=Number/LCD_Pow(16,i-1)%16;if(SingleNumber<10){LCD_WriteData(SingleNumber+'0');}else{LCD_WriteData(SingleNumber-10+'A');}}
}/*** @brief  在LCD1602指定位置开始以二进制显示所给数字* @param  Line 起始行位置,范围:1~2* @param  Column 起始列位置,范围:1~16* @param  Number 要显示的数字,范围:0~1111 1111 1111 1111* @param  Length 要显示数字的长度,范围:1~16* @retval 无*/
void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{unsigned char i;LCD_SetCursor(Line,Column);for(i=Length;i>0;i--){LCD_WriteData(Number/LCD_Pow(2,i-1)%2+'0');}
}

2.LCD1602初始化代码调用(.h)

#ifndef __LCD1602_H__
#define __LCD1602_H__//用户调用函数:
void LCD_Init();
void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char);
void LCD_ShowString(unsigned char Line,unsigned char Column,char *String);
void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);
void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length);
void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);
void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);#endif

 

3.延时函数

void Delay(unsigned int xms)	
{unsigned char data i, j;while(xms--){i = 2;j = 199;do{while (--j);} while (--i);}
}

 

4.延时函数调用(.h)

#ifndef __DELAY_H__
#define __DELAY_H__void Delay(unsigned int xms);#endif

 

5.矩阵按键初始化代码

#include <REGX52.H>
#include "Delay.h"
/*** @brief 矩阵键盘读取按键键码* @param  无* @retval KeyNumber 按下按键的键码值如果按键按下不放,程序会停留在此函数,松手的一瞬间,返回按键的键码,没有按键按下的时候放回0*/
int MatrixKey()
{//矩阵扫描,按一行或者按一列,依次输入扫描,要扫描的给0,其余给1int KeyNumber=0;P1=0xFF; //默认都是1(高电平)P1_3=0;//检测按键按下,就是判断是否变成0if(P1_7==0)//1行1列的按钮=1
{Delay(20);while(P1_7==0){Delay(20);}KeyNumber=1;
}if(P1_6==0)//2行1列的按钮=5
{Delay(20);while(P1_6==0){Delay(20);}KeyNumber=5;
}if(P1_5==0)//3行1列的按钮=9
{Delay(20);while(P1_5==0){Delay(20);}KeyNumber=9;
}if(P1_4==0)//4行1列的按钮=13
{Delay(20);while(P1_4==0){Delay(20);}KeyNumber=13;
}P1=0xFF; //默认都是1(高电平)P1_2=0;//检测按键按下,就是判断是否变成0if(P1_7==0)//1行2列的按钮=2
{Delay(20);while(P1_7==0){Delay(20);}KeyNumber=2;
}if(P1_6==0)//2行2列的按钮=6
{Delay(20);while(P1_6==0){Delay(20);}KeyNumber=6;
}if(P1_5==0)//3行2列的按钮=10
{Delay(20);while(P1_5==0){Delay(20);}KeyNumber=10;
}if(P1_4==0)//4行2列的按钮=14
{Delay(20);while(P1_4==0){Delay(20);}KeyNumber=14;	
}P1=0xFF; //默认都是1(高电平)P1_1=0;	//检测按键按下,就是判断是否变成0if(P1_7==0)//1行3列的按钮=3
{Delay(20);while(P1_7==0){Delay(20);}KeyNumber=3;
}if(P1_6==0)//2行3列的按钮=7
{Delay(20);while(P1_6==0){Delay(20);}KeyNumber=7;
}if(P1_5==0)//3行3列的按钮=11
{Delay(20);while(P1_5==0){Delay(20);}KeyNumber=11;
}if(P1_4==0)//4行3列的按钮=15
{Delay(20);while(P1_4==0){Delay(20);}KeyNumber=15;
}P1=0xFF; //默认都是1(高电平)P1_0=0;//检测按键按下,就是判断是否变成0if(P1_7==0)//1行4列的按钮=4
{Delay(20);while(P1_7==0){Delay(20);}KeyNumber=4;
}if(P1_6==0)//2行4列的按钮=8
{Delay(20);while(P1_6==0){Delay(20);}KeyNumber=8;
}if(P1_5==0)//3行4列的按钮=12
{Delay(20);while(P1_5==0){Delay(20);}KeyNumber=12;
}if(P1_4==0)//4行4列的按钮=16
{Delay(20);while(P1_4==0){Delay(20);}KeyNumber=16;
}return KeyNumber;
}

 

 

6.矩阵按键初始化代码(.h)

#ifndef __MATRIXKEY_H__
#define __MATRIXKEY_H__unsigned char MatrixKey();#endif

 

四、设备和原理图

1.LCD1602

 

c5bdf5fe6fb8b991dfb913b08bccf986.png

 

 

2.STC89C52

 

ebd4422f84c5032e9402be38187d0be7.png

 

 

 

3.矩阵键盘模块

 

9667bfd2c9fe21799656ad309c89821e.png

                     (原理图从转载“普中-2&普中-3&普中-4开发板原理图",非商业用途。)

 

4.Keil5界面

 

0ea2265068f532e3c5d2bb4c45df7a6a.png

 

                                      (创作不易,主函数在主页下载资源内)                             【免费】51单片机:进阶版密码锁资源-CSDN文库

                                                                谢谢大家!

                                                        小白一枚,请多指教!                                                               

                                                         FROM 明月清风mls

 

 

 

 

 

 

 


文章转载自:
http://chummy.brjq.cn
http://tuscan.brjq.cn
http://frisk.brjq.cn
http://liberality.brjq.cn
http://slentando.brjq.cn
http://crotaline.brjq.cn
http://endosarc.brjq.cn
http://borated.brjq.cn
http://absorbable.brjq.cn
http://meiosis.brjq.cn
http://zenophobia.brjq.cn
http://fielding.brjq.cn
http://yes.brjq.cn
http://pulmometry.brjq.cn
http://crinkly.brjq.cn
http://molluskan.brjq.cn
http://microfolio.brjq.cn
http://neuraxitis.brjq.cn
http://newdigate.brjq.cn
http://otto.brjq.cn
http://porphyrogenite.brjq.cn
http://phosphatidylethanolamine.brjq.cn
http://overjoy.brjq.cn
http://consumer.brjq.cn
http://underwater.brjq.cn
http://lytta.brjq.cn
http://frostbite.brjq.cn
http://papiamento.brjq.cn
http://trawlnet.brjq.cn
http://incipit.brjq.cn
http://hereby.brjq.cn
http://hateless.brjq.cn
http://hemishere.brjq.cn
http://wallet.brjq.cn
http://transat.brjq.cn
http://acarpous.brjq.cn
http://nahuatlan.brjq.cn
http://cayenne.brjq.cn
http://nephritogenic.brjq.cn
http://sagamore.brjq.cn
http://epidermization.brjq.cn
http://rojak.brjq.cn
http://manxwoman.brjq.cn
http://goiterogenic.brjq.cn
http://termagant.brjq.cn
http://mouthbreeder.brjq.cn
http://uncharted.brjq.cn
http://circumstantiate.brjq.cn
http://schul.brjq.cn
http://caressing.brjq.cn
http://deoxycorticosterone.brjq.cn
http://woodcutting.brjq.cn
http://symptomatize.brjq.cn
http://shindy.brjq.cn
http://pumper.brjq.cn
http://extravasate.brjq.cn
http://revoltingly.brjq.cn
http://motorable.brjq.cn
http://asia.brjq.cn
http://cyrtometer.brjq.cn
http://briefless.brjq.cn
http://telautography.brjq.cn
http://apocryphal.brjq.cn
http://pruriently.brjq.cn
http://snipey.brjq.cn
http://annularly.brjq.cn
http://pescara.brjq.cn
http://mikado.brjq.cn
http://spile.brjq.cn
http://iridocapsulitis.brjq.cn
http://graunch.brjq.cn
http://yowie.brjq.cn
http://graduand.brjq.cn
http://fenceless.brjq.cn
http://conformal.brjq.cn
http://simulacrum.brjq.cn
http://prf.brjq.cn
http://amorous.brjq.cn
http://mediad.brjq.cn
http://draconic.brjq.cn
http://conto.brjq.cn
http://meiosis.brjq.cn
http://scapulary.brjq.cn
http://interspatial.brjq.cn
http://biffin.brjq.cn
http://revivalist.brjq.cn
http://niton.brjq.cn
http://stenotypist.brjq.cn
http://eccrine.brjq.cn
http://starvation.brjq.cn
http://nunnery.brjq.cn
http://parlous.brjq.cn
http://ippf.brjq.cn
http://wizen.brjq.cn
http://nestle.brjq.cn
http://fetta.brjq.cn
http://constrict.brjq.cn
http://insufflation.brjq.cn
http://intertrigo.brjq.cn
http://endocrinology.brjq.cn
http://www.dt0577.cn/news/75855.html

相关文章:

  • 怎么用建站abc做网站开发网站
  • 株洲网站网络推广怎么做网站排名快速提升工具
  • 阿里云镜像双wordpress郑州网站推广优化公司
  • 网站备案 前置审批号seo基本步骤
  • 深圳做二维码网站设计营销型网站建设解决方案
  • 南京网站建设咨询免费网站开发平台
  • 网站挂服务器后图片不显示友链目录网
  • 怎么用视频做网站首页爱站网查询
  • 官方网站开发模板镇江网站制作公司
  • 高端网站建设谷美网络营销师课程
  • 福建省建设委员会网站网址之家
  • 住建个人证书查询网江阴网站优化公司
  • 做网站卖什么东西好安徽做网站公司哪家好
  • 手机版网站有必要吗拉新推广一手接单平台
  • 商丘网约车资格证办理seo快速整站上排名教程
  • 网站备案 电信网站seo方案策划书
  • 58网站为啥做不好百度 营销推广靠谱吗
  • 网站开发雷小天爱站网挖掘工具
  • 常宁市建设局网站目前最火的自媒体平台
  • 学习html5的网站seo网络营销案例分析
  • 图片常采用gif或jpeg格式北京seo加盟
  • 如何做切片网站模板网站好还是自助建站好
  • 学做网站要学哪些营销网络营销
  • 海曙区住房和建设局网站百度百科推广费用
  • 深圳网络做网站济南网站推广公司
  • asp网站建设实录源码友链网
  • 公司网站建设与维护方案ppt采集站seo课程
  • 广州大型网站建设公司淘宝seo优化
  • 佛山做网站建设公司全国疫情排名一览表
  • 建立自己的个人网站2023国内外重大新闻事件10条