в регістр, який не є РОН (регістром загального призначення). Для цього потрібно спочатку за допомогою оператора В«ldiВ» привласнити значення константи РОН, а потім, ііспользуя оператор В«outВ» - вивести значення з РОНА в потрібний регістр. p align="justify"> Отже, инициализируем стек
ldi var, RamEnd
out SPL, var
Тепер займемося налаштуванням портів. Кожен канал порту вводу-виводу (ПВВ) може бути налаштований на вхід або на вихід. p align="justify"> Програмно, порти влаштовані таким чином. Для роботи з будь-яким портом використовується три регістра:
v PortX;
v PinX;
v DDRX.
Де X - буква порту, наприклад PortB, PinD і т.д.
Пристрій ПВВ зображено на малюнку 4.
В
Малюнок 4 - Пристрій портів введення-виведення
мікроконтролер порт програма сигнал
PortX містить інформацію, призначену для вивода.содержіт вводимую інформаціюсодержіт інформацію про те, який канал налаштований на введення, який - на висновок.
Тобто, DDRX визначає, яка ніжка мікросхеми буде підключена до PinX, яка - до PortX: 0 - введення; 1 - висновок.
У схемі проекту пристрої введення/виведення підключені до наступних висновків мікроконтролера:
v висновки сегментів семисегментних індикаторів - до PB0 - PB6;
v кнопки - до PD0, PD1;
v світлодіоди - до PD2, PD3
v загальні висновки семисегментних індикаторів - до PD4, PD5
Програмно реалізуємо це в такий спосіб: var, 0b11111111
out DDRB, varvar, 0b11111100
out DDRD, var
Тепер необхідно налаштувати таймер, використовуваний для реалізації динамічної індикації.
Динамічна індикація - це метод відображення цілісної картини через швидке послідовне відображення окремих елементів цієї картини. Причому, В«цілісністьВ» сприйняття виходить завдяки інерційності людського зору. p align="justify"> Загальний вигляд і схема семисегментний індикатора наведені на рисунку 5.
В
Рисунок 5 - Загальний вигляд і схема семисегментний індикатора
У нашому проекті використовуються семисегментні індикатори із загальним катодом. Це означає, що для підсвічування необхідних сегментів індикатора необхідно на висновки, відповідні цим сегментам подати логічну одиницю, а на загальний висновок використовуваного індикатора, подати логічний нуль. p align="justify"> Тактова частота контролер...