Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторні 1.doc
Скачиваний:
1
Добавлен:
09.12.2018
Размер:
1.08 Mб
Скачать

Міністерство освіти і науки України

Дніпродзержинський державний технічний університет

МЕТОДИЧНІ ВКАЗІВКИ

до виконання лабораторних робіт з дисципліни

«Мікропроцесорні пристрої»

для напряму 6.050701 “Електротехніка та електротехнології”

Затверджено редакційно - видавничою

секцією науково – методичної ради ДДТУ

___ ________ 2010 р. протокол № ____

м. Дніпродзержинськ

2010 р.

Розповсюдження і тиражування без офіційного дозволу Дніпродзержинського державного технічного університету заборонено

Методичні вказівки до виконання лабораторних робіт з дисципліни «Мікропроцесорні пристрої», 6.092200 “Електротехнічні системи та комплекси транспортних засобів”, 6.092200 “Електромеханічні системи автоматизації та електропривод”

Укладач: доц., канд. техн. наук Алексеєв І.А.

асист., магістр, Крупнік О.О.

Відповідальний за випуск: зав. кафедрою ЕлМ, докт. техн. наук,

професор Садовой О. В.

Рецензент канд. техн. наук, доцент Количев С.В.

Затверджено на засіданні кафедри ЕлМ

(протокол № від 2010р.)

Коротка анотація. Наведено загальні теоретичні відомості та практичні дані щодо виконання лабораторних робіт з дисципліни «Мікропроцесорні пристрої».

Зміст

стор.

Лабораторна робота №1. Робота з портами вводу/виводу

мікроконтролерів Atmel 4

Лабораторна робота № 2. Робота з LCD-функціями

мікроконтролерів Atmel 9

Лабораторна робота № 3. Робота мікроконтролера з

матричною клавіатурою. 22

Лабораторна робота № 4. Робота з аналого-цифровим

перетворювачем мікроконтролеру Atmel АТ90S8535 41

Лабораторна робота № 1

Тема: Робота з портами вводу/виводу мікроконтролерів Atmel

Мета: вивчити основні методу вводу та виводу інформації в однокристальні мікроЕОМ

  1. Загальні теоретичні відомості.

Типові схеми включення чипів типу АТ90S2313 та AT90S8535 які надалі використовуються при проведенні лабораторних робіт наведені на рис.1.1.

Рисунок 1.1 – Типова схема включення чипів АТ90S2313 та AT90S8535

Кожному порту в мікроконтролері AVR відповідають мінімум три регістри:

DDRx — регістр напряму даних (х — буква відповідного порту, наприклад DDRB — регістр напряму даних Порту В). Цей регістр визначає, який повинен бути конфігурований вивід порту — як вхід або як вихід. Якщо в біт цього порту записати 1, то відповідний вивід порту працюватиме як вихід; якщо записати 0, то відповідний вивід порту працюватиме як вхід. Наприклад, якщо в регістрі DDRB записано число 01000011, то це значить, що 0-й, 1-й і 6-й виводи Порту В конфігуровані як виходи, а інші — як входи.

PORTx — вихідний регістр порту х (наприклад, PORTB — вихідний регістр Порту В). У біти цього регістра записують ті значення, які хочуть одержати на висновках порту, за умови, що виводи конфігуровані як виходи.

Якщо вивід конфігурований як вхід, то при записі у відповідний біт регістра PORTx 1 цей вивід стає «входом з підтяжкою», тобто цей вивід через резистор приблизно 100...150 кОм, що знаходиться усередині мікроконтролера, підключається («підтягається») до напруги живлення мікроконтролера. Таким чином, за відсутності сигналу на цьому вході буде рівень логічної 1.

PINx — виводи порту х (наприклад, PINB — виводи Порту В). Цей регістр містить значення логічних рівнів, які до теперішнього часу присутні на фізичних (тобто реальних) виводах порту. Цей регістр доступний ТІЛЬКИ для читання.

Для доступу до регістрів вводу/виводу мікроконтролера AVR за допомогою інструкцій асемблера IN і OUT компілятор використовує ключові слова sfrb і sfrw.

Приклад:

/* Доступ до регістрів вводу/виводу */

/* Визначимо SFR (Регістри загального призначення) для чипа AT90S8515 */

sfrb PINC=0x13; // Оскільки регістр PINA 8-бітовий, то до нього здійснюється

// 8-бітовий доступ за допомогою sfrb (sfr byte)

// 0x13 - це адреса порту PINC

sfrw TCNT1=0x2c;

// оскільки регістр TCNT1 16-бітовий, то до нього

// здійснюється 16-бітовий доступ з

// допомогою sfrw (sfr word)

// 0х2с - це адреса регістра TCNT1

/* Основна функція програми */

void main(void)

{

unsigned char x; // Оголошуємо символьну змінну х

x=PINC; // Читання виводів Порту А

TCNTl=0xF4A6; // Запис в регістри TCNT1L & TCNT1H

}

Адреси регістрів вводу/виводу визначені в наступних заголовних файлах, розташованих в піддиректорії \INC:

tinyl3.h 90s8534.h mega603.h

tiny22.h 90s8535.h mega64.h

tiny2 6.h megalO3.h mega8.h

90s2313.h megal28.h mega8515.h

90s2323.h megal6.h mega8535.h

90s2333.h megal61.h 43usb355.h

90s2343.h megal62.h 76c711.h

90s4414.h megal63.h 86rf401.h

90s4433.h megal69.h 94k.h

90s4434.h mega32.h

90s8515.h mega323.h

На початку програми за допомогою #include можна підключити відповідний файл для того мікроконтролера, який використовується в даному проекті.

Побітовий доступ до регістрів вводу/виводу

Побітовий доступ до регістрів вводу/виводу здійснюється шляхом додавання вибраних бітів після імені регістра.

Оскільки побітовий доступ до регістрів вводу/виводу здійснюється з використанням інструкцій CBI, SBI, SBIC і SBIS, адреса регістра повинна бути в діапазоні 0...1Fh для sfrb і в діапазоні 0...1Eh для sfrw.

Приклад:

/* Доступ до регістрів вводу/виводу */

/* Визначимо SFR (Регістри загального призначення) для чипа AT90S2313 */

sfrb PORTB=0xl8; // Пояснюємо компілятору, за якими адресами знаходяться

sfrb DDRB=0xl7; //те або інші регістри (порти). Оскільки всі використовувані

sfrb PINB=0xl6; // регістри 8-бітові, то до них здійснюється

// 8-бітовий доступ за допомогою sfrb. Звично ці

// оператори розташовуються в заголовних файлах

// (див. Доступ до регістрів вводу/виводу)

int а, b, с; // Оголошуємо цілі змінні а, b, c

/* Основна функція програми */

void main(void)

{

/* Задамо напрям вивідів Порту В */

DDRB.0 = 0; // задамо біти 0...3 Порти В як входи

DDRB.1=O; //

DDRB.2=0; //

DDRB.3=0; //

DDRB.4 = 1; // задамо біти 4...7 Порти В як виходи

DDRB.5=1; //

DDRB.6=1; //

DDRB.7=1; //

/* Встановимо виводи Порту В */

PORTB.0=0; // встановимо біти 0 і 1 Порту В як

PORTB.1=0; // прості входи

PORTB.2=1; // встановимо біти 2 і 3 Порти В як "входи з

PORTB.3=1; // підтяжкою", тобто кожний з цих виводів через

// резистор приблизно 100...150 кОм буде сполучений

//с шиною живлення. Таким чином, у відсутність

// сигналу на цих висновках буде рівень

// логічної 1

PORTB.4=0; // встановимо біти 4 і 5 Порти В як виходи, на

PORTB.5=0; // яких встановлений рівень логічного 0

PORTB.6=1; // встановимо біти б і 7 Порту В як виходи, на PORTB.7=1;

// яких встановлений рівень логічної 1

/* опитаємо виводи Порту В, тобто їх фізичні значення */

a=PINB.O; // Змінною а привласнимо значення виводу 0

// Порту В, тобто значення сигналу, на виводі 0

b=PINB.5; // Змінній b привласнимо значення виводу 5

// Порту В, тобто Ь=0

c=PINB.6; // Змінною з привласнимо значення вивіду б

// Порту В, тобто с=1

if (PINB.2) // Якщо на виводі 2 Порту В логічна 1,

{ //то виконується [група операторів].];

[група операторів].]

}

Else // якщо 0 - то [група операторов2]

{

[група операторов2]

}

• •

}

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