Разделы инструкций

В сети

Пользователей: 111
Из них просматривают:
Аналоги: 52. Даташиты: 10. Инструкции: 7. Новости: 16. Остальное: 5. Программы: 2. Форум: 16. Чат: 3.
Участников: 5
Гостей: 106

an , alex01981 , Google , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Функции для работы с клавиатурой

Рассмотрим функции для работы с клавиатурой, организованной в виде матрицы 4x4. Данные функции также могут использоваться для обслуживания клавиатур 4х1, 4х2 и 4хЗ. Схема подключения клавиатуры представлена на рисунке 23.

 

Рис. 23. Схема подключения клавиатуры 4x4

Рис. 23. Схема подключения клавиатуры 4x4

 
Для работы С клавиатурой испатьзуют-ся библиотечные функции Keypad_Init, Keypad_Read и Keypad_Released. Описание этих функций представлено в таблицах 4,5 и 6 соответственно.

 

 Таблица 4. Описание функции Keypad_Init  

Прототип

void Keypad_Init(unsigned *port)

Возвращаемое значение

Нет

Описание

Инициализирует порт для работы с клавиатурой. Должна вызываться перед использованием других функций данной библиотеки

Требования

Нет

Пример  

Keypad_Init(&PORTB)

 

 Таблица 5. Описание функции Keypad_Read

Прототип

unsigned short Keypad_Read(void)

Возвращаемое значение

1 -16 в зависимости от нажатой клавиши и 0, если нет нажатых клавиш

Описание

Проверяет нажатие клавиши. Функция возвращает 1 -16 в зависимости от нажатой клавиши и 0, если нет нажатых клавиш

Требования

Порт должен быть предварительно проинициализирован с помощью функции Keypad_Init

Пример     

kp = Keypad_Read()

 

 Таблица 6. Описание функции Keypad_Released

Прототипunsigned short Keypad_Released(void)
Возвращаемое значениеВозвращаемое значение 1 – 16 в зависимости от клавиши
Описание

Вызов функции Keypad_Released – блокирующий: функция ждёт, пока клавиша не будет

нажата и отпущена. При отпускании функция возвращает код от 1 до 16 в зависимости от клавиши    

ТребованияПорт должен быть предварительно проинициализирован с помощью функции Keypad_Init
Примерkp = Keypad_Released()

 
Следующий программный код может быть использован для проверки клавиатуры. Он поддерживает клавиатуры с матричной организацией от 1 до 4 строк и от 1 до 4 столбцов. Код, возвращаемый библиотечными функциями, перекодируется в ASCII-коды [0..9, A..F]. Дополнительно используется однобайтовый счётчик для вывода общего количества нажатий на клавиши во второй строке ЖКИ.

 

 unsigned short kp, cnt; 
char
txt[5];
void
main() {
cnt = 0;
Keypad_Init(&PORTC);

Lcd_Init(&PORTB); // Инициализация LCD на PORTC
Lcd_Cmd(LCD_CLEAR);
// Очистка дисплея
Lcd_Cmd(LCD_CURSOR_OFF);
// Отключение курсора
Lcd_Out(
1, 1, "Key :");
Lcd_Out(2, 1, "Times:");
do
{
 kp = 0; // Ожидание нажатия клавиши
do

//закомментировать неиспользуемую функцию опроса клавиатуры kp = Keypad_Released();
//kp = Keypad_Read();
while (!kp);
cnt++; // подготовить значение для вывода
if (kp > 10)
kp +=
54;
else

kp +=
47;
// вывод его на LCD

Lcd_Chr(1, 10, kp);
WordToStr(cnt, txt);

Lcd_Out(2, 10, txt);
}
while (1);
}
// конец прораммы

   

2
<< Меню >>  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

Храните микросхемы в упаковке, обеспечивающей закорачивание их выводов, например, завернутыми в алюминиевую фольгу.

Интересно

Если "ревёт" один из дросселей резонансного стабилизатора, забейте деревянный клин между его катушками.

Похожие инструкции