- •Российская открытая академия транспорта микропроцессорные информационно-управлчющие системы
- •Микроконтроллеры серии 1830ве51
- •1.1. Структурная схема микроконтроллера 1830ве51
- •1.1.1. Блок управления
- •1.1.2. Арифметико-логический блок
- •1.1.3. Организация памяти программ
- •1.1.4. Резидентная память данных
- •1.1.5. Счетчик команд и регистр указателя данных
- •1.1.6. Регистр указателя стека
- •1.1.7. Таймеры/счетчики
- •Режимы работы таймера/счетчика
- •1.1.8. Блок последовательного интерфейса и прерываний
- •1.1.9. Порты мк51
- •1.1.10. Начальная установка и режимы работы мк51
- •1.2. Система команд микроконтроллера 1830ве51
- •1.2.1. Команды пересылки данных
- •1.2.2. Команды арифметических операций
- •1.2.3. Команды логических операций
- •1.2.4. Команды операций над битами
- •1.2.5. Команды передачи управления
- •1.3. Структурная организация систем на основе микроконтроллеров
- •1.3.1. Подключение внешней памяти
- •1.3.2. Расширение каналов ввода/вывода информации
- •2. Программная реализация типовых вычислительных процедур
- •2.1 Типовые структуры схем алгоритмов обработки данных
- •2.2 Приемы программирования
- •2.3 Примеры программ обработки данных в мк51
- •2.3.1 Примеры использования команд передачи данных
- •2.3.2 Примеры использования команд арифметических операций
- •2.3.3 Примеры использования команд логических операций
- •3. Применение микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.1. Классификация микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.2 Автоматизированные системы управления и контроля движения поездов
- •3.3 Автоматизированные системы диспетчерского контроля
- •3.4 Информационные системы обслуживания пассажиров
- •Литература
1.1.9. Порты мк51
Четыре двунаправленных порта Р0...Р3 предназначены для обмена информацией MK51 с внешними устройствами. Каждый из портов содержит 8-разрядный регистр-защелку, имеющий байтовую и битовую адресацию для установки (сброса) разрядов программным способом.
Физические адреса регистров портов Р0...Р3 приведены в табл. 1.13.
Таблица 1.13
Номер порта |
Байтовая адресация |
Битовая адресация |
Р0 |
80H |
80H…87H |
Р1 |
90H |
90H…97H |
Р2 |
0A0H |
0A0H…0A7H |
Р3 |
0B0H |
0B0H…0B7H |
Помимо работы в качестве обычных портов ввода/вывода линии портов Р0…Р3 могут выполнять ряд дополнительных функций, описанных ниже.
Через порт Р0:
Выводится младший байт адреса А0...А7 при работе с ВПД и ВПП;
Выдается из МК51 и принимается в МК51 байт данных при работе с внешними памятью программ и данных, причем обмен данными и выдача адреса мультиплексированы во времени;
Задаются данные при программировании внутреннего ПЗУ и читается содержимое RPM.
Через порт Р1задается младший байт адреса при программировании внутреннего ПЗУ и при чтении RPM.
Через порт Р2:
Выводится старший байт адреса А8...А15 при работе с ВПД и ВПП;
Задается старший байт (разряды А8...А14) адреса при программировании внутреннего ПЗУ и при чтении RPM.
Альтернативные функции линий порта Р3 приведены в табл. 1.14
Таблица 1.14
Номер линии |
Имя линии |
Альтернативная функция |
Р3.0 |
RxD |
вход УАПП |
Р3.1 |
TxD |
выход УАПП |
Р3.2 |
нулевой вход внешнего запроса прерывания | |
Р3.3 |
первый вход внешнего запроса прерывания | |
Р3.4 |
T0 |
вход счетчика внешних событий Т/С0 |
Р3.5 |
T1 |
вход счетчика внешних событий Т/С1 |
Р3.6 |
WR |
строб записи в ВПД, сопровождающий вывод данных из порта Р0 при использовании команд MOVX@Ri, А или MOVX@DPTR, A |
Р3.7 |
RD |
строб чтения из ВПД, сопровождающий ввод данных через порт Р0 при использовании команды MOVXA@Ri и MOVXA@DPTR |
Альтернативная функция любой линии порта Р3 реализуется только в том случае, если в соответствующем этой линии разряде регистра-защелки записана 1.
1.1.10. Начальная установка и режимы работы мк51
Сброс микросхемы осуществляется сигналом RST (активный высокий уровень напряжения) при условии подачи на МП внешнего тактового сигнала или при подключенном кварце. Для гарантированного сброса высокий уровень на входе RST должен удерживаться не менее 2 машинных циклов.
На рис. 1.12 показана цепь для автоматического сброса при включении
Рис. 1.12. Цепь сброса МК51
питания. После подачи активного сигнала на вход RST МП продолжает работать еще в течение машинного цикла, после чего сигналы ALE и PME устанавливаются в "1" и находятся в этом состоянии все время, пока действует сигнал RST. После подачи на вход RST лог. "0" проходит от 1 до 2 машинных циклов до начала формирования этих сигналов.
Активный уровень на входе RST "запускает" внутренний алгоритм сброса МК51, согласно которому выполняются следующие действия:
Счетчик команд РС, регистры специальных функций, кроме регистров-защелок портов Р0-Р3, указателя стека SP и регистра SBUF, сбрасываются в нуль.
В указатель стека записывается адрес 07Н.
Запрещается работа Т/С, УАПП и всех источников прерываний.
Выбирается Банк 0 ОЗУ, порты Р0-Р3 подготавливаются для приема данных, а выводы ALE и PME определяются как входы для внешней синхронизации.
В регистры специальных функций PCON, IP и IE в функциональные биты записывается ноль, а неопределенные биты устанавливаются случайным образом.
В регистры-защелки портов Р0-Р3 записывается "1".
Сигнал сброса не влияет на содержимое внутреннего ОЗУ. После включения питания содержимое ЯП устанавливается случайным образом.
Режим холостого хода. В этом режиме блокируются узлы CPU. Состояние регистров не изменяются. Для выхода из режима холостого хода используется два способа. В первом случае, активация любого разрешенного прерывания, приведет к сбросу PCON.0 в «0», выключая режим холостого хода. После выполнения команды RETI (выход из подпрограммы обслуживающей прерывание) будет использована команда, которая следует за командой, переводящей МК51 в режим холостого хода.
При втором способе используется аппаратный сброс по входу RST, длительностью не менее двух машинных циклов.
Биты GF0 и GF1 удобно использовать для индикации режима, в котором была вызвана программа обработки прерываний.
Режим микропотребления.Команда, устанавливающая PCON.1 в «1» (PD), является последней перед переходом в режим микропотребления. В этом режиме задающий генератор останавливается, прекращая работу всех узлов. Сохраняется только содержимое ОЗУ. В этом режиме можно установить Ucc=2 В. Для выхода из режима микропотребления необходимо активизировать системный сброс, который должен длиться не менее 10 мс.