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

В сети

Пользователей: 114
Из них просматривают:
Аналоги: 35. Видео: 1. Даташиты: 16. Инструкции: 7. Новости: 19. Остальное: 10. Ошибки: 1. Программы: 4. Профиль пользователя: 2. Расчёты: 1. Теги: 1. Торрент: 4. Форум: 10. Чат: 3.
Участников: 5
Гостей: 109

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
<< Меню >>  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

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

Интересно

Наличие высокого напряжения на присоске можно проверить отверткой, соединенной с корпусом через резистор 3-5 МОм

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