Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
my_pz_evm.doc
Скачиваний:
3
Добавлен:
16.09.2019
Размер:
710.14 Кб
Скачать

5 Разработка микро эвм

5.1 Разработка структуры микро ЭВМ

На базе спроектированного микропроцессора можно построить микро-ЭВМ, структурная схема которой, как и схема самого микропроцессора, в значительной мере отражает функциональные возможности системы команд, реализованной в микропроцессоре. Структура, разработанной микро ЭВМ, представлена на рисунке 5.1

Р исунок 5.1 – Структура микро ЭВМ

Разработанная микро ЭВМ имеет следующие структурные составляющие:

  1. микропроцессор (МП);

  2. генератор синхросигналов и начальных условий (ГСС и НУ);

  1. внешняя память программ (ВПП);

  2. внешняя память данных (ВПД);

  3. блок обработки прерываний (БОП);

  4. последовательный интерфейс для связи с внешними устройствами (ПИ).

Поскольку в заданном наборе команд микропроцессора есть команда работы с ВПД, то целесообразным становится включение в состав микро-ЭВМ ВПД. Поддержка внешних устройств в данном случае влияет на наличие в схеме блока последовательного интерфейса и блока обработки прерываний.

5.2 Разработка структуры шин

Разрабатываемая микро ЭВМ имеет три основные шины, связывающие между собой основные блоки ЭВМ. К ним относятся: Восьмиразрядные шины адреса и данных и шина управления.

Данные внутри ЭВМ передаются с использованием шины данных, а шина адреса используется для передачи всевозможных адресов.

Устройство управления и синхронизации связано с шиной управления, по которой управляющие сигналы, поступают к устройствам микро ЭВМ и к самому устройству управления и синхронизации.

5.3 Разработка структуры ОЗУ

Разработанная микро ЭВМ оснащена оперативным запоминающим устройством, принцип организации и функционирования которого, в целом аналогичен, принципу организации и функционирования оперативного запоминающего устройства в разработанном гипотетическом микропроцессоре (РПД).

ОЗУ разработанной микро ЭВМ, позволяет выполнять две основные операции, а именно операции чтения из ОЗУ и записи в ОЗУ.

Алгоритм их выполнения состоит в следующем. Перед началом операции чтения/записи в специальный регистр, называемый регистром адреса, помещается адрес ячейки ОЗУ из которой или в которую будет производиться чтение/запись. В случае операции записи, данные, записываемые в ОЗУ, предварительно помещаются с регистр данных ОЗУ. Затем производится пуск оперативного запоминающего устройства.

После проведения операции чтения прочитанные помещаются в регистр данных, откуда производится их последующее изъятие и использование.

5.4 Управление выполнением команд

Управление выполнением команд осуществляется посредством, устройства управления и синхронизации, генерирующим управляющие и синхронизирующие сигналы, которые через шину управления поступают к основным узлам и устройствам микро ЭВМ и к самому устройству управления и синхронизации.

Схема связи устройства управления и шины управления показана на рисунке 5.2

Рисунок 5.2 – Связь устройства управления и шины управления

6 Разработка программы эмуляции микро эвм

30

6.1 Структура эмулятора

Программа эмуляции предназначена для наглядной демонстрации работы разработанного гипотетического микропроцессора и визуализации процесса выполнения команд в нем.

Программа предусматривает возможность демонстрации работы микропроцессора в двух режимах: пошаговом и автоматическом.

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

Внешне, программа представляет собой детализированную схему разработанного гипотетического микропроцессора и при демонстрации отображает содержимое РПП и РПД, регистров АЛУ, регистра команд (РК), счетчика команд (СК) и регистра-указателя данных (РУД), а также шины, используемые текущей микрооперацией.

6.2 Алгоритм функционирования эмулятора

Общая схема функционирования эмулятора представлена на рисунке 6.1.

Рисунок 6.1 – Схема функционирования эмулятора

Работа эмулятора начинается с задания начальных параметров: скорости и режима трассировки.

Эмулятор позволяет наблюдать работу процессора в двух режимах: пошаговом и автоматическом. При автоматическом режиме трассировки программа автоматически изменяет состояние системы через равные промежутки времени, задаваемые таймером. В пошаговом режиме, изменение состояния системы происходит только по команде пользователя при нажатии соответствующей кнопки.

В автоматическом режиме трассировки, так же возможно задание скорости трассировки, которое фактически изменяет интервал работы таймера.

Минимально возможное значение скорости трассировки равняется 500 мс, максимально возможное – 2000мс.

Э

31

муляция команд в программе реализована в виде цикла. Вначале происходит эмуляция команды RL, затем команды MOV и команды LJMP. Затем цикл эмуляции повторяется.

Последовательность эмуляции команд в эмуляторе схематично представлена на рисунке 6.2.

Рисунок 6.2 – Последовательность эмуляции команд

Каждая команда гипотетического МП в программе представляется отдельной функцией с одноименным названием. В зависимости от текущей исполняемой команды происходит вызов той или иной функции с определенным параметром равным шагу или этапу выполнения команды.

За хранение значений текущего шага выполнения команды и текущей выполняемой команды в программе отвечают две глобальные переменные: num_operation и num_step.

После завершения очередного шага выполнения команды переменная num_step, отвечающая за хранение текущего шага выполнения команды инкрементируется.

После завершения выполнения очередной команды, инкрементируется переменная num_operation, отвечающая за хранение значения текущей выполняемой команды, а переменная num_step устанавливается в ноль.

После полного прохода цикла выполнения команд. Обе переменные обнуляются и цикл начинается снова.

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

Ниже приведен список переменных, используемых в программе.

  1. num_operation – номер текущей исполняемой команды.

  2. num_step – номер шага в исполнении текущей команды.

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

В программе используются следующие функции:

R

32

eset_All() – принудительная установка начальных условий выполнения цикла эмуляции;

RL() – эмуляция команды RL;

MOV() – эмуляция команды MOV;

LJMP() – эмуляция команды LJMP;

DoOperation() – переключатель выполняемых команд.

ВЫВОДЫ

В процессе реализации данного проекта были достигнуты цели, которые ставились при создании про­екта, а именно:

  1. спроектировано АЛУ гипотетического микропроцессора по способу реализации ЗМО, АЛУ предназначено для выполнения операций сложения, умножения, обмена и сдвига;

  2. разработаны алгоритмы выполнения команд MOV, LJMP и LJMP;

  3. разработана структурная схема гипотетического микропроцессора, сис­тему команд которого составляют команды ADDC, MUL, RL, XCH, MOV, JMP и LJMP;

  4. разработана структурная схема микро-ЭВМ на базе спроектированного гипотетического микропроцессора;

  5. создана программа эмуляции выполнения команд из системы команд гипотетического микропроцессора.

Однако в дальнейшем и усовершенствованиям и доработкам могут подвергаться, как разработанный микропроцессор, так и спроектированная на его основе микро ЭВМ и программа-эмулятор.

Возможно создание более совершенной структуры микропроцессора, либо модернизация уже существующей, за счет расширения существующей системы команд, введения дополнительных операционных элементов, позволяющих работать со стеком, реорганизации и расширения АЛУ.

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

К ним можно отнести дополнение системы интегрированным учебником с теоретическими данными по структуре и командам микропроцессора МК51, увеличение количества команд, эмулируемых системой, углубление и детализация процесса эмуляции, введений системы тестов контроля знаний.

СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ

  1. Проектирование цифровых устройств на однокристальных микроконтроллерах/ В.В. Сташин, А.В. Урусов, О.Ф. Мологонцева. – М.: Энергоатомиздат, 1990 – 224с.

  2. Толковый словарь по вычислительным системам / Под ред. В. Иллингуорта и др.: Пер. с англ. А.К. Белоцкого и др.; Под ред. Е.К. Масловского. – М.: Машиностроение, 1991. – 560 с.: ил.

  3. Юров В. Assembler: специальный справочник - СПб: Издательство «Питер», 2000. - 496 с.: ил.

  4. Липовецкий Г.П. и др. Однокристальные микроЭВМ: семейство МК48,МК51. М.: МП «Бином» 1992. – 339 с.

Приложение А

Техническое задание НА МИКРОЭВМ

А.1 Общие сведения

Полная тема курсового проекта: «Разработка структуры и эмулятора микро ЭВМ на базе гипотетического микропроцессора».

Проект разрабатывается студентом группы ИС-02а Лесько Николаем Васильевичем.

Дата получения задания: 4 октября 2004 года. Плановый срок окончания работы: 25 декабрь 2004 года.

А.2 Назначение и цели создания проекта

Основной целью создания проекта является разработка структуры микроЭВМ. В процессе разработки необходимо разработать структуру микропроцессора и арифметико-логического устройства микропроцессора.

Результатом разработки будет структурная схема микроЭВМ и структурная схема микропроцессора.

А.3 Требования к функциональным характеристикам

А.3.1 Требования к МЭВМ

Разрабатываемая микроЭВМ должна иметь шинный интерфейс и содержать следующие элементы:

  • микропроцессор;

  • оперативное запоминающее устройство;

  • генератор синхросигналов и начальных установок;

  • шину адреса;

  • шину данных;

  • шину управления.

А.3.2 Требования к МП

А.3.2.1 Требования к составу МП

В состав разрабатываемого МП должны входить следующие элементы:

  • буфер данных;

  • буфер команд;

  • программный счетчик;

  • регистр данных;

  • регистр команд;

  • регистр состояний программы, содержащий 8 бит условий:

  • C – флаг переноса;

  • AC – флаг вспомогательного переноса (сигнализирует переносе или заем в бите 3);

  • F0 – флаг нуля;

  • OV – флаг переполнения;

  • P – флаг паритета(Если число единичных бит аккумулятора нечетное, то P=1);

  • аккумулятор;

  • арифметико-логическое устройство;

  • устройство управления и синхронизации;

А.3.2.2 Требования к командам МП

Разрабатываемый МП должен выполнять команду ADDC(сложение аккумулятора с байтом из РОН и переносом), MUL(умножение аккумулятора на регистр B), RL(циклический сдвиг аккумулятора влево), MOV(пересылка в регистр прямоадресуемого байта), XCH(обмен аккумулятора с прямо адресуемым байтом), LJMP(длинный переход в полном объеме памяти программ), JMP(косвенный относительный переход).

А.3.3 Требования к АЛУ

АЛУ должно реализовать работу ОА с ЗМО. В состав АЛУ должны входить следующие элементы:

  • комбинационная часть;

  • запоминающая часть;

  • выходная шина комбинационной части;

  • входная шина комбинационной части;

  • входная шина запоминающей части;

  • шина для записи внешних данных;

  • регистры запоминающей части.

А.4 Стадии и этапы разработки

Стадии и этапы разработки представлены в таблице А.1.

Таблица А.1- Стадии и этапы разработки ПП

Этапы работы

Срок

выполнения (недели)

1

Анализ структуры и алгоритмов выполнения заданных команд в микропроцессоре прототипе. Уяснение заданий.

1

2

Разработка технического задания на проект

1

3

Разработка структуры АЛУ для выполнения арифметических операций

1

4

Разработка алгоритмов выполнения АО.

1

5

Разработка структуры микропроцессора, реализующего заданный набор команд

1

6

Разработка алгоритмов выполнения команд

1

7

Разработка эмулятора выполнения заданных команд

2

8

Отладка эмулятора

2

9

Тестирование эмулятора

2

10

Написание пояснительной записки к проекту

2

11

Защита проекта

1

Приложение Б

Техническое задание НА ПРОГРАММУ-ЭМУЛЯТОР

Б.1 Общие сведения

Полная тема курсового проекта: «Разработка структуры и эмулятора микро ЭВМ на базе гипотетического микропроцессора»

Программа разрабатывается студентом группы ИС-02а Лесько Николаем Васильевичем.

Дата получения задания: 4 октября 2004 года. Плановый срок окончания работы: 25 декабрь 2004 года.

Б.2 Назначение и цели создания программного продукта

Основной целью создания программного продукта является разработка средств наглядной демонстрации выполнения команд микроЭВМ на базе гипотетического микропроцессора.

Б.3 Требования к функциональным характеристикам программы

Программа должна:

  • иметь удобный пользовательский интерфейс, позволяющий управлять режимами демонстрации исполнения команд МЭВМ: пошаговое или автоматическое выполнение;

  • отображать структуру микроЭВМ;

  • обеспечивать отображение результатов выполнения команд.

Б.4 Требования к программному и аппаратному обеспечению

Для правильного функционирования программного продукта необходимо:

  • IBM – совместимый компьютер;

  • операционная система MS Windows – 95/NT и выше.

Б.5 Стадии и этапы разработки

Стадии и этапы разработки представлены в таблице Б.1.

Таблица Б.1- Стадии и этапы разработки ПП

Этапы работы

Срок

выполнения (недели)

1

Анализ структуры и алгоритмов выполнения заданных команд в микропроцессоре прототипе . Уяснение заданий.

1

2

Разработка технического задания на проект

1

3

Разработка структуры АЛУ для выполнения арифметических операций

1

4

Разработка алгоритмов выполнения АО

1

5

Разработка структуры микропроцессора, реализующего заданный набор команд

1

6

Разработка алгоритмов выполнения команд

1

7

Разработка эмулятора выполнения заданных команд

2

8

Отладка эмулятора

2

9

Тестирование эмулятора

2

10

Написание пояснительной записки к проекту

2

11

Защита проекта

1

Приложение В

40

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Данная система предназначена для ознакомления с некоторыми особенностями процесса выполнения команд в микропроцессоре МК51, а так же на демонстрационном примере в трассировочном режиме пронаблюдать за алгоритмами выполнения следующей группы команд:

– RL – циклический сдвиг аккумулятора влево;

– MOV – пересылка прямоадресуемого байта в регистр;

– LJMP – длинный переход в полном объеме памяти программ .

В.1 Функциональное деление системы

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

В.1.1 Управляющая часть

Управляющая часть системы представляет собой панель, на которой расположены управляющие элементы, при помощи которых осуществляется доступ к основным функциональным возможностям системы, а так же осуществляется управление процессом отображения информации в отображающей части системы.

В.1.2 Отображающая часть

Отображающая часть системы, представляет собой панель, на которой в схематичной форме изображена структурная схема гипотетического микропроцессора, разработанного на основе микропроцессора-прототипа МК51. Отображающая часть системы несет в себе основную информационную нагрузку, поскольку именно на ней происходит отображение этапов выполнения той или иной команды.

В.2 Функциональные возможности системы

Разработанная система позволяет наблюдать за процессом выполнения заданной системы команд в трассировочном режиме.

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

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

В пошаговом режиме переход от одного состояния эмулируемой команды в другое, осуществляется только при нажатием пользователем соответствующей клавиши.

41

В.3 Описание назначения управляющих элементов системы

Система располагает следующим набором управляющих элементов:

– кнопка Автоматический режим – отвечает за пуск системного таймера, и автоматического режима трассировки команд;

– кнопка Следующий шаг – переход в ручной режим трассировки и переход к следующему шагу;

– кнопка Сброс – приведение процесса трассировки в исходное состояние;

– полоса скорости трассировки – устанавливает скорость трассировки в автоматическом режиме.

Приложение Г

42

ЭКРАННЫЕ ФОРМЫ

Рисунок Г.1 – Общий вид окна программы.

Рисунок Г.2 – Вид системы в процессе эмуляции.

Приложение Д

43

ЛИСТИНГ ПРОГРАММЫ

int num_step=0;

int num_operation=0;

char nsm[8];

void ResetAllC()

{

Form1->C1->Color=RGB(210,210,210); Form1->C2->Color=RGB(210,210,210);

Form1->C3->Color=RGB(210,210,210); Form1->C4->Color=RGB(210,210,210);

Form1->C5->Color=RGB(210,210,210); Form1->C6->Color=RGB(210,210,210);

Form1->C7->Color=RGB(210,210,210); Form1->C8->Color=RGB(210,210,210);

Form1->C9->Color=RGB(210,210,210); Form1->C10->Color=RGB(210,210,210);

Form1->C11->Color=RGB(210,210,210); Form1->C12->Color=RGB(210,210,210);

Form1->C13->Color=RGB(210,210,210); Form1->RPP->Color=RGB(210,210,210);

Form1->KOP->Text=""; Form1->Op1->Text=""; Form1->Op2->Text="";

Form1->Operat->Caption="RL A";

}

void rlA()

{

char c=nsm[0]; char s1[8];

strcpy((char*)s1,(char*)nsm); int i=0;

for(i=0;i<7;i++) nsm[i]=s1[i+1];

nsm[i]=c;

}

void RL()

{

switch(num_step)

{

case 0:

ResetAllC(); Form1->Operat->Caption="RL A"; Form1->RPP->Color=RGB(27,122,186);

Form1->C1->Color=RGB(27,122,186); Form1->C2->Color=RGB(27,122,186);

Form1->C3->Color=RGB(27,122,186); Form1->C5->Color=RGB(27,122,186);

Form1->C11->Color=RGB(27,122,186); Form1->C12->Color=RGB(27,122,186);

Form1->Panel_PC->Color=RGB(27,122,186); Form1->UUiS->Color=RGB(27,122,186);

Form1->RK->Color=RGB(27,122,186); Form1->Gen->Color=RGB(27,122,186);

Form1->KOP->Text="23h"; Form1->PC->Text="0Bh"; num_step++;

break;

case 1:

Form1->Op1->Text="08h"; Form1->PC->Text="0Ch"; num_step++;

break;

case 2:

Form1->RPP->Color=RGB(210,210,210); Form1->C1->Color=RGB(210,210,210);

Form1->C2->Color=RGB(210,210,210); Form1->C3->Color=RGB(210,210,210);

Form1->C5->Color=RGB(210,210,210); Form1->Panel_PC->Color=RGB(210,210,210);

Form1->C8->Color=RGB(27,122,186); Form1->C7->Color=RGB(27,122,186);

Form1->Panel_RA->Color=RGB(27,122,186); Form1->RPD->Color=RGB(27,122,186);

Form1->RA->Text="08h"; num_step++;

break;

case 3:

Form1->C8->Color=RGB(210,210,210); Form1->C7->Color=RGB(210,210,210);

44

Form1->Panel_RA->Color=RGB(210,210,210); Form1->C9->Color=RGB(27,122,186);

Form1->Panel_ALU->Color=RGB(27,122,186); Form1->C13->Color=RGB(27,122,186);

Form1->NSM->Text=Form1->RPD_v->Cells[1][3].c_str(); num_step++;

break;

case 4:

ResetAllC(); Form1->RPD->Color=RGB(210,210,210);

Form1->C12->Color=RGB(27,122,186); Form1->C13->Color=RGB(27,122,186);

strcpy((char*)nsm,Form1->NSM->Text.c_str()); rlA();

Form1->NSM->Text=(AnsiString)nsm; Form1->RK->Color=RGB(210,210,210);

num_step++;

break;

case 5:

Form1->C13->Color=RGB(210,210,210);

Form1->Panel_ALU->Color=RGB(210,210,210); Form1->C11->Color=RGB(27,122,186);

Form1->C8->Color=RGB(27,122,186); Form1->RK->Color=RGB(27,122,186);

Form1->Panel_RA->Color=RGB(27,122,186); Form1->RA->Text="08h"; num_step++;

break;

case 6:

Form1->Panel_ALU->Color=RGB(27,122,186); Form1->C7->Color=RGB(27,122,186);

Form1->RPD->Color=RGB(27,122,186);

Form1->RPD_v->Cells[1][3]=Form1->NSM->Text;

Form1->C13->Color=(TColor)RGB(27,122,186); num_step=0; num_operation++;

break;

}

}

void MOV()

{

switch(num_step)

{

case 0:

ResetAllC();

Form1->Operat->Caption="MOV Rn,ad"; Form1->RPD->Color=RGB(210,210,210);

Form1->Panel_ALU->Color=RGB(210,210,210);

Form1->Panel_RA->Color=RGB(210,210,210);Form1->C12->Color=RGB(27,122,186);

Form1->C11->Color=RGB(27,122,186); Form1->C5->Color=RGB(27,122,186);

Form1->C3->Color=RGB(27,122,186); Form1->C2->Color=RGB(27,122,186);

Form1->C1->Color=RGB(27,122,186); Form1->Panel_PC->Color=RGB(27,122,186);

Form1->KOP->Text="A8h"; Form1->PC->Text="0Dh"; num_step++;

break;

case 1:

ResetAllC();

Form1->RPD->Color=RGB(210,210,210); Form1->Panel_ALU->Color=RGB(210,210,210); Form1->Panel_RA->Color=RGB(210,210,210);

Form1->C12->Color=RGB(27,122,186); Form1->C11->Color=RGB(27,122,186);

Form1->C5->Color=RGB(27,122,186); Form1->C3->Color=RGB(27,122,186);

Form1->C2->Color=RGB(27,122,186); Form1->C1->Color=RGB(27,122,186);

Form1->Panel_PC->Color=RGB(27,122,186); Form1->Op1->Text="03h";

Form1->PC->Text="0Eh"; num_step++;

break;

case 2:

ResetAllC(); Form1->RPD->Color=RGB(210,210,210);

Form1->Panel_ALU->Color=RGB(210,210,210);

45

Form1->Panel_RA->Color=RGB(210,210,210); Form1->C12->Color=RGB(27,122,186);

Form1->C11->Color=RGB(27,122,186); Form1->C5->Color=RGB(27,122,186);

Form1->C3->Color=RGB(27,122,186); Form1->C2->Color=RGB(27,122,186);

Form1->C1->Color=RGB(27,122,186); Form1->Panel_PC->Color=RGB(27,122,186);

Form1->Op2->Text="A0h"; Form1->PC->Text="0Fh"; num_step++;

break;

case 3:

Form1->C1->Color=RGB(210,210,210);

Form1->C2->Color=RGB(210,210,210);

Form1->C3->Color=RGB(210,210,210);

Form1->C5->Color=RGB(210,210,210);

Form1->Panel_PC->Color=RGB(210,210,210);

Form1->C8->Color=RGB(27,122,186);

Form1->Panel_RA->Color=RGB(27,122,186);

Form1->RA->Text="A0h";

num_step++;

break;

case 4:

Form1->C7->Color=RGB(27,122,186); Form1->RPD->Color=RGB(27,122,186);

num_step++;

break;

case 5:

Form1->C7->Color=RGB(210,210,210); Form1->C8->Color=RGB(210,210,210);

Form1->Panel_RA->Color=RGB(210,210,210); Form1->RK->Color=RGB(210,210,210);

Form1->C9->Color=RGB(27,122,186); Form1->C13->Color=(TColor)RGB(27,122,186);

Form1->Panel_ALU->Color=(TColor)RGB(27,122,186); Form1->NSM->Text="10h";

num_step++;

break;

case 6:

Form1->RK->Color=(TColor)RGB(27,122,186);

Form1->C9->Color=(TColor)RGB(210,210,210);

Form1->Panel_ALU->Color=(TColor)RGB(210,210,210);

Form1->C7->Color=(TColor)RGB(27,122,186);

Form1->C8->Color=(TColor)RGB(27,122,186);

Form1->Panel_RA->Color=(TColor)RGB(27,122,186); Form1->RA->Text="03h";

Form1->RPD_v->Cells[1][1]="10h"; num_step=0; num_operation++;

break;

}

}

void LJMP()

{

switch(num_step)

{

case 0:

Form1->Operat->Caption="LJMP ad16";

Form1->RPD->Color=(TColor)RGB(210,210,210);

Form1->Panel_ALU->Color=(TColor)RGB(210,210,210);

Form1->C9->Color=(TColor)RGB(210,210,210);

Form1->C13->Color=(TColor)RGB(210,210,210);

Form1->C7->Color=(TColor)RGB(210,210,210);

Form1->C8->Color=(TColor)RGB(210,210,210);

46

Form1->Panel_RA->Color=(TColor)RGB(210,210,210);

Form1->C5->Color=(TColor)RGB(27,122,186);

Form1->C3->Color=(TColor)RGB(27,122,186);

Form1->C2->Color=(TColor)RGB(27,122,186);

Form1->C1->Color=(TColor)RGB(27,122,186);

Form1->Panel_PC->Color=(TColor)RGB(27,122,186);

Form1->RPP->Color=(TColor)RGB(27,122,186);

Form1->KOP->Text="02h"; Form1->PC->Text="10h"; num_step++;

break;

case 1:

Form1->Op1->Text="B1h"; Form1->PC->Text="11h"; num_step++;

break;

case 2:

Form1->C5->Color=(TColor)RGB(210,210,210);

Form1->C3->Color=(TColor)RGB(210,210,210);

Form1->C2->Color=(TColor)RGB(210,210,210);

Form1->C1->Color=(TColor)RGB(210,210,210);

Form1->Panel_PC->Color=(TColor)RGB(210,210,210);

Form1->RPP->Color=(TColor)RGB(210,210,210);

Form1->C8->Color=(TColor)RGB(27,122,186);

Form1->C7->Color=(TColor)RGB(27,122,186);

Form1->Panel_RA->Color=(TColor)RGB(27,122,186);

Form1->RA->Text="B1h";

num_step++;

break;

case 3:

Form1->C7->Color=(TColor)RGB(210,210,210);

Form1->C8->Color=(TColor)RGB(210,210,210);

Form1->Panel_RA->Color=(TColor)RGB(210,210,210);

Form1->RPD->Color=(TColor)RGB(27,122,186);

Form1->C9->Color=(TColor)RGB(27,122,186);

Form1->C5->Color=(TColor)RGB(27,122,186);

Form1->Panel_PC->Color=(TColor)RGB(27,122,186); Form1->PC->Text="0Ah";

num_operation=0; num_step=0;

break;

}

}

void DoOperation()

{

switch(num_operation)

{

case 0:

RL();

break;

case 1:

MOV();

break;

case 2:

LJMP();

break;

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]