На диску в комплекті IE-ROBOPIC є два середовища програмування мікроконтролера PIC16F887

– Це програма MicroC і програма MPLAB v836 Обидві програми варті уваги, обидві програми підтримують розробку на мові Сі, перша, що називається, за визначенням, друга дозволяє при установці завантажити та встановити компілятор HI-TECH Я встановив обидві програми Але почну з програми MPLAB Вірніше, почну з того, чому я вибрав конструктор IE-ROBOPIC

У набір входить програматор, сумісний з програматором PICkit2 А програма MPLAB працює з цим програматором «напряму»:

Рис 387 Повідомлення MPLAB при виборі програматора

Звичайно, сам програматор я попередньо підключив до USB порту Так що, якщо мені захочеться використовувати цю середу програмування, буде зручно її використовувати

Мало того, програма Flowcode теж працює з програматором PICkit2, досить вказати цей програматор при установці програми (починаючи з версії 4) Але все по порядку

З моменту розробки конструктора пройшло багато часу У мене на компютері операційна система Windows Vista І перший запуск середовища розробки MicroC виявляється невдалим:

Рис 388 Запуск програми MicroC

При спробі завантажити бібліотеку програма «висне» Не збираюся шукати причини цього явища, але підозрюю, що проблеми повязані з версією операційної системи Дотримуючись порад керівництва, я видаляю цю версію і, завантаживши з сайту виробника програми більш свіжу версію, маю намір працювати далі з нею

Попередньо, читаючи керівництво, намагаюся завантажити hex-файл за допомогою програми PICkit2 Але й тут стикаюся з непередбаченою ситуацією: файл завантажується, але при перевірці виявляється, що вся память обнулено Допомагає вирішити проблему зміна налаштувань програми, яка обслуговує програматор (сказати по правді, і версію програми я скачую останню):

Рис 389 Зміна налаштувань програми PICkit2

Програму Flowcode я встановлював давно, перевстановлювати не дуже хочеться, щоб при установці вибрати програматор PICkit2 Але на форумі flowcodeinfo цю проблему вже обговорили

– Достатньо змінити настройки В основному меню в розділі Чіп є підрозділ:

Рис 3810 Розділ налаштування програматора

Якщо відкрити діалогове вікно налаштувань, то зміни слід внести в розділ:

Рис 3811 Область налаштування програматора

У вікно Розміщення, Використовуючи кнопку Огляд, Вписуємо шлях до програматора (підтримці програматора):

C:\Program Files\Matrix Multimedia\Flowcode V4\Tools\PICkit2\pk2cmdexe

А у вікно Параметри додаємо:

-PPIC%p -F%fhex -M -A5 -T -R -BC:\Program Files\Matrix Multimedia\Flowcode V4\tools\PICkit2\

Галочку для Використовувати налаштування зовнішньої програми знімаємо (про всяк випадок) І слово конфігурації (другий, думаю, вийде за замовчуванням) у розділі Чіп підрозділ Конфігурація теж краще, напевно, додати: 0x2007, 0x2ff2

Тепер можна з програми Flowcode компілювати безпосередньо в мікросхему, використовуючи розділ Чіп, Підрозділ Компіляція в Chip (Або використовувати кнопку на інструментальній панелі)

Рис 3812 Завантаження програми в мікросхему з Flowcode

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

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

void main()

{

//Initialisation ansel = 0

anselh = 0

//Interrupt initialisation code option_reg = 0xC0

trisb = trisb &amp 0xf7

//Program if (1)

portb = (portb &amp 0xf7) | 0x08

else

}

portb = portb &amp 0xf7

Файл на Сі, звичайно, значно довший, і нічого непотрібного в ньому немає, але поки мене цікавить власне програма, яка починається з void main ()

Розібратися в тому, що тут написано, і чому написано так, дуже корисно Візьмемо цей же приклад з керівництва до конструктора IE-ROBOPICA

void main()

{

TRISBF3 = 0 / / Висновок RB3 ==> Вихід PORTBF3 = 1 / / Включити RB3

}

Якщо цей приклад вставити в середовище розробки MicroC, то його можна відкомпілювати і завантажити в мікроконтролер

Рис 3813 Найпростіший приклад у програмі MicroC PRO

Починаючи роботу з MicroC PRO, як і з MicroC (описаної в керівництві), слід створити новий проект (основне меню, Project->New Project) У створенні проекту допомагає помічник:

Рис 3814 Помічник створення нового проекту

Натиснувши на кнопку Next, Ви потрапляєте на наступну сторінку діалогу, де можна задати імя проекту, вказати місце, де ви маєте намір тримати файли проекту, і задати тактову частоту

Рис 3815 Сторінка завдання властивостей проекту

Зазначена частота (за замовчуванням) відноситься до частоти внутрішнього тактового генератора У багатьох випадках зручно використовувати цей вбудований генератор Однак на платі конструктора встановлений кварцовий резонатор, тому частоту слід змінити на 20 МГц

На наступних сторінках можна додати файли в проекти і включити все необхідне з бібліотеки Завершується діалог вікном, де можна вибрати опцію:

Рис 3816 Опція виклику діалогу завдання слова конфігурації

У цьому випадку, натиснувши кнопку Finish, Ви отримаєте можливість задати необхідні установки слова конфігурації:

Рис 3817 Діалог завдання слова конфігурації

Повернемося до найпростішої програмі на мові Сі Завантаживши програму, створену в MicroC PRO, за допомогою програми PICkit2 в мікросхему на макетної платі, ви можете переконатися, що обидві програми працюють однаково Можна перевірити це і в програмі ISIS (Proteus)

Рис 3818 Перевірка програми в Proteus

Але вигляд двох однаково працюючих програм дуже різний Справа в тому, що програма на Сі від Flowcode – це результат трансляції з графічного мови на мову Сі Тому програма має дуже загальний вигляд Вид придатний для всіх випадків А в програмі для MicroC операції абсолютно конкретні

З практики роботи з «залізом» всі ми знаємо, що однаково працюють пристрої можуть бути побудовані з різних компонентів Теж можна сказати і про програми

Рядок: trisb = trisb & 0xf7 виділяє третій біт регістра TRISB і встановлює його в нуль, визначаючи роботу цього біта на вихід А рядок: portb = (portb & 0xf7) | 0x08 встановлює цей біт в одиницю, виділивши цей біт за допомогою операції І, а операцією АБО переводячи його в одиницю Умова if(1) виконується завжди, таким чином, else виконуватися не буде

Щоб переконатися в тому, що і компілятор Сі програми Flowcode розуміє не тільки загальний вигляд коду, можна створити таку програму:

Рис 3819 Програма, що використовує вставку на мові Сі, в програмі Flowcode

Її можна перевірити на макетної платі, можна перевірити в програмі Proteus, щоб переконатися

– результат роботи всіх трьох програм однаковий А що ж MPLAB

Я не забув про цю середовищі програмування Після запуску програми, вибравши в пункт Project Wizard розділу Project основного меню, можна, як і з MicroC PRO вказати імя проекту, вибрати модель мікроконтролера, вказати компілятор (я вибрав HI-TECH) і місце розташування проекту

Не забудемо і слово конфігурації (Configure->Configuration Bits)

Рис 3820 Установка бітів в словах конфігурації

Для зміни біти використовуються випадають списки: поруч з кожним бітом є кнопка для отримання списку Тепер можна створити новий файл тексту (File->New), Записати текст, зберегти файл, задавши його розширення – C, і додати в проект Для останнього можна використовувати вікно менеджера проекту: натиснути правою клавішею мишки по Source Files і вибрати Add Files, Вказавши збережений файл на мові Сі

Залишається оттранслировать файл (Project-> Build) і вибрати програматор

Рис 3821 Трансляція коду програми

Зверніть увагу – версія компілятора має обмеження на обсяг тексту до 2000 байт Після підключення програматора (необхідно включити живлення на платі, як і при роботі з програмою PICkit2) можна програмувати мікросхему Як показує висновок операцій, програмування проходить успішно:

Рис 3822 Висновок повідомлення про роботу програматора

Однак на платі не видно результату роботи програми Якщо прочитати мікросхему за допомогою програми PICkit2, то видно, що слово конфігурації не було записано Можна його, звичайно, записати в текст програми:

#include <htch>

  CONFIG(0x2FF2)

void main() {

TRISB = 0xF7 RB3 = 1

}

Але й тепер після запису програми в мікросхему світлодіод на платі не запалюється Але запалюється відразу після підключення програматора з включеною платою до програми PICkit2 Дуже цікаво Потрібно почитати опис цієї версії MPLAB

А зараз відзначимо, що і компілятор HI-TECH вимагає знання синтаксису, характерного для цього компілятора І, нарешті, останнє, що стосується середовища програмування MPLAB

Вимкнемо харчування на платі конструктора Змінимо перше слово конфігурації на 0x0FF2 (у цьому випадку дозволяється режим налагодження, який підтримує PIC16F887)

Оттрансліруем програму в режимі налагодження і виберемо відладчик:

Рис 3823 Включення плати в режимі налагодження

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

І це цікаво

Ми привели до сьогоднішнього стану операційної системи всі необхідні програмні засоби для продовження роботи з конструктором

Ми ще раз переконалися в тому, що можна використовувати графічний мова програмування для освоєння роботи з мікроконтролером Ми переконалися, що знання мови програмування Сі

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

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012