資源簡介
基于51單片機指紋解鎖設計程序,程序僅供參考主要還是靠自己調試
代碼片段和文件信息
#include?
#include?
#include?
#define?uchar?unsigned?char
#define?uint??unsigned?int
#define?jzaj?P1
uchar?xAdministratorsout=0k=0hbreset1=0;
uchar?password[6]={123456};
uchar?password1[6];
uchar?password2[6]={123456};
uchar?adminpassword[6]={666666};
uchar?adminpassword1[6];
uchar?adminpassword2[6]={666666};
sbit?kai=P0^5;
sbit?kai1=P0^6;
sbit?kai2=P0^7;
uchar?code??DIS1[]?=?{“????歡迎使用???“}; ??//一個漢字占用兩個字符空間,故漢字只能占用偶數地址
uchar?code??DIS2[]?=?{“??云部落指紋鎖?“};
uchar?code??DIS3[]?=?{“????密碼吻合???“};
uchar?code??DIS14[]?=?{“????密碼錯誤???“};
uchar?code??DIS4[]?=?{“已識別??ID:???“};
uchar?code??DIS5[]?=?{“??沒有找到?????“};
uchar?code??DIS6[]?=?{“請輸入管理員密碼“};
uchar?code??DIS7[]?=?{“1.添加指紋?????“};
uchar?code??DIS8[]?=?{“2.清空指紋?????“};
uchar?code??DIS9[]?=?{“3.開鎖密碼?????“};
uchar?code??DIS10[]?=?{“4.管理密碼?????“};
uchar?code??DIS11[]?=?{“??請輸入指紋???“};
uchar?code??DIS12[]?=?{“??請再次輸入指紋“};
uchar?code??DIS13[]?=?{“添加成功ID:???“};
uchar?code??DIS15[]?=?{“??清空成功?????“};
uchar?code??DIS16[]?=?{“??清空失敗?????“};
uchar?code??DIS17[]?=?{“??確認清空????“};
uchar?code??DIS18[]?=?{“??請輸入新密碼?“};
uchar?code??DIS19[]?=?{“??確認修改????“};
uchar?code??DIS20[]?=?{“??修改成功?????“};
uchar?code??DIS21[]?=?{“??復位成功?????“};
/*************?12864LCD引腳定義?*************/
#define?LCD_data??P2???????//數據口
sbit?LCD_RS??=??P0^0;??????//寄存器選擇輸入?
sbit?LCD_RW??=??P0^1;??????//液晶讀/寫控制
sbit?LCD_EN??=??P0^2;??????//液晶使能控制
sbit?LCD_PSB?=??P0^3;??????//串/并方式控制
sbit?LCD_RST?=??P0^4;??????//液晶復位端口
#define?delayNOP();?{_nop_();_nop_();_nop_();_nop_();};
void?delay(int?ms)
{
????while(ms--)
{
??????uchar?i;
??for(i=0;i<150;i++)??
???{
????_nop_(); ???
_nop_();
_nop_();
_nop_();
???}
}
}
/*******************************************************************/
/*?????????????????????????????????????????????????????????????????*/
/*檢查LCD忙狀態????????????????????????????????????????????????????*/
/*lcd_busy為1時,忙,等待。lcd-busy為0時閑,可寫指令與數據。??????*/
/*?????????????????????????????????????????????????????????????????*/
/*******************************************************************/
bit?lcd_busy()
?{??????????????????????????
????bit?result;
????LCD_RS?=?0;
????LCD_RW?=?1;
????LCD_EN?=?1;
????delayNOP();
????result?=?(bit)(LCD_data&0x80);
????LCD_EN?=?0;
????return(result);?
?}
/*******************************************************************/
/*?????????????????????????????????????????????????????????????????*/
/*寫指令數據到LCD??????????????????????????????????????????????????*/
/*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。?????????????????????????????*/
/*?????????????????????????????????????????????????????????????????*/
/*******************************************************************/
void?lcd_wcmd(uchar?cmd)
{??????????????????????????
???while(lcd_busy());
????LCD_RS?=?0;
????LCD_RW?=?0;
????LCD_EN?=?0;
????_nop_();
????_nop_();?
????LCD_data?=?cmd;
????delayNOP();
????LCD_EN?=?1;
?
- 上一篇:在線同學錄系統
- 下一篇:51單片機8位搶答器源程序
評論
共有 條評論