Разработка микропроцессорной системы. Составление карты распределения адресного пространства МПС под ОЗУ, ПЗУ, внешние и интерфейсные устройства, страница 10

В  первую  очередь  инициируем  стек,  записав  в  его  указатель ( регистр  SP) начальный  адрес  вершины  стека - 30Н.  Так  же  надо  записать  во  внешнюю  память  по  адресу  0000Н  однобайтный  код  уставки.

Рассмотрим  сначала  устройства,  включённые  в  состав  ОМЭВМ.  В  регистре  состояния  программы (PSW),  который  применяется  для  хранения  информации  о  АЛУ  при  выполнении  программы,  необходимо  установить  в  “0”  разряды  3  и  4  (RS0  и  RS1) - тогда  будет  выбран  банк  рабочих  регистров  с  номером  0 (адреса  00 - 07Н).  Для  исключения  работы  таймеров / счётчиков  нужно  записать  в  регистр  управления  ими  TCON  в  разряды  4  и  6  “0”.  А  в  разряд  0 (определяет  вид  прерывания  по  входу  INT0) записать  “1” (прерывание  по  срезу).  В  регистре  приоритетов  прерываний  IP  необходимо  всем  прерываниям  присвоить  одинаковый  приоритет  “1” (всё  равно  будет  работать  только  прерывание  по  INT0).  Для  того,  чтобы  работало  только  прерывание  INT0  нужно  в  регистре  разрешения  прерываний  IE  запретить  все  прерывания,  кроме  INT0,  то  есть  необходимо  только  разряды  7  и  0  установить  в  “1”,  а  остальные - в  “0”.

Для  обеспечения  нормальной  работы  параллельных  интерфейсов (их  в  МПС  3) следует  в  их  регистры  управляющих  слов  (адреса:  0803Н,   0А03Н,  0В03Н) занести  код  10010000Н (режим  простого  ввода / вывода).  Ещё  необходимо  сбросить  в  “0”  триггер  запроса  прерывания  от  клавиатуры,  для  этого  надо  подать  “0”  на  разряд  0  порта  Р1  ОМЭВМ  и  тут  же  установить  его  в  “1”.

Для  корректного  управления  внешними  устройствами  подадим  нулевой  код  на  выходы  Y1 - Y3 (порт  с  адресом  0801Н)  и  на  аналоговый  выход  Y4 (адрес  порта  0802Н).  Также  нужно  обеспечить  начальное  гашение  индикаторов  для  этого  подадим  “0”  на  порты  с  адресами  0А00Н,  0А01Н,  0А02Н (это  цифровые  индикаторы) и  на  порт с  адресом  0В02Н.

После  всех  этих  действий  МПС  готова  к  работе.


 


                                             Начало

 


                                             Т > 0,5 с                       Да

 


Формирование  задержки

 
                                                        Нет

                        Нет

                                           Останов?

 


                                                        Да

 


                                                 Конец

     Рис.  10.  Схема  алгоритма  управления  объектом.


2.2.  Модуль  логической  обработки  сигналов  X1- X4  и  формирования  управляющего  сигнала  Y1.

Для  ввода  сигналов  Х1 - Х4  необходимо  лишь  один  раз  прочитать  содержимое  параллельного  порта  по  адресу  0800Н.  Четыре  младших  разряда  прочитанного  кода  и  будут  сигналами  Х1 - Х4.  Для  получения  Y1  реализуем  функцию  Х1 * (Х4 + Х2 * Х3).  Длительность  сигнала  Y1  составит  Т1 = 100 мс  и  эту  задержку  реализуем  программным  способом.  Для  этого  создадим  цикл,  который  будет  длиться  100 мс.  Тело  цикла  будет  включать  3  команды  NOP (1  машинный  цикл) и  одну  команду  проверки  выхода  из  цикла (2  машинных  цикла).  Так  как  1  машинный  цикл  длится  12 тактов,  а  тактовая  частота - 12 МГц,  то  длительность  одной  итерации  цикла  составит  5 * 1 = 5 мкс.  Тогда  для  задержки  в  100 мс  требуется  выполнить  тело  цикла  20000  раз.  Перед  циклом  задержки  надо  выставить  сигнал  Y1 (бит  0  порта  с  адресом  0801Н),  а  после  цикла - сбросить  его  в  “0”.

2.3  Алгоритм  ввода  напряжений  Х5  и  Х6  и  формирования  сигналов  Y2  и  Y3.