Читать «Как проектировать электронные схемы» онлайн - страница 88

Клод Галле

Контроль за нажатием клавиши

В электронике при обработке операции нажатия на клавишу обычно принимаются меры против возможных сбоев, связанных с неполным (слишком кратковременным) нажатием. Аналогичный подход используется и в микропроцессорах.

Когда нажатие зафиксировано, запускается временная задержка порядка 20 мс, за которой следует новый тест состояния клавиши. Если она остается нажатой, выполняется соответствующая процедура и устройство «ждет», когда клавиша будет отпущена, чтобы продолжить выполнение программы. Если результат теста оказался противоположным, последующие действия зависят от того, какое нажатие предусмотрено для данной клавиши: длительное или кратковременное. В первом случае процедура, вызываемая нажатием, отменяется. Во втором случае она выполняется (по истечении времени задержки), после чего устанавливается режим ожидания нового нажатия.

В следующем примере по одной из линий коммуникационного порта (бит 0 порта А) выполняется считывание. При отсутствии сигнала линия имеет высокий потенциал. Предполагается, что считывание продолжается, пока не будет нажата клавиша и не выполнится подпрограмма, обеспечивающая заданное время задержки (20 мс).

Подпрограмма подачи звуковых сигналов

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

Простой зуммер (без встроенной электроники) в сочетании с несложной подпрограммой дает возможность генерировать большой набор различных сигналов. Вместо зуммера можно применять динамик, но он сложнее в обращении и занимает больше места. Генератор обеспечивает изменение уровня логического сигнала со звуковой частотой.

Некоторая сложность состоит в обеспечении (при необходимости) постоянной длительности звукового сигнала наряду с изменением частоты следования импульсов. В таком случае нужно задать общее число генерируемых импульсов в зависимости от частоты. Эту проблему можно обойти с помощью специально созданной таблицы длительностей. Если генерируемый сигнал соответствует стандарту RS232, его можно передать другому устройству через один из портов. При этом кроме подачи звукового сигнала появляется возможность предупредить внешнее устройство информационной системы о сбое.

В приведенной ниже подпрограмме для создания временных задержек в очередной раз используется длительность выполнения команд. Информация хранится в регистрах А и X; выходной сигнал подается на линию, соответствующую биту 1 порта А. Его частота составляет приблизительно 1000 Гц при длительности 250 мс.

Формирование временной задержки

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