ий біт логічну одиницю. Це робиться для того, щоб у перший момент висновок здійснювався на другий індікатор.ind, 0b00010000
Тепер обнулення змінну В«iВ», значення якої виводиться на 7-сегментні індікаториi, 0
Жодне переривання не почне працювати, поки в тексті програми не зустрінеться команда глобального дозволу переривань В«seiВ» (global interrupt enable), так що далі вкажемо її:
sei
Для глобальної заборони переривань використовується команда В«cliВ» (global interrupt disable).
Вся функціональна частина програми міститься в обробниках переривань, і щоб робота мікроконтролера продовжилася в проміжках між перериваннями компаратора, напишемо порожній цикл :: Stop
Перейдемо до написання обробника переривань компаратора. Вище ми налаштували компаратор на генерацію переривань з частотою 30 Гц, з цією частотою повинні змінюватися сигнали, призначені для першого і другого семесігментних індикатора послідовно. У цьому ж обробнику буде відслідковуватися натискання кнопок, а при їх натисканні здійснюватися підсвічування одного з індикаторів і зменшення/збільшення двозначного шістнадцятирічного числа, виведеного на семисегментні індикатори. Для реалізації описаного алгоритму нам знадобляться наступні слід знати наступні команди:
v cp (ComPare register with register) - порівняти регістр з регістром. У разі рівності результат операції вважається нульовим;
v cpi (ComPare register with Immediate) - порівняти регістр з константою;
v mov - оператор копіювання;
v andi - зробити операцію В«ІВ» між регістром і константою;
v or - зробити операцію В«АБОВ» між двома регістрами;
v brne (Branch if Not Equal) - перехід до мітці, якщо результат попередньої дії - не нуль;
v breq (Branch if Equal) - перехід, якщо результат попереднього дію - нуль;
v inc (Increment) - збільшення значення РОН на 1 (інкремент);
v dec (Decrement) - зменшення значення РОН на 1 (декремент);
v rcall (Relative Call) - виклик підпрограми;
v ret - вихід з підпрограми. При цьому продовжиться виконання програми, що викликала дану підпрограму, з місця виклику. Тобто, з команди, наступної за командою rcall;
v lsr (Logical Shift Right) - логічний зрушення вправо;
v...