Программная реализация приоритетного контроллера

Страницы работы

Содержание работы

Министерство образования Российской Федерации

Хабаровский государственный технический университет

Кафедра “Вычислительная техника”

Расчетно-графическая работа № 5

по курсу “микропроцессорные устройства”

Тема: Программная реализация приоритетного контроллера

Выполнили: студенты гр. ВМ-82

Коломеец А.Н.

Толстых Д.Л.

 Проверил: ст. преподаватель

          Бурдинский И.Н.

Хабаровск 2002

Техническое задание

Требуется программно реализовать работу устройства, имеющего следующие временные диграммы:

Рисунок 1. Требуемые временные диаграммы

Требования к устройству:

·  сигналы С и D должны точно повторять входной сигнал В;

·  сигнал А асинхронный;

·  сигнал В может появится в любой момент времени;

·  задержка  составляет 0,2-1 мкс.

#include <vcl.h>

#pragma hdrstop

#include "Unit20.h"

//------------------------------------#pragma package(smart_init)

#pragma link "RXCtrls"

#pragma link "RXSpin"

#pragma link "CSPIN"

#pragma link "RXSlider"

#pragma resource "*.dfm"

TForm1 *Form1;

int lin, i;

int x=1, xold=0;

int XB=0;

int YB=25, YBold=25;

int YA0=52, YA0old=52;

int YA1=79, YA1old=79;

int YA2=106, YA2old=106;

int YA3=133, YA3old=133;

int YA4=160, YA4old=160;

int YA5=187, YA5old=187;

int YA6=214, YA6old=214;

int YA7=241, YA7old=241;

int YE=248, YEold=248;

int E[8];

int CD=0;

int YC=275, YCold=275;

int YD=302, YDold=302;

int YF=329, YFold=329;

int Fcount=0;

TColor ColorAAA=clBlue;

//----------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------void __fastcall Obnov()

{

Form1->Image1->Canvas->Pen->Color=clWhite;

if (Form1->CLR->Down==true) {Form1->Image1->Canvas->Brush->Color=clBlack;}

if (Form1->CLR->Down==false) {Form1->Image1->Canvas->Brush->Color=clWhite;}

Form1->Image1->Canvas->Rectangle(0,0,5000,369);

x=1, xold=0;

XB=0;

YB=25, YBold=25;

YA0=52, YA0old=52;

YA1=79, YA1old=79;

YA2=106, YA2old=106;

YA3=133, YA3old=133;

YA4=160, YA4old=160;

YA5=187, YA5old=187;

YA6=214, YA6old=214;

YA7=241, YA7old=241;

YE=248, YEold=248;

E[8];

CD=0;

YC=275, YCold=275;

YD=302, YDold=302;

YF=329, YFold=329;

Fcount=0;

Form1->Image1->Canvas->Pen->Color=clAppWorkSpace;

for (lin=25;lin<350;lin+=27)

{

Form1->Image1->Canvas->MoveTo(0,lin); Form1->Image1->Canvas->LineTo(5000,lin);

}

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

Form1->A0->Enabled=true;

Form1->A1->Enabled=true;

Form1->A2->Enabled=true;

Form1->A3->Enabled=true;

Form1->A4->Enabled=true;

Form1->A5->Enabled=true;

Form1->A6->Enabled=true;

Form1->A7->Enabled=true;

Form1->A0->Down=false;

Form1->A1->Down=false;

Form1->A2->Down=false;

Form1->A3->Down=false;

Form1->A4->Down=false;

Form1->A5->Down=false;

Form1->A6->Down=false;

Form1->A7->Down=false;

Form1->ScrollBox1->HorzScrollBar->Position=0;     

}

void __fastcall Efinal()

{ for (i=0;i<=7;i++)

{if (E[i]==0){

YE=268;

if (YEold==248){

Form1->Image1->Canvas->Pen->Color=clFuchsia;

Form1->Image1->Canvas->MoveTo(xold,YEold); Form1->Image1->Canvas->LineTo(xold,YE);

YEold=YE;

}

break;

}

}

}

//------------------------------void __fastcall EUstanov()

{

for (i=0;i<=7;i++)

{if (E[i]==0)

{

E[i]=1;

break;

}

}

for (i=0;i<=7;i++)

{if (E[i]==0) {break;}

}

if (i==8){

YE=248;

Form1->Image1->Canvas->Pen->Color=clFuchsia;

Form1->Image1->Canvas->MoveTo(xold,YEold); Form1->Image1->Canvas->LineTo(xold,YE);

YEold=YE;

}

}

//------------------------void __fastcall TForm1::exitClick(TObject *Sender)

{

Timer1->Enabled=false;

Application->Terminate();

}

//------------------------void __fastcall TForm1::FormCreate(TObject *Sender)

{

Obnov();

}

//------------------------void __fastcall TForm1::StartClick(TObject *Sender)

{

if(Start->Down==true)

{

Timer1->Enabled=true;

Start->Caption="STOP";

delay->Enabled=false;

CLR->Enabled=false;

Obnov();

}

if(Start->Down==false)

{

Timer1->Enabled=false;

Start->Caption="START";

delay->Enabled=true;

CLR->Enabled=true;

Form1->A0->Enabled=false;

Form1->A1->Enabled=false;

Form1->A2->Enabled=false;

Form1->A3->Enabled=false;

Form1->A4->Enabled=false;

Form1->A5->Enabled=false;

Form1->A6->Enabled=false;

Form1->A7->Enabled=false;

}

}

//---------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

for (i=1;i<=9;i++)

{

if(x==570*i) {ScrollBox1->HorzScrollBar->Position=570*i;}

}

Image1->Canvas->Pen->Color=clFuchsia;

//--------------------Для B-------------if(XB==50)

{

XB=0;

if(YB==25) {YB=5;

if (CD==1){//------------Фронт D

YD=302;

Image1->Canvas->MoveTo(xold,YDold); Image1->Canvas->LineTo(xold,YD);

YDold=YD;

CD=0;

//------------Фронт F

YF=329;

Image1->Canvas->MoveTo(xold,YFold); Image1->Canvas->LineTo(xold,YF);

YFold=YF;

}

else     {//------------Фронт С

YC=275;

Image1->Canvas->MoveTo(xold,YCold); Image1->Canvas->LineTo(xold,YC);

YCold=YC;

}

}

else {YB=25;

if (YE==268){ //------------Спад D

CD=1;

YD=322;

Image1->Canvas->MoveTo(xold,YDold); Image1->Canvas->LineTo(xold,YD);

YDold=YD;

Fcount=0;

}

else        {//------------Спад C

CD=0;

YC=295;

Image1->Canvas->MoveTo(xold,YCold); Image1->Canvas->LineTo(xold,YC);

YCold=YC;

}

EUstanov();

}

Image1->Canvas->Pen->Color=clRed;

Image1->Canvas->MoveTo(xold,YBold); Image1->Canvas->LineTo(xold,YB);

}

Image1->Canvas->Pen->Color=clRed;

YBold=YB;

Image1->Canvas->MoveTo(xold,YB); Image1->Canvas->LineTo(x,YB);

XB++;

//------------------Для F---------------------if (Fcount==delay->Value){YF=349;

Image1->Canvas->Pen->Color=clFuchsia;

Похожие материалы

Информация о работе

Тип:
Расчетно-графические работы
Размер файла:
70 Kb
Скачали:
0