Програмування мікроконтролерів. Шпаргалка

Скачати файл
(1 бал, середній: 5.00 із 5)
Loading...
програмування мк. шпаргалка

Шпора з дисципліни “Програмування мікроконтролерів”. НУВГП – 3 курс!

Рік видання: 2016
Кількість сторінок:
 25
Формат файлу: .doc
Розмір файлу: 0.1 mb

Практичні завдання:
1. Написати програму мовою С для мікроконтролерів РІС18 в якій реалізований вимикач із запам’ятовуванням.

#include <p18cxxx.h>
#include <delays.h>
#include <stdlib.h>
Int k;
void main(){
TRISB = 0b00000000;
while(){
delay(150);
if(Button1==0)k=1;
}
}

2. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється вивід кодової таблиці знакосинтезуючого РКІ-індикатора.

3. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється вивід двох символів на семисегментний світлодіодний індикатор.

#include <p18cxxx.h>
#include <stdlib.h>
void main(){
TRISB = 0b11111110;
TRISA = 0b11111110;
while(){
PORTA = 0b11111110;
PORTB = 0b11111110; }}

4. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється опитування каналу АЦП та вивід його значення на знакосинтезуючий РКІ-індикатор.

#include <p18cxxx.h>
#include <delays.h>
#include <adc.h> // бібліотека для роботи з АЦП
#include <xlcd.h> // бібліотека для роботи з РКІ
#include <stdlib.h> // бібліотека із стандартними функціями С
void main(){
initLCD();
while (1) // нескінченний цикл
{
SetChanADC(ADC_CH0); //вибір каналу АЦП для вимірювання
Delay10TCYx(20); // затримка для заряду конденсатора АЦП
ConvertADC(); // запуск перетворення
while(BusyADC()); //очікування завершення перетворення
value = ReadADC(); //присвоєння виміряного значення регульов. вел.
itoa(value,mybuff); // перетворення 16-бітного значення в рядок
putsXLCD(mybuff); // вивід рядка на екран
Delay10KTCYx(100); // затримка між вимірюваннями
clear_mybuff(); // очищення массиву
WriteCmdXLCD(0х01); //очистка екрана і перехід на початкову позиці
}
}

5. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється генерування ШІМ-сигналу на одному з виводів модуля ССР.

#include <p18cxxx.h>
#include <delays.h>
void main(){
PR2=0xFF;
CCP1CON=0b00001100;
CCPR1L=t
CCP1CONbits.DC1B1=0;
while(1){}
}

6. Написати програму мовою С для мікроконтролерів РІС18 для реалізації цифрового фільтра “експоненційне середнє (ЕМА)”.

7. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється керування швидкістю ДПС з допомогою модуля ССР в ШІМ-режимі.

#include <p18cxxx.h>
#include <delays.h>
unsigned int t;
void main(){
TMR2=0;
T2CON=0b00000101;
PR2=0xFF;
CCPR1L=0; //γ=0%
CCP1CONbits.DC1B1=0;
CCP1CONbits.DC1B0=0;
CCP1CON=0b00001100;
while (1)
{
if(t>0x3FF) t=0x3FF; //обмеження задання змінної t максимальним
// значенням для 10-розрядного ШІМ
CCP1CONbits.DC1B0=t; // запис 10-розрядного значення тривалості
CCP1CONbits.DC1B1=t>>1; // імпульсу t в регістри
CCPR1L=t>>2;
if(But_1==0) //збільшення швидкості ~10%
{
Delay10KTCYx(25);
if(But_1==0)
t+=102;
}
if(But_2==0) //зменшення швидкості ~10%
{
Delay10KTCYx(25);
if(But_2==0)
t-=102;
}
}
}

8. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реверсування ДПС кнопкою з використанням драйвера L293D.

#include <p18cxxx.h>
#include <delays.h>
#define INT1 PORTBbits.RB1
#define INT2 PORTBbits.RB2
void main(){
while (1)
{
if(But_1==0)
{
INT1=1;
INT2=0;
}
if(But_2==0)
{
INT1=0;
INT2=1;
}
}
}

9. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реалізація алгоритму для керування біполярним покроковим двигуном в повнокроковому режимі.

#include <p18cxxx.h>
#include <delays.h>
#define INT1 PORTBbits.RB1
#define INT2 PORTBbits.RB2
#define INT3 PORTBbits.RB3
#define INT4 PORTBbits.RB4
void main(){
while (1)
{
INT1=1;
INT2=0;
INT3=1;
INT4=0;
Delay(30);
INT1=0;
INT2=1;
INT3=0;
INT4=1;
}}

10. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реалізація алгоритму для керування біполярним покроковим двигуном в півкроковому режимі.

11. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реалізація алгоритму для керування уніполярним покроковим двигуном в повнокроковому режимі.

#include <p18cxxx.h>
#include <delays.h>
#define INT1 PORTBbits.RB1
#define INT2 PORTBbits.RB2
#define INT3 PORTBbits.RB3
#define INT4 PORTBbits.RB4
void main(){
while (1)
{
INT1=1;
INT2=0;
INT3=1;
INT4=0;
Delay(30);
INT1=0;
INT2=1;
INT3=0;
INT4=1;
}}

12. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реалізація алгоритму для керування уніполярним покроковим двигуном в півкроковому режимі.

13. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реалізація алгоритму ідеального двопозиційного регулятора.

#include <p18cxxx.h>
Int PV,SP;
void main(){
TRISA=0b0001111;
ADCINIT();
while (1)
{
If(PV>SP)PORTbits.RA5=1;
If(PV<SP)PORTbits.RA5=0;
}}

14. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реалізація алгоритму реального двопозиційного регулятора.

#include <p18cxxx.h>
Int PV,SP,HIST;
void main(){
TRISA=0b0001111;
ADCINIT();
while (1)
{
If(PV>SP+HIST/2)PORTbits.RA5=1;
If(PV<SP-HIST/2)PORTbits.RA5=0;
}}

15. Написати програму мовою С для мікроконтролерів РІС18 в якій здійснюється реалізація алгоритму реального трипозиційного регулятора.

#include <p18cxxx.h>
Int PV,SP,DZ;
void main(){
TRISA=0b0001111;
ADCINIT();
while (1)
{
If(PV>SP+DZ/2)PORTbits.RA5=1;else PORTbits.RA5=0;
If(PV<SP-DZ/2)PORTbits.RA6=1;else PORTbits.RA6=0;
}}

Теоретичні завдання:
1. Які пристрої вводу/виводу використовуються в мікропроцесорних пристроях?
Організація вводу/виводу інформації в МП-техніці зводиться до 2-х задач, які є взаємопротилежні: задачі спрощення апаратної реалізації системи вводу/виводу та задачі спрощення програмної частини.
Контактні давачі ( кнопки, клавіатура, кінцеві вимикачі), світлодіодні індикатори ( дискретні, семисегментні, матричні, шкальні), та ін.

2. Які особливості використання окремих кнопок, клавіатур з мікроконтролерами?
Питання схемної організації клавіатури з окремих кнопок залежить від необхідної кількості кнопок клавіатури, вільної кількості дискретних портів вводу/виводу, бажаної складності алгоритму обробки сигналів з клавіатури. Як правило, при кількості кнопок до 4-8 їх підключають до окремих портів вводу/виводу. При кількості кнопок 16-36 використовують матричні схеми та дешифратори. При значній кількості кнопок в клавіатурі використовують окремий контролер клавіатури, що з’єднується по інтерфейсу з основним (наприклад, як в ПК). При особливих ситуаціях (недостатня кількість портів вводу/виводу) можуть використовуватись спеціальні схеми включення кнопок (по декілька на один вхід/вихід, декілька кнопок на аналоговий вхід, використання схем розряду конденсатора через кнопки).

3. Які переваги і недоліки світлодіодних індикаторів?
Світлодіодні індикатори є досить поширені через їх переваги:
– широкий температурний діапазон;
– низька вартість;
– простота та надійність;
– довгий термін експлуатації;
Основною проблемою при роботі із багато розрядними сегментними світлодіодними індикаторами є забезпечення стабільної частоти оновлення інформації на кожному розряді (>25Гц).

4. Які переваги і недоліки рідкокристалічних індикаторів?
До недоліків РКІ відноситься:
1) вузький температурний діапазон (особливо вони бояться холоду);
2) складність;
3) нестійкість до вібрацій;
4) висока вартість;
5) високе енергоспоживання підсвітки.
Переваги:
1) можливість відображення складної інформації.

5. Які характеристики та параметри настроювання має модуль АЦП мікроконтролера PIC18F452?
МК РІС18F452 має 10-канальний, 10-розрядний модуль АЦП з типом перетворення послідовного наближення. Модуль АЦП є мультиплексований – тобто в певний момент часу АЦП перетворює сигнал лише з одного каналу, вибраного через мультиплексор. Модуль АЦП може тактуватися або від тактового генератора МК або від власного RС-генератора. Вхідний опір аналогових входів МК РІС18F452 ≈ 1кОм, вхідний сигнал заряджає конденсатор СHOLD, сигнал з якого перетворюється АЦП в цифровий код. Модуль АЦП керує з допомогою 2-х регістрів ADCON 0, ADCON 1.
МК має можливість використовувати в якості джерела опорної напруги для АЦП власну напругу живлення або зовнішній опорний сигнал.
Послідовність роботи з модулем АЦП:
1. Настроїти модуль АЦП:
– настроїти виводи МК як аналогові входи, вибрати джерело опорної напруги VREF;
– вибрати вхідний канал АЦП;
– вибрати джерело тактових імпульсів для АЦП;
– включити модуль АЦП.
2. Настроїти переривання від модуля АЦП (якщо необхідно).
3. Витримати паузу, необхідну для зарядки конденсатора СHOLD.
4. Почати аналогово-цифрове перетворення встановленням біта GO/DONE в регістрі ADCON 0.
5. Чекати завершення перетворення (скидання біта GO/DONE або переривання від модуля АЦП).
6. Зчитати результат перетворення із регістрів AD RESH, AD RESL.
7. Витримати паузу перед наступним перетворенням.

6. Який алгоритм роботи з АЦП?
При роботі з АЦП, як правило, використовують 2 варіанти зчитування результату:
1) зчитування всього 10-розрядного АЦП перетворення (для точних вимірювань);
2) зчитування 8-розрядного результату при лівому вимірюванні із регістру ADRESH без врахування 2-х молодших розрядів (для вимірювання не потрібна висока точність, наприклад, задавачі та ін.).
Дискретність вимірювання напруги (кількість кроків для 10-розрядного АЦП N=210=1024).

7. Які характеристики та параметри настроювання має модуль ССР мікроконтролера PIC18F452?
МК РІС18F452 має 2 модулі ССР, кожен з яких містить 16-розрядний регістр, що може використовуватись в ролі:
1) 16- розрядного регістра захвату даних;
2) 16-розрядного регістру порівняння;
3) 2-х 8-розрядних регістрів ШІМ.
Модуль ССР працює завжди з використанням певних таймерів/лічильників (для кожного режиму свої), причому вони можуть працювати і як таймери, і як лічильники.
В режимі захвату модуль ССР працює як пристрій для вимірювання часу, тобто вхідний сигнал запускає або зупиняє певний таймер, по значенню якого ми можемо визначити час певних подій.
В режимі порівняння модуль ССР працює як лічильник порівняння, тобто вхідні імпульси на вході ССР модуля інкрементують певний таймер/лічильник і при рівності його значення із значенням 16-розрядного регістра модуля ССР встановлюється відповідний біт.
В режимі ШІМ модуль ССР генерує широтно-імпульсно-модульований сигнал (максимальна розрядність 10 бітів, максимальна частота ≈ 200кГц (розрядність 8 біт), мінімальна частота ≈ 1,5кГц (розрядність 10 біт)).
– скважність ШІМ,
де Т – період ШІМ;
t – тривалість імпульсу ШІМ.
Розрядність ШІМ вказує на можливу кількість кроків, зміни тривалості імпульсу t на протязі періоду Т.

8. Який алгоритм використання модуля ССР в ШІМ-режимі?
генерування імпульсних сигналів різної частоти та скважності;
для реалізації аналогового входу в МК;
для управління двигунами, нагрівальними елементами та інше.

9. Яким чином здійснюється керування ДПС з використанням мікроконтролера?
Для САУ використання регульованого приводу є однією з необхідних умов для досягнення високих показників автоматичного управління і, відповідно, високих показників технологічної схеми виробництва. Драйвер – засіб для зв’язку 2-х частин системи. Драйвер в галузі комп’ютерної техніки – програма для зв’язку апаратної частини з програмною. В електротехніці драйвер – пристрій для зв’язку системи управління з керованим електро-механічним пристроєм.

10. В чому полягає управління кроковими двигунами з допомогою мікроконтролерів?
Основна ідея управління покроковим двигуном – зміна струму в обмотках таким чином щоб утворювалися полюса, що притягують (відштовхують) полюси ротора двигуна для забезпечення необхідного напрямку та швидкості обертання.

11. Яким чином здійснюється керування двигунами змінного струму з використанням мікроконтролера?
Вагомий вплив на розробки та впровадження сучасного керованого електроприводу здійснили технологічні досягнення в напівпровідниковій техніці – це як створення МП-пристроїв, так і створення силових напівпровідникових ключів.

12. Який алгоритм реалізації позиційних регуляторів регулятора на мікроконтролері?
1)визначенні необхідної характеристики зони регулятора;
2)в явно заданих частинах характеристики на вихід подається відповідне значення;
3)в зоні неоднозначності необхідно визначити напрямок руху системи – для цього
можуть використовуватись різні методи (знаходження похідної), проте найчастіше використовується метод запам’ятовування попереднього явного стану, по якому і робиться висновок по напрямку руху.

13. Які алгоритми використовуються при реалізації ПІД-регулятора на мікроконтролері?
Існують 2 методи обрахунку алгоритму ПІД регулятора:
1) позиційні (нерекурентні) алгоритми;
2) рекурентні алгоритми.
Приведемо приклад рекурентного алгоритму ПІД регулятора:

Провівши певні перетворення та апроксимацію інтеграла методом трапеції, отримуємо дискретне рекурентне рівняння ПІД регулятора:
програмування МК - 2
де
k – коефіцієнт передачі;
Ті – час інтегрування;
ТD – час диференціювання;
Т0 – час дискретизації.

14. В чому полягає багатозадачність ОСРЧ для мікроконтролерів? Які існують типи багатозадачних ОСРЧ для мікроконтролерів?
Багатозадачність – властивість ОС або середовища виконання програм забезпечувати можливість паралельної (або псевдопаралельної) обробки декількох процесів.
Справжня багатозадачність ОС можлива тільки в багатопроцесорних системах або в розподілених системах.
Прості багатозадачні середовища забезпечують просте розподілення ресурсів, коли за кожною задачею закріплюється певна область пам’яті і задача активізується в строго визначені інтервали часу.
Більш сучасні багатозадачні системи проводять розподілення ресурсів динамічно, коли задача стартує в пам’яті або покидає пам’ять в залежності від її стратегії системи.

15. Які механізми керування обчислювальними ресурсами мікроконтролера використовуються в багатозадачних ОСРЧ для мікроконтролерів?
Основним механізмом, що забезпечує організацію системи реального часу в МК є механізм переривань, як переривання від зовнішніх подій, так і від внутрішніх (таймерів).
Існує велика кількість ОС для МК: від простих примітивних 2-3-задачних до багатозадачних ОС реального часу.
Послідовність використання ОС для МК:
1) ОС модифікуються під конкретний МК та ставиться на нього;
2) формуються окремі задачі (можливо у вигляді файлів якщо використовується файлова система) та призначається пріоритет;
3) задачі інтегруються в ОС.

Тестові запитання (відповідь виділено жирним):
1. Яка схема підключення клавіатури використовується в лабораторному стенді:
а) матрична;
б) з підтяжкою до потенціалу “землі”;
в) з підтяжкою до потенціалу напруги живлення.

2. Основною перевагою РКІ-індикаторів над світлодіодними є:
а) енергоспоживання;
б) інформативність;
в) температурний діапазон.

3. В чому особливість програм із використанням світлодіодних індикаторів в динамічному режимі:
а) складність;
б) необхідність підтримання високої частоти виводу;
в) необхідність значного об’єму пам’яті;
г) необхідність багатозадачної ОСРЧ.

4. Основною особливістю РКІ-індикаторів, що визначає алгоритм їх програмного використання є:
а) мала кількість використовуваних ліній вводу/виводу;
б) вбудований контролер;
с) наявність готових бібліотек для роботи з РКІ-індикаторами.

5. Який алгоритм займає найменше обчислювальних ресурсів мікроконтролера при генеруванні дискретних сигналів:
а) з використанням програмних затримок;
б) з використанням таймерів;
в) з викоистанням таймерів та переривань;
г) з використанням модуля ССР.

6. Яка особливість використання 10-розрядного модуля АЦП в 8-розрядному мікроконтролері:
а) необхідність перемикання каналів;
б) необхідність фільтрації результату;
в) необхідність задання вирівнювання результату. 

7. Який модуль мікроконтролера PIC18F452 використовують для керування двигунами:
а) модуль АЦП;
б) модуль MSSP;
в) модуль ССР.

8. В чому полягає основний недолік цифрових фільтрів:
а) обмеження при роботі в режимі реального часу;
б) низька точність через допуски елементів фільтра;
в) дрейф характеристик через зміну параметрів елементів фільтра.

9. Найбільш вагомо впливає на алгоритм роботи мікроконтролера в системах керування двигунами:
а) архітектура мікроконтролера;
б) схема силової частини;
в) тип двигуна.

10. Який модуль використовується для керування швидкістю обертання ДПС:
а) АЦП;
б) MSSP;
в) CCP;
г) USART;
д) TMR0.

11. Мікросхема L293D це:
а) операційний підсилювач;
б) мікросхемний стабілізатор;
в) мікроконтролер;
г) драйвер з двома Н-мостами;
д) АЦП.

12. Яким чином найчастіше змінють напрямок протікання струму в обмотках крокових двигунів та ДПС:
а) використовують змінний струм;
б) використовують двополярну напругу;
в) використовують мостові схеми. 

13. Який метод задання часових параметрів найчастіше використовують при керуванні кроковими двигунами:
а) таймери та переривання;
б) таймери;
в) програмні затримки;
г) модуль ССР.

14. Який режим керування покроковим двигуном найбільш складно реалізувати:
а) повнокроковий;
б) півкроковий ;
в) мікрокроковий. 

15. Який метод найчастіше використовується для задання форми сигналу:
а) поліном;
б) масив;
в) сплайни.

16. Яка основна функція мікроконтролера в керованих трифазних інверторах:
а) реалізація регулювання;
б) створення системи трифазної напруги;
в) задання співвідношення між напругою і частотою.

17. Яким чином задається зсув фаз в інверторах із скалярним керуванням:
а) по формулі;
б) початковим положенням в таблиці;
в) по базових векторах.

18. Яким чином задається частота змінної напруги в мікропроцесорних інверторах:
а) з допомогою таймерів;
б) з допомогою RC-ланки;
в) з допомогою генераторів.

19. Які алгоритми мають перевагу для реалізації ПІД-закону регулювання:
а) позиційні;
б) рекурентні;
в) циклічні.

20. На основі якого апаратного механізму будуються багатозадачні ОСРЧ:
а) модуля ССР;
б) ядра операційної системи;
в) переривань.

Вдалих модулів та заліку =) ©2016, АУТП-32

Напишіть відгук

Ваша пошт@ не публікуватиметься. Обов’язкові поля позначені *