- •По дисципліні
- •Харків 2010
- •1 Вивчення системи команд і основних принципів програмування мікроконтролерів на прикладі керування блоком світлодіодів
- •1.1 Вказівки по організації самостійної роботи
- •1.1.2. Програмна модель мікроконтролера avr mega128. Механізм роботи з регістрами, пам'яттю й портами вводу/вивода.
- •1.1.3 Система команд мікроконтролера avr mega128.
- •1.1.4. Синтаксис і основні оператори мови с.
- •1.1.5. Принципи програмного керування світлодіодами, підключеними до зовнішніх виводів портів вводу/виводу мікроконтролера avr atmega128.
- •1.2 Опис лабораторної установки
- •1.2.1. Опис лабораторного макета.
- •Мікроконтролера avr atmega 128
- •1.2.2. Опис блоку світлодіодів лабораторного макета.
- •1.2.3. Опис інтерфейсу компілятора мови з CodeVision avr.
- •1.3 Порядок проведення роботи й вказівки по її виконанню
- •1.5 Контрольні питання й завдання
- •2 Вивчення режиму програмного опитування клавіатури
- •2.1 Вказівки по організації самостійної роботи
- •2.1.1. Принципи аналізу натискання стандартних кнопок за допомогою мікроконтролера avr mega128.
- •2.1.2. Принципи зчитування даних з матричної клавіатури за допомогою мікроконтролера avr атmega128 у режимі програмного опитування.
- •2.2 Опис лабораторної установки
- •2.3 3Порядок проведення роботи й вказівки по її виконанню.
- •Контрольні питання й завдання
- •3 Вивчення принципів програмного керування зовнішніми пристроями на прикладі виводу інформації на цифровий індикатор
- •3.1 Вказівки по організації самостійної роботи
- •3.2 Опис лабораторної установки
- •3.3 Порядок проведення роботи й вказівки по її виконанню
- •Контрольні питання й завдання
- •4 Вивчення принципів обробки переривань на прикладі керування вбудованими у мікроконтролер таймерами-лічильниками
- •4.1 Вказівки по організації самостійної роботи
- •4.1.1. Система переривань у мікроконтролері avr атmega 128.
- •4.1.2. Принципи функціонування апаратних таймерів-лічильників, що входять до складу мікроконтролера avr атmega 128.
- •4.2 Опис лабораторної установки
- •Порядок проведення роботи й вказівки по її виконанню
- •Контрольні питання й завдання
- •5 Вивчення принципів організації обміну даними по послідовному інтерфейсі rs-232c між мікроконтролером avr атmega128 і пеом
- •Вказівки по організації самостійної роботи.
- •5.1.1. Принципи обміну даними по послідовному інтерфейсі rs-232c.
- •5.2 Опис лабораторної установки
- •5.3 Порядок проведення роботи й вказівки по її виконанню
- •Контрольні питання й завдання
- •6 Вивчення принципів роботи з вбудованим у мікроконтролер аналого-цифровим перетворювачем на прикладі виміру температури за допомогою аналогового термодатчика.
- •6.1 Вказівки по організації самостійної роботи
- •6.2 Опис лабораторної установки
- •6.3 Порядок проведення роботи й вказівки по її виконанню
- •6.5 Контрольні питання й завдання
- •Рекомендована література
- •Додаток 1 розташування виводів мікроконтроллера
- •Додаток 2 інструкції процесорів avr
- •До лабораторних робіт з дисциплін
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.
У даній роботі основним використовуваним периферійним устаткуванням лабораторного макета будуть матрична клавіатура 34 (див. рисунок 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.
Порядок виконання завдання:
Включити лабораторний макет (установити вимикач електроживлення в положення I, і переконатися у світінні індикатора електроживлення червоними кольорами).
Запустити компілятор Code Vision AVR.
Створити порожній проект.
Створити файл ресурсу для коду програми й підключити його до проекту.
Увести код вихідного модуля програми виводу інформації на екран цифрового індикатора у відповідність із кодом натиснутої клавіші відповідно до варіанта завдання, зазначеному в таблиці 3.2.
Виконати компіляцію (нажавши клавішу F9) вихідного модуля програми й усунути помилки, отримані на даному етапі.
Настроїти параметри программатора.
Створити завантажувальний модуль програми (нажавши комбінацію клавіш Shift+F9) і виконати програмування мікроконтролера.
Перевірити працездатність завантаженої в мікроконтролер програми й показати результати роботи викладачеві.
У випадку некоректної роботи розробленої програми, виконати апаратне скидання мікроконтролера, провести налагодження вихідного модуля програми й заново перевірити функціонування програми, повторивши виконання пункту 9.
Приклад виконання завдання. Розробити програму, що виводить на екран цифрового індикатора символ 1 при натисканні на клавішу 1, і символ 2 при натисканні комбінації клавіш 1+2. Нумерація клавіш матричної клавіатури 3×4 наведена на рис. 2.4.
Рішення: у лабораторному макеті матрична клавіатура 34 підключена до порту 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.
