В«4В» (+) температура на дисплеї збільшується на 1 про , відповідно після кожного натискання кнопки В«5В» (-) температура зменшується на 1 і як тільки досягає 0, прирощення зупиняється.
Так як передбачений лічильник часу необхідно встановити час, що збігається з діючим. При введенні часу спочатку висвічуються хвилини, починаючи з 1хв., Потім, при натисканні на кнопку В«6В» параметр збільшується на 1хв., Як тільки параметр стає дорівнює 60с, то час автоматично перекладається в години і, при натисканні на кнопку В«7В» час збільшується на 1 годину, після того як параметр стає дорівнює 24г., він переводиться в 0, після цього відлік починається заново.
Спочатку програми знаходиться блок оголошення змінних. У цьому блоці регістрів і спеціальним бітам системних регістрів присвоюються символьні значення для більш зручного звернення до них. Також описуються і инициализируются допоміжні керуючі прапори і змінні. p align="justify"> Потім йде блок ініціалізації програми. У цьому блоці здійснюється первісна настройка мікроконтролера. p align="justify"> Після скидання відбувається ініціалізація контролера. Призначається предделітель таймера1. При цьому таймер1 встановлюється в TH1 = 0xFD. Ця константа порахована для режиму SCON = 0x50 при частоті кварцу 11000,0952 МГц. Цей предделітель дає швидкість на послідовному порту близьку до стандартної швидкості 9600. Також для таймера1 встановлюється другий режим роботи, що забезпечує автоматичну навантаження предделітеля з TH ВTL. Таким чином, вирішується питання автоматичного завдання частоти. p align="justify"> Таймер0 встановлюється в перший режим 16-бітного лічильника і надалі буде використовуватися для підрахунку часу. Таймер0 використовує обробник прериванія1 і для його дозволу необхідно встановити прапор ET0 в одиничний стан (ET0 = 1). Для запуску таймера0 TR0 встановлюємо в одиницю (TR0 = 1), одночасно запускаємо і таймер1 (TR1 = 1). p align="justify"> Для обробки переривань від клавіатури встановлюємо прапор EX1 в одиничний стан (ЕХ1 = 1) і дозволяємо всі переривання прапором ЕА (ЕА = 1).
Для обробки переривань від послідовного порту встановлюємо ES в одиницю (ES = 1).
Потім встановлюємо порт Р1 в нульовий стан (Р1 = 0, тобто все вимкнено за замовчуванням).
Прапор включення onoff встановлюємо в нульовий стан (flagonoff = 0, тобто він вимкнений). span>
Йде ініціалізація змінних годин, хвилин, секунд. Крок прийому в нульовому стані (step = 0), команда в нульовому стані (komanda = 0). Також скидаються прапори onoff і flag (flagonoff = 0, flag = 0).
Встановлюємо порти Р3.2 і Р3.3 в одиницю на введ...