在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。        在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

本文中电子密码锁将实现以下功能:
1.通过矩阵键盘来输入密码,如果密码正确则门打开,如果密码不正确提示剩余输入次数,次数为0则锁定2分钟后才能再输入。
2.门打开后等待关门信号(本文中用P3^4接按键模拟),待收到信号后表示门已关闭。
3.可以通过按键来修改密码,修改前需要验证原密码。
4.支持掉电保存功能。
5. 为了防止密码被窃取,本文中的密码采用ASCII存放,并且存放地址无规则(可根据自己需求修改)。

特别说明:
1. 由于代码长度过大,请大家用大内存的单片机测试(本文中采用STC90C58RD+ 12T单片机);
2. CPU时钟请用11.0592MHz(液晶画点部分用22.1184MHz测试时失败!估计是速度过高);
3. 本文中的EEprom采用的是STC单片机内部EEProm,如果大家要用24Cxx系列或其它存储器请自行修改代码;
4. 由于测试最小系统接口限制,请大家测试时自行修改接口定义(液晶接口、矩阵接口、独立按键接口);
5. 本文中开、关门控制接口程序中没有引出,只用到“
Door”这个逻辑型变量,大家在做实物时请自行定义一个接口,并赋该变量值即可!
6. 第一次使用时(用STC自带EEProm)请先写入初始密码(将主程序屏蔽的那7行代码解除屏蔽,写入后再屏蔽掉即可!),程序中的初始密码为“888888”;
7. 本文中采用的是12864图形液晶(不带字库的),请大家务必注意!!!
8. 本文只简单的实现的密码锁的基础功能,需要更高级功能的朋友请自行添加!
9. 由于个人能力有限,程序中难免存在BUG, 遇到BUG请大家及时反馈以便在后期加以修正。
最后祝大家身体健康,万事如意!



image.png
外观图

image.png
欢迎界面
image.png

工作界面
image.png
门关闭提示
image.png
密码输入错误提示
image.png
修改密码界面
image.png
外观图
#include "reg52.h"
  • #include "intrins.h"
  • #include "Variable.h"
  • #include "EEProm.h"
  • #include "Function.h"
  • #include "L12864.h"
  • #include "L12864_Windows.h"
  • #include "Key_Alone.h"
  • #include "Key_44.h"
  • #include "math.h"
  • void main(void)
  • {
  • //IapEraseSector(0x8000);//擦除第一个扇区
  • //IapProgramunsigned(1,0x38);//写数据
  • //IapProgramunsigned(9,0x38);//写数据
  • //IapProgramunsigned(6,0x38);//写数据
  • //IapProgramunsigned(8,0x38);//写数据
  • //IapProgramunsigned(0,0x38);//写数据
  • //IapProgramunsigned(3,0x38);//写数据
  • ReadPassWord();//读出密码到本地
  • InitTimer0();//定时器中断初始化
  • L12864_init();
  • L12864_Windows_Init();//载入初始化界面
  • L12864_Delay1S();
  • L12864_Windows_Input(0);//载入密码输入0次界面
  • MODE=1;//置模式一 输入开门密码模式
  • while(1)
  • {
  • Key_44_KeySan();
  • Key_44_KeyHandle();
  • }
  • }
  • void Timer0Interrupt(void) interrupt 1
  • {
  •     TH0 = 0x0B8;
  •     TL0 = 0x00;
  •     ms++;
  • if(ms==50)
  • {
  • ms=0;
  • s--;
  • if(s==-1)
  • {
  • s=59;
  • fen--;
  • }
  • if(fen>=2)
  • {
  • Unit=0;
  • }
  • else
  • {
  • Unit=1;
  • }
  • }
  • }
  • ★===================主程序结束===================
  • ★=================== 全 局 变 量 ===================
  • #define Count 3
  • #define ErrMin 2
  • unsigned char jianzhi;
  • unsigned char MODE;                //模式 0=不能输入 1=输入开门密码 2=修改密码 3=输入新密码1 4=输入新密码2 5=门已经开启 6=等待时间
  • unsigned char InPutCount=0;        //输入计次
  • unsigned char ErrCount=Count;        //输入错误计次
  • unsigned char ErrWait=ErrMin;        //错误等待时间
  • bit KeyAvailable;                        //key按键可用
  • bit Door=1;                                        //门状态 0=开 1=关
  • bit NextCycle_MODE3,NextCycle_MODE4;
  • unsigned char InPutPassWord[6];
  • unsigned char InPutPassWordNew1[6];
  • unsigned char InPutPassWordNew2[6];
  • unsigned char PassWord[6]={0,0,0,0,0,0};
  • unsigned char ms,NewS,Newfen,s=59,fen=ErrMin;
  • bit Unit;                //倒计时单位 0为分钟 1为秒
  • ★==================全局变量结束===================  
  • ★================== EEProm代码===================
  • sfr IAP_DATA    =   0xE2;           //Flash 数据注册
  • sfr IAP_ADDRH   =   0xE3;           //Flash 地址高位
  • sfr IAP_ADDRL   =   0xE4;           //Flash 地址低位
  • sfr IAP_CMD     =   0xE5;           //Flash 命令注册
  • sfr IAP_TRIG    =   0xE6;           //Flash 命令触发
  • sfr IAP_CONTR   =   0xE7;           //Flash 控制方式注册
  • #define CMD_IDLE    0               //Stand-By
  • #define CMD_READ    1               //字节读取
  • #define CMD_PROGRAM 2               //字节编程
  • #define CMD_ERASE   3               //扇区擦除
  • #define ENABLE_IAP   0x81           //if SYSCLK<20MHz
  • #define IAP_ADDRESS 0x08000 //注意 地址必须加上这个8000  不然就是操作的单片机内存
  • void IapIdle(void)
  • {
  •     IAP_CONTR = 0;
  •     IAP_CMD = 0;
  •     IAP_TRIG = 0;
  •     IAP_ADDRH = 0x80;
  •     IAP_ADDRL = 0;
  • }
  • unsigned char IapReadunsigned (unsigned int V)
  • {
  •     unsigned char dat;
  •         unsigned int addr;
  •         addr=V+IAP_ADDRESS;
  •     IAP_CONTR = ENABLE_IAP;
  •     IAP_CMD = CMD_READ;
  •     IAP_ADDRL = addr;
  •     IAP_ADDRH = addr >> 8;
  •     IAP_TRIG = 0x46;
  •     IAP_TRIG = 0xb9;
  •     _nop_();
  •     dat = IAP_DATA;
  •     IapIdle();
  •     return dat;
  • }
  • void IapProgramunsigned (unsigned int V, unsigned char dat)
  • {
  •         unsigned int addr;
  •         addr=V+IAP_ADDRESS;
  •     IAP_CONTR = ENABLE_IAP;
  •     IAP_CMD = CMD_PROGRAM;
  •     IAP_ADDRL = addr;
  •     IAP_ADDRH = addr >> 8;
  •     IAP_DATA = dat;
  •     IAP_TRIG = 0x46;
  •     IAP_TRIG = 0xb9;
  •     _nop_();
  •     IapIdle();
  • }
  • void IapEraseSector(unsigned int addr)
  • {
  •     IAP_CONTR = ENABLE_IAP;
  •     IAP_CMD = CMD_ERASE;
  •     IAP_ADDRL = addr;
  •     IAP_ADDRH = addr >> 8;
  •     IAP_TRIG = 0x46;
  •     IAP_TRIG = 0xb9;
  •     _nop_();
  •     IapIdle();
  • }
  • ★================EEProm代码结束===================
  • ★=================Function代码====================
  • void InitTimer0(void) //20ms中断初始化
  • {
  •     TMOD = 0x01;
  •     TH0 = 0x0B8;
  •     TL0 = 0x00;
  •     EA = 1;
  •     ET0 = 1;
  •     TR0 = 0;
  • }
  • bit PassWordCheck(void)
  • {
  •         unsigned char i;
  •         bit ReturnV;
  •         ReturnV=1;
  •         for(i=0;i<6;i++)
  •         {
  •                 if(InPutPassWord[i]!=PassWord[i])
  •                 {
  •                         ReturnV=0;
  •                 }
  •         }
  •         return ReturnV;
  • }
  • bit PassWordCheckNew(void)
  • {
  •         unsigned char i;
  •         bit ReturnV;
  •         ReturnV=1;
  •         for(i=0;i<6;i++)
  •         {
  •                 if(InPutPassWordNew1[i]!=InPutPassWordNew2[i])
  •                 {
  •                         ReturnV=0;
  •                 }
  •         }
  •         return ReturnV;
  • }
  • void ClrarPassBuf(void)
  • {unsigned char i;
  •         for(i=0;i<6;i++)
  •         {
  •         InPutPassWord[i]=0;
  •         InPutPassWordNew1[i]=0;
  •         InPutPassWordNew2[i]=0;
  •         }
  • }
  • void ReadPassWord(void)
  • {
  •         PassWord[0]=IapReadunsigned(1);
  •         PassWord[1]=IapReadunsigned(9);
  •         PassWord[2]=IapReadunsigned(6);
  •         PassWord[3]=IapReadunsigned(8);
  •         PassWord[4]=IapReadunsigned(0);
  •         PassWord[5]=IapReadunsigned(3);
  • }
  • void WriteNewPassWord(void)
  • {
  •         unsigned char i;
  •         IapEraseSector(0x8000);                        //擦除第一个扇区 不擦除写不了
  •         IapProgramunsigned(1,InPutPassWordNew2[0]);
  •         IapProgramunsigned(9,InPutPassWordNew2[1]);
  •         IapProgramunsigned(6,InPutPassWordNew2[2]);
  •         IapProgramunsigned(8,InPutPassWordNew2[3]);
  •         IapProgramunsigned(0,InPutPassWordNew2[4]);
  •         IapProgramunsigned(3,InPutPassWordNew2[5]);
  •         for(i=0;i<6;i++)
  •         {
  •         PassWord[i]=InPutPassWordNew2[i];
  •         }
  • }
  • ★===============Function代码结束===================
  • ★================12864底层代码====================
  • /* ◆------ L12864驱动底层函数 ------◆
  •         STC90C58RD+
  •         11.0592MHz  画点只能在11.0592MHz下运行
  •         !!!改变晶振请重写延时函数
  • */
  • #include "L12864_CODE.h"
  • #define L12864_Port P0
  • #define L12864_Data P2
  • #define L12864_comm 0                //常量 写命令
  • #define L12864_data 1                //常量 写数据
  • #define L12864_Screen_L 1        //常量 左屏
  • #define L12864_Screen_R 2        //常量 右屏
  • #define L12864_Screen_LR 3        //常量 左右屏
  • #define L12864_Screen_NULL 0//常量 无
  • /******************************************************************      
  • - 说明:端口定义
  • - 备注:无
  • ******************************************************************/
  • sbit L12864_RST = L12864_Port^3;                                     //复位端,低电平有效。
  • sbit L12864_CS2 = L12864_Port^2;                                //右屏片选(高电平有效)
  • sbit L12864_CS1 = L12864_Port^4;                                //左屏片选(高电平有效)
  • sbit L12864_E   = L12864_Port^5;                                        //读写使能,高电平有效,下降沿锁定数据。
  • sbit L12864_RW  = L12864_Port^6;                                //读/写选择:高电平为读数据,低电平为写数据。
  • sbit L12864_RS  = L12864_Port^7;                                        //数据/指令选择:高电平为数据,低电平为指令。
  • /******************************************************************
  • - 功能描述:延时子程序
  • - 入口参数:长整数型
  • - 参 数 值:0-65535
  • - 返回说明:无
  • - 备    注:无
  • ******************************************************************/
  • void L12864_Delayus(unsigned int V)
  • {
  •         while(V--);
  • }
  • void L12864_Delay50us(void)
  • {
  •     unsigned char a,b;
  •     for(b=1;b>0;b--)
  •         for(a=20;a>0;a--);
  • }
  • void L12864_Delay1S(void)
  • {
  •     unsigned char a,b,c;
  •     for(c=175;c>0;c--)
  •         for(b=22;b>0;b--)
  •             for(a=118;a>0;a--);
  • }
  • /******************************************************************
  • - 功能描述:写数据(命令)子函数
  • - 入口参数:x,dat
  • - 参 数 值:x=0 ro 1 dat=0x00-0xff;
  • - 返回说明:无
  • - 备    注:X=0 写命令 x=1 写数据
  • ******************************************************************/
  • void L12864_Write(bit x,unsigned char dat)
  • {
  •         if(x)
  •         L12864_RS=1;
  •         else
  •         L12864_RS=0;                // RS置高电平
  •         L12864_RW=0;                // RW置低电平
  •         L12864_Data=dat;        // 写入数据
  •         L12864_E=1;                // E下降沿
  •         L12864_Delayus(5);       
  •         L12864_E=0;
  • }
  • /******************************************************************
  • - 功能描述:读数据子程序
  • - 入口参数:无
  • - 参 数 值:无
  • - 返回说明:无
  • - 备    注:
  • ******************************************************************/
  • unsigned char L12864_Read(void)
  • {
  •         unsigned char dat;
  •         L12864_Data=0xff;        //读空操作
  •         L12864_RS=1;                        //the data
  •         L12864_RW=1;                        //read
  •         L12864_E=1;                        // E下降沿
  •         L12864_E=1;                        //       
  •         L12864_E=0;                        //
  •         L12864_Data=0xff;        //读空操作
  •         L12864_RS=1;                        //the data
  •         L12864_RW=1;                        //read
  •         L12864_E=1;                        // E下降沿
  •         dat=L12864_Data;        //       
  •         L12864_E=0;                        //
  • return dat;                        //
  • }
  • /******************************************************************
  • - 功能描述:初始化子程序
  • - 入口参数:无
  • - 参 数 值:无
  • - 返回说明:无
  • - 备    注:
  • ******************************************************************/
  • void L12864_init(void)//初始化12864
  • {
  •         L12864_Delay50us();        //延时40ms以上
  •        
  •         L12864_RST=1;                //RST上升沿复位
  •         L12864_Delayus(2);
  •         L12864_RST=0;
  •         L12864_Delayus(5);
  •         L12864_RST=1;
  •        
  •         L12864_CS1=1;                //片选
  •         L12864_CS2=1;
  •         L12864_Delayus(5);
  •         L12864_Write(L12864_comm,0x3e);//关显示
  •         L12864_Delayus(5);
  •         L12864_Write(L12864_comm,0x3f);//开显示
  •         L12864_Delayus(5);
  •         L12864_CS1=0;                //关闭片选
  •         L12864_CS2=0;       
  • }
  • /******************************************************************
  • - 功能描述:清屏子程序
  • - 入口参数:无
  • - 参 数 值:无
  • - 返回说明:无
  • - 备    注:
  • ******************************************************************/
  • void L12864_ClearScreen(void)
  • {unsigned char x,y;
  •         L12864_CS1=L12864_CS2=1;                                        //选中屏
  •         L12864_Write(L12864_comm,0xc0);                        //定义起始行
  •         for(x=0;x<8;x++)
  •         {
  •                 L12864_Write(L12864_comm,0xb8+x);        //定义页
  •                 for(y=0;y<64;y++)
  •                 {
  •                 L12864_Write(L12864_comm,0x40+y);        //定义列
  •                 L12864_Write(L12864_data,0x00);                //写数据
  •                 }
  •                
  •         }
  • }
  • /******************************************************************
  • - 功能描述:画点子程序
  • - 入口参数:X,Y,DOT
  • - 参 数 值:X=0-127 Y=0-63 DOT=0 or 1
  • - 返回说明:无
  • - 备    注:X,Y为要画点的坐标位置 DOT表示画点(1)或清点(0)
  • ******************************************************************/
  • void L12864_DrawDot(unsigned char X,unsigned char Y,bit DOT)
  • {
  •         unsigned char X2,Y2,Temp;
  •         unsigned char code Tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  •         if(X>127)X=127;                        //如果X超出范围 则X为最大位置
  •         if(Y>63)Y=63;                        //如果Y超出范围 则Y为最大位置
  •         if(X<64)                                //如果X小于64 则选择左半屏
  •         {
  •         L12864_CS1=1;
  •         L12864_CS2=0;
  •         X2=X;
  •         }
  •         else                                        //如果X大于等于64则选择右半屏
  •         {
  •         L12864_CS1=0;
  •         L12864_CS2=1;
  •         X2=X-64;
  •         }
  •         Y2=Y/8;                                        //定义Y所在页的位置
  •         L12864_Write(L12864_comm,0xc0);                //设定行地址,固定!
  •         L12864_Write(L12864_comm,0xb8+Y2);        //设定页地址
  •         L12864_Write(L12864_comm,0x40+X2);        //设定列地址
  •         Temp=L12864_Read();                        //读出当前位置的值,记住 读了以后需要再重新写Y地址
  •         if(DOT)                                //如果dian=1 则画点
  •         Temp = Temp|(Tab[Y&7]);        //
  •         else                                        //如果dian=0 则清点
  •         Temp = Temp&(~Tab[Y&7]);//
  •         L12864_Write(L12864_comm,0x40+X2);        //重新设定列地址
  •         L12864_Write(L12864_data,Temp);                //写新数据
  • }
  • /******************************************************************
  • - 功能描述:显示图片子程序
  • - 入口参数:代码表名称,是否反色(1表示反色,0表示正常)
  • - 参 数 值:无
  • - 返回说明:无
  • - 备    注:图片尺寸: 128 * 64
  •                          取模方式: 纵向取模下高位,数据排列:从上到下从左到右
  •   
  • ******************************************************************/
  • void L12864_DrawPicture(unsigned char code * tp,bit DOT)
  • {
  •         unsigned char x,y,temp;                                                        //用于给显示坐标计数!
  •         unsigned int add=0;                                                                //用于给显示数据计数!
  •         L12864_CS1=1,L12864_CS2=0;                                                //首次运行选中左屏!
  •         for(temp=0;temp<2;temp++)                                //一屏分两次显示!
  •                 {
  •                         L12864_Write(L12864_comm,0xc0);                                //定义起始行!
  •                         for(x=0;x<64;x++)                                //一个半屏有64列!循环64次!
  •                         {
  •                                 for(y=0;y<8;y++)                        //一屏有8页,循环8次!
  •                                 {        L12864_Write(L12864_comm,0x40+x);        //定义新的列!
  •                                         L12864_Write(L12864_comm,0xb8+y);        //定义新的页!
  •                                         if(!DOT)
  •                                         L12864_Write(L12864_data,tp[add]);                //写入当前显示数据!
  •                                         else
  •                                         L12864_Write(L12864_data,~tp[add]);                //写入当前显示数据!
  •                                         add++;                                        //下一个显示数据!
  •                                 }
  •                         }
  •                         L12864_CS1=0,L12864_CS2=1;                                        //左屏显示完毕,换右屏!
  •                 }
  • }
  • /******************************************************************
  • - 功能描述:写16*16字符子程序
  • - 入口参数:屏选,x,y,字符表名,字符表中第几个成员
  • - 参 数 值:x=0-48 y=0-6
  • - 返回说明:无
  • - 备    注:字符尺寸: 16 * 6
  •                          取模方式: 纵向取模下高位,数据排列:从上到下从左到右
  •   
  • ******************************************************************/
  • void L12864_Draw1616(unsigned char ping,unsigned char x,unsigned char y,unsigned char *p,unsigned char num)
  • {
  •         unsigned char a,b,c=0;
  •         switch(ping)
  •         {
  •                 case 0:L12864_CS1=0;L12864_CS2=0;break;
  •                 case 1:L12864_CS1=1;L12864_CS2=0;break;
  •                 case 2:L12864_CS1=0;L12864_CS2=1;break;
  •                 case 3:L12864_CS1=1;L12864_CS2=1;break;
  •                 default:L12864_CS1=1;L12864_CS2=0;
  •         }
  •         L12864_Write(L12864_comm,0xc0);                //设定行地址,固定!
  •         if(y>6)y=6;
  •         if(x>48)x=48;
  •         for(a=0;a<2;a++)
  •         {
  •         L12864_Write(L12864_comm,0xb8+y+a);        //设定页地址
  •                 for(b=0;b<16;b++)
  •                 {
  •                 L12864_Write(L12864_comm,0x40+x+b);        //设定列地址
  •                 L12864_Write(L12864_data,p[32*num+c]);
  •                 c++;
  •                 }
  •         }       
  • }
  • /******************************************************************
  • - 功能描述:写16*8字符子程序
  • - 入口参数:屏选,x,y,字符表名,字符表中第几个成员
  • - 参 数 值:x=0-56 y=0-6
  • - 返回说明:无
  • - 备    注:字符尺寸: 16 * 6
  •                          取模方式: 纵向取模下高位,数据排列:从上到下从左到右
  •   
  • ******************************************************************/
  • void L12864_Draw1608(unsigned char ping,unsigned char x,unsigned char y,unsigned char *p,unsigned char num)
  • {
  •         unsigned char a,b,c=0;
  •         switch(ping)
  •         {
  •                 case 0:L12864_CS1=0;L12864_CS2=0;break;
  •                 case 1:L12864_CS1=1;L12864_CS2=0;break;
  •                 case 2:L12864_CS1=0;L12864_CS2=1;break;
  •                 case 3:L12864_CS1=1;L12864_CS2=1;break;
  •                 default:L12864_CS1=1;L12864_CS2=0;
  •         }
  •         L12864_Write(L12864_comm,0xc0);                //设定行地址,固定!
  •         if(y>6)y=6;
  •         if(x>56)x=56;
  •         for(a=0;a<2;a++)
  •         {
  •         L12864_Write(L12864_comm,0xb8+y+a);        //设定页地址
  •                 for(b=0;b<8;b++)
  •                 {
  •                 L12864_Write(L12864_comm,0x40+x+b);        //设定列地址
  •                 L12864_Write(L12864_data,p[16*num+c]);
  •                 c++;
  •                 }
  •         }       
  • }
  • ★==============12864底层代码结束===================  
  • ★=============12864多窗口处理代码===================
  • //窗口_初始化 | L12864_Windows_Init();
  • void L12864_Windows_Init(void)
  • {
  •         unsigned char i;
  •         L12864_ClearScreen();                                                                                //清屏
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,0);                //汉字_欢
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,1);                //汉字_迎
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,2);                //汉字_使
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Text,3);                //汉字_用
  •        
  •         L12864_Draw1616(L12864_Screen_L,16,4,Char_1616_Bmp,0);                //图标_锁
  •         L12864_Draw1616(L12864_Screen_L,32,4,Char_1616_Text,4);                //汉字_电
  •         L12864_Draw1616(L12864_Screen_L,48,4,Char_1616_Text,5);                //汉字_子
  •         L12864_Draw1616(L12864_Screen_R,0,4,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_R,16,4,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_R,32,4,Char_1616_Text,8);                //汉字_锁
  •        
  •         for(i=20;i<108;i++)
  •         {
  •         L12864_DrawDot(i,55,1);
  •         L12864_DrawDot(i,60,1);
  •         }
  •         for(i=55;i<61;i++)
  •         {
  •         L12864_DrawDot(20,i,1);
  •         L12864_DrawDot(108,i,1);
  •         }
  •         for(i=20;i<108;i++)
  •         {
  •         L12864_DrawDot(i,57,1);
  •         L12864_DrawDot(i,58,1);
  •         L12864_Delayus(2000);
  •         }
  • }
  • //窗口_输入密码(次数) | L12864_Windows_Input();
  • void L12864_Windows_Input(unsigned char InPutV)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         if(InPutV>6)
  •         InPutV=6;
  •         L12864_Draw1616(L12864_Screen_L,0,0,Char_1616_Text,9);                //汉字_请
  •         L12864_Draw1616(L12864_Screen_L,16,0,Char_1616_Text,10);        //汉字_输
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,11);        //汉字_入
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,12);        //汉字_开
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,13);                //汉字_门
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_R,32,0,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_R,48,0,Char_1616_Symbol,0);        //字符_冒号
  •        
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,1);        //字符_下划线
  •        
  •        
  •         if(InPutV==1)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==2)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==3)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==4)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==5)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==6)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,2);        //字符_星号
  •         }
  • }
  • //窗口_输入错误(次数) | L12864_Windows_Error();
  • void L12864_Windows_Error(unsigned char ErrV)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         if(ErrV>0)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,10);        //汉字_输
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,11);                //汉字_入
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,14);        //汉字_错
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Text,15);        //汉字_误
  •        
  •         L12864_Draw1616(L12864_Screen_L,0,6,Char_1616_Text,18);                //汉字_还
  •         L12864_Draw1616(L12864_Screen_L,16,6,Char_1616_Text,19);        //汉字_有
  •         L12864_Draw1608(L12864_Screen_L,32,6,Char_1608_Num,ErrV/10);
  •         L12864_Draw1608(L12864_Screen_L,40,6,Char_1608_Num,ErrV%10);
  •         L12864_Draw1616(L12864_Screen_L,48,6,Char_1616_Text,20);        //汉字_次
  •         L12864_Draw1616(L12864_Screen_R,0,6,Char_1616_Text,10);                //汉字_输
  •         L12864_Draw1616(L12864_Screen_R,16,6,Char_1616_Text,11);        //汉字_入
  •         L12864_Draw1616(L12864_Screen_R,32,6,Char_1616_Text,21);        //汉字_机
  •         L12864_Draw1616(L12864_Screen_R,48,6,Char_1616_Text,22);        //汉字_会
  •        
  •         }
  • }
  • //窗口_错误等待(数值,单位) | L12864_Windows_ErrorWait();
  • void L12864_Windows_ErrorWait(unsigned char MinV,bit Unit)
  • {
  •         L12864_ClearScreen();
  •         if(Unit)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,0,3,Char_1616_Bmp,0);                //图标_锁
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Text,9);                //汉字_请
  •         L12864_Draw1608(L12864_Screen_L,32,3,Char_1608_Num,MinV/10);
  •         L12864_Draw1608(L12864_Screen_L,40,3,Char_1608_Num,MinV%10);
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,42);        //汉字_秒
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,27);                //汉字_后
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,28);        //汉字_重
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Text,29);        //汉字_试
  •         }
  •         else
  •         {
  •         L12864_Draw1616(L12864_Screen_L,0,3,Char_1616_Bmp,0);                //图标_锁
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Text,9);                //汉字_请
  •         L12864_Draw1608(L12864_Screen_L,32,3,Char_1608_Num,MinV/10);
  •         L12864_Draw1608(L12864_Screen_L,40,3,Char_1608_Num,MinV%10);
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,25);        //汉字_分
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,26);                //汉字_钟
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,27);        //汉字_后
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Text,28);        //汉字_重
  •         L12864_Draw1616(L12864_Screen_R,48,3,Char_1616_Text,29);        //汉字_试
  •         }
  • }
  • //窗口_门打开 | L12864_Windows_Door_Open();
  • void L12864_Windows_Door_Open(void)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Text,13);        //汉字_门
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,16);        //汉字_已
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,12);                //汉字_开
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,17);        //汉字_启
  • }
  • //窗口_门关闭 | L12864_Windows_Door_Close();
  • void L12864_Windows_Door_Close(void)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Text,13);        //汉字_门
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,16);        //汉字_已
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,23);                //汉字_关
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,24);        //汉字_闭
  • }
  • //窗口_修改密码_输入原密码(次数) | L12864_ChangePass_In();
  • void L12864_ChangePass_In(unsigned char InPutV)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         if(InPutV>6)
  •         InPutV=6;
  •         L12864_Draw1616(L12864_Screen_L,0,0,Char_1616_Symbol,3);        //字符_【
  •         L12864_Draw1616(L12864_Screen_L,16,0,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,35);                //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Symbol,4);        //字符_】
  •                
  •         L12864_Draw1616(L12864_Screen_L,0,3,Char_1616_Text,9);                //汉字_请
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Text,10);        //汉字_输
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Text,11);        //汉字_入
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,30);        //汉字_原
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,0);        //字符_冒号
  •        
  •         L12864_Draw1616(L12864_Screen_L,16,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,1);        //字符_下划线
  •        
  •        
  •         if(InPutV==1)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==2)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==3)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==4)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==5)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==6)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  • }
  • //窗口_修改密码_输入新密码(次数) | L12864_ChangePass_NewIn1();
  • void L12864_ChangePass_NewIn1(unsigned char InPutV)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         if(InPutV>6)
  •         InPutV=6;
  •                 L12864_Draw1616(L12864_Screen_L,0,0,Char_1616_Symbol,3);        //字符_【
  •         L12864_Draw1616(L12864_Screen_L,16,0,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,35);                //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Symbol,4);        //字符_】
  •        
  •         L12864_Draw1616(L12864_Screen_L,0,3,Char_1616_Text,9);                //汉字_请
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Text,10);        //汉字_输
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Text,11);        //汉字_入
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,31);        //汉字_新
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,0);        //字符_冒号
  •        
  •         L12864_Draw1616(L12864_Screen_L,16,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,1);        //字符_下划线
  •        
  •        
  •         if(InPutV==1)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==2)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==3)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==4)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==5)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==6)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  • }
  • //窗口_修改密码_再输入一次 | L12864_ChangePass_NewIn2();
  • void L12864_ChangePass_NewIn2(unsigned char InPutV)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         if(InPutV>6)
  •         InPutV=6;
  •                 L12864_Draw1616(L12864_Screen_L,0,0,Char_1616_Symbol,3);        //字符_【
  •         L12864_Draw1616(L12864_Screen_L,16,0,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,35);                //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Symbol,4);        //字符_】
  •        
  •         L12864_Draw1616(L12864_Screen_L,0,3,Char_1616_Text,9);                //汉字_请
  •         L12864_Draw1616(L12864_Screen_L,16,3,Char_1616_Text,32);        //汉字_再
  •         L12864_Draw1616(L12864_Screen_L,32,3,Char_1616_Text,10);        //汉字_输
  •         L12864_Draw1616(L12864_Screen_L,48,3,Char_1616_Text,11);        //汉字_入
  •         L12864_Draw1616(L12864_Screen_R,0,3,Char_1616_Text,33);                //汉字_一
  •         L12864_Draw1616(L12864_Screen_R,16,3,Char_1616_Text,20);        //汉字_次
  •         L12864_Draw1616(L12864_Screen_R,32,3,Char_1616_Symbol,0);        //字符_冒号
  •        
  •         L12864_Draw1616(L12864_Screen_L,16,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,1);        //字符_下划线
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,1);        //字符_下划线
  •        
  •        
  •         if(InPutV==1)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==2)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==3)
  •         {
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==4)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==5)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  •         if(InPutV==6)
  •         {
  •         L12864_Draw1616(L12864_Screen_L,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,32,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_L,48,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,0,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,16,5,Char_1616_Symbol,2);        //字符_星号
  •         L12864_Draw1616(L12864_Screen_R,32,5,Char_1616_Symbol,2);        //字符_星号
  •         }
  • }
  • //窗口_修改密码_密码验证失败 | L12864_CheckPass_Err();
  • void L12864_CheckPass_Err(void)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •        
  •         L12864_Draw1616(L12864_Screen_L,0,0,Char_1616_Symbol,3);        //字符_【
  •         L12864_Draw1616(L12864_Screen_L,16,0,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,35);                //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Symbol,4);        //字符_】
  •        
  •         L12864_Draw1616(L12864_Screen_L,16,4,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,4,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,4,Char_1616_Text,40);        //汉字_验
  •         L12864_Draw1616(L12864_Screen_R,0,4,Char_1616_Text,41);        //汉字_证
  •         L12864_Draw1616(L12864_Screen_R,16,4,Char_1616_Text,38);        //汉字_失
  •         L12864_Draw1616(L12864_Screen_R,32,4,Char_1616_Text,39);        //汉字_败
  • }
  • //窗口_修改密码_修改成功 | L12864_ChangePass_OK();
  • void L12864_ChangePass_OK(void)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •        
  •         L12864_Draw1616(L12864_Screen_L,0,0,Char_1616_Symbol,3);        //字符_【
  •         L12864_Draw1616(L12864_Screen_L,16,0,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,35);                //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Symbol,4);        //字符_】
  •        
  •         L12864_Draw1616(L12864_Screen_L,32,4,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_L,48,4,Char_1616_Text,35);        //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,0,4,Char_1616_Text,36);                //汉字_成
  •         L12864_Draw1616(L12864_Screen_R,16,4,Char_1616_Text,37);        //汉字_功
  • }
  • //窗口_修改密码_修改失败 | L12864_ChangePass_Error();
  • void L12864_ChangePass_Error(void)
  • {
  •         L12864_ClearScreen();                                                                                //清屏
  •         L12864_Draw1616(L12864_Screen_L,0,0,Char_1616_Symbol,3);        //字符_【
  •         L12864_Draw1616(L12864_Screen_L,16,0,Char_1616_Text,6);                //汉字_密
  •         L12864_Draw1616(L12864_Screen_L,32,0,Char_1616_Text,7);                //汉字_码
  •         L12864_Draw1616(L12864_Screen_L,48,0,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_R,0,0,Char_1616_Text,35);                //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,16,0,Char_1616_Symbol,4);        //字符_】
  •        
  •         L12864_Draw1616(L12864_Screen_L,32,4,Char_1616_Text,34);        //汉字_修
  •         L12864_Draw1616(L12864_Screen_L,48,4,Char_1616_Text,35);        //汉字_改
  •         L12864_Draw1616(L12864_Screen_R,0,4,Char_1616_Text,38);                //汉字_失
  •         L12864_Draw1616(L12864_Screen_R,16,4,Char_1616_Text,39);        //汉字_败
  • }
  • ★===========12864多窗口处理代码结束==================  
  • ★============模拟关门(独立按键)代码===================
  • unsigned char KeyAloneV;
  • sbit Key_Door = P3^5;
  • void keysan_Alone(void)
  • {        if(Key_Door==0)
  •         KeyAloneV=1;
  •         if(Key_Door==1&&KeyAloneV==1)
  •         {
  •         KeyAloneV=0;
  •         Door=1;
  •         }
  • }
  • ★============模拟关门(独立按键)代码结束================
  • ★=============矩阵键盘扫描、处理代码==================
  • #define Key_44_Data P1                                //宏定义矩阵键盘接口
  • unsigned char zhi,a,hang,lie;
  • /******************************************************************
  • - 功能描述:延时子程序
  • - 入口参数:长整数型
  • - 参 数 值:0-65535
  • - 返回说明:无
  • - 备    注:无
  • ******************************************************************/                                                                  
  • void Key_44_Delay(unsigned char i)
  • {  unsigned char x;
  •         for(x=80;x>0;x--)
  •         for(i;i>0;i--);
  • }
  • /******************************************************************
  • - 功能描述:矩阵键盘扫描子程序
  • - 入口参数:无
  • - 参 数 值:无
  • - 返回说明:无
  • - 备    注:无
  • ******************************************************************/
  • void Key_44_KeySan(void)
  • {        Key_44_Data=0x0f;                                                                //给4行赋高电平,4列赋低电平
  •         if(Key_44_Data!=0x0f)                                                        //判断是否有键按下
  •         Key_44_Delay(5);                                                                //按键消除抖动
  •         if(Key_44_Data!=0x0f)                                                        //再次判断是否有键按下
  •         {        hang=Key_44_Data;                                                        //把行的值暂存
  •                 a=1;                                                                //按键按下标志位置1
  •                 Key_44_Data=0xf0;                                                        //给4列赋高电平,4行赋低电平
  •                 lie=Key_44_Data;                                                                //把列的值暂存
  •                 zhi=lie|hang;                                                //将行值和列值相或得出键值
  •         }                                                                                 
  •         if((Key_44_Data==0x0f)&&(a==1))                                        //判断是否松手
  •         Key_44_Delay(5);                                                                //按键松手消除抖动
  •         if((Key_44_Data==0x0f)&&(a==1))                                        //再次判断是否松手
  •                 {        a=0;                                                        //按键按下标志位清零
  •                         switch(zhi)                                                //比较读键值
  •                         {
  •                                 case 0x77:jianzhi=15;break;        //按键D
  •                                 case 0x7b:jianzhi=14;break;        //按键C
  •                                 case 0x7d:jianzhi=13;break;        //按键B
  •                                 case 0x7e:jianzhi=12;break;        //按键A修改密码
  •                                
  •                                 case 0xb7:jianzhi=10;break;        //按键#确认
  •                                 case 0xbb:jianzhi=9;break;        //按键9
  •                                 case 0xbd:jianzhi=6;break;        //按键6
  •                                 case 0xbe:jianzhi=3;break;        //按键3
  •                                
  •                                 case 0xd7:jianzhi=0;break;        //按键0
  •                                 case 0xdb:jianzhi=8;break;        //按键8
  •                                 case 0xdd:jianzhi=5;break;        //按键5
  •                                 case 0xde:jianzhi=2;break;        //按键2
  •                                
  •                                 case 0xe7:jianzhi=11;break;        //按键*取消
  •                                 case 0xeb:jianzhi=7;break;        //按键7
  •                                 case 0xed:jianzhi=4;break;        //按键4
  •                                 case 0xee:jianzhi=1;break;        //按键1
  •                         }
  •                         if(jianzhi<13)        //如果按下的是0-9 确认 取消 修改密码键 则按键有效
  •                         {
  •                         KeyAvailable=1;
  •                         }
  •                 }
  • }
  • /******************************************************************
  • - 功能描述:矩阵键盘处理子程序
  • - 入口参数:无
  • - 参 数 值:无
  • - 返回说明:无
  • - 备    注:无
  • ******************************************************************/
  • void Key_44_KeyHandle(void)
  • {
  •         if(KeyAvailable)
  •         {
  • //----- 模式=1 输入开门密码模式
  •                 if(MODE==1)                                //如果当前为输入开门密码模式
  •                 {
  •                         if((InPutCount<=5) && (jianzhi<=9)) //当前输入的是0-9 并且输入不足6位
  •                         {
  •                                 InPutPassWord[InPutCount]=jianzhi+0x30;
  •                                 InPutCount++;
  •                                 L12864_Windows_Input(InPutCount);
  •                         }
  •                         if((jianzhi==10) &&(InPutCount==6))                        //如果按下确认键并且密码输入完整
  •                         {
  •                                 if(PassWordCheck())
  •                                 {
  •                                 L12864_Windows_Door_Open();        //密码正确 门已经开启
  •                                 ErrCount=Count;                                //输入错误计次归位
  •                                 Door=0;        //置门打开标志位 0表示打开
  •                                 MODE=5;
  •                                 }
  •                                 else
  •                                 {
  •                                         MODE=0;
  •                                         ErrCount--;
  •                                         if(ErrCount>0)
  •                                         {
  •                                                 L12864_Windows_Error(ErrCount);
  •                                                 L12864_Delay1S();                        //延时3秒
  •                                                 InPutCount=0;
  •                                                 L12864_Windows_Input(InPutCount);
  •                                                 MODE=1;
  •                                         }
  •                                         else
  •                                         {
  •                                                 L12864_Windows_ErrorWait(ErrWait,0);
  •                                                 MODE=6;
  •                                         }
  •                                 }
  •                         }
  •                         if(jianzhi==11)                        //如果按下取消键
  •                         {
  •                                 ClrarPassBuf();
  •                                 InPutCount=0;
  •                                 L12864_Windows_Input(InPutCount);
  •                                 MODE=1;
  •                         }
  •                         if(jianzhi==12)                        //如果按下修改密码键
  •                         {
  •                                 InPutCount=0;
  •                                 L12864_ChangePass_In(InPutCount);
  •                                 MODE=2;                        //设置当前为修改密码模式
  •                         }
  •                 }
  • //----- 模式=2 修改密码模式       
  •                 if(MODE==2)                                        //如果当前为修改密码模式
  •                 {
  •                        
  •                         if((InPutCount<=5) && (jianzhi<=9)) //当前输入的是0-9 并且输入不足6位
  •                         {
  •                                 InPutPassWord[InPutCount]=jianzhi+0x30;
  •                                 InPutCount++;
  •                                 L12864_ChangePass_In(InPutCount);
  •                         }
  •                         if(jianzhi==10)                        //如果按下确认键
  •                         {
  •                                 if(PassWordCheck())
  •                                 {
  •                                         InPutCount=0;
  •                                         L12864_ChangePass_NewIn1(InPutCount);
  •                                         MODE=3;
  •                                 }
  •                                 else
  •                                 {
  •                                         L12864_CheckPass_Err();
  •                                         L12864_Delay1S();                        //延时3秒
  •                                         InPutCount=0;
  •                                         L12864_Windows_Input(InPutCount);
  •                                         MODE=1;
  •                                 }
  •                         }
  •                         if(jianzhi==11)                        //如果按下取消键
  •                         {
  •                                 ClrarPassBuf();
  •                                 InPutCount=0;
  •                                 L12864_Windows_Input(InPutCount);
  •                                 MODE=1;
  •                         }
  •                 }
  • //----- 模式=3 输入新密码1
  •                 if(MODE==3)
  •                 {
  •                         if((InPutCount<=5) && (jianzhi<=9)) //当前输入的是0-9 并且输入不足6位
  •                         {
  •                                 InPutPassWordNew1[InPutCount]=jianzhi+0x30;
  •                                 InPutCount++;
  •                                 L12864_ChangePass_NewIn1(InPutCount);
  •                         }
  •                         if((NextCycle_MODE3) && (jianzhi==10))                        //如果按下确认键
  •                         {
  •                                 if(InPutCount==6)
  •                                 {
  •                                         InPutCount=0;
  •                                         L12864_ChangePass_NewIn2(InPutCount);
  •                                         MODE=4;
  •                                 }
  •                         }
  •                         if(jianzhi==11)                        //如果按下取消键
  •                         {
  •                                 ClrarPassBuf();
  •                                 InPutCount=0;
  •                                 L12864_Windows_Input(InPutCount);
  •                                 MODE=1;
  •                         }
  •                         if(MODE==3)
  •                         NextCycle_MODE3=1;
  •                         else
  •                         NextCycle_MODE3=0;
  •                 }
  • //----- 模式=4 输入新密码2
  •                 if(MODE==4)
  •                 {
  •                         if((InPutCount<=5) && (jianzhi<=9)) //当前输入的是0-9 并且输入不足6位
  •                         {
  •                                 InPutPassWordNew2[InPutCount]=jianzhi+0x30;
  •                                 InPutCount++;
  •                                 L12864_ChangePass_NewIn2(InPutCount);
  •                         }
  •                         if((NextCycle_MODE4) && (jianzhi==10))                        //如果按下确认键
  •                         {
  •                                 if(PassWordCheckNew())
  •                                 {
  •                                         WriteNewPassWord();
  •                                         L12864_ChangePass_OK();
  •                                 }
  •                                 else
  •                                 {
  •                                         L12864_ChangePass_Error();
  •                                 }
  •                                 L12864_Delay1S();                        //延时3秒
  •                                 InPutCount=0;
  •                                 L12864_Windows_Input(InPutCount);
  •                                 MODE=1;
  •                         }
  •                         if(jianzhi==11)                        //如果按下取消键
  •                         {
  •                                 ClrarPassBuf();
  •                                 InPutCount=0;
  •                                 L12864_Windows_Input(InPutCount);
  •                                 MODE=1;
  •                         }
  •                         if(MODE==4)
  •                         NextCycle_MODE4=1;
  •                         else
  •                         NextCycle_MODE4=0;       
  •                 }
  •                
  • //----- 模式=5 等待关门
  •                 if(MODE==5)
  •                 {
  •                         while(Door==0)
  •                         {
  •                         keysan_Alone();
  •                         }
  •                         //此时门已经关闭
  •                         L12864_Windows_Door_Close();
  •                         L12864_Delay1S();                        //延时3秒
  •                         InPutCount=0;
  •                         L12864_Windows_Input(InPutCount);
  •                         MODE=1;
  •                 }
  • //----- 模式=6 等待时间到
  •                 if(MODE==6)
  •                 {
  •                        
  •                         TR0=1;
  •                         fen=ErrMin;
  •                         while(fen>=1)
  •                         {
  •                                 if(Unit)//为1 单位为秒
  •                                 {
  •                                         if(NewS!=s)
  •                                         {
  •                                         L12864_Windows_ErrorWait(s,1);
  •                                         NewS=s;
  •                                         }
  •                
  •                                 }
  •                                 else        //否则单位为分钟
  •                                 {
  •                                         if(Newfen!=fen)
  •                                         {
  •                                         L12864_Windows_ErrorWait(fen,0);
  •                                         Newfen=fen;
  •                                         }
  •                                 }
  •                                 L12864_Delay1S();
  •                                 if((fen==0) && (s==-1))
  •                                 {
  •                                 break;
  •                                 }
  •                         }
  •                         TR0=0;
  •                         ms=0;
  •                         s=59;
  •                         Unit=0;//单位切换为分
  •                         fen=ErrMin;
  •                         ErrCount=Count;
  •                         InPutCount=0;
  •                         L12864_Windows_Input(InPutCount);
  •                         MODE=1;
  •                 }
  •         }
  •         KeyAvailable=0;
  • }
  • ★============矩阵键盘扫描、处理代码结束================  
  • ★=================12864Code=====================  
  • unsigned char code Char_1608_Num[]={
  • 0x00,0xF0,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x0F,0x10,0x10,0x10,0x10,0x0F,0x00,/*"0",0*/
  • 0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,/*"1",1*/
  • 0x00,0x10,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x14,0x12,0x11,0x10,0x10,0x00,/*"2",2*/
  • 0x00,0x10,0x08,0x88,0x88,0x88,0x70,0x00,0x00,0x08,0x10,0x10,0x10,0x10,0x0F,0x00,/*"3",3*/
  • 0x00,0x00,0x80,0x60,0x10,0xF8,0x00,0x00,0x00,0x03,0x02,0x02,0x12,0x1F,0x12,0x00,/*"4",4*/
  • 0x00,0xF8,0x88,0x88,0x88,0x88,0x08,0x00,0x00,0x08,0x10,0x10,0x10,0x10,0x0F,0x00,/*"5",5*/
  • 0x00,0xE0,0x10,0x88,0x88,0x88,0x00,0x00,0x00,0x0F,0x11,0x10,0x10,0x10,0x0F,0x00,/*"6",6*/
  • 0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,0x00,0x00,0x18,0x06,0x01,0x00,0x00,0x00,/*"7",7*/
  • 0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x0F,0x10,0x10,0x10,0x10,0x0F,0x00,/*"8",8*/
  • 0x00,0xF0,0x08,0x08,0x08,0x88,0xF0,0x00,0x00,0x00,0x11,0x11,0x11,0x08,0x07,0x00,/*"9",9*/
  • 0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,/*"/",10*/
  • };
  • unsigned char code Char_1616_Text[]={
  • 0x04,0x34,0xC4,0x04,0xC4,0x3C,0x20,0x10,0x0F,0xE8,0x08,0x08,0x28,0x18,0x00,0x00,//汉字_00 欢
  • 0x10,0x08,0x06,0x01,0x82,0x8C,0x40,0x30,0x0C,0x03,0x0C,0x10,0x60,0xC0,0x40,0x00,
  • 0x40,0x42,0x44,0xC8,0x00,0xFC,0x04,0x02,0x82,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00,//汉字_01 迎
  • 0x00,0x40,0x20,0x1F,0x20,0x47,0x42,0x41,0x40,0x7F,0x40,0x42,0x44,0x63,0x20,0x00,
  • 0x40,0x20,0xF8,0x07,0x04,0xF4,0x14,0x14,0x14,0xFF,0x14,0x14,0x14,0xF6,0x04,0x00,//汉字_02 使
  • 0x00,0x00,0xFF,0x00,0x80,0x43,0x45,0x29,0x19,0x17,0x21,0x21,0x41,0xC3,0x40,0x00,
  • 0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFF,0x02,0x00,0x00,//汉字_03 用
  • 0x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00,
  • 0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,//汉字_04 电
  • 0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,
  • 0x80,0x80,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x80,0xC0,0x80,0x00,//汉字_05 子
  • 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  • 0x10,0x4C,0x24,0x04,0xF4,0x84,0x4D,0x56,0x24,0x24,0x14,0x84,0x24,0x54,0x0C,0x00,//汉字_06 密
  • 0x00,0x01,0xFD,0x41,0x40,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0xFC,0x00,0x00,0x00,
  • 0x02,0x82,0xF2,0x4E,0x43,0xE2,0x42,0xFA,0x02,0x02,0x02,0xFF,0x02,0x80,0x00,0x00,//汉字_07 码
  • 0x01,0x00,0x7F,0x20,0x20,0x7F,0x08,0x09,0x09,0x09,0x0D,0x49,0x81,0x7F,0x01,0x00,
  • 0x80,0x40,0x70,0xCF,0x48,0x48,0x00,0xE2,0x2C,0x20,0xBF,0x20,0x28,0xF6,0x20,0x00,//汉字_08 锁
  • 0x00,0x02,0x02,0x7F,0x22,0x92,0x80,0x4F,0x40,0x20,0x1F,0x20,0x20,0x4F,0x80,0x00,
  • 0x20,0x22,0xEC,0x00,0x20,0x22,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xEB,0xA2,0x20,0x00,//汉字_09 请
  • 0x00,0x00,0x7F,0x20,0x10,0x00,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00,
  • 0x88,0x68,0x1F,0xC8,0x0C,0x28,0x90,0xA8,0xA6,0xA1,0x26,0x28,0x10,0xB0,0x10,0x00,//汉字_10 输
  • 0x09,0x09,0x05,0xFF,0x05,0x00,0xFF,0x0A,0x8A,0xFF,0x00,0x1F,0x80,0xFF,0x00,0x00,
  • 0x00,0x00,0x00,0x00,0x00,0x01,0xE2,0x1C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//汉字_11 入
  • 0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x30,0x40,0xC0,0x40,0x00,
  • 0x80,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x82,0x83,0xC2,0x80,0x00,//汉字_12 开
  • 0x00,0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
  • 0x00,0xFC,0x01,0x02,0x06,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFF,0x02,0x00,//汉字_13 门
  • 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,
  • 0x80,0x40,0x70,0xCF,0x48,0x48,0x48,0x48,0x7F,0x48,0x48,0x7F,0xC8,0x68,0x40,0x00,//汉字_14 错
  • 0x00,0x02,0x02,0x7F,0x22,0x12,0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x01,0x00,0x00,
  • 0x40,0x42,0xC4,0x0C,0x00,0x40,0x5E,0x52,0x52,0xD2,0x52,0x52,0x5F,0x42,0x00,0x00,//汉字_15 误
  • 0x00,0x00,0x7F,0x20,0x12,0x82,0x42,0x22,0x1A,0x07,0x1A,0x22,0x42,0xC3,0x42,0x00,
  • 0x00,0x02,0xF2,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFF,0x02,0x00,0x00,0x00,//汉字_16 已
  • 0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x78,0x00,0x00,
  • 0x00,0x00,0x00,0xFC,0x44,0x44,0x44,0x45,0x46,0x44,0x44,0x44,0x44,0x7E,0x04,0x00,//汉字_17 启
  • 0x40,0x20,0x18,0x07,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFF,0x02,0x00,
  • 0x20,0x22,0xEC,0x00,0x04,0x04,0x04,0x84,0xE4,0x1C,0x84,0x04,0x04,0x06,0x04,0x00,//汉字_18 还
  • 0x40,0x20,0x1F,0x20,0x44,0x42,0x41,0x40,0x5F,0x40,0x40,0x41,0x43,0x66,0x20,0x00,
  • 0x04,0x04,0x04,0x84,0xE4,0x3C,0x27,0x24,0x24,0x24,0x24,0xF4,0x24,0x06,0x04,0x00,//汉字_19 有
  • 0x04,0x02,0x01,0x00,0xFF,0x09,0x09,0x09,0x09,0x49,0x89,0x7F,0x00,0x00,0x00,0x00,
  • 0x00,0x02,0x04,0x8C,0x40,0x00,0x20,0x18,0x17,0xD0,0x10,0x50,0x38,0x10,0x00,0x00,//汉字_20 次
  • 0x02,0x02,0xFF,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x0C,0x10,0x60,0xC0,0x40,0x00,
  • 0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00,0x00,0x00,//汉字_21 机
  • 0x04,0x03,0x00,0xFF,0x80,0x41,0x20,0x1F,0x00,0x00,0x00,0x3F,0x40,0x40,0x70,0x00,
  • 0x80,0x80,0x40,0x20,0x50,0x48,0x44,0x43,0x44,0x48,0x50,0x20,0x40,0xC0,0x40,0x00,//汉字_22 会
  • 0x00,0x00,0x02,0x42,0x62,0x52,0x4E,0x42,0x42,0x52,0x62,0xC3,0x02,0x00,0x00,0x00,
  • 0x00,0x10,0x10,0x11,0x12,0x1C,0x10,0xF0,0x10,0x18,0x14,0x13,0x1A,0x90,0x00,0x00,//汉字_23 关
  • 0x81,0x81,0x41,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
  • 0x00,0xF8,0x01,0x22,0x26,0x20,0x22,0xA2,0xFA,0x22,0x32,0x22,0x02,0xFF,0x02,0x00,//汉字_24 毕
  • 0x00,0xFF,0x00,0x08,0x04,0x02,0x21,0x40,0x3F,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,
  • 0x00,0x80,0x40,0x20,0x98,0x86,0x80,0x80,0x83,0x8C,0x90,0x20,0xC0,0x80,0x80,0x00,//汉字_25 分
  • 0x01,0x00,0x80,0x40,0x20,0x1F,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,0x01,0x00,0x00,
  • 0x80,0x40,0x70,0xCF,0x48,0x48,0x00,0xF0,0x10,0x10,0xFF,0x10,0x10,0xF8,0x10,0x00,//汉字_26 钟
  • 0x02,0x02,0x02,0x7F,0x22,0x12,0x00,0x07,0x02,0x02,0xFF,0x02,0x02,0x07,0x00,0x00,
  • 0x00,0x00,0xFC,0x24,0x24,0x24,0x24,0x24,0x24,0x22,0x22,0x23,0xA2,0x30,0x20,0x00,//汉字_27 后
  • 0x40,0x30,0x0F,0x00,0x00,0xFF,0x41,0x41,0x41,0x41,0x41,0x41,0xFF,0x01,0x00,0x00,
  • 0x08,0x08,0x0A,0xEA,0xAA,0xAA,0xAA,0xFE,0xAA,0xAA,0xA9,0xF9,0x29,0x0C,0x08,0x00,//汉字_28 重
  • 0x40,0x40,0x48,0x4B,0x4A,0x4A,0x4A,0x7F,0x4A,0x4A,0x4A,0x4B,0x48,0x60,0x40,0x00,
  • 0x40,0x42,0xCC,0x00,0x10,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x14,0x10,0x00,//汉字_29 试
  • 0x00,0x00,0x7F,0x20,0x10,0x20,0x60,0x3F,0x10,0x10,0x01,0x3E,0x40,0x80,0x70,0x00,
  • 0x00,0x00,0xFE,0x02,0xE2,0xA2,0xB2,0xAE,0xA2,0xA2,0xA2,0xA2,0xF3,0x22,0x00,0x00,//汉字_30 原
  • 0x40,0x30,0x0F,0x40,0x23,0x1A,0x42,0x82,0x7E,0x02,0x02,0x0A,0x13,0x60,0x00,0x00,
  • 0x40,0x44,0x54,0x65,0xC6,0x64,0xD6,0x44,0x40,0xFC,0x44,0x42,0xC3,0x62,0x40,0x00,//汉字_31 新
  • 0x20,0x11,0x49,0x81,0x7F,0x01,0x05,0x29,0x18,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,
  • 0x00,0x02,0x02,0xF2,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0xFA,0x13,0x02,0x00,0x00,//汉字_32 再
  • 0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x07,0x04,0x44,0x84,0x7F,0x04,0x06,0x04,0x00,
  • 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,//汉字_33 一
  • 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  • 0x40,0x20,0xF8,0x07,0xF0,0xA0,0x90,0x4F,0x54,0x24,0xD4,0x4C,0x84,0x80,0x80,0x00,//汉字_34 修
  • 0x00,0x00,0xFF,0x00,0x0F,0x80,0x92,0x52,0x49,0x25,0x24,0x12,0x08,0x00,0x00,0x00,
  • 0x04,0xC4,0x44,0x44,0x44,0xFE,0x44,0x20,0xDF,0x10,0x10,0x10,0xF0,0x18,0x10,0x00,//汉字_35 改
  • 0x00,0x7F,0x20,0x20,0x10,0x90,0x80,0x40,0x21,0x16,0x08,0x16,0x61,0xC0,0x40,0x00,
  • 0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0x08,0x7F,0x88,0x0A,0x0C,0x08,0xC8,0x00,0x00,//汉字_36 成
  • 0x40,0x20,0x1F,0x00,0x08,0x10,0x0F,0x40,0x20,0x13,0x1C,0x24,0x43,0x80,0xF0,0x00,
  • 0x08,0x08,0x08,0xF8,0x0C,0x28,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0xF0,0x20,0x00,//汉字_37 功
  • 0x08,0x18,0x08,0x0F,0x84,0x44,0x20,0x1C,0x03,0x20,0x40,0x80,0x40,0x3F,0x00,0x00,
  • 0x00,0x40,0x20,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x18,0x10,0x80,0x00,0x00,//汉字_38 失
  • 0x01,0x81,0x81,0x41,0x21,0x11,0x0D,0x03,0x0D,0x11,0x21,0x21,0x41,0xC1,0x41,0x00,
  • 0x00,0xFE,0x02,0xFA,0x02,0xFF,0x02,0x20,0x10,0xCF,0x08,0x08,0xF8,0x0C,0x08,0x00,//汉字_39 败
  • 0x80,0x47,0x30,0x0F,0x10,0x67,0x80,0x40,0x20,0x17,0x08,0x16,0x21,0x60,0x20,0x00,
  • 0x02,0xFA,0x02,0x02,0xFF,0x42,0x20,0x50,0x4C,0x43,0x4C,0x50,0x20,0x60,0x20,0x00,//汉字_40 验
  • 0x10,0x31,0x11,0x49,0x89,0x7F,0x42,0x5C,0x40,0x4F,0x60,0x58,0x47,0x60,0x40,0x00,
  • 0x20,0x20,0x21,0xE6,0x00,0x02,0x02,0xC2,0x02,0x02,0xFE,0x82,0x82,0xC3,0x82,0x00,//汉字_41 证
  • 0x00,0x00,0x00,0x7F,0x20,0x50,0x40,0x7F,0x40,0x40,0x7F,0x40,0x40,0x60,0x40,0x00,
  • 0x20,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x80,0x70,0x00,0xFF,0x00,0x10,0x20,0x60,0x00,//汉字_42 秒
  • 0x10,0x08,0x06,0x01,0xFF,0x00,0x81,0x80,0x40,0x20,0x17,0x08,0x04,0x03,0x00,0x00,
  • };
  • unsigned char code Char_1616_Bmp[]={
  • 0x80,0xFC,0xFE,0x86,0x83,0x81,0x81,0x81,0x81,0x81,0x83,0x86,0xFE,0xFC,0x80,0x00,//图标_00 锁
  • 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xE1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
  • };
  • unsigned char code Char_1616_Symbol[]={
  • 0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//符号_00 冒号
  • 0x00,0x00,0x00,0x00,0x31,0x7B,0x7B,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  • 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//符号_01 下划线
  • 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
  • 0x00,0x86,0x8E,0x9C,0xB8,0xF0,0xE0,0xFE,0xFE,0xE0,0xF0,0xB8,0x9C,0x8E,0x86,0x00,//符号_02 星号
  • 0x00,0x61,0x71,0x39,0x1D,0x0F,0x07,0x7F,0x7F,0x07,0x0F,0x1D,0x39,0x71,0x61,0x00,
  • 0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0x7C,0x1C,0x0C,0x04,0x00,0x00,0x00,0x00,//符号_03 【
  • 0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3E,0x38,0x30,0x20,0x00,0x00,0x00,0x00,
  • 0x00,0x00,0x00,0x00,0x00,0x04,0x0C,0x1C,0x7C,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,//符号_04 】
  • 0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x38,0x3E,0x3F,0x3F,0x3F,0x00,0x00,0x00,0x00,
  • };
  • ★================12864Code结束===================
  • ===========================  《 完 》  ==========================
  • 复制代码