МИКРОКОНТРОЛЛЕР СЕМЕЙСТВА MCS–51
1. СТРУКТУРНАЯ СХЕМА МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА MCS–51
Основой микроконтроллера (см. рис. 1) является 8–ми битовое Арифметическо–Логическое устройство (АЛУ). Память МК имеет Гарвардскую архитектуру, т.е. логически разделена: на память программ – ПП (внутреннюю или внешнюю), адресуемую 16–ти битовым счетчиком команд (СК) и память данных – внутреннюю (Резидентная память данных – РПД) 128 (или 256) байт, а также внешнюю (Внешняя память данных – ВПД) до 64 Кбайт. Физически память программ реализована на ПЗУ (доступна только по чтению), а память данных – на ОЗУ (возможна запись и чтение данных).
Прием и выдача внешних сигналов осуществляется через 4 восьмибитовых порта Р0..Р3. При обращении к внешней памяти программ (ВПП) или памяти данных (ВПД) порты Р0 и Р2 используются как мультиплексированная внешняя шина Адрес/Данные. Линии порта Р3 могут выполнять также альтернативные функции (см. табл. 1).
16–ти битовый регистр DPTR формирует адрес ВПД или базовый адрес Памяти программ в команде преобразования Аккумулятора. Регистр DPTR может также использоваться как два независимых 8–ми битовых регистра (DPL и DPH) для хранения операндов.
8–ми битовый внутренний регистр команд (РК) принимает код выполняемой команды; этот код дешифрируется схемой управления, которая генерирует управляющие сигналы (см. рис. 1).
Обращение к регистрам специальных функций – РСФ (SFR – на рис. 1 они обведены пунктирной линией) возможно только с использованием прямой байтовой адресации в диапазоне адресов от 128 (80h) и более.
Резидентная память данных (РПД) в первых моделях микроконтроллеров семейства MCS–51 имела объем 128 байт. Младшие 32 байта РПД являются одновременно и регистрами общего назначения – РОН (4 банка по 8 РОНов). Программа может обратиться к одному из 8–ми РОНов активного банка. Выбор активного банка РОНов осуществляется программированием двух бит в регистре состояния процессора – PSW.
Таблица 1 – Назначение выводов MCS–51
№ выв. Обозначение Назначение 1..8 Р1[0..7] 8–ми битовый квазидвунаправленный порт ввода/вывода 9 RST
Сигнал сброса (активный уровень – высокий);
Сигнал RST обнуляет : PC и большинство Регистров Специальных Функций (SFR), запрещая все прерывания и работу таймеров; выбирает Банк РОНов 0; записывает в порты Р0_Р3 "все единицы", подготавливая их на ввод; записывает код 07H в указатель стека (SP);
10..17
P3[0..7]
P3[0]
P3[1]
P3[2]
P3[3]
P3[4]
P3[5]
P3[6]
P3[7]
8–ми битовый квазидвунаправленный порт ввода/вывода; после записи в соответствующий разряд "1" – выполняет дополнительные (альтернативные) функции:
Вход последовательного порта – RxD;
Выход последовательного порта – TxD;
Вход внешнего прерывания 0 – ~INT0;
Вход внешнего прерывания 1 – ~INT1;
Вход таймера/счетчика 0 – Т0;
Вход таймера/счетчика 1 – Т1;
Выход строб. сигнала при записи в ВПД – ~WR;
Выход строб. сигнала при чтении из ВПД – ~RD;
18, 19 X1, X2 Выводы для подключения кварцевого резонатора или LC–контура; 20 GND Общий вывод; 21..28 P2[0..7] 8–ми битовый квазидвунаправленный порт ввода /вывода; или выход адреса A[8_15] в режиме работы с внешней памятью (ВПП или ВПД); 29 PME Строб чтения Внешней Памяти Программ, выда–ется только при обращении к внешнему ПЗУ; 30 ALE Строб адреса Внешней памяти (ВПП или ВПД); 31 ЕА
Отключение РПП, уровень "0" на этом входе пе–реводит МК на выборку команд только из ВПП;
39..32 Р0[0..7] 8–ми битовый двунаправленный порт ввода/ вывода; при обращении к Внешней Памяти выдает адреса A[0_7] (которые записываются во внешний регистр по сигналу ALE), а затем обменивается байтом синхронно с сигналом ~PME (для команд) или ~WR,~RD (для данных в ВПД), при обращении к Внешней Памяти в регистр порта Р0 записываются все единицы, разрушая хранимую там информацию; 40 Ucc Вывод напряжения питания
Переключение банков РОНов упрощает выполнение подпрограмм и обработку прерываний, т.к. ............