Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

metod2-ukr

.pdf
Скачиваний:
4
Добавлен:
12.03.2016
Размер:
782.55 Кб
Скачать

Рис. 3. ЦПП розширеної серії

11

Рис. 4. Пам'ять даних розширеної серії

пересилання регістр-регістр і команди пересилання з непрямою адресацією), з'явився віртуальний банк швидкого доступу. Віртуальний банк швидкого доступу складається з першої половини нульового банку й останньої половини останнього банку, що містить всі регістри спеціальних функцій. У першій половині банку швидкого доступу зручно розміщати найчастіше використовувані змінні, регістри для обміну параметрами між програмними модулями. Залежно від значення суфікса а будь-яка команда може звернутися або до банку швидкого доступу, або до банку, заданому

12

регістром BSR. Якщо в програмі суфікс а не буде зазначений, асемблер підставить його значення самостійно залежно від адреси регістра.

Набір команд сильно розширений. Розроблювачі відмовилися від ідеї мати всі команди довжиною в одне машинне слово, з'явилися команди довжиною у два машинних слова. Це команди GOTO, CALL, які містять повну фізичну адресу й не вимагають якої-небудь сегментації пам'яті команд і команда пересилання регістр-регістр MOVFF, що також містить повні адреси й не вимагає перемикання банків пам'яті даних. Список команд наведений у таблиці 2.

Таблиця 2. Система команд розширеної серії

Мнемоніка

 

Операція, яка виконується

Ознаки

команди

 

 

 

 

 

 

Байт орієнтовані команди з регістрами

 

 

 

 

 

ADDWF f, d, a

 

Додавання WREG і f

C, DC, Z, OV, N

 

 

 

ADDWFC f, d, a

Додавання WREG, f і біта C

C, DC, Z, OV, N

 

 

 

 

ANDWF f, d, a

 

Логічне «ТАК» WREG і f

Z, N

 

 

 

 

CLRF f, a

 

Очищення f

Z

 

 

 

 

COMF f, d, a

 

Інверсія f

Z, N

 

 

 

 

CPFSEQ f, a

 

Зрівняти WREG і f, проп. якщо = 1

-

 

 

 

 

CPFSGT f, a

 

Зрівняти WREG і f, проп. якщо >

-

 

 

 

 

CPFSLT f, a

 

Зрівняти WREG і f, проп. якщо <

-

 

 

 

 

DECF f, d, a

 

Декремент f

C, DC, Z, OV, N

 

 

 

 

DECFSZ f, d, a

 

Декремент f, пропустити якщо 0

-

 

 

 

 

DCFSNZ f, d, a

 

Декремент f, пропустити якщо не 0

-

 

 

 

 

INCF f, d, a

 

Інкремент f

C, DC, Z, OV, N

 

 

 

 

INCFSZ f, d, a

 

Інкремент f, пропустити якщо 0

-

 

 

 

 

INFSNZ f, d, a

 

Інкремент f, пропустити якщо не 0

-

 

 

 

 

IORWF f, d, a

 

Логічне «АБО» WREG і f

Z, N

 

 

 

 

MOVF f, d, a

 

Перемістити f

Z, N

 

 

 

 

MOVFF fs, fd

 

Перемістити fs в fd

-

 

 

 

 

MOVWF f, a

 

Перемістити WREG в f

F

 

 

 

 

MULWF f, a

 

Множення WREG і f

f

 

 

 

 

13

Мнемоніка

Операція, яка виконується

Ознаки

команди

 

 

NEGF f, a

Негативне значення f

C, DC, Z, OV, N

 

 

 

RLCF f, d, a

Зсув вліво через перенос

C, Z, N

 

 

 

RLNCF f, d, a

Зсув вліво без переносу

Z, N

 

 

 

RRCF f, d, a

Зсув вправо через перенос

C, Z, N

 

 

 

RRNCF f, d, a

Зсув вправо без переносу

Z, N

 

 

 

SETF f

Установити всі біти f

F

 

 

 

SUBFWB f, d, a

Вирахування f з WREG із позикою

C, DC, Z, OV, N

 

 

 

SUBWF f, d, a

Вирахування WREG з f

C, DC, Z, OV, N

 

 

 

SUBWFB f, d, a

Вирахування WREG з f із позикою

C, DC, Z, OV, N

 

 

 

SWAPF f, d, a

Поміняти місцями напівбайти в f

-

 

 

 

TSTFSZ f, a

Тест f, пропустити якщо 0

-

 

 

 

XORWF f, d, a

Логічне «АБО», що виключає WREG

Z, N

 

 

 

 

Біт орієнтовані операції з регістрами

 

 

 

 

BCF f, b, a

Скидання біта в f

-

 

 

 

BSF f, b, a

Установка біта в f

-

 

 

 

BTFSC f, b, a

Тест біта, пропустити якщо ‘0’

-

 

 

 

BTFSS f, b, a

Тест біта, пропустити якщо ‘1’

-

 

 

 

BTG f, b, a

Інверсія біта в f

-

 

 

 

 

Команди керування

 

 

 

 

BC n

Перехід, якщо перенос (C = 1)

-

 

 

 

BN n

Перехід, якщо нег. результ. (N = 1)

-

 

 

 

BNC n

Перехід, якщо немає переносу (C = 0)

-

 

 

 

BNN n

Перехід, якщо поз. результ. (N = 0)

-

 

 

 

BNOV n

Перехід, якщо немає переповн. (OV =

-

 

 

 

BNZ n

Перехід, якщо не нуль (Z = 0)

-

 

 

 

BOV n

Перехід, якщо переповнення (OV = 1)

-

 

 

 

BRA n

Безумовний перехід

-

 

 

 

BZ n

Перехід, якщо нуль (Z = 1)

-

 

 

 

CALL n, s

Перехід на підпрограму.

-

 

 

 

CLRWDT

Скинути сторожовий таймер

TO, -PD

 

 

 

DAW

Десяткова корекція WREG

C

 

 

 

GOTO n

Перехід за адресою

-

 

 

 

14

Мнемоніка

 

Операція, яка виконується

Ознаки

команди

 

 

 

 

NOP

 

Ні операції

-

 

 

 

 

POP

 

Читання вершини стека повернення

-

 

 

 

 

PUSH

 

Запис у вершину стека повернення

-

 

 

 

 

RCALL n

 

Короткий перехід на підпрограму 2

-

 

 

 

 

RESET

 

Програмне скидання

всі

 

 

 

 

RETFIE s

 

Повернення із пп із дозвол.

-

 

 

 

 

RETLW k

 

Повернення із пп із завантаженням

-

 

 

WREG

 

RETURN s

 

Повернення з підпрограми

-

 

 

 

 

SLEEP

 

Перехід в SLEEP режим

-TO, -PD

 

 

 

 

 

 

Операції з константами

 

 

 

 

 

ADDLW k

 

Додати константу до WREG

C, DC, Z, OV, N

 

 

 

 

ANDLW k

 

Логічне «ТАК» константи й WREG

Z, N

 

 

 

 

IORLW k

 

Логічне «АБО» константи й WREG

Z, N

 

 

 

 

LFSR f, k

 

Помістити константу (12 біт) в FSR

-

 

 

 

 

MOVLB k

 

Помістити константу в BSR<3:0>

-

 

 

 

 

MOVLW k

 

Помістити константу в WREG

-

 

 

 

 

MULLW k

 

Множення константи на WREG

-

 

 

 

 

RETLW k

 

Повернення із пп із завантаженням

-

 

 

WREG

 

SUBLW k

 

Вирахування WREG з константи

C, DC, Z, OV, N

 

 

 

 

XORLW k

 

Логічне «АБО», що виключає

Z, N

 

 

константи й WREG

 

 

Операції пам'ять даних ↔ пам'ять програм

 

 

 

 

TBLRD*

 

Табличне читання

-

 

 

 

 

TBLRD*+

 

Табличне читання з пост-інкрементом

-

 

 

 

 

TBLRD*-

 

Табличне читання з пост-

-

 

 

 

 

TBLRD+*

 

Табличне читання з перед-

-

 

 

 

 

TBLWT*

 

Табличний запис

-

 

 

 

 

TBLWT*+

 

Табличний запис із пост-інкрементом

-

 

 

 

 

TBLWT*-

 

Табличний запис із пост-декрементом

-

 

 

 

 

TBLWT+*

 

Табличний запис із перед-

-

 

 

 

 

15

2. ОБЛАДНАННЯ ДЛЯ ПРОВЕДЕННЯ ЛАБОРАТОРНИХ РОБІТ

При виконанні лабораторних робіт використовується пакет програм MPLAB IDE і демонстраційна плата на PICDEM NUK. Схема електрична принципова плати показана на рис. 5. Плата призначена для встановлення практично будь-яких мікроконтролерів в 28-ми вивідних корпусах,

наприклад PIC16C73A, PIC16F876A, PIC18F242, PIC18F2525. На платі встановлені наступні вузли:

стабілізоване джерело живлення 5 В для використання плат в автономному режимі;

гніздо внутрісхемного програмування ISP, призначений для підключення плати до дебаггеру PICkit2 або PICkit3;

драйвер і гніздо RS232, який можна використовувати для комунікаційних програм і для завантаження програмного забезпечення за допомогою бутлоадера відповідно до рекомендацій по застосуванню

AN1310;

два потенціометри й три кнопки; п'єзоелектричний випромінювач; датчик температури TCN 75-5;

додаткову енергонезалежну пам'ять 24LC16B;

LCD сьомисегментний восьмирозрядний індикатор TIC55 із убудованим контролером ML1001;

світлодіоди.

Пам'ять і датчик температури працюють із послідовною шиною I2C, до датчика температури підключені перемички для встановлення його адреси й червоний світлодіод для використання в режимі термостата. Додатково є гніздо для підключення зовнішніх пристроїв до шини I2C. Найповніші можливості плати відповідають набору периферійних модулів мікроконтролерів розширеного сімейства nano Watt, наприклад PIC18F2520. Відповідність виводів мікроконтролера, елементів плати й периферійних модулів мікроконтролера показано в таблиці 3.

16

Рис. 5. Плата PICDEM NUK

Таблиця 3. Призначення виводів мікроконтролера

Елемент

Вивід

Операція, яка виконується

плати

МК

 

Кнопка S4

MCLR

Примусове скидання мікроконтролера

Потенціометр R1

RA0

Вхід АЦП AN0

 

 

Вхід блоку компараторів AN0

Потенціометр R2

RA3

Вхід АЦП AN3

 

 

Вхід блоку компараторів AN0

 

 

Позитивна опорна напруга АЦП

Кнопка S1

RA4

Вхід паралельного порту

 

 

Вхід таймера 0 у режимі лічильника

17

Елемент

Вивід

Операція, яка виконується

 

плати

МК

 

 

Кнопка S2

RA5

Вхід паралельного порту

 

 

 

Вхід АЦП AN4

 

 

 

Вхід детектора зниженої напруги LVD

Кварцовий

RC0,

Генератор таймера 1. М мікроконтролерах

резонатор

RC1

nano Watt може використовуватися для

 

 

 

тактування ядра

Випромінювач

RC2

Вихід паралельного порту

ZQ1,

Світлодіод

 

Вихід блоку CCP1 у режимах ШІМ або

VD5

 

 

порівняння

I2C шина

RC3

Вивід SCL блоку SSP у режимі I2C

I2C шина

RC4

Вивід SDA блоку SSP у режимі I2C

Світлодіод VD4

RC5

Вихід паралельного порту

Драйвер RS232

RC6

Передавач модуля USART

Драйвер RS232

RC7

Передавач модуля USART

Кнопка S3

RB0

Вхід паралельного порту

 

 

 

Вхід зовнішнього переривання INT0

Світлодіод VD3

RB1

Вихід паралельного порту

Світлодіод VD2

RB2

Вихід паралельного порту

Вхід

CLK

RB3

Вихід паралельного порту. Програмна

індикатора

 

реалізація протоколу SPI

Вхід

IN

RB4

Вихід паралельного порту. Програмна

індикатора

 

реалізація протоколу SPI

Вхід

LD

RB5

Вихід паралельного порту. Програмна

індикатора

 

реалізація протоколу SPI

Гніздо ISP

RB6

Вивід PGD для програмування

Гніздо ISP

RB7

Вивід PGC для програмування

Виводи мікроконтролера можуть використовуватися багатьма периферійними модулями, більшість із них за замовчуванням відключені й виводи мікроконтролера є лініями портів вводу-виводу. Виключення становлять аналогові блоки - АЦП і блок компараторів. Зазначені блоки за замовчуванням виключені, але відповідні їм виводи призначені як аналогові й не можуть бути використані для цифрового вводу. Тому при написанні програм варто призначати потрібні виводи, як цифрові. Для PIC18F2520 всі виводи призначити цифровими можна наступними командами:

movlw b’1111’

18

movwf

ADCON1

Схожа послідовність потрібно для PIC16F873A:

banksel

ADCON1

movlw

b’110’

movwf

ADCON1

При програмній реалізації протоколу SPI для LCD дисплея потрібно мати через наступне. Дисплей містить 8 символів, що містять семисегментну цифру, десяткову точку й символ стрілки (див. рис. 6).

Рис. 6. Протокол SPI LCD дисплея

Першим передається десяткова точка молодшого розряду. На лінії CLK і LD установлюється низький рівень, на лінію IN виводиться значення i-го біта, на лінію CLK подається імпульс синхронізації. Після видачі всіх бітів, на лінію LD подається імпульс, по якому відбувається запам'ятовування й вивід на індикацію переданої інформації.

19

3. ЗАВДАННЯ ДО ЛАБОРАТОРНИХ РОБІТ

Лабораторна робота №1 Складання й налагодження простих програм

Ціль роботи: одержання навичок самостійного написання програм для мікроконтролерів, вивчення порядку створення проекту, вводу програми, асемблювання, налагодження програми за допомогою програмного симулятора.

Зміст домашньої підготовки

Вивчити особливості архітектури, набір команд і способи адресації мікроконтролерів.

По посібнику до пакета MPLAB вивчити порядок створення й роботи із проектами: створення й редагування проекту, вводу програми, асемблювання.

Вивчити роботу асинхронних і часових стимулів у середовищі

MPLAB.

Скласти програму для мікроконтролера відповідно до індивідуального завдання. Розрахувати час виконання програми.

Вивчити режими програмою симуляції: покроковий, безперервний, із зупинками в контрольних точках, режим анімації.

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

Вивчити призначення директив ORG, END, LIST, INCLUDE, EQU. Відповісти на контрольні питання.

Порядок виконання роботи

Включити комп'ютер і запустити програму MPLAB.

Ввести програму, створити проект, підключити файл із програмою до проекту.

Зробити асемблювання, виправити синтаксичні помилки.

20

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