Блок последовательного интерфейса и прерываний (ПИП)
В состав блока ПИП входят:
· буфер ПИП, обеспечивающий побайтовый обмен информацией между внутренней магистралью данных и шиной ПИП;
· логика управления ПИП, предназначенная для выработки сигналов управления, обеспечивающих режимы работы последовательного интерфейса и организации прерывания программ;
· регистр управления (SCON), предназначенный для приема и хранения кода восьмибитового слова, управляющего последовательным интерфейсом;
· буфер передатчика, предназначен для приема с шины ПИП параллельной информации и выдачи её в виде последовательного потока символов на передатчик последовательного порта;
· буфер приёмника, предназначен для приема данных в виде последовательного потока символов с последовательного порта, преобразования их в параллельный вид, хранения и выдачи в параллельном виде на внутреннюю шину ПИП;
· регистр разрешения прерываний (IE), предназначенный для разрешения или запрещения прерываний от соответствующих источников.
Последовательный интерфейс МК-51 может работать в следующих режимах:
·режим 0. Информация передается и принимается через вход приемника RxD. Через выход передатчика TxD выдаются импульсы синхронизации. Формат посылки-8 бит. Частота приема и передачи – fкв/12, где fкв– тактовая частота ОМЭВМ;
· режим 1. Информация передается через выход передатчика TxD, а принимается через вход приёмника RxD. Формат посылки – 10 бит. Частота приема/передачи задается таймером Т/С1;
· режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки – 11 бит. Частота приема/передачи задается программно и может быть равна fкв/32 или fкв/64;
· режим 3. Идентичен режиму 2 за исключением частоты приема/передачи, которая задается Т/С1.
Система прерывания имеет 5 источников прерывания (в скобках указывается адрес ПК, куда передается управление, когда возникает прерывание, т.е. адрес подпрограммы обслуживания):
· внешнее прерывание с входа INT0 (0003H);
· строенный таймер-счетчик 0 (000BH);
· внешнее прерывание с входа INT1 (00013H);
· встроенный таймер-счетчик 1 (0001BH);
· прерывание от последовательного порта (00023H).
Управление системой прерывания осуществляется с помощью регистров IE (адрес A8H) и IP (адрес B8H). В табл. 3. указаны значения этих битов управления. Регистр IE управляет разрешением прерывания от какого-либо источника, а IP – приоритетом прерывания при одновременном приходе запросов от нескольких источников. Различают 5 уровней приоритета от самого высшего (он указан первым в предыдущем списке источников), до самого низшего (самая последняя строка в списке). Кроме этих уровней регистр IP устанавливает высокий или низкий приоритет внутри каждого уровня в указанном списке. Дело в том, что текущее прерывание может быть прервано только запросом от источника, приоритет которого выше по списку и установлен битом в регистре IP в высокий уровень. При других условиях запрос игнорируется.
Таблица 3.
Регистр IE = A8H
EA | ------- | ------- | ES | ET1 | EX1 | ET0 | EX0 |
Бит | Наименование | Назначение бита | Доступ к биту |
EX0 | Бит разрешения/ запрещения прерывания 0. Устанавливается программно для разрешения прерывания по входу INT0. | Програм-мно | |
ET0 | Бит разрешения/ запрещения прерывания от таймера/счетчика. Устанавливается программно для разрешения прерывания от таймера/счетчика 0. | Програм-мно | |
EX1 | Бит разрешения/ запрещения прерывания 1. Устанавливается программно для разрешения прерывания по входу INT1. | Програм-мно | |
ET1 | Бит разрешения/ запрещения прерывания от таймера/счетчика. Устанавливается программно для разрешения прерывания от таймера/счетчика 1. | Програм-мно | |
ES | Бит разрешения/ запрещения прерывания от последовательного порта. Устанавливается программно для разрешения прерывания по флагам TI, RI. | Програм-мно | |
EA | Флаг разрешения/запрещения всех прерываний. При установке разрешает те прерывания, флаги которых в данном регистре установлены, при сбросе запрещает сразу все прерывания. | Програм-мно |
Регистр IP = B8H
------ | ------- | ------- | PS | PT1 | PX1 | PT0 | PX0 |
Бит | Наименование | Назначение бита | Доступ к биту |
PX0 | Бит приоритета прерывания 0. Устанавливается/сбрасывается программно для определения уровня приоритета ( высокий/низкий) по входу INT0 | Програм-мно | |
PT0 | Бит приоритета прерывания от таймера/счетчика 0 . Устанавливается/сбрасывается программно для определения уровня приоритета (высокий/низкий) прерывания от таймера/счетчика 0. | Програм-мно | |
PX1 | Бит приоритета прерывания 1. Устанавливается/сбрасывается программно для определения уровня приоритета ( высокий/низкий) по входу INT1 | Програм-мно | |
PT1 | Бит приоритета прерывания от таймера/счетчика 1. Устанавливается/сбрасыва-ется программно для определения уровня приоритета (высокий/низкий) прерывания от таймера/счетчика 1. | Програм-мно | |
PS | Бит приоритета прерывания от последовательного порта. Устанавливается/сбрасыва-ется программно для определения уровня приоритета (высокий/низкий) прерывания | Програм-мно |
Регистр состояния (PSW)
Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы. Обозначение разрядов регистра и их назначение приведены в таблицах 4 и 5.
Таблица 4
Таблица 5