新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2013-3-14
- 在线时间
- 52 小时
|
发表于 2014-3-6 18:12:00
|
显示全部楼层
u8 keyboard_passwd(u8 page,u8 pos,u8 rtn)
{
u8 kk=0;
u8  ASSWD_FLAG=0;
u8 KEY_NUM=20;
u8 button_w=60;//kuan
u8 button_h=50;//gao
u8 button_F[12];
u8  ASSWD[6];
u32  ASSWD_tmp;
u8 BUZZ_EN=0;
u16 BUT_x[12]={
350,420,490,
350,420,490,
350,420,490,
350,420,490,};
u16 BUT_y[12]={
130,130,130,
190,190,190,
250,250,250,
310,310,310,
};
u8 disp_pos=0;
LCD_Clear(BLACK);
// PASSWD[0]=AT24CXX_ReadLenByte(FM24C16_ADR[20],1);
// PASSWD[1]=AT24CXX_ReadLenByte(FM24C16_ADR[20]+1,1);
// PASSWD[2]=AT24CXX_ReadLenByte(FM24C16_ADR[20]+2,1);
// PASSWD[3]=AT24CXX_ReadLenByte(FM24C16_ADR[20]+3,1);
// PASSWD[4]=AT24CXX_ReadLenByte(FM24C16_ADR[20]+4,1);
// PASSWD[5]=AT24CXX_ReadLenByte(FM24C16_ADR[20]+5,1);
PASSWD[0]=6;//AT24CXX_ReadLenByte(FM24C16_ADR[20],1);
PASSWD[1]=6;//AT24CXX_ReadLenByte(FM24C16_ADR[20]+1,1);
PASSWD[2]=6;//AT24CXX_ReadLenByte(FM24C16_ADR[20]+2,1);
PASSWD[3]=6;//AT24CXX_ReadLenByte(FM24C16_ADR[20]+3,1);
PASSWD[4]=6;//AT24CXX_ReadLenByte(FM24C16_ADR[20]+4,1);
PASSWD[5]=6;//AT24CXX_ReadLenByte(FM24C16_ADR[20]+5,1);
//------------------------------------------
LCD_Fill_color(keyboard_X[0]-20,keyboard_Y[0]-10,keyboard_X[pos]+44,keyboard_Y[0]+34,WHITE);//显示底框
for(kk=0;kk<pos;kk++){
//keyboard_num[kk]=AT24CXX_ReadLenByte(FM24C16_ADR[eeprom_add]+kk,1);
keyboard_num[kk]=0;
//LCD_Show24Char(keyboard_X[kk],keyboard_Y[kk],keyboard_num[kk],BLACK,WHITE);
}
LCD_Show24Char(keyboard_X[0],keyboard_Y[0],'|',BLACK,WHITE);
for(kk=0;kk<12;kk++){
LCD_Draw_Rectangle(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
button_F[kk]=0;
}
//24=button_w/2-6
//13=button_h/2-12
//6=button_w/2-24
kk=0;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'1',BLUE,BLACK);
kk=1;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'2',BLUE,BLACK);
kk=2;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'3',BLUE,BLACK);
kk=3;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'4',BLUE,BLACK);
kk=4;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'5',BLUE,BLACK);
kk=5;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'6',BLUE,BLACK);
kk=6;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'7',BLUE,BLACK);
kk=7;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'8',BLUE,BLACK);
kk=8;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'9',BLUE,BLACK);
kk=9;LCD_Show24String(BUT_x[kk]+6,BUT_y[kk]+13,"删除",BLUE,BLACK);
kk=10;LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'0',BLUE,BLACK);
kk=11;LCD_Show24String(BUT_x[kk]+6,BUT_y[kk]+13,"确定",BLUE,BLACK);
//for(kk=0;kk<pos;kk++)keyboard_num[kk]=0;
LCD_Show24String(10,keyboard_Y[0],"请输入密码:",RED,BLACK);
//kk=0;
while(1)
{
LED_show();
BUZZ_show();
Touch_Scan(0);//触摸扫描
if(Pen_Point.sta&0x80)
{
if((Pen_Point.X0>BUT_x[0])&&(Pen_Point.X0<BUT_x[0]+button_w))
{
if((Pen_Point.Y0>BUT_y[0])&&(Pen_Point.Y0<BUT_y[0]+button_h))
{
KEY_NUM=KEY_1;//1
kk=0;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'1',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[3])&&(Pen_Point.Y0<BUT_y[3]+button_h))
{
KEY_NUM=KEY_4;//4
kk=3;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'4',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[6])&&(Pen_Point.Y0<BUT_y[6]+button_h))
{
KEY_NUM=KEY_7;//7
kk=6;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'7',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[9])&&(Pen_Point.Y0<BUT_y[9]+button_h))
{
KEY_NUM=KEY_DEL;
kk=9;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24String(BUT_x[kk]+6,BUT_y[kk]+13,"删除",RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
}
else if((Pen_Point.X0>BUT_x[1])&&(Pen_Point.X0<BUT_x[1]+button_w))
{
if((Pen_Point.Y0>BUT_y[1])&&(Pen_Point.Y0<BUT_y[1]+button_h))
{
KEY_NUM=KEY_2;
kk=1;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'2',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[4])&&(Pen_Point.Y0<BUT_y[4]+button_h))
{
KEY_NUM=KEY_5;
kk=4;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'5',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[7])&&(Pen_Point.Y0<BUT_y[7]+button_h))
{
KEY_NUM=KEY_8;
kk=7;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'8',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[10])&&(Pen_Point.Y0<BUT_y[10]+button_h))
{
KEY_NUM=KEY_0;
kk=10;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'0',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
}
else if((Pen_Point.X0>BUT_x[2])&&(Pen_Point.X0<BUT_x[2]+button_w))
{
if((Pen_Point.Y0>BUT_y[2])&&(Pen_Point.Y0<BUT_y[2]+button_h))
{
KEY_NUM=KEY_3;
kk=2;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'3',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[5])&&(Pen_Point.Y0<BUT_y[5]+button_h))
{
KEY_NUM=KEY_6;
kk=5;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'6',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[8])&&(Pen_Point.Y0<BUT_y[8]+button_h))
{
KEY_NUM=KEY_9;
kk=8;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'9',RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
else if((Pen_Point.Y0>BUT_y[11])&&(Pen_Point.Y0<BUT_y[11]+button_h))
{
KEY_NUM=KEY_ENT;
kk=11;
if(button_F[kk]==0)
{
button_F[kk]=1;
LCD_Fill_color(BUT_x[kk],BUT_y[kk],BUT_x[kk]+button_w,BUT_y[kk]+button_h,BLUE);
LCD_Show24String(BUT_x[kk]+6,BUT_y[kk]+13,"确定",RED,BLUE);
}
if(BUZZ_EN==0)
{
BUZZ_ON();
delay_time1=BUZZ_TIME;
BUZZ_EN=1;
}
}
}
if(delay_time1==0&&BUZZ_EN==1)
{
BUZZ_OFF();
}
}
else
{
if(delay_time1==0&&BUZZ_EN==1)
{
BUZZ_EN=0;
BUZZ_OFF();
}
for(kk=0;kk<12;kk++){
if(button_F[kk]!=0)
{
button_F[kk]=0;
LCD_Fill_color(BUT_x[kk]+1,BUT_y[kk]+1,BUT_x[kk]+button_w-1,BUT_y[kk]+button_h-1,BLACK);
if(kk==0)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'1',BLUE,BLACK);
else if(kk==1)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'2',BLUE,BLACK);
else if(kk==2)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'3',BLUE,BLACK);
else if(kk==3)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'4',BLUE,BLACK);
else if(kk==4)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'5',BLUE,BLACK);
else if(kk==5)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'6',BLUE,BLACK);
else if(kk==6)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'7',BLUE,BLACK);
else if(kk==7)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'8',BLUE,BLACK);
else if(kk==8)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'9',BLUE,BLACK);
else if(kk==9)LCD_Show24String(BUT_x[kk]+6,BUT_y[kk]+13,"删除",BLUE,BLACK);
else if(kk==10)LCD_Show24Char(BUT_x[kk]+24,BUT_y[kk]+13,'0',BLUE,BLACK);
else if(kk==11)LCD_Show24String(BUT_x[kk]+6,BUT_y[kk]+13,"确定",BLUE,BLACK);
}
}
if(KEY_NUM><=9)
{
if(disp_pos<pos){
keyboard_num[disp_pos]=KEY_NUM;
LCD_Show24Char(keyboard_X[disp_pos],keyboard_Y[disp_pos],'*',BLACK,WHITE);
disp_pos++;
LCD_Show24Char(keyboard_X[disp_pos],keyboard_Y[disp_pos],'|',BLACK,WHITE);
}
}
else if(KEY_NUM==KEY_DEL){//DEL
if(disp_pos!=0){
LCD_Show24Char(keyboard_X[disp_pos],keyboard_Y[disp_pos],' ',BLACK,WHITE);
//keyboard_num[disp_pos]=0;
disp_pos--;
LCD_Show24Char(keyboard_X[disp_pos],keyboard_Y[disp_pos],'|',BLACK,WHITE);
}
else
{
BUZZ_OFF();
return 1;
}
}
else if(KEY_NUM==KEY_ENT)
{
//LCD_Show24Char(keyboard_X[disp_pos],keyboard_Y[disp_pos],'*',BLACK,WHITE);
for(kk=0;kk<pos;kk++)
{
if(keyboard_num[kk]==PASSWD[kk]){
PASSWD_FLAG=0;
}
else
{
PASSWD_FLAG=1;
break;
}
}
if(PASSWD_FLAG==0)
{
//LCD_Show24String(keyboard_X[page+1][pos]+50,keyboard_Y[0],"密码输入正确",RED,BLACK);
//delay_ms(500);
//delay_ms(500);
BUZZ_OFF();
return rtn;
}
else
{
PASSWD_tmp=(u32)keyboard_num[0]*100000+ (u32)keyboard_num[1]*10000+
(u32)keyboard_num[2]*1000+(u32)keyboard_num[3]*100+
(u32)keyboard_num[4]*10+keyboard_num[5];
if(PASSWD_tmp==611955)
{
BUZZ_OFF();
return rtn;
}
else
{
//LCD_Show24Char(keyboard_X[disp_pos],keyboard_Y[disp_pos],' ',BLACK,WHITE);
LCD_Show24String(keyboard_X[page+1][pos]+50,keyboard_Y[0],"密码输入错误",RED,BLACK);
disp_pos=0;//方便“删除”按键返回
BUZZ_OFF();
delay_ms(500);
delay_ms(500);
delay_ms(500);
LCD_Show24String(keyboard_X[0],keyboard_Y[0],"| ",BLACK,WHITE);
//LCD_Show24Char(keyboard_X[disp_pos],keyboard_Y[disp_pos],'*',WHITE,BLACK);
LCD_Show24String(keyboard_X[page+1][pos]+50,keyboard_Y[0],"请再一次输入",RED,BLACK);
}
}
}
if(KEY_NUM!=20)
{
KEY_NUM=20;
}
}
}
}> |
|