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

После ввода текста процедуры обработки события и сохранения проекта можно, выбрав команду Compile (Компилировать) меню Project (Проект), откомпилировать созданное приложение. Во время компиляции текст программы проверяется на отсутствие синтаксических ошибок. Компилятор просматривает программу от начала. Если обнаруживается ошибка, то процесс компиляции приостанавливается и открывается диалоговое окно Compiling, где в поле Errors указывается количество ошибок. Если синтаксических ошибок нет, компилятор создает исполняемый файл программы, который позже можно запустить из Windows. Имя исполняемого файла такое же, как у файла проекта, а расширение - .exe. Delphi помещает исполняемый файл в тот каталог, где находится файл проекта. Также можно не компилировать программу, а сразу запустить на выполнение. В этом случае компиляция произойдет автоматически. Пробный запуск приложения можно выполнить непосредственно из среды программирования, не завершая работу с Delphi. Для этого необходимо выбрать команду Run (Выполнить) меню Run (Выполнение).

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


 

Пример готовой программы     для эмулятора ПЗУ можно видеть на рисунке 4.4. Как видно из рисунка здесь выставляются адреса и данные для записи в эмулятор и осуществляется управление этим процессом с помощью кнопок. Адрес устанавливается с помощью объектов Shape 1-14. Поле Edit1 отображает установленный адрес, а поле Edit2 - номер корпуса соответствующего этому адресу. Данные устанавливаются с помощью объектов Shape 17-24 и отображаются в поле Edit3. Кнопка Button1 (строб) и Button2 (строб) осуществляют запись младшего и старшего байта адреса соответственно в регистры эмулятора. По нажатию кнопки Button5 (строб+) осуществляется передача данных в ОЗУ аккумулятора. Label 17 отображает состояние шины данных аккумулятора. Кнопка Вutton6 осуществляет запрос на эту шину в случае занятости. Кнопка Button4 (Передача в ОЗУ) осуществляет передачу данных по установленным адресам, формируя три строба сразу за одно нажатие. Кнопка Button3 (проверка данных) осуществляет запрос на шину, что является командой эмулятору освободить шину данных, переводит ОЗУ в состояние выдачи данных на шину для отображения на светодиодах, а также производит чтение через регистр состояния порта принтера. В случае какого-либо несоответствия записанных в ОЗУ, отображенных на светодиодах и считанных через порт можно осуществить поиск ошибок в схеме эмулятора или в программе и устранить их.

Эта программа является отладочной для монтажа схемы эмулятора. В дальнейшем она будет заменена на рабочую.  Как видно из рисунка здесь выставляются нужные адреса (делается это с помощью нажатия любой клавиши мыши на пустой кружок) и их значения можно видеть в окне сообщений. Также там выставляются номера корпусов и задаются данные. После задания всех параметров необходимо передать данные на эмулятор ПЗУ. Нажимается кнопка "Строб" для младшего разряда адреса на приложении и происходит передача данных.


5. ОПИСАНИЕ АЛГОРИТМА ОТЛАДКИ ЭМУЛЯТОРА ПЗУ

В Delphi объект Shape (фигура) обладает определенным набором свойств и может реагировать на события. Для написания     программы     используем     событие «OnMouseDown». С его помощью, нажимая кнопкой мыши на соответствующую фигуру, осуществляется установка адресов и данных.

Если нажата кнопка мыши над кнопкой (значением первого адреса) Shape1 то её цвет меняется в зависимости от того, каким она была окрашена до клика. Если её цвет красный, то к значению адреса (начальный адрес равен нулю) прибавляется единица и меняется значение в окне Edit1. Если после нажатия мышью цвет Shape1 не красный (белый), то от значения адреса отнимается единица и меняется значение в окне Edit1. После изменения значений в окне Edit1 проверяется нажатие кнопки мыши над Shape2. Если кнопка мыши не была нажата над Shape1, то сразу проверяется клик мыши над Shape2.