Similar presentations:
Модуль 1 - Тема 3 - мова С
1.
М1 - Тема 3 - СПринципи програмування для УНМС мовою С
Фізичне
програмування
цільового МК
Загальна технологія розробки ПЗ для МК
ит
ми
(див. Тему 3)
го
р
Проєкт
Ал
Початкові файли
прикладного
проєкту
Необхідна ІСР для МК MCS-51
ІСР має адаптований інтерфейс
програмування для УНМС
Підтримувані мови
програмування:
- Assembler MCS-51
- C (з модулем опису регістрів МК)
Текстовий
редактор
Скомпільовані
двійкові файли
модулів
Компілятор
Інтегроване середовище
розробки (ІСР) ПЗ для МК.
Виконується на
інструментальному
комп’ютері
Виконуваний
двійковий файл
проєкту
Завантажувач
програми
Лінкер
(компоновник)
Симулятор виконання
програми та інтерфейс
тестування проєкту
Двійкові
файли
бібліотек
Логічна модель
мікроконтолера
Типова структура програми для УНМС
Декларативна частина
Реалізація підпрограм
Оголошення підпрограм із зовнішніх модулів
Підпрограми, що викликаються в основній програмі
Визначення констант
Процедури обробки переривань
Визначення змінних
Виконувана частина
Реалізація підпрограм
Одноразово виконувана частина
Циклічно виконувана частина
Одноразово виконувана частина
Налаштування апаратних блоків МК
Ініціалізація змінних
Циклічно виконувана частина
Реалізація основного алгоритму
Реалізація періоду дискретності
1
2.
Декларативна частина – Оголошення зовнішніх підпрограмУзагальнене визначення: #include <routine_name.h>
Приклади опису: (частково з файлу Системна бібліотека УНМС.doc )
2
3.
Декларативна частина – Визначення констант3
4.
Декларативна частина – Визначення змінних4
5.
Виконувана частина – Реалізація підпрограмПідпрограми, що викликаються
в основній програмі
Призначення:
- введення-виведення
// Процедура користувача з одним вхідним
// та одним вихідним параметром
- повторювані обчислення
void UserFunction(byte Y, byte* Z) {
#define Z *Z
P2 = Y and 0b11110000; // виведення у порт P2
Z = Y + 10;
// обчислення
}
Виклик в основній програмі:
UserFunction(X1,&X2);
Процедури обробки переривань
Вони переривають виконання основної
програми для обробки запиту від:
-таймерів T0, T1, T2;
- послідовного порту UART;
- зовнішніх сигналів INT0, INT1, EXF2
void F1() interrupt TF0_VECTOR {
x++;
// дія за запитом від таймера T0 (за ознакою TF0)
}
Виклик здійснюється контролером переривань.
В основній програмі виклик відсутній
5
6.
Виконувана частина – одноразовий та циклічно-виконуваний блокиІніціалізація апаратних засобів МК та змінних - одноразово
void main() {
// Блок одноразового виконання
P1 = 0xFF;
// Встановлення режиму виведення порту P1
TMOD = 0b00100001; // Налаштування таймерів T0 і T1
TL0 = TH0 = 0;
// Завантаження стартового числа у таймер
IE = 0b10000010;
// Налаштування контролера переривань
TR1 = 1;
// Запуск таймера
X = 0.1;
// Приклади ініціалізації змінних
Y = 0b10101100;
Блок-схема типової
програми для МК
Початок
Дії, що виконуються циклічно
// Блок безумовного циклічного виконання
while (1) {
// Введення даних від датчиків
// Функціональні алгоритми
// Виведення сигналів на виконавчі пристрої
// Передавання даних через послідовний порт
// Відображення даних
// Реалізація періоду дискретності
6
}
Одноразово
виконувана
частина
Дій, що
виконуються
циклічно
7.
Етапи компіляції, завантаження та перевірки прикладної програмиРозробка програми в текстовому редакторі (ІСР MCStudio )
Конектор
для
Завантаження виконуваного
завантаження
коду у контролер
прикладної
програми
USB-COM
Основний
МК
Прикладна
програма
Компіляція програми мовою C
1
0
Тестування програми
Отримано програму мовою
асемблер та виконуваний код