⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mima.c

📁 液晶显示键盘操作密码编辑控制加上对存储器操作
💻 C
字号:
#include <reg51.h>
#include <intrins.h>

#define   EXTERN_YEJING
#include "yejing.h"

#include "MiMa.h"

#define  EXTERN_I2C
#include "i2c.h"

///////////////////////////变量定义///////////////////////////////////////////////
 bit inputmima;///////////密码正确与否标志/////
 bit inputzhanghao;///////帐号正确与否标志/////
 bit configxinmima;///////设置新密码成功与否标志//////////
 uchar Sab1[7];//={0,0,0,0,0,0,0};////帐号输入寄存变量/////
 uchar Sab2[7];//={0,0,0,0,0,0,0};////密码输入寄存变量/////
 uchar Sab3[7];/////////////////////新密码输入寄存变量//////
 uchar Sab4[6];/////////第一次输入新密码后,新密码的寄存变量//与写AT24C01有关////
 uchar  k;//// k的值反映程序当前是在处理帐号,还是密码,还是新密码,还是其他等/////
 int m1,m2,m3;/////m1、m2和m3的值反映了在输入帐号和密码、新密码时共输入了几位数字///////
 uchar number;   /////输入密码错误的次数标志/////////
 bit flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8,flag9,flag10,flag11,flag12;//,flag13;
 //////////////////////////各种标志,可控制程序的走向/////////////
 uchar z2,z3;///////第几次密码输入正确的标志/////
 uchar g_i;  //////确定在处理哪个客户的帐号和密码////////
////////////////////////////////////////////////////////////////////////////////////

///////////////////////////键盘处理函数:共有7个模块///////////////////////////////////////////////
//////用户按正常流程连续操作,可分别进入到7个模块中,并可成功进入界面。用户在每个模块中的////////
//////每一步操作中如果有意停留系统会在预定的时间到达后自动退出bit Keyboard_Process(void)函数//////
//////////(之后的模块均不执行)///////////////////////////////////////////////////////////////////

 bit Keyboard_Process(void)/////成功进入界面,返回1,否则返回0/////////
{
 inputmima=0;///////////密码正确与否标志/////
 inputzhanghao=0;///////帐号正确与否标志/////
 configxinmima=0;
 k=0;//// k的值反映当前是处理帐号还是密码/////
 m1=-1;m2=-1;m3=-1;/////m1和m2的值反映了在输入帐号和密码时共输入了几位数字///////
 number=0;   /////输入密码错误的次数/////////
 z2=z3=111;///////第几次密码输入正确的标志/////
 P0=0x8f; /////键盘的正常工作赋值//////////////////////

///////////////////////////// 模块1 ///////////////////////////////////////////////////////////
 if((P00&P01&P02&P03)==0)/////第1个if(P26&P25&P24&P23==0)开始////////
  {
     flag1=1;
     LcdWriteCommand(0x01,1);	//显示清屏///
     Disp_strings(0,0,"  您有帐号吗? %");///您有帐号吗?////
     Disp_strings(0,1,"有请按 Y%"); ///有请按 Y//////
     while((P00&P01&P02&P03)==0);/////等待键释放/////
     Wooae(flag1);/////保证能从此处退出第1个if(P26&P25&P24&P23==0),此处后面的程序均不要执行/////////
  }/////第一个if(P26&P25&P24&P23==0)结束////////
//////////////////////////////////////////////////////////////////////////////////////////////////

////////////////// 模块2 //如果用户继续往下面操作,进入模块2////////////////////////////////////
  if((P00&P01&P02&P03)==0)/////第2个if(P26&P25&P24&P23==0)开始///////
    {
        uchar keynum1;
        flag2=1;
        keynum1=Get_KeyNum();
    //    while((P00&P01&P02&P03)==0);/////等待键释放后执行键功能函数/////
        switch(keynum1)
		  {
           case 10: LcdWriteCommand(0x01,1);	//显示清屏///
                    Disp_strings(0,0,"请输入帐号: %");///请输入帐号: ////
                    k=10; break;
          default : LcdWriteCommand(0x01,1);	//显示清屏///
                    Disp_strings(0,0,"没有按提示操作! %");///没有按提示操作!////
                    Delay400Ms();Delay400Ms();
				      break;///此情况没有按提示操作,认为是误操作,会很快退出///////
		  }/////switch结构结束////
       Wooae(flag2);/////保证能从此处退出第2个if(P26&P25&P24&P23==0),此处后面的程序均不要执行/////////
    }/////第2个if(P26&P25&P24&P23==0)结束///////
//////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////// 模块3 //如果用户继续往下面操作,进入模块3//////////////////////////////////////////////
///////////////////////////先处理帐号:k=10的情况///////////////////////////////////////////
   while(((P00&P01&P02&P03)==0)&&(k==10))
     {
       uchar keynum2;
	   flag3=1; flag4=0;flag5=0;
	   keynum2=Get_KeyNum();
    //   while((P00&P01&P02&P03)==0);/////等待键释放后执行键功能函数/////
        m1++;
		if(m1<=6)
		{
        switch(keynum2)
		  {
           case 0: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=0; break;
           case 1: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=1; break;
           case 2: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=2; break; 
           case 3: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=3; break;
           case 4: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=4; break;
           case 5: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=5; break;
           case 6: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=6; break; 
           case 7: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=7; break;
           case 8: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=8; break;
           case 9: Disp_strings(m1,1,"* %");///显示"* " ////
                   Sab1[m1]=9; break;
          case 10: Disp_strings(m1,1,"Y %");///显示"Y " ////表示确认//
		           Delay400Ms();Delay400Ms();
		           ZhangHao_hit_Y_Process(); /////调用帐号按Y处理函数////// 
                   break;
          case 11: Disp_strings(m1,1,"N %");///显示"N " ////表示取消//
                   Delay400Ms();Delay400Ms();  
		           LcdWriteCommand(0x01,1);	//显示清屏///
                   Disp_strings(0,0,"本次输入有误! %");///本次输入有误!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -