用C语言来编写51单片机液晶显示屏幕的修改密码功能

来源:互联网 发布:java中根号怎么表示 编辑:程序博客网 时间:2024/05/22 11:31

这里面主要就是用了一个main.c函数,至于其他的头文件就先算了

#include "bsp.h"


//unsigned char time[20] = {0};
unsigned char code number[10] = {0X30, 0X31, 0X32, 0X33, 0X34, 0X35, 0X36,
0X37, 0X38, 0X39
};
unsigned char* right = "You are right!";
unsigned char* wrong = "     Wrong!     ";
unsigned char* reset = "                  ";
unsigned char* code_change = "Change your code!";
unsigned char* sbit_change = "change success!";
unsigned char* shuru = "Input your code";
//unsigned char* hllo = "     hello!world ";
unsigned char lcd_code[8] = {1, 9, 9, 7, 0, 6, 1, 3};
unsigned char lcd_i = 0;
unsigned char lcd_out[8] = {0};
unsigned char change_code = 0;


//void change_mima(void);
void delay_s(void);
void main()
{
init_bsp();


while(1)
{
mkey_scan();
mkey_port();




if ((Mkeyvalue < 16)&&(Mkeyvalue >= 0))
{


// lcd_write_strings(0, 0, code_change);
if (Mkeyvalue == 15)//修改密码的条件
{
lcd_write_strings(0, 0, shuru);
change_code = 1;//这里对应着下面,先输入一次正确的密码,然后才能修改密码
delay_s();
lcd_write_strings(0, 0, reset);
Mkeyvalue = -1;
// lcd_i = -1;
}
if (change_code == 2)
{
if ((Mkeyvalue < 17)&&(Mkeyvalue >= 0))
{

//    change_mima();
write_com(0X80 + lcd_i);
write_data(number[Mkeyvalue]);
lcd_out[lcd_i] = Mkeyvalue;
Mkeyvalue = -1;
lcd_i++;
if (lcd_i > 7)
{
lcd_code[0] = lcd_out[0];
lcd_code[1] = lcd_out[1];
lcd_code[2] = lcd_out[2];
lcd_code[3] = lcd_out[3];
lcd_code[4] = lcd_out[4];
lcd_code[5] = lcd_out[5];
lcd_code[6] = lcd_out[6];
lcd_code[7] = lcd_out[7];
change_code = 0;//修改密码输对一次,只能改一次,改完密码,立刻归为
lcd_write_strings(0, 0, sbit_change);//密码修改成功的标志
delay_s();
lcd_write_strings(0, 0, reset);
}

}
}
if ((Mkeyvalue != 15)&&(Mkeyvalue < 16)&&(Mkeyvalue >= 0))
{
write_com(0X80 + lcd_i);
write_data(number[Mkeyvalue]);
lcd_out[lcd_i] = Mkeyvalue;
Mkeyvalue = -1;
lcd_i++;
if (lcd_i > 7)
{
lcd_i = 0;
if ((lcd_code[0] == lcd_out[0])&&(lcd_code[1] == lcd_out[1])&&
(lcd_code[2] == lcd_out[2])&&(lcd_code[3] == lcd_out[3])&&
(lcd_code[4] == lcd_out[4])&&(lcd_code[5] == lcd_out[5])&&
(lcd_code[6] == lcd_out[6])&&(lcd_code[7] == lcd_out[7]))
{
lcd_write_strings(0, 0, right);
if (change_code == 1)
{
change_code = 2;//change_code = 2就可以修改密码了
}
delay_s();
lcd_write_strings(0, 0, reset);


}
else
{

  lcd_write_strings(0, 0, wrong);
delay_s();
lcd_write_strings(0, 0, reset);

}
}
}
}




}
}
void delay_s(void) //延时函数
{
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);



}

原创粉丝点击