Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_MikroKontrolery_КПЗ_AVR128_укр.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.45 Mб
Скачать

3.2 Опис лабораторної установки

Лабораторна робота виконується в індивідуальному порядку. На кожному робочому місці повинні бути встановлені: багатофункціональний лабораторний макет на базі мікроконтролера AVR ATMEGA 128, ПЕОМ типу IBM PC/AT c інстальованим програмним забезпеченням: операційною системою MS-WINDOWS v. 9x, 2000, XP і программатором на основі крос-компілятора мови програмування C CodeVision AVR. Завдання виконуються на лабораторному макеті на базі 8-ми розрядного мікроконтролера AVR ATMEGA 128. Докладний опис лабораторного макета наведено в пункті 1.2 лабораторної роботи № 1.

У даній роботі основним використовуваним периферійним устаткуванням лабораторного макета будуть матрична клавіатура 34 (див. рисунок 2.4), яка підключається до мікроконтролера через порт Е, і цифровий 10-ти позиційний жидкокристалічний індикатор (див рисунок 3.4), керуюча частина якого виконана на основі контролера Holtek НТ1613. Індикатор підключається до лабораторного макета за допомогою 4-х провідного кабелю з роз’ємом DB-25. Тактовий SK і інформаційний DI входи індикатора підключені до 0-го й 1-го виходів порту вводу/виводу B мікроконтролера відповідно; дві інші лінії підключаються до джерела живлення +5 В та загальному дроту.

Рисунок 3.4 - Загальний вид панелі цифрового індикатора

і интерфейсного роз’єму

3.3 Порядок проведення роботи й вказівки по її виконанню

Перед початком виконання практичної частини лабораторної роботи проводиться експрес-контроль знань по принципах функціонування мікроконтролера AVR ATMEGA 128, системі команд і можливостям організації програмного керування виводом символів на екран цифрового індикатора.

При підготовці до лабораторної роботи необхідно скласти попередній варіант листинга програми, у відповідність із індивідуальним завданням (див. таблицю 3.2).

Завдання. Розробити в середовищі програмування Code Vision AVR програму для мікроконтролера AVR ATMEGA 128, що виконує опитування клавіатури лабораторного макета й виводить інформацію про натиснуті клавіші (або комбінаціях клавіш) на екран цифрового індикатора. Позначення клавіш наведені на рис. 2.4. Варіанти індивідуальних завдань представлені в таблиці 2.1.

Порядок виконання завдання:

  1. Включити лабораторний макет (установити вимикач електроживлення в положення I, і переконатися у світінні індикатора електроживлення червоними кольорами).

  2. Запустити компілятор Code Vision AVR.

  3. Створити порожній проект.

  4. Створити файл ресурсу для коду програми й підключити його до проекту.

  5. Увести код вихідного модуля програми виводу інформації на екран цифрового індикатора у відповідність із кодом натиснутої клавіші відповідно до варіанта завдання, зазначеному в таблиці 3.2.

  6. Виконати компіляцію (нажавши клавішу F9) вихідного модуля програми й усунути помилки, отримані на даному етапі.

  7. Настроїти параметри программатора.

  8. Створити завантажувальний модуль програми (нажавши комбінацію клавіш Shift+F9) і виконати програмування мікроконтролера.

  9. Перевірити працездатність завантаженої в мікроконтролер програми й показати результати роботи викладачеві.

  10. У випадку некоректної роботи розробленої програми, виконати апаратне скидання мікроконтролера, провести налагодження вихідного модуля програми й заново перевірити функціонування програми, повторивши виконання пункту 9.

Приклад виконання завдання. Розробити програму, що виводить на екран цифрового індикатора символ 1 при натисканні на клавішу 1, і символ 2 при натисканні комбінації клавіш 1+2. Нумерація клавіш матричної клавіатури 3×4 наведена на рис. 2.4.

Рішення: у лабораторному макеті матрична клавіатура 34 підключена до порту E мікроконтролера. Лінії старшої тетрады порту Е настроюються на вивід даних, а лінії молодшої тетрады - на уведення. Входи цифрового індикатора підключені до виходів порту B мікроконтролера у відповідність зі схемою на рис. 3.2. Порт В настроюється на вивід даних. Основна частина програми у відповідність із алгоритмом, зображеним на рис. 3.5, містить цикл опитування клавіатури, перевірку натискання клавіші 1 або комбінації клавіш 1+2 і процедури виводу символів 1 і 2 на індикатор.

Рисунок 3.5 - Алгоритм програми виводу символу на екран цифрового

індикатора залежно від даних, прийнятих із клавіатури

Для того, щоб символи щораз заносилися в крайню праву позицію екрана індикатора, а уведені раніше символи не відображалися, необхідно безпосередньо перед виводом інформаційного символу виконати вивід дев'яти символів табуляції. Повний текст вихідного модуля програми з докладними коментарями приводиться нижче:

#include <mega128.h> Підключити заголовний файл mega128.h;

main() { основна частина програми;

#asm початок коду ассемблерної вставки;

ldi R18,0b11100000 запис маскуючи констант у регістри;

ldi R19,0b11111111

ldi R20,0b11110000

out 02,R20 настроювання ліній E0-3 на уведення, а E4-7 на вивід;

out 0x17, R19 установити режим виводу для порту B;

out 03,r18 обнулити біт E4 для опитування клавіш 1-го стовпця;

loop1: стартова мітка циклу опитування;

in r16,01 зчитати дані з регістра PINE в R16;

or r16,r20 застосувати маску для виділення даних у молодшій тетраді регістра R16;

cpi R16,0b11111110 перевірити натискання клавіші 1;

brne lbl якщо клавіша 1 не натиснута, то перехід на мітку lbl для продовження процедури перевірки;

ldi R27,9 організувати цикл із параметром в R27 з 9 ітерацій;

lblc: стартова мітка циклу з параметром;

вивід символу табуляції з кодом 0000;

cbi 0x18,1 біт b3;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b2;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b1;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b0;

sbi 0x18,0

cbi 0x18,0

dec R27 завершальний код циклу з 9 ітерацій;

cpi R27,0

brne lblc:

вивід символу 1 на екран цифрового індикатора;

cbi 0x18,1 біт b3;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b2;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b1;

sbi 0x18,0

cbi 0x18,0

sbi 0x18,1 біт b0;

sbi 0x18,0

cbi 0x18,0

rjmp vihod виконати перехід для завершення поточної ітерації циклу;

lbl: мітка фрагмента перевірки натискання комбінації клавіш 1+2;

cpi R16, 0b11111100 виконати перевірку натискання комбінації клавіш 1+2;

brne vihod якщо комбінація клавіш 1+2 не натиснута, то перехід на мітку vihod для виходу з поточної ітерації циклу;

ldi R27,9 організувати цикл із параметром в R27 з 9 ітерацій;

lblc2: стартова мітка циклу з параметром;

вивід символу табуляції з кодом 0000;

cbi 0x18,1 біт b3;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b2;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b1;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b0;

sbi 0x18,0

cbi 0x18,0

dec R27 завершальний код циклу з 9 ітерацій;

cpi R27,0

brne lblc2:

вивід символу 2 на екран цифрового індикатора;

cbi 0x18,1 біт b3;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b2;

sbi 0x18,0

cbi 0x18,0

sbi 0x18,1 біт b1;

sbi 0x18,0

cbi 0x18,0

cbi 0x18,1 біт b0;

sbi 0x18,0

cbi 0x18,0

vihod: мітка завершення коду поточної ітерації циклу опитування;

rjmp loop1 виконати перехід до нової ітерації циклу опитування;

#endasm завершення коду ассемблерної вставки;

} завершальна операторна дужка програми;

Таблиця 3.2 – Варіанти індивідуальних завдань*

№ п. п.

Завдання

1

Розробити програму, що виводить на екран цифрового індикатора символ 8 при натисканні на клавішу 8, і символ 9 при натисканні комбінації клавіш 5+6.

2

Розробити програму, що виводить на екран цифрового індикатора символи 2 і 3 при натисканні на клавіші 2 і 3 відповідно.

3

Розробити програму, що виводить на екран цифрового індикатора символ 5 при натисканні на клавішу 12, і символ 6 при натисканні комбінації клавіш 9+10+11.

4

Розробити програму, що виводить на екран цифрового індикатора символи 3 і 4 при натисканні на клавіші 3 і 4 відповідно.

5

Розробити програму, що виводить на екран цифрового індикатора символ 8 при натисканні на клавішу 11, і символ 7 при натисканні комбінації клавіш 9+10.

6

Розробити програму, що виводить на екран цифрового індикатора символ 0 при натисканні на клавішу 1, і символ 1 при натисканні комбінації клавіш 1+2+3+4.

7

Розробити програму, що виводить на екран цифрового індикатора символи 6 і 7 при натисканні на клавіші 6 і 7 відповідно.

8

Розробити програму, що виводить на екран цифрового індикатора символ 5 при натисканні на клавішу 5, і символ 6 при натисканні комбінації клавіш 5+6+7.

9

Розробити програму, що виводить на екран цифрового індикатора символ 7 при натисканні на клавішу 7, і символ 8 при натисканні комбінації клавіш 5+6.

10

Розробити програму, що виводить на екран цифрового індикатора символ 4 при натисканні на клавішу 12, і символ 5 при натисканні комбінації клавіш 11+12.

* Нумерація клавіш матричної клавіатури 3×4 наведена на рис. 2.4.

3.4 Зміст звіту

У звіті необхідно привести наступне:

характеристики лабораторної обчислювальної системи;

вихідний модуль розробленої програми;

аналіз отриманих результатів і короткі виводи по роботі, у яких необхідно відбити особливості керування виводом даних на екран цифрового індикатора за допомогою мікроконтролера AVR ATMEGA 128.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]