Курсовая работа: Мікропроцесорний АЦП порозрядного врівноваження із ваговою надлишковістю, що калібрується
Якщо виконується умова Ак>Авх, то на виході
СП значення логічного 0, у випадку Ак<Авх – значення логічної 1. Сигнал з СП
поступає на вивід РС.0 та залежно від його значення МК виконує певну функцію:
Якщо логічний 0, то МК виконує перевірку
значення лічильника і в процесі виконання умови зменшує його та подає сигнали D
і C на РПН для здійснення наступного такту врівноваження.
Якщо логічної 1, то МК виконує очистку
прапорця стану таймера, потім запускає його. За період, визначений таймером,
виконується процес встановлення в регістрах значення сигналів D і C, а також обчислення
в ЦОП цифрового еквіваленту аналогового сигналу входу на ввімкненому розряді та
його збереження його в БП.
Після завершення роботи таймера виконується
перевірка лічильника і в процесі виконання умови зменшує його та подає
збережений сигнали D і C на РПН для здійснення наступного такту врівноваження.
Даний процес продовжується до тих пір, поки
значення в лічильнику буде рівне 0, що свідчить про завершення врівноваження. У
вигляді паралельного, двійкового, 14-розрядного коду через порти B і D
виводяться старша та молодша частина цифрового значення вхідного аналогового
сигналу.
3.2 Організація пам’яті та розподіл
адресного простору
Регістровий файл швидкого доступу містить
32 8-розрядні регістри загального призначення, доступ до яких здійснюється за
один машинний цикл. Шість з 32 регістрів можна використовувати як три
16-розрядні покажчики в адресному просторі даних, що дає можливість
використовувати високоефективну адресну арифметику (16-розрядні регістри X, У і
Z). Один з трьох адресних покажчиків (регістр Z) можна використовувати для
адресації таблиць в пам'яті програм.
Простір вводу/виводу складається з 64 адрес
для периферійних функцій процесора, таких як управляючі регістри,
таймери/лічильники і інші. Доступ до простору вводу/виводу може здійснюватися
безпосередньо, як до елементів пам'яті розташованих після регістрового файлу
(20h- 5Fh).
Доступ до статичного ОЗП, регістровому
файлу і регістрам вводу/виводу здійснюється за допомогою п'яти доступних
режимів адресації підтримуваних архітектурою AVR.
Весь простір пам'яті AVR є лінійним і
безперервним. Гнучкий модуль переривань має власний керуючий регістр в просторі
вводу/виводу , і прапор глобального дозволу переривань в регістрі стану.
Файл регістрів загального призначення
Всі команди, що оперують з регістрами прямо
адресуються до будь-якого з регістрів за один машинний цикл. Кожному регістру
привласнена адреса в просторі даних, вони відображаються на перші 32 комірки ОЗУ.
Хоча регістровий файл фізично розміщений поза ОЗП, подібна організація пам'яті
дає гнучкий доступ до регістрів. Регістри X, У і Z можуть використовуватися для
індексації будь-якого регістра. Окрім звичних функцій, регістри R26..R31 мають
додаткові функції, ці регістри можна використовувати як адресні покажчики у
області пам'яті даних.
Flash-пам'ять програм.
AT90S2333 містять 2К завантажувальної flash-пам'яті
для зберігання програм. Оскільки всі команди займають одне 16- або 32-розрядне
слово, flash-пам'ять організована як 1Kx16. Flash--пам'ять витримує не менше
1000 циклів перезапису. Програмний лічильник має ширину 10 біт і дозволяє
адресуватися до 1024 слів програмної flash-пам'яті.
EEPROM пам'ять даних
AT90S2333 містять 128 байт енергонезалежної
пам'яті (EEPROM). EEPROM організована як окрема область даних, кожен байт якої
може бути прочитаний і перезаписаний. EEPROM витримує не менше 100000 циклів
запису/стирання.
Статичний ОЗП даних
На рисунку 3.1 показана організація пам'яті
даних в AT90S2333. 224 елементи пам'яті включають регістровий файл, пам'ять
вводу/виводу статичний ОЗП даних.
Перші 96 адрес використовуються для
регістрового файлу і пам'яті вводу/виводу , наступні 128 - для ОЗП даних.

Рисунок 3.1 – Структура пам’яті
При зверненні до
пам'яті використовуються п'ять різних режимів адресації: прямий, безпосередній
із зсувом, безпосередній, безпосередній з попереднім декрементом і
безпосередній з постінкрементом. Регисти R26..R31 регістрового файлу
використовуються як покажчики для безпосередньої адресації. Пряма адресація має
доступ до всієї пам'яті даних. Безпосередня адресація із зсувом
використовується для доступу до 63 комірок, базова адреса яких задається
вмістом регістрів У або Z.
За допомогою будь-якого з цих режимів
виробляється доступ до всіх 32 регістрів загального призначення, 64 регістрів
вводу/виводу і 128 комірок ОЗП.
Розподіл адресного простору МК для пристрою
здійснюється таким чином: R16 – регістр, що містить значення кількості розрядів,
R17, R18 – для збереження та обчислення суми СЗР і МЗР, R19 – встановлення
порта С для першого такту перетворення, а також для збереження адреси комірки
пам’яті EEPROM, R20 – збереження проміжного значення ваг СЗР або МЗР i-го такту
перетворення, R21 – для зчитування значень з компаратора, R22 – для переходу до
адреси i-го адресу МЗР, R23, R24, R25 – для роботи таймера.
40 байт EEPROM для збереження двійкових
еквівалентів надлишкових СЗР та МЗР.
3.3 Розробка програми, що керує роботою
мікропроцесора
В МП АЦП порозрядного врівноваження із
ваговою надлишковістю, що калібрується, МК виконує цифрове обчислення ваг
розрядів. Для забезпечення основного перетворення аналог-код періодом 100мкс
для 20 тактів перетворення перемикання повинно складати 100/20 – 5мкс. При
тактовій частоті мікроконтролера 10 МГц його період 100 нс. Максимальне
значення таймера: 216 = 65535.
Потрібно підібрати тактову частоту таймера
так, щоб він рахував до 65535 за 5мкс.
При тактовій частоті 10 МГц таймер дорахує
до кінця за 100 нс * 65536 = 6,6 мс, що більше 5 мкс.
Потрібно встановити Bit1, Bit0 TCCR1B без коефіцієнту
поділу частоти TCCR1B = 0b00000001
Визначимо число, що буде завантажено до
OCR1A з яким буде порівнювати компоратор поточний стан таймера.
Підрахуємо кількість тактових імпульсів за
час 5 мкс: 5мкс / 100нс = 50
Затримка у 5мкс дорівнює 50 імпульсів. Саме
це число завантажимо у OCR1A. Цей регістр складається з двох 8 бітних регістрів
OCR1AH та OCR1AL. Перетворемо 50 у шестнадцяти розрядне число й завантажимо його
до OCR1AH (старша частина) та OCR1AL (молодша частина).
50(10) = 32(16).
OCR1AH = $00
OCR1AL = $32
Цифрове обчислення коду здійснюється за
допомогою двійкових еквівалентів надлишкового коду на виході РПН у ЦОП шляхом
підсумовування двійкових еквівалентів ваг розрядів, які виявилися включеними
після зрівноважування вхідного аналогового сигналу та зберігаються в EEPROM.
Для
НПСЧ на основі “золотої пропорції“ двійкові
еквіваленти являють собою двохбайтові числа, які наведено в таблиці 3.1.
Таблиця 3.1 – Двійкові еквіваленти
надлишкового коду ЦАП
№ розряду |
Двійковий код |
№ розряду |
Двійковий код |
СЗР |
МЗР |
СЗР |
МЗР |
1 |
$00 |
$01 |
11 |
$00 |
$7B |
2 |
$00 |
$02 |
12 |
$00 |
$B7 |
3 |
$00 |
$03 |
13 |
$01 |
$42 |
4 |
$00 |
$04 |
14 |
$02 |
$09 |
5 |
$00 |
$08 |
15 |
$03 |
$4B |
6 |
$00 |
$0B |
16 |
$05 |
$53 |
7 |
$00 |
$12 |
17 |
$08 |
$A2 |
8 |
$00 |
$1D |
18 |
$0D |
$FF |
9 |
$00 |
$2F |
19 |
$16 |
$B0 |
10 |
$00 |
$4B |
20 |
$24 |
$C8 |
Програмна реалізація МП АЦП порозрядного
врівноваження із ваговою надлишковістю, що калібрується доцільно розробити за
допомогою компілятора мови асемблера. Лістинг програми має вигляд:
Страницы: 1, 2, 3, 4, 5, 6 |