Описание работы программы

Для обработки прерываний от клавиатуры устанавливаем флаг EX1 в единичное состояние (ЕХ1=1) и разрешаем все прерывания флагом ЕА (ЕА=1).

Для обработки прерываний от последовательного порта устанавливаем ES в единицу (ES=1).

Затем устанавливаем порт Р1 в нулевое состояние (Р1=0, т. е. всё выключено по умолчанию).

Флаг включения onoff устанавливаем в нулевое состояние (flagonoff=0, т. е. он выключен).

Идёт инициализация переменных часов, минут, секунд. Шаг приёма в нулевом состоянии (step=0), команда в нулевом состоянии (komanda=0). Также сбрасываются флаги onoff и flag (flagonoff=0, flag=0).

Устанавливаем порты Р3.2 и Р3.3 в единицу на ввод, как только эти линии будут отпущены в ноль, это сигнализирует о нажатии клавиши.

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

Рассмотрим обработчики прерываний:

)Обработчик прерывания клавиатуры interrupt2 (обслуживает внешнее прерывание int1, возникает, когда int1переходит из 1 в о). В данном обработчике с порта Р3.4, Р3.5, Р3.7 считывается код клавиши и выполняется его преобразование. Таким образом, определяется, какая клавиша нажата и соответственно, какое действие стоит предпринять, для того чтобы выполнить установку заданных параметров. В обработчике прерываний проверяем, если предыдущее состояние (предыдущая нажатая клавиша) не равно текущему(текущей клавише), то мы обслуживаем момент нажатия. При нажатии нулевой клавиши (клавши включения/выключения) изменяется состояние флага onoff, при нажатии первой клавиши система переходит в ночной режим (минимальная скорость подачи воздуха для наименьшего возникновения шума). Вторая и третья клавиши для регулировки скорости подачи воздуха( +/- соответственно), четвёртая и пятая клавиши для регулировки температуры (+/- соответственно), шестая и седьмая клавиши для регулировки таймера (+/- соответственно). Проверяем соответствующие условия.

)Обработчик прерывания таймера0 interrupt1. В данном обработчике мы вначале производим перезагрузку таймера/счётчика. Предделитель, загружая константу d8, ef соответственно в старшую и младшую часть TH, TL (TH0=0xd8, TL0=0xef). Что обеспечивает частоту переполнений100 раз в секунду.

Запускается вывод информации на индикатор. При этом переменная flag будет указывать, что будет выводиться на семисегментные индикаторы. Температура для вывода рассчитывается делением на 10 (десятки) или получением остатка от деления на 10 единицы градусов.

Таким образом, в каждом такте обработчика прерывания выводим ранее заполненный массив отображаемых данных, тактируя сигналом l, переводя его в 0, потом в 1.

Далее идёт подсчёт времени. Он ведётся переменной sec100 (она отсчитывает сотые доли секунд), инкрементируя её в каждом прерывании таймера, мы получаем при sec100=1 отсчёт первой секунды. Здесь же мы инкрементируем переменную секунды и проверяем, не равна ли она 60, если да, то обнуляем её, а увеличиваем минуты. Аналогично проверяются и минуты. Также контролируются и часы, но до 24.

Процедура обмена с термометром. В первом такте выполняется сброс линии связи с датчиком температуры в 0 (Р3.2=0), и удерживается линия связи в нулевом состоянии до следующего переполнения таймера. В следующем такте линия переводится в единичное состояние (Р3.2=1) и выдерживается пауза в 45 мкс. Затем проверяем линию, что она находится в нулевом состоянии. Это говорит о том, что термометр ответил. Если термометр ответил, выдерживаем паузу в 250 мкс (50 раз повторяя цикл for) и проверяем, что линия сохранила своё состояние в 1 (не закорочена). Это говорит о том, что датчики готовы к обмену.

Перейти на страницу: 1 2 3 4 5 6

Прочтите также:

Расчет фазовращателя
Управление фазой сигнала в тракте СВЧ производится с помощью двух- или четырехполюсных устройств с переменными параметрами, изменяющимися под воздействием электрического или магнитного п ...

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

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

Основные разделы

2021 © Все права защищены! >> www.techeducator.ru