Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
char code[4]; //массив для введенной пользователем
//последовательности символов
initialize_lcd ; //инициализация ЖК индикатора
initialize_key; //инициализация портов для клавиатуры
for (k=0; k<4; k++) //разрешает 4 раза ввести комбинацию из
{ //4 символов
count = 0;
putcommands(0x01);
lcd_print("Enter Code:");
while (count < length) //обработка 4
нажатий клавиатуры
{
for(i=0; i<=50; i++) //ожидание ввода символа
{
PORTB = 0х01; //опрос первого ряда клавиатуры
keypress = PORTB;
key = keypad(keypress, first);
if (key != 'Z') //если клавиша нажата
{
printf("%c", key);
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);
Поделиться:
Популярные книги
Солнечный корт
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
О, мой бомж
1. Несвятая троица
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Возвышение Меркурия. Книга 2
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Вы не прошли собеседование
1. Укротить миллионера
Любовные романы:
короткие любовные романы
5.00
рейтинг книги
Метаморфозы Катрин
Фантастика:
фэнтези
8.26
рейтинг книги
Эволюция мага
2. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Попаданка для Дракона, или Жена любой ценой
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Истинная поневоле, или Сирота в Академии Драконов
3. Академия Драконов, или Девушки с секретом
Любовные романы:
любовно-фантастические романы
6.37
рейтинг книги
Сумеречный Стрелок 5
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 17
17. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Переиграть войну! Пенталогия
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Волков. Гимназия №6
1. Волков
Фантастика:
попаданцы
альтернативная история
аниме
7.00
рейтинг книги
Картофельное счастье попаданки
Фантастика:
фэнтези
5.00