- •Курсова робота
- •Анотація
- •Аннотация
- •1Будова мікроконтролера at90s2313:, огляд алгоритмів,схемних та програмних рішень поставленої задачі
- •Огляд архітектури at90s2313
- •Будовамікроконтролера at90s2313
- •1.2.4 Покажчик стека sp
- •1.2.1 Файл регістрів загального призначення
- •1.2.2 Арифметико-логічний пристрій – алп
- •1.2.3 Статичне озу даних
- •1.2.5 Сторожовий таймер
- •1.2.6 Аналоговий компаратор
- •1.2.7 Регістр управління і стану аналогового компаратора (acsr).
- •Порти введення / виводу–порт
- •1.2.9 Порти введення / виводу - порт d
- •1.2.10 Програмування флеш пам'яті і eeprom
- •1.2.11 ПрограмуванняFlаshпам'яті
- •1.2.12 Програмуванняпам'яті даних
- •1.2.13 Читання пам’яті програм
- •1.2.14 Читання памяті даних
- •Особливості мікроконтролера at90s2313:
- •2 Розробка схем структурної,принципової та алгоритму програми
- •2.1 Структурна схема
- •2.2 Схема електрична принципова
- •2.3 Алгоритм роботи програми
- •3 Розробка програми на мові програмування assembler
- •4 Розробка програми на мові програмування с
- •Моделювання в proteusvsm
- •Висновки
- •Перелік посилань
- •Додаток а Розробка програми на мові програмування Assembler
- •Додаток б Розробка програми на мові програмування с
1.2.1 Файл регістрів загального призначення
Всі команди, оперуючі регістрами, прямо адресуються до будь-якого з регістрів за один машинний цикл. Єдине виключення - п'ять команд оперують з константами SBCI, SUBI, CPI, ANDI, ORI та команда LDI, завантажує регістр константою. Ці команди працюють лише з другою половиною реєстрового файлу - R16 .. R31. Команди SBC, SUB, CP, AND і OR, також як і всі інші, застосовані до всього регістрового файлу.
Кожному регістру присвоєно адресу в просторі даних, вони відображаються на перші 32 комірки ОЗУ. Хоча регістровий файл фізично розміщений поза ОЗУ, подібна організація пам'яті дає гнучкий доступ до регістрів. Регістри X, Y і Z можуть використовуватися для індексації будь-якого регістра.
Крім звичайних функцій, регістри R26 .. R31 мають додаткові функції, ці регістри можна використовувати як адресні покажчики в області пам'яті даних. Ці регістри позначаються як X, Y, Z і визначені наступним чином:
Рисунок 1.3 - Додаткові регістри
При різних режимах адресації ці регістри можуть використовуватися як фіксований адрес, для адресації з автоінкрементом або з автодекрементом.
1.2.2 Арифметико-логічний пристрій – алп
АЛП процесора безпосередньо підключено до 32 регістрів загального призначення. За один машинний цикл АЛП виробляє операції між регістрами реєстрового файлу. Команди АЛП розділені на три основні категорії - арифметичні, логічні і бітові.
1.2.3 Статичне озу даних
На рисунку 1.4 показана організація пам'яті даних в AT90S2313:
Рисунок 1.4 - Організація пам'яті даних в AT90S2313
224 комірки пам'яті включають в себе регістровий файл, пам'ять вводу / виводу і статичне ОЗУ даних.
Перші 96 адрес використовуються для реєстрового файлу і пам'яті вводу / виводу, наступні 128 - для ОЗУ даних.
При зверненні до пам'яті використовуються п'ять різних режимів адресації: прямий, безпосередній зі зміщенням, безпосередній, безпосередній з попередніми декрементом і безпосередній з постінкрементом. Регістри R26 .. R31 реєстрового файлу використовуються як покажчики для безпосередньої адресації.
Пряма адресація має доступ до всієї пам'яті даних.
Безпосередня адресація зі зміщенням використовується для доступудо 63 комірок, базовий адрес яких задається вмістом регістрів Y або Z.
Для безпосередньої адресації з інкрементом або декрементом адреси використовуються адресні регістри X, Y і Z.
За допомогою будь-якого з цих режимів виробляється доступ до всіх 32 регістрів загального призначення, 64 регістрів введення / виводу і 128 комірок ОЗУ.
1.2.4 Покажчик стека sp
Цей 8-розрядний регістр з адресою $3D ($5D) зберігає покажчик стека процесора AT90S2313. 8-ми розрядів достатньо, для адресації ОЗУ в межах $60 - $DF.
Таблиця 1.1 - Біти стека
Біт |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
$3D($5D) |
SP7 |
SP6 |
SP5 |
SP4 |
SP3 |
SP2 |
SP1 |
SP0 |
Читання /запис |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Покажчик стека вказує на область пам'яті в якій розташований стік виклику підпрограм і переривань. Область стека в ОЗУ повинна бути задана до того, як відбудеться будь-який виклик підпрограми, чи будуть дозволені переривання. Покажчик стека зменшується на 1 при запису даних у стек командою PUSH і зменшується на 2 при виклику підпрограми командою CALL, чи обробці переривання. Покажчик стека збільшується на 1 при виборі даних з стека командою POP і збільшується на 2 при виконанні команд повернення з підпрограми або обробника переривання (RET або RETI).
