• 大小: 23KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-07-10
  • 语言: 其他
  • 标签: 11  

资源简介

基于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;
 

评论

共有 条评论