Проект учебного пособия по лабораторному стенду Teacher 51, страница 2

+------------------------------------+

¦  0       ¦ 8       ¦ STORE+->D0-+

¦           ¦          ¦ BYTE          ¦     ¦

+-------+------+----------------¦     ¦

¦  1       ¦ 9       ¦ INC  +->D1-¦

¦           ¦          ¦ ADR             ¦     ¦

+-------+------+----------------¦     ¦

¦  2       ¦ A      ¦ DEC  +->D2-¦

¦           ¦          ¦ ADR             ¦     ¦

+-------+------+----------------¦     ¦

¦  3       ¦ B      ¦ SET  +->D3-¦

¦           ¦          ¦ ADR             ¦     ¦

+-------+------+----------------¦     ¦

¦  4       ¦ C      ¦ START+->D4-¦

¦           ¦          ¦                      ¦     ¦

+-------+------+----------------¦     ¦

¦  5       ¦ D      ¦ нет  +->D5-¦

¦           ¦          ¦                      ¦     ¦

+-------+------+----------------¦     ¦

¦  6       ¦ E      ¦ нет  +->D6-¦

¦           ¦          ¦                      ¦     ¦

+-------+------+----------------¦     ¦

¦  7       ¦ F      ¦ нет  +->D7-¦

¦           ¦         ¦                      ¦     ¦

+-------------------------------+     ¦

^      ^      ^         ¦

Биты порта 7F80h (OUT) ¦      ¦      ¦         ¦

+-----------+        ¦      ¦      ¦         ¦

¦D2 ¦D1 ¦D0 ¦        ¦      ¦      ¦         ¦

+---+---+---¦        ¦      ¦      ¦         ¦

¦ 0 ¦ 0 ¦ 0 +--------+      ¦      ¦         ¦

+---+---+---¦               ¦      ¦         ¦

¦ 0 ¦ 0 ¦ 1 +---------------+      ¦         ¦

+---+---+---¦                      ¦         ¦

¦ 0 ¦ 1 ¦ 0 +----------------------+         ¦

+-----------+                                ¦

Биты порта 7F80h (IN)<-----+

Рис. 4б

ОМЭВМ семейства MCS-51 имеют систему прерываний с фиксированными адресами прерываний,  поэтому для обеспечения обработки прерываний пользовательской программой в стандартных точках входа  в обработчики прерываний  находятся  команды  переходов LJMP ADR16, переносящие точки  передачи  управления  обработчикам  в адресное пространство 8000h-8027h, находящееся в ОЗУ.

Пользовательские векторы прерываний.

8000 02 81 00   LJMP 8100h ; Переход на первую ячейку ОЗУ ;            доступную пользовательской программе.

8003 32           RETI          ; Точка входа в обработчик INT0, заглушка.

8004 00 00 00 00 00 00 00

800B 02 HI LO   LJMP TC0_ISR ; Переход на обработчик TC0, ;  используется монитором.

800E 00 00 00 00 00

8013 32         RETI              ; Точка входа в обработчик INT1, заглушка.

8014 00 00 00 00 00 00 00

801B 32         RETI             ; Точка входа в обработчик TC0, заглушка.

801C 00 00 00 00 00 00 00

8023 02 HI LO   LJMP UART_ISR ; Переход на обработчик UART, ;  используется монитором.

8028 00

..............................................................

8100 00                               ;  Первая ячейка ОЗУ, доступная пользовательской  программе.

Монитором контроллера используются для своих целей следующие прерывания :

TC0 -  для сканирования клавиатуры и вывода информации на индикатор,

UART - для инициализации процедуры загрузки кода из ПЭВМ.

При инициализации контроллера по сигналу RESET или  при  передаче управления по адресу 0000h монитор перед разрешением прерываний в точках входа в ISR (по адресам 8000h-8027h) для используемых прерываний от TC0 и UART записывает коды  команд  LJMP  перехода  на свои обработчики, находящиеся в ПЗУ, а для неиспользуемых заглушки RETI.

Таким образом ясно, что пользовательской программе перед разрешением прерываний необходимо записать по  адресу  нужной  точки входа команду перехода на свой обработчик.

При программировании описываемого контроллера пользовательская программа  может как использовать интерфейс,  обеспечиваемый системным монитором,  так и игнорировать его,  взяв управление всеми ресурсами контроллера на себя.

Монитор контроллера предоставляет в распоряжение пользователя следующие возможности:

- вывод информации на индикатор;

- опрос состояния клавиатуры с подавлением дребезга;

- набор процедур последовательного обмена;

При необходимости  использовать  сервисные  возможности  монитора пользовательская программа должна подчиняться определённым правилам: