![]() | |
НПО Системы Безопасности (499)340-94-73 График работы: ПН-ПТ: 10:00-19:00 СБ-ВС: выходной ![]() ![]() |
Главная » Периодика » Безопасность 0 ... 66676869707172 ... 159 switch (PORTB & OxOOF) { Поиск нажатой клавиши, case ОхООЕ: Строка 0. key = i; break; case OxOOD: Строка 1. case OxOOC: key = 0x04 + 1; break; case OxOOB: Строка 2. case OxOOA; case 0x009: case 0x008; key = 0x08 + i; break; else Строка 3. key = OxOC + i; break; } Окончание switch, if (key == KeySave) { keycount = keycount + 1); Инкрементирование счетчика, if (keycount == 4) keyvalid = key; Устранение дребезга. } else keycount = 0; Совпадения нет - начать с начала. KeySave = key; Текущее значение клавиши сохраняется в течение 5 мс. } Запоминание кода клавиши. Данная программа позволяет задавать для каждой клавиши так называемый скан-код. Это значение будет возвраш;аться, если программа зарегистрирует его четыре раза подряд. Таким образом программа позволяет устранить влияние дребезга контактов клавиши в процессе сканирования: если указанное значение не изменяется в течение четырех временных интервалов (обш;ей продолжительностью 20 мс), предполагается, что влияние дребезга контактов полностью устранено. ОБЪЕДИНЕНИЕ ВХОДОВ И ВЫХОДОВ При подключении PIC-микроконтроллеров к устройствам, которые могут быть как приемниками, так и передатчиками данных (например, к запоминаюш;ему устройству, имеющему независимые вход и выход), для исключения конфликтных ситуаций на линии на одном из выходов следует использовать дополнительный развязывающий резистор (рис. 8.10). Микроконтроллер 10 К Устройство ввода/вывода { Вывод данных { Ввод данных Рис. 8.10 Схема двунаправленной линии Это может касаться и кнопок (клавиш), непосредственно соеди-неных с линиями ввода/вывода Р1С-микроконтроллера (рис. 8.11). Микроконтроллер 100 К Устройство ввода/вывода £ Ввод/вывод данных Рис. 8.11 Схема подключения кнопки к линии передачи цифровой информации СХЕМА ЭМУЛЯЦИИ ВЫВОДА С ОТКРЫТЫМ КОЛЛЕКТОРОМ/ОТКРЫТЫМ стоком Схема вывода с открытым стоком для PIC-микроконтроллеров показана на рис. 8.12. Подобные выводы имеются во многих устройствах и используются для выполнения самых разных операций. Их работа может эмулироваться и обычным выводом с помощью приведенной ниже про-{>аммы. Программа устанавливаетнизкий уровень на выходе, когда йт переноса сброшен, и задает выводу режим входа, когда бит переноса установлен: - Регистр i TRIS Запись в порт - Регистр PORT <1 Чтение из порта Рис. 8.12 Схема вывода с открытым аоком
УПРАВЛЕНИЕ СВЕТОДИОДНЫМИ ИНДИКАТОРАМИ Схема, поясняющая принцип управления светодиодными индикаторами, показана на рис. 8.13. Светодиодный индикатор (Light Emitting Diode) зажигается в тех случаях, когда для использующегося в качестве выходного вывода микроконтроллера, соединенного с катодом светодиода, задан логический О (потенциал «земли»). При подаче на этот вывод логической I светодиодный индикатор отключается. Многосегментные светодиодные индикаторы Семисегментные свет.одиодные индикаторы (рис. 8.14) также могут использоваться в вышеупомянутой схеме и не требуют каких-либо существенных изменений программного обеспечения. Включая определенные сегменты этого индикатора можно отображать на соответствующем индикационном табло десятичные цифры. 0 ... 66676869707172 ... 159 |