3.2. Програма
Процес створення програми підрозділяється на наступні етапи:
1. Власне написання програми мовою Асемблера або на будь-якій іншій мові, для якого є програма – транслятор, що працює з даним процесором.
2. Трансляція програми в об’єктний код, - тобто в ті коди, що будуть потім „зашиті” у пам’ять програм мікропроцесора і по яких він і буде працювати.
3. Виправлення помилок, виявлених транслятором у процесі трансляції і повторна трансляція.
4. Налагодження програми в налагоджувальній програмі, що відтворює роботу шуканого процесора. Знаходження помилок алгоритму. Виправлення помилок у тексті програми. Ретрансляція програми.
5. У випадку, якщо транслятор створює файл об’єктного коду в HEX форматі, перетворення в BІN формат, необхідний для роботи програматора.
6. Прошивання коду в пам’ять програм за допомогою програматора.
7. Пробний запуск програми. Виявлення й аналіз помилок. Повторення всього циклу розробки, починаючи з пункту 1 (якщо це необхідно).
Отже, розглянемо детально порядок створення програми для мікроконтролера AT89C2051.
Спочатку розробляємо схему майбутнього мікропроцесорного пристрою. Визначаємо до яких портів, які керовані кола будуть підключатися. До яких портів і як будуть підключатися датчики й можливі блоки керування. Потрібно розуміти в принципі алгоритм процесора в даній схемі. Саме ці аспекти і були докладно розглянуті вище.
Наступний етап – написання тексту програми. Перед тим як писати текст програми, потрібно вивчити архітектуру і систему команд мікропроцесора.
Під архітектурою розуміють те, які внутрішні регістри має процесор. Оскільки мікроконтролер AT89C2051 має внутрішній ОЗП, сполучений з регістрами загального призначення, потрібно добре орієнтуватися в структурі цього ОЗП. Крім того, в поняття архітектури входить наявність портів введення/виведення.
Система команд – це сукупність усіх команд мікропроцесора. Потрібно розуміти, що виконує і на що впливає кожна команда.
Наступне, що потрібно знати перш, ніж починати написання програми – це те, яка програма-транслятор буде використовуватись. Від цього буде залежати текст майбутньої програми. Для кожного процесора існує звичайно безліч модифікацій програм трансляторів. Вони відрізняються не по набору команд (набір команд визначається процесором), а за формою написання програми. Програми для контролера AT89C2051 пишуться звичайно мовою Асемблера. За допомогою цього транслятора і була написана програма, текст якої поданий в додатку 2.
Після написання тексту програми і запису його на диск у виді файлу з розширенням asm (наприклад, myprog.asm), необхідно виконати трансляцію програми. Для цього необхідно помістити файл із текстом програми і файл програми транслятора (Asm51.exe) в одну директорію. Ця директорія повинна з’явитися в активній панелі навігатора (командера). Після цього у командному рядку набираємо наступну команду: asm51 myprog.asm
і натискаємо клавішу Enter. По закінченні роботи програми, вона повинна видати повідомлення про кількість знайдених помилок при трансляції. Крім того, у тій же директорії з’явиться кілька нових файлів. Файл myprog.lst – це лістинг трансляції. Він містить той же текст програми, але праворуч доданий стовпець, де показані результати трансляції. Це коди, якими програма замінили команди, написані мовою Асемблер й адреси комірок пам’яті програм, куди необхідно ці коди помістити. Там же утримується опис усіх знайдених помилок. Позначки робляться прямо в тексті програм, і стрілкою відзначається місце, де знайдене помилка. Ще один файл, що з’явиться в результаті трансляції – це myprog.hex. Це і є вихідний код програми, призначений для прошивання в пам’ять програм. Однак перш ніж прошивати програму в процесор, потрібно випробувати її роботу в налагоджувальній програмі. Ця програма імітує роботу мікроконтролера і при цьому показує на екрані вміст усіх регістрів і комірок пам’яті процесора. Програму можна виконувати, як покроково, так і в режимі автоматичного виконання з постановкою крапок перехоплення.
Після цього можна приступати до прошивання програми в пам’ять програм мікроконтролера. Але перед цим потрібно перевести об’єктний код з формату HEX у формат BІN. HEX формат – це спеціальний текстовий формат, у якому всі байти коду програми, а також адреси їх розміщення записуються у виді шестнадцятирічного коду. BІN формат – це просто набір кодів, що складають програму. Для перекладу з одного формату в іншій і назад служить пара програм: hex2bіn.exe і bіn2hex.exe. У результаті роботи програми з’явиться файл myprog.bіn.
Слід відзначити, що в додатку 2 подано лише основні аспекти програми, а саме: введення/виведення та розміщення інформації в пам’яті, а також основна програма обробки інформації згідно алгоритмом функціонування пристрою.
Поряд з цим повна програма повинна висвітлювати і такі аспекти як:
4 робота бітової пам’яті адресації, внутрішньої пам’яті даних із усіма її особливостями;
4 додаткові підпрограми: робота кнопок UP, DOWN, UP+DOWN;
SELECT, EXT/INT;
4 програмування термостата.
ВИСНОВКИ
В даному курсовому проекті було розроблено цифровий термометр. Було докладно розглянута сучасна елементна база, проаналізоване технічне завдання та побудовано структурну схему пристрою. У роботі було розглянуто принцип дії як всього пристрою, так і його окремих структурних блоків. Результатом розробки цифрового пристрою стала електрична принципова схема, яка була подана у додатках.
Особливу увагу було звернуто на розробку програмного забезпечення. Було подано докладний алгоритм роботи пристрою не з точки зору користувача чи розробника, а із врахуванням особливостей взаємодії виконавчих блоків із мікропроцесором, його архітектури та структури команд. Текст програми, виконаний на мові Асемблер, було також подано в додатках до проекту.
В результаті роботи було спроектовано простий у виконанні, однофункціональний цифровий термометр. Було дотримано точності вимірювань, заданої технічним завданням, (0,5°С). При цьому діапазон вимірюваних температур завдяки вдалому вибору елементної бази було розширено (до -55°C .+125°C).
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1.«Мікропроцесори та мікропроцесорні комплекти інтегральних мікросхем», довідник, під ред. В.А. Шахнова, том 2, М., «Радио и связь», 1988.
2. А.С. Басманов «МП и ОЭВМ», Москва, «Мир», 1988.
3. В.О. Поджаренко, В.В. Кухарчук „Вимірювання і комп’ютерно- вимірювальна техніка”-К., 1991
4. В.О. Поджаренко, В.В. Кухарчук „Метрологія та вимірювальна техніка. Для самостійної роботи студентів та виконання курсових робіт”-В., ВДТУ, 2000
5. www.dalsemi.com
6. www.chipnews.com.ua №6, 2000
7. В.В. Сташин, А.В. Урусов «Программирование цифровых устройств на однокристальных микроконтроллерах», Москва, «Энергоатомиздат», 1990.