Блок управления для системы кодового контроля с возможностью внутреннего соединения абонентов, страница 10

Если цвет Shape21 красный, то к значению данных прибавляется цифра 64 (шестьдесят четыре) и меняется значение в окне Edit2. Если после нажатия мышью цвет Shape21 не красный, то от значения адреса отнимается шестьдесят четыре и меняется значение в окне Edit2. После изменения значений в окне Edit2 проверяется нажатие кнопки мыши над Shape22. Если кнопка мыши не была нажата над Shape21, то сразу проверяется клик мыши над Shape22.

Если цвет Shape22 красный, то к значению данных прибавляется цифра 128 (сто двадцать восемь) и меняется значение в окне Edit2. Если после нажатия мышью цвет Shape22 не красный, то от значения адреса отнимается шестьдесят четыре и меняется значение в окне Edit2. После изменения значений в окне Edit2 проверяется нажатие кнопки мыши на Button1. Если кнопка мыши не была нажата над Shape22, то сразу проверяется клик мыши на Button1.

Если на кнопку Button1 было нажатие, то устанавливается младший адреса в регистре данных порта LPT1. Далее следует установка адреса первого     регистра     и начинается процедура формирования строба.

Если на Button1 не было нажатия, то проверяется нажатие на кнопку Button2 и если условие выполняется, то устанавливается старший байт адреса в регистре данных порта LPT1. Устанавливается адрес второго регистра и формируется строб.

Если нажатия на Button2 не было, то переход к опросу нажатия клавиши Button3. Если произошло нажатие на клавишу, то устанавливается байт данных в регистре данных порта LPT1. Устанавливается адрес ОЗУ и выполняется процедура формирования строба.

Алгоритм программы, программа и принципиальная схема эмулятора представлены в приложении 1.


6.ПРОЦЕДУРА АКТИВИЗАЦИИ ФОРМЫ

После процесса отладки эмулятора ПЗУ создается на языке Delphi приложение для проверки работоспособности основной программы системы кодового контроля. Разрабатываемую форму этого приложения можно увидеть на рисунке 6.1.

При активизации этой формы значения адресов, данных и корпусов обнуляются. Устанавливаются линии порта запроса на шину и через паузу в 10 мкс. проверяются линии порта свободности шин. Если шина свободна, то индикатор свободности шин (Shape23) засветится зеленым цветом и высветится надпись - " ШИНА СВОБОДНА ". Теперь эмулятор ПЗУ готов к работе.

Если шина данных занята, то индикатор Shape23 засветится красным цветом - это означает, что микропроцессор еще не завершил начатую операцию. После ее завершения процессор освобождает шину и Shape23 становиться зеленого цвета.

Блок-схема процедуры активизации формы представлена в приложении.

При загрузке приложения в окне формы находится кнопка "Справка", нажав на которую можно получить справку о назначении индикаторов и других клавиш. Рассмотрим подробнее работу приложения.

Процессор Z80 работает по определенной программе, которая пишется на языке Assembler и компилируется, после чего сохраняется в файле с расширением .txt. На приложении эмулятора ПЗУ расположена кнопка   "открыть файл программ", при нажатии на которую запускается стандартное приложение "Открытие файла ". В этом окне выбирается созданный ранее файл с программой и нажимается кнопка "Open". В случае открытия ошибочного файла действие можно отменить нажав на форме клавишу "Отмена ". Если все действия выполнены правильно, то можно загружать программу в эмулятор ПЗУ.

На форме находится кнопка "Загрузка ПЗУ", нажав на которую инициализируется загрузка эмулятора ПЗУ. При нажатии на эту клавишу можно наблюдать загрузку в специальном компоненте визуального отображения процесса - Progress Bar. Когда Progress Bar заполнится до 100%, то значит, что данные полностью загружены в эмулятор ПЗУ. На рисунке 6.2. отображена отлаженная программа в процессе загрузки данных в ОЗУ. Если в процессе загрузки данных произойдет какой-либо сбой или одна из микросхем ОЗУ будет иметь внутренний дефект, то на форме высветится красный прямоугольник с надписью "Ошибка ОЗУ". После вывода такого сообщения придется либо проверять микросхемы, либо выйти из приложения, нажав кнопку "Выход" и запустив его снова повторить все операции по открытию и загрузки файла.