很好的作品,謝謝分享。
下面是樓主的mima.h文件:
- #ifndef _MIMA_H_
- #define _MIMA_H_
- #include"mima.h"
- #include<reg51.h>
- #include"lcd.h"
- #include"keyscan.h"
- #define A 0x0a //輸入密碼
- #define enter 0x0b // 確認
- #define B 0x0c //修改密碼
- #define backspace 0x0d //退格
- #define D 0x0e // 關鎖
- /*比較密碼函數,密碼正確返回1,不正確返回0*/
- bit mimaduibi(unsigned char *shuru1,unsigned char *shuru2)
- {
- unsigned char i;
- for(i=0;i<7;i++)
- {
- if(shuru1[i]!=shuru2[i])
- return 0;
- }
- return 1;
- }
- /*選擇輸入密碼或修改密碼函數,輸入密碼返回A,修改密碼返回B*/
- unsigned char step_choose()//選擇輸入密碼或修改密碼處理函數
- {
- unsigned char key;
- key=0xff;
- write_com(0x06);//寫一個字符后地址指針加 1
- write_com(0x01);//顯示清零,數據指針清零
- lcd_pos(0,0);
- write_zfc("Input password ");
- lcd_pos(1,0);
- write_zfc(" Press key A ");
- while((key!=A)&&(key!=B))
- key=keyscan();
- return key;
- }
- /*輸入密碼函數,密碼正確返回1,錯誤返回0*/
- bit input_mima(unsigned char *mima)//輸入密碼函數
- {
- unsigned char count,key;
- lcd_pos(1,0);
- for(count=0;count<8;count++)
- {
- delay(100);
- if(count<7)
- {
- do{key=keyscan();}//掃描鍵盤
- while(key==0xff);
- if((key!=backspace)&&(key!=A)&&(key!=enter))//不是退格也不是確認鍵
- {
- write_dat('*');//是數字鍵顯示*
- mima[count]=key;
- }
- if(key==backspace)//是退格鍵
- {
- if(count>0)
- {
- lcd_pos(1,--count);//光標前移一位
- write_dat(' ');//清空一位
- mima[count] =' ';//寫空
- lcd_pos(1,count);
- count--; //密碼計數器減一 ,因為循環后會+1,所以在這里要加1
- }
- }
- if(key==enter) //沒完成密碼輸入返回錯誤信息
- {
- lcd_pos(0,0);
- return(0);
- }
- }
- if(count==7)
- {
- do{key=keyscan();}
- while((key!=backspace)&&(key!=enter));
- if(key==backspace)
- {
- lcd_pos(1,--count);
- write_dat(' ');
- mima[count]=' ';
- lcd_pos(1,count);
- count--;
- }
- if(key==enter) //密碼位數正確
- {
- return(1); //返回1正確信號
- }
- }
- }
-
- }
- #endif
復制代碼
|