
- •Введення
- •Архітектура мікроконтролерів mcs-51
- •Блок керування та синхронізації
- •Система команд мікроконтролерів mcs-51
- •Арифметичні команди
- •Логічні команди з байтовими змінними
- •Команди пересилання даних.
- •Бітові команди.
- •Команди розгалуження та передачі управління.
- •Способи адресації операндів.
- •Побудова пам'яті мікроконтролерів сімейства mcs-51
- •Пам'ять програм мікроконтролерів mcs-51
- •Зовнішня пам'ять даних мікроконтролерів mcs-51
- •Внутрішня пам'ять даних мікроконтролерів mcs-51
- •Регістри спеціальних функцій.
Побудова пам'яті мікроконтролерів сімейства mcs-51
Мікроконтролери сімейства MCS-51 побудовані по Гарвардській архітектурі. Це означає, що пам'ять даних і пам'ять програм у цих мікросхемах розділені і мають окремий адресний простір. У цих мікроконтролерах є п'ять адресних просторів: пам'ять програм ,зовнішня пам'ять даних, три для внутрішньої пам'яті. Така побудова пам'яті дозволяє подвоїти доступний адресний простір. Крім того така побудова пам'яті дозволяє в ряді випадків збільшити швидкодію мікросхем.
Схема підключення зовнішніх мікросхем пам'яті до мікроконтролерам сімейства MCS-51 показана на рисунок 2. Регістр адреси D3 на цій схемі призначений для запам'ятовування молодших 8-ми біт адреси, переданих через шину даних / пам'яті, поєднану з портом P0. Старші вісім біт адреси передаються через шину адреси, поєднану з портом P2. Під час передачі адреси через порт P0, мікроконтроллер виробляє синхроімпульс на ніжці ALE. Саме цей імпульс дозволяє запам'ятати молодший байт адреси в регістрі D3.
Для звернення до пам'яті даних і до пам'яті програм використовуються одні й ті ж шина адреси і шина даних, але різні керуючі сигнали. Для читання пам'яті програм виробляється сигнал PSEN, а для читання пам'яті даних виробляється сигнал RD. Для запису інформації в пам'ять даних виробляється сигнал WR. Тобто пам'ять програм доступна тільки для читання, а пам'ять даних доступна і для читання і для запису будь-якої інформації, записаної в двійковому коді.
Рисунок 2. Схема підключення схем зовнішньої пам'яті до мікроконтролерам сімейства MCS-51
Пам'ять програм мікроконтролерів mcs-51
Пам’ять програм призначена для зберігання програм і має окреме від пам’яті даних адресний простір обсягом 64 Кбайт, причому для деяких мікросхем (наприклад КР1816ВЕ51, КМ1819ВЕ751, КР1830ВЕ51) для зберігання програм на кристалі мікроконтролера розташоване ПЗП. Це ПЗП відображається в область молодших адрес пам'яті програм. Враховуючи, що виконання програми після скидання мікроконтролера завжди починається з нульової адреси пам'яті програм, то при включенні живлення почне виконуватися програма, записана в внутрішньому ПЗП мікроконтролера. Мікроконтролери, що не мають внутрішнього ПЗП (наприклад КР1816ВЕ31 і КР1830ВЕ31) можуть працювати тільки з зовнішньої мікросхемою ПЗП ємністю до 64 Кбайт (при використанні портів P1 і P3 в якості розширювача адреси обсяг підключеного ПЗП може бути збільшений до 1Гбайт). Мікроконтролери сімейства MCS-51 мають зовнішній вивід EA, за допомогою якого можна заборонити роботу внутрішньої пам'яті, для чого необхідно подати на вивід EA логічний "0" (з'єднати цей вихід з корпусом). При цьому внутрішня пам'ять програм відключається і, починаючи з нульового адреси, всі звернення відбуваються до зовнішньої пам'яті програм.
Доступ до зовнішньої пам'яті програм здійснюється в двох випадках:
при дії сигналу EA = 0 незалежно від адреси обігу,
в будь-якому випадку, якщо програмний лічильник (РС) містить число більше, ніж максимальна комірка внутрішньої пам'яті програм.
Розподіл пам'яті програм мікроконтролера КР1830ВЕ51 представлено нижче:
|
Для читання пам'яті програм використовуються команди MOVC A, A + @ DPTR і MOVC A, A + @ PC |
Рисунок 3. Адресний простір пам'яті програм.
Для інших мікроконтролерів цього сімейства змінюється тільки об'єм внутрішньої пам'яті програм і кількість доступних векторів переривань програми.
Нижче наведено адреси векторів переривань і відповідні їм апаратурні джерела переривань програми:
Вектор переривання |
Прапори, що викликають переривання |
Джерело переривання |
0000Н |
- |
Рестарт (скидання) контролера RESET |
0003Н |
IE0 |
зовнішнє переривання INT0 |
000bН |
TF0 |
Таймер 0 |
0013Н |
IE1 |
зовнішнє переривання INT1 |
001bН |
TF1 |
Таймер 1 |
0023Н |
RI, TI |
Послідовний порт |
002bН |
TF2, EXF2 |
Таймер 2 |
0033Н |
CF, CCFn (n = 0:4) |
Набір програмованих лічильників (РСА) |
003bН |
AIF |
Аналого-цифровий перетворювач |
0043Н |
CF1, C1CCFn (n = 1:4) |
Набір програмованих лічильників (РСА1) |
004bН |
SEPIF |
Послідовний порт SEP |
0053Н |
IE2 |
зовнішнє переривання INT2 |
005bН |
IE3 |
зовнішнє переривання INT3 |
Продовження таблиці
0063Н |
IE4 |
зовнішнє переривання INT4 |
006bН |
IE5 |
зовнішнє переривання INT5 |
0073Н |
IE6 |
зовнішнє переривання INT6 |
Примітка : вектора переривання, виділені:
жирним підкресленим текстом - присутні у всіх мікросхемах сімейства;
жирним текстом- відсутні в мікросхемах 8051,8031, КР1816ВЕ31, КР1816ВЕ51, КР1816ВЕ751 КР1830ВЕ31, КР1830ВЕ51, КР1830ВЕ751;
звичайним текстом-присутні тільки в мікросхемах 8Х51FA, FB, FC і GB;
курсивом - присутні тільки в мікросхемі 8Х51GB.