久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
電子密碼鎖LCD12864中文顯示 帶仿真和源程序
[打印本頁]
作者:
慌張
時間:
2016-9-26 13:13
標題:
電子密碼鎖LCD12864中文顯示 帶仿真和源程序
初始密碼為12345678,輸入初始密碼后可更改為自己的密碼;‘ON/C’為返回或清零鍵‘ON/C’為返回或清零鍵‘=’為確認鍵
0.png
(19.42 KB, 下載次數: 81)
下載附件
2016-9-26 13:42 上傳
0.png
(68.97 KB, 下載次數: 99)
下載附件
2016-9-26 13:43 上傳
LCD12864中文顯示的單片機電子密碼鎖所有資料下載:
電子密碼鎖LCD12864中文顯示.rar
(87.42 KB, 下載次數: 53)
2016-9-26 13:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
源程序:
/***** LCD 12864 with KS0108B controller display driver *****/
#define uchar unsigned char
#include<drive_functions.h>
#include<get_keys.h>
bit verify=0;
bit cursor=1;
bit modify_flag=0,modify=0;
uint time_counter=0;
uchar counter=0,j=0,i,k;
uchar PASS[8]={1,2,3,4,5,6,7,8};
uchar PW[8]={0,0,0,0,0,0,0,0};
uchar PW_NULL[8]={0,0,0,0,0,0,0,0};
uchar MODIFY_BUF[8]={0,0,0,0,0,0,0,0};
/****************************verify pw ************************/
bit VerifyAray(void)
{
uchar i;
bit temp=FAULSE;
for(i=0;i<8;i++)
{
if(PW[i]==PASS[i])temp=TRUE;
else
{
temp=FAULSE;
i=8; //end for loop
}
}
return(temp);
}
/*********************** main ************************/
void main(void)
{
E=1;
DspOn();
ClearLCD();
// IT0=1;
// IT1=1;
// EX0=1;
// EX1=1;
TMOD=0x10;
ET1=1;
EA=1;
TH1=0x00;
TL1=0x00;
TR1=1;
while(1)
{
/******************fist line****************************/
uchar i;
SetStartLine(0);
re_input:
for(i=0;i<4;i++)
{
SetPage(0);
SetColumn(i<<4); // i*16
DspUp(&QING_SHU[i-1][32],1);
DspUp(&QING_SHU[i-1+4][32],2);
SetPage(1);
SetColumn(i<<4); // i*16
DspDown(&QING_SHU[i-1][32],1);
DspDown(&QING_SHU[i-1+4][32],2);
}
/**************second line***************************/
for(i=0;i<4;i++)
{
SetPage(6);
SetColumn(i<<4); // i*16
DspUp(&QING_CHU[i-1][32],1);
DspUp(&QING_CHU[i+4-1][32],2);
SetPage(7);
SetColumn(i<<4); // i*16
DspDown(&QING_CHU[i-1][32],1);
DspDown(&QING_CHU[i+4-1][32],2);
}
/***************************光標顯示***********************************/
if(counter<8) //如果輸入到第8位,光標不再顯示
{
if(cursor)
{
i=counter;
SetPage(2);
SetColumn((i<4)?(i*16):((i-4)*16));
DspUp(&GUANG_BIAO_KONG[-1][32],(i<4)?1:2);
SetPage(3);
SetColumn((i<4)?(i*16):((i-4)*16));
DspDown(&GUANG_BIAO_KONG[-1][32],(i<4)?1:2);
}
else
{
i=counter;
SetPage(2);
SetColumn((i<4)?(i*16):((i-4)*16));
DspUp(&GUANG_BIAO_KONG[0][32],(i<4)?1:2);
SetPage(3);
SetColumn((i<4)?(i*16):((i-4)*16));
DspDown(&GUANG_BIAO_KONG[0][32],(i<4)?1:2);
}
}
/***********************get key's value**************************/
if(CheckState())
{
delay();
if(CheckState())
{
key=GetKeys();
if(key==0x82) //clear input
{
if(modify_flag){counter=0;MODIFY_BUF[8]=PW_NULL[8];}
else {counter=0;PW[8]=PW_NULL[8];}
for(i=0;i<8;i++)
{
SetPage(2);
SetColumn(i<<4);
DspUp(&GUANG_BIAO_KONG[0][32],1);
DspUp(&GUANG_BIAO_KONG[0][32],2);
SetPage(3);
SetColumn(i<<4);
DspDown(&GUANG_BIAO_KONG[0][32],1);
DspDown(&GUANG_BIAO_KONG[0][32],2);
}
}
else if(key==0x88) //verify password
{
if(modify_flag){modify=1;goto modify_operation;}
else {verify=1;goto verify_password;}
}
else if(counter<8) //get keys
{
switch(key)
{
case 0x84:
if(modify_flag)MODIFY_BUF[counter]=0;
else PW[counter]=0;
break;
case 0x42:
if(modify_flag)MODIFY_BUF[counter]=1;
else PW[counter]=1;
break;
case 0x44:
if(modify_flag)MODIFY_BUF[counter]=2;
else PW[counter]=2;
break;
case 0x48:
if(modify_flag)MODIFY_BUF[counter]=3;
else PW[counter]=3;
break;
case 0x22:
if(modify_flag)MODIFY_BUF[counter]=4;
else PW[counter]=4;
break;
case 0x24:
if(modify_flag)MODIFY_BUF[counter]=5;
else PW[counter]=5;
break;
case 0x28:
if(modify_flag)MODIFY_BUF[counter]=6;
else PW[counter]=6;
break;
case 0x12:
if(modify_flag)MODIFY_BUF[counter]=7;
else PW[counter]=7;
break;
case 0x14:
if(modify_flag)MODIFY_BUF[counter]=8;
else PW[counter]=8;
break;
case 0x18:
if(modify_flag)MODIFY_BUF[counter]=9;
else PW[counter]=9;
break;
default:
break;
}
counter++;
}
}
}
/************************display password input **************************/
for(i=0;i<counter;i++)
{
if(modify_flag==1)j=MODIFY_BUF[i];
else j=PW[i];
SetPage(2);
SetColumn((i<4)?(i*16):((i-4)*16));
DspUp(&NUMBER_ARRY[j-1][32],(i<4)?1:2);
SetPage(3);
SetColumn((i<4)?(i*16):((i-4)*16));
DspDown(&NUMBER_ARRY[j-1][32],(i<4)?1:2);
}
/*******************************verify_password*************************/
verify_password: if(verify)
{
if(VerifyAray())
{
ClearLCD();
loop1: for(i=0;i<4;i++)
{
SetPage(0);
SetColumn(i<<4); // i*16
DspUp(&TONG_GUO[i-1][32],1);
DspUp(&TONG_GUO[i-1+4][32],2);
SetPage(1);
SetColumn(i<<4); // i*16
DspDown(&TONG_GUO[i-1][32],1);
DspDown(&TONG_GUO[i-1+4][32],2);
SetPage(6);
SetColumn(i<<4); // i*16
DspUp(&TONG_GUO_TI_SHI[i-1][32],1);
DspUp(&TONG_GUO_TI_SHI[i-1+4][32],2);
SetPage(7);
SetColumn(i<<4); // i*16
DspDown(&TONG_GUO_TI_SHI[i-1][32],1);
DspDown(&TONG_GUO_TI_SHI[i-1+4][32],2);
}
if(CheckState())
{
delay();
if(CheckState())
{
key=GetKeys();
if(key==0x82)
{counter=0;verify=0;goto re_input;}
else if(key==0x88)
{counter=0;modify_flag=1;verify=0;goto re_input;}
}
}
else goto loop1;
}
else
{
ClearLCD();
loop2: for(i=0;i<4;i++)
{
SetPage(0);
SetColumn(i<<4); // i*16
DspUp(&BU_TONG_GUO[i-1][32],1);
DspUp(&BU_TONG_GUO[i-1+4][32],2);
SetPage(1);
SetColumn(i<<4); // i*16
DspDown(&BU_TONG_GUO[i-1][32],1);
DspDown(&BU_TONG_GUO[i-1+4][32],2);
SetPage(6);
SetColumn(i<<4); // i*16
DspUp(&TONG_GUO_TI_SHI[i-1][32],1);
SetPage(7);
SetColumn(i<<4); // i*16
DspDown(&TONG_GUO_TI_SHI[i-1][32],1);
}
if(CheckState())
{
delay();
if(CheckState())
{
key=GetKeys();
if(key==0x82)
{counter=0;verify=0;goto re_input;}
}
}
else goto loop2;
}
}
}
//}
/*********************modify password operation *********************/
modify_operation: if(modify)
{
modify_flag=0;
if(1)
{
for(i=0;i<8;i++){PASS[i]=MODIFY_BUF[i];}
//PASS[8]=MODIFY_BUF[8];
ClearLCD();
loop3: for(i=0;i<4;i++)
{
SetPage(0);
SetColumn(i<<4); // i*16
DspUp(&GAI_CHENG_GONG[i-1][32],1);
DspUp(&GAI_CHENG_GONG[i-1+4][32],2);
SetPage(1);
SetColumn(i<<4); // i*16
DspDown(&GAI_CHENG_GONG[i-1][32],1);
DspDown(&GAI_CHENG_GONG[i-1+4][32],2);
SetPage(2);
SetColumn(i<<4); // i*16
DspUp(&GAI_HOU_TI_SHI[i-1][32],1);
DspUp(&GAI_HOU_TI_SHI[i-1+4][32],2);
SetPage(3);
SetColumn(i<<4); // i*16
DspDown(&GAI_HOU_TI_SHI[i-1][32],1);
DspDown(&GAI_HOU_TI_SHI[i-1+4][32],2);
j=PASS[i];
k=PASS[i+4];
SetPage(4);
SetColumn(i<<4);
DspUp(&NUMBER_ARRY[j-1][32],1);
DspUp(&NUMBER_ARRY[k-1][32],2);
SetPage(5);
SetColumn(i<<4);
DspDown(&NUMBER_ARRY[j-1][32],1);
DspDown(&NUMBER_ARRY[k-1][32],2);
SetPage(6);
SetColumn(i<<4); // i*16
DspUp(&TONG_GUO_TI_SHI[i-1][32],1);
SetPage(7);
SetColumn(i<<4); // i*16
DspDown(&TONG_GUO_TI_SHI[i-1][32],1);
}
if(CheckState())
{
delay();
if(CheckState())
{
key=GetKeys();
if(key==0x82)
{counter=0;modify=0;ClearLCD();goto re_input;}
}
}
else goto loop3;
}
}
}
/*******timer1 interrupt to change cursor display on and off ******/
void Timer1(void) interrupt 3 using 1
{
TH1=0x00;
TL1=0x00;
TR1=1;
if(time_counter>10)
{
time_counter=0;
cursor=~cursor;
}
else time_counter++;
}
/************* INT0 interrupt to scroll up by press switch P3.2 **********************/
/*void INT0_ON(void) interrupt 0 using 2
{
direction=UP;
}
/************** INT1 interrupt to scroll down by press switch P3.3***********************/
/*void INT1_OFF(void) interrupt 2 using 3
{
direction=DOWN;
}
*/
復制代碼
作者:
慌張
時間:
2016-9-26 13:13
快來下載吧,新手來
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕亚洲精品
|
一区二区三区在线免费观看
|
九九精品视频在线
|
亚洲97
|
91综合网
|
在线观看av网站永久
|
国产成人综合在线
|
亚洲激情第一页
|
精品欧美一区二区在线观看
|
在线观看视频福利
|
午夜影晥
|
日韩精品免费一区
|
一区二区伦理电影
|
国产剧情久久
|
久久成人精品视频
|
国产一区二区日韩
|
综合网伊人
|
成人久久网
|
亚洲欧洲精品一区
|
欧美日韩大片
|
7777在线视频
|
羞羞视频网站在线观看
|
欧洲一级毛片
|
91在线中文字幕
|
美日韩免费
|
国产激情片在线观看
|
欧美精品成人影院
|
欧美激情一区二区三区
|
国产精品一区免费
|
久久精品亚洲精品国产欧美
|
免费中文字幕日韩欧美
|
xx视频在线
|
成人久久18免费网站麻豆
|
91一区二区三区
|
一区二区三区国产精品
|
欧美亚洲国产一区
|
一级女毛片
|
日韩精品一区二区三区视频播放
|
福利视频一区
|
在线看国产
|
精品一区久久
|