Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laba15.doc
Скачиваний:
2
Добавлен:
16.11.2018
Размер:
124.93 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

СУМСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ

КАФЕДРА КОМПЬЮТЕРНИХ НАУК

СЕКЦІЯ КСУ

Звіт

до лабораторної роботи №15 з курсу

“Мікропроцесорні пристрої та системи”

на тему:

«Програмування перетворення форматів даних на мові Асемблер для мікроконтролера AVR»

Бригада №1

Виконав: студент групи СУ-81

Бережний Ю. В.

Перевірив: Войченко Г.І.

Суми 2011 Лабораторна робота №13. Програмування перетворення форматів даних на мові Асемблер для мікроконтролера avr

Тема: Вивчення програм перетворення форматів даних на мові Асемблер для мікроконтролера AVR.

Мета роботи: поглиблення навичок студентів з програмування мікроконторолерів AVR (далі - МК) на мові Асемблер.

Короткі теоретичні відомості

Для представлення даних на практиці використовуються різні формати. Історичні ко- рені таких форматів лежать в технологіях зв’язку початку XX ст., пізніше з розвитком обчис- лювальної техніки число форматів даних збільшувалось, їх ефективність зростала. Компіля- тор з мови Асемблер для мікроконтролерів AVR підтримує наступні формати чисел:

− беззнакові цілі числа (у форматі байт, слово, довге слово та інші);

− цілі числа зі знаком (у форматі ShortInt, Integer, LongInt та інші);

− числа у двійково-десятковому коді (BCD-код);

− числа в упакованому двійково-десятковому коді;

− числа у ASCII-коді.

Беззнакові цілі числа. Логічно представляти числа звичайним двійковим кодом, коли числу 0 відповідає двійковий код 0b0, числу 1 – код 0b1, числу 2 - двійковий код 0b10 і так далі. Що більше число, тим більшу кількість двійкових розрядів необхідно використати для його представлення двійковим кодом. На практиці розрядність коду з міркувань оптимі- зації продуктивності мікроконтролера узгоджується з розрядністю шини даних. Так, для 8- розрядних мікроконтролерів найменший формат представлення цілого числа має ширину один байт. Діапазон представлення чисел у такому форматі: від 0 до 255. Всі ширші формати цілих базуються на цьому байтовому форматі. Діапазон представлення цілих беззнакових чисел у форматі 2 байти (слово) – 0… 65535, у форматі 3 байти (довге слово) – 0… …16777215, а у форматі 4 байти (подвійне слово) – 0… 4294967295.

Цілі числа зі знаком. Часто параметри технічних засобів системної інженерії мають не тільки певну величину, але й змінюють свій знак. Формат представлення таких даних (чисел) передбачає, що старший біт відводиться під знак числа. Для додатних чисел біт знака дорівнює 0, а інші біти відображають величину числа у звичайному двійковому коді. Для від’ємних чисел біт знака встановлюється в одиницю, а величину числа відображають у додатковому двійковому коді. Таким чином, -1 має наступне двійкове представлення: 11111111 2. Якщо обчислити суму +1 і -1, нехтуючи бітом переносу, одержимо очікуваний результат: +1 -1 = 00000001+11111111=0.

Числа у двійково-десятковому коді (BCD-код). Згідно з цим форматом для збе- реження кожної цифри десяткового числа відводиться один байт. Оскільки загальне число десяткових цифр 0…9 дорівнює десяти, для їх представлення достатньо 4 двійкових розряди: від 0000 2 до 1001 2 . Наприклад, десяткове число 43 10 у двійково-десятковому BCD-коді має наступний вигляд: 00000100 00000011. Недолік двійково-десяткового коду полягає у мало- ефективному використанні пам’яті комп’ютера: в кожному байті задіяна тільки половина бі- тів. Також арифметичні дії з числами у BCD-коді складніші, ніж обробка двійкових чисел. Разом з тим, BCD-кодовані числа можуть мати настільки широку розрядність, наскільки вона необхідна для вирішення предметної задачі. Такі задачі виникають, наприклад, у програмах для банківських розрахунків. BCD-кодовані числа можуть бути легко трансформовані у символьний рядок.

Числа в упакованому двійково-десятковому BCD-коді. Відмінність цього формату від попереднього полягає у вдвічі кращій ефективності використання байта: тепер для представлення десяткових цифр використовуються всі біти байта. Чотирма молодшими бітами, як і раніше кодується одна десяткова цифра, чотирма старшими – друга. Те ж саме десяткове число 43 10 в упакованому двійково-десятковому BCD-коді набуває вигляду: 01000011 2-10 = 0х43.

ASCII-код. До недавнього часу широко застосовувався так званий стандартний американський код для обміну інформацією (American Standard Code for Information Inter- change – ASCII-код). Кожний символ в цьому коді зображується певною 8-бітовою комбіна- цією. Таблиця ASCII-кодів символів наведена в Додатку 3.1 до даних методичних вказівок. ASCII-код цифри 0 - це число 48, або 0х30, код цифри 9 – 57, або 0х57. Додавання числа 48 до BCD-коду певної цифри перетворюється в її ASCII-код. Те ж саме можна зробити встано- вленням в лог.1 бітів 4 і 5 BCD-коду. Числа в ASCII-коді займають в пам’яті мікроконтроле-ра такий же об’єм, як і BCD-кодовані числа. Для завантаження в регістри мікроконтролера, наприклад, десяткового числа 123 можна використати наступні команди:

ldi R18, ‘1’ ; символ, оточений одиничними апострофами,

ldi R17, ‘2’ ; сприймається компілятором

ldi R17, ‘3’ ; як такий, що закодований в ASCII-коді.

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