久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17592|回復: 13
收起左側

基于51單片機的門禁系統之電子密碼鎖

  [復制鏈接]
ID:105099 發表于 2016-2-5 16:51 | 顯示全部樓層 |閱讀模式
本文作者:薛 二 煒
      在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財務報表以及一些個人資料的保存多以加鎖的辦法來解決。若使用傳統的機械式鑰匙開鎖,人們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。隨著科學技術的不斷發展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應運而生。密碼鎖具有安全性高、成本低、功耗低、易操作等優點。
        在安全技術防范領域,具有防盜報警功能的電子密碼鎖逐漸代替傳統的機械式密碼鎖,克服了機械式密碼鎖密碼量少、安全性能差的缺點,使密碼鎖無論在技術上還是在性能上都大大提高一步。隨著大規模集成電路技術的發展,特別是單片機的問世,出現了帶微處理器的智能密碼鎖,它除具有電子密碼鎖的功能外,還引入了智能化管理、專家分析系統等功能,從而使密碼鎖具有很高的安全性、可靠性,應用日益廣泛。
 
 本文中電子密碼鎖將實現以下功能:
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請大家及時反饋以便在后期加以修正。
最后祝大家身體健康,萬事如意!

★后附源代碼

 
外觀圖:
 
 歡迎界面: 
 
 工作界面: 
 
 門開啟提示: 
 
 門關閉提示: 
 
 密碼輸入錯誤提示: 
 
 密碼輸入錯誤提示: 
 
 系統鎖死提示: 
 
 系統鎖死提示: 
 
 修改密碼界面: 
 
 原密碼校驗失敗: 
 
 輸入新密碼界面: 
 
 再次輸入新密碼界面: 
 
 密碼修改成功界面: 
 
 外觀: 
 
★====================主程序====================
#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結束=================== 

===========================  《 完   ==========================
薛 二 煒    于江蘇·無錫
2015  年 04  月  06  日
smhacker@126.com  轉載請注明出處 
回復

使用道具 舉報

ID:105813 發表于 2016-2-19 10:40 | 顯示全部樓層
大神有原理圖嗎
回復

使用道具 舉報

ID:94791 發表于 2016-3-19 21:50 | 顯示全部樓層
高人,可以發給我嗎?謝謝!我的郵箱1099533035@qq.com
回復

使用道具 舉報

ID:103574 發表于 2016-3-19 22:43 | 顯示全部樓層
大神啊
回復

使用道具 舉報

ID:148321 發表于 2017-2-23 09:02 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:108193 發表于 2017-7-19 21:48 | 顯示全部樓層
不錯
回復

使用道具 舉報

ID:221012 發表于 2017-7-20 10:17 | 顯示全部樓層
大神,歷害了
回復

使用道具 舉報

ID:166341 發表于 2017-12-30 18:41 | 顯示全部樓層
收藏,感謝分享
回復

使用道具 舉報

ID:260743 發表于 2018-3-21 14:26 | 顯示全部樓層
這操作666
回復

使用道具 舉報

ID:266164 發表于 2018-5-20 21:53 | 顯示全部樓層
107387048@qq.com   大神請給我發一份密碼鎖資料啊。謝謝。萬分感謝
回復

使用道具 舉報

ID:460418 發表于 2019-1-2 20:25 | 顯示全部樓層

   3522638808@qq.com
同求大神發我一份密碼鎖完整資料啊。萬分感謝
回復

使用道具 舉報

ID:634141 發表于 2019-12-12 07:26 | 顯示全部樓層
求大神發我一份密碼鎖完整資料,十分感謝!274490449@qq.com
回復

使用道具 舉報

ID:675693 發表于 2019-12-28 13:42 | 顯示全部樓層
求大神發我一份密碼鎖完整資料,非常感謝   2972385621@qq.com
回復

使用道具 舉報

ID:1084333 發表于 2023-6-15 17:21 | 顯示全部樓層

收藏,感謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本特黄a级高清免费大片 特黄色一级毛片 | 久久久久久久综合 | 欧美日韩在线视频观看 | 成人av一区二区在线观看 | 亚洲精品一级 | 黄免费观看视频 | 日韩图区 | 黄色免费av | 久久99一区二区 | 91成人免费 | 欧美精品久久久久 | 午夜影院中文字幕 | 黄色免费网址大全 | 精品国产伦一区二区三区观看说明 | 精品国产高清一区二区三区 | 日韩欧美一区二区三区免费看 | 中文字幕11页 | 久久久天天 | 国产精品美女久久久久久免费 | av在线一区二区 | 瑟瑟免费视频 | 综合久久网| 9porny九色视频自拍 | 91中文字幕在线观看 | 成人午夜激情 | v片网站 | 亚洲欧美在线一区 | 亚洲精品美女视频 | 日韩精品免费视频 | 日韩免费在线观看视频 | 色婷婷一区二区三区四区 | 日本亚洲欧美 | 国产精品一区2区 | 日韩欧美精品在线 | 国产剧情一区 | 91中文 | 免费网站国产 | 国产一区二区精品在线观看 | 8x国产精品视频一区二区 | 西西裸体做爰视频 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 |