Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

  key = keypad(keypress, first);

  PORTB = 0xFD;

  keypress = PORTB;

  key = keypad(keypress, second);

  PORTB = 0xFB;

  keypress = PORTB;

  key = keypad(keypress, third);

  PORTB = 0xF7;

  keypress = PORTB;

  key = keypad(keypress, fourth);

 }

}


/*------------------------------------------------------------------------*/

/*Функция keypad определяет, была ли нажата какая-либо клавиша.           */

/*Функция сравнивает прочитанное значение порта PORTB с тем значением,    */

/*которое было выдано на порт PORTB. Если они равны, то ни одна клавиша в */

/*ряду не нажата                                                          */

/*------------------------------------------------------------------------*/

char keypad(unsigned char keypress, unsigned char row) {

 char key1;

 if (keypress != row) { /*какая-то клавиша нажата*/

  key1 = which_key(keypress); /*определить клавишу*/

  putchars(key1); /*передать символ на дисплей*/

 } else if(keypress == row) { /*ни одна из клавиш не нажата*/

  key1 = 'Z';

 }

 return (key1);

}


/*------------------------------------------------------------------------*/

/* Функция char which_key определяет код нажатой клавиши методом перебора */

/*табличных значений                                                      */

/*------------------------------------------------------------------------*/

char witch_key(unsigned char keypress) {

 char key;

 switch(keypress) /*распознавание кода клавиши*/

 {

 case 0xEE:

  key = '0'; /*нажата клавиша "0"*/

  break;

 case 0xDE:

  key = '1'; /*нажата клавиша "1"*/

  break;

 case 0xBE:

  key = '2'; /*нажата клавиша "2"*/

  break;

 case 0x7E:

  key = '3'; /*нажата клавиша "3"*/

  break;

 case 0xED:

  key = '4'; /*нажата клавиша "4"*/

  break;

 case 0xDD:

  key = '5'; /*нажата клавиша "5"*/

  break;

 case 0xBD:

  key = '6'; /*нажата клавиша "6"*/

  break;

 case 0x7D:

  key = '7'; /*нажата клавиша "7"*/

  break;

 case 0xEB:

  key = '8'; /*нажата клавиша "8"*/

  break;

 case 0xDB:

  key = '9'; /*нажата клавиша "9"*/

  break;

 case 0xBB:

  key = 'A'; /*нажата клавиша "A"*/

  break;

 case 0x7B:

  key = 'B'; /*нажата клавиша "B"*/

  break;

 case 0xE7:

  key = 'C'; /*нажата клавиша "C"*/

  break;

 case 0xD7:

  key = 'D'; /*нажата клавиша "D"*/

  break;

 case 0xB7:

  key = 'E'; /*нажата клавиша "E"*/

  break;

 case 0x77:

  key = 'F'; /*нажата клавиша "F"*/

  break;

 default:

  key = 'Z';

 } /*конец распознавание кода клавиши*/

 return(key);

}

/*----------------------------------------------------------*/

Представленный программный код не является полностью завершенной рабочей программой, поскольку в нем отсутствуют элементы защиты от дребезга контактов, отсутствует текст функции вывода символов на ЖК дисплей. Мы исправим эти недостатки несколько позже, в разделе 5.6.

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных