обробнику з порту Р3.4, Р3.5, Р3.7 зчитується код клавіші і виконується його перетворення. Таким чином, визначається, яка клавіша натиснута і відповідно, яку дію варто вжити, для того щоб виконати установку заданих параметрів. У обробнику переривань перевіряємо, якщо попередній стан (попередня натиснута клавіша) не дорівнює поточному (поточної клавіші), то ми обслуговуємо момент натискання. При натисканні нульової клавіші (хто клав включення/виключення) змінюється стан прапора onoff, при натисканні першої клавіші система переходить у нічний режим (мінімальна швидкість подачі повітря для найменшого виникнення шуму). Друга і третя клавіші для регулювання швидкості подачі повітря (+/- відповідно), четверта і п'ята клавіші для регулювання температури (+/- відповідно), шоста і сьома клавіші для регулювання таймера (+/- відповідно). Перевіряємо відповідні умови. p align="justify">) Оброблювач переривання таймера 0 interrupt1. У даному обробнику ми спочатку виробляємо перезавантаження таймера/лічильника. Предделітель, завантажуючи константу d8, ef відповідно в старшу і молодшу частину TH, TL (TH0 = 0xd8, TL0 = 0xef). Що забезпечує частоту переповнень 100 разів на секунду. p align="justify"> Запускається висновок інформації на індикатор. При цьому змінна flag буде вказувати, що буде виводитися на семисегментні індикатори. Температура для виведення розраховується діленням на 10 (десятки) або отриманням залишку від ділення на 10 одиниці градусів. p align="justify"> Таким чином, в кожному такті обробника переривання виводимо раніше заповнений масив даних, що відображаються, тактіруя сигналом l, переводячи його в 0, потім в 1.
Далі йде підрахунок часу. Він ведеться змінної sec100 (вона відраховує соті частки секунд), інкрементіруем її в кожному перериванні таймера, ми отримуємо при sec100 = 1 відлік першої секунди. Тут же ми інкрементіруем змінну секунди і перевіряємо, не дорівнює чи вона 60, якщо так, то Обнуляємо її, а збільшуємо хвилини. Аналогічно перевіряються і хвилини. Також контролюються і годинник, але до 24. p align="justify"> Процедура обміну з термометром. У першому такті виконується скидання лінії зв'язку з датчиком температури в 0 (Р3.2 = 0), і утримується лінія зв'язку в нульовому стані до наступного переповнення таймера. У наступному такті лінія переводиться в одиничний стан (Р3.2 = 1) і витримується пауза в 45 мкс. Потім перевіряємо лінію, що вона знаходиться в нульовому стані. Це говорить про те, що термометр відповів. Якщо термометр відповів, витримуємо паузу в 250 мкс (50 разів повторюючи цикл for) і перевіряємо, що лінія зберегла свій стан в 1 (НЕ закорочена). Це говорить про те, що датчики готові до обміну. ​​p align="justify"> Далі передається команда 0хСС згідно стандарту шини IWare. Після чого посилається команда 0х44, запускаючи конвертування (вимірювання температури цифровим датчиком). Контролюючи змінну sec100, коли вона дорівнює 77 (тобто пройшло 750 мкс, потрібних д...