Шрифт:
code[count] = key; //записать очередной символ в
//массив ввода
count++; //перейти к сканированию следующего
//символа
}
}
for(i=0; i<= 50; i++) // ожидание ввода символа
{
PORTB = 0х02; //опрос второго ряда клавиатуры
keypress = PORTB;
key = keypad(keypress, second);
if (key != 'Z') {
printf("%с", key);
code[count] = key; //записать очередной символ в
//массив ввода
count++; //перейти к сканированию следующего
//символа
}
}
for(i=0; i<= 50; i++) //ожидание ввода символа
{
PORTB = 0х04; //опрос третьего ряда клавиатуры
keypress = PORTB;
key = keypad(keypress, third);
if (key != 'Z') {
printf("%c", key);
code[count] = key; //записать очередной символ в
//массив ввода
count++; //перейти к сканированию следующего
//символа
}
}
for(i=0; i<= 50; i++) //ожидание ввода символа
{
PORTB = 0х08; //опрос четвертого ряда клавиатуры
keypress = PORTB;
key = keypad(keypress, fourth);
if (key != 'Z') {
printf("%c", key);
code[count] = key; //записать очередной символ в
//массив ввода
count++; //перейти к сканированию следующего
//символа
}
}
} //очередные 4 символа введены, можно сверять с эталонными
/*Проверка соответствия кода на эталонный*/
j = 0;
for(i=0;i<3;++i) //проверка по каждому символу эталонной
//последовательности
{
if(pin[i]==code[i]) //очередной символ правильный
{
j++;
} else //очередной символ неправильный
{
j--;
}
}
if (j == (length - 1)) //если j=3, то все символы введены правильно
{
putcommands(0x01);
lcd_print("Access Granted");
}
else //символы введены неправильно
{
putcommands(0x01);
lcd_print("Access Denied");
}
}
putcommands(0x01);
lcd_print(" Goodbye ! "); //конец попыток ввода
}
/*--------------------------------------------------------------------*/
/*Перечень функций, которые использованы в этой программе */
/*--------------------------------------------------------------------*/
/* Функции, программный код которых был приведен ранее по тексту главы*/
char which_key(unsigned int keypress);
void delay_5ms(void);
void delay_100us(void);
void initialize_lcd(void);
void putchars(unsigned char с);
void putcommands(unsigned char d);
void lcdprint(char *string);