WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Логічні елементи, що застосовуються в електронно-обчислювальній техніці - Курсова робота

Логічні елементи, що застосовуються в електронно-обчислювальній техніці - Курсова робота


//вибір типу мультиплексора
void sub_intro()
{
setcolor(3);
settextstyle(0,HORIZ_DIR,2);
outtextxy(90,100,"ПРИНЦИП РОБОТИ МУЛЬТИПЛЕКСОРА");
settextstyle(1,HORIZ_DIR,0);
setcolor(5);
outtextxy(210,150,"ВИБЕРІТЬ ТИП МУЛЬТИПЛЕКСОРА:");
setcolor(15);
settextstyle(0,HORIZ_DIR,2);
outtextxy(300,200,"4-1");
outtextxy(300,240,"8-1");
outtextxy(300,280,"16-1");
setcolor(1);
settextstyle(1,HORIZ_DIR,0);
outtextxy(460,400,"курсова робота");
outtextxy(460,420,"студента групи 1 ІС-05");
outtextxy(460,440,"Ткачука Андрія");
settextstyle(0,HORIZ_DIR,2);
}
//вибір мультиплексора, повернення значення кількості адресних входів
int intro()
{
int n,i,key;
i=0;
n=i+2;// n-кількість адресних входів
sub_intro();
setcolor(4);
outtextxy(280,200,">");
while(!kbhit())
{
key=getch();if(key==13) goto next;//вихід із функції
key=getch();
//управління клавішами курсора
switch(key)
{
case 72:cleardevice();
i--;
if(i");
break;
case 80:cleardevice();
i++;
if(i>2)i=0;
n=i+2;
sub_intro();
setcolor(4);
outtextxy(280,200+i*40,">");
break;
}
}
next:cleardevice();
settextstyle(1,HORIZ_DIR,0);
return(n);
}
//виведення підказки користування клавішами
void instr(int x0,int y0,int n)
{
int x,y,zm;
if(n==4){x=x0+450;y=y0;zm=20;}
else {x=x0;y=y0;}
outtextxy(x,y,"КЛАВІШІ:");
if(n!=4)outtextxy(x,y+20,"ENTER - вибір мультиплексора ");
else
{
outtextxy(x,y+20,"ENTER -");
outtextxy(x,y+40,"вибір мультиплексора");
}
outtextxy(x,y+40+zm,"UP - вверх");
outtextxy(x,y+60+zm,"DOWN - вниз");
outtextxy(x,y+80+zm,"ESC - вихід");
}
//функція креслення таблиці істинності
void table(int x,int y,int n)//x,y-координати верхнього лівого кута
{ //n-кількість адресних входів
int i,L0=100/n;
setcolor(7);
for(i=0;iline(x,y+i*L0,x+(n+2)*L0,y+i*L0);
for(i=0;i<(n+3);i++)
line(x+i*L0,y,x+i*L0,y+(pow(2,n)+2)*L0);
}
//функція заповнення таблиці істинності
void fill(int x,int y, int n)
{
int i,j,k,t,g,L0=100/n;
for(i=0;iswitch(i)
{
case 0:outtextxy(x+L0/3+i*L0,y+L0/2,"A0");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
case 1:outtextxy(x+L0/3+i*L0,y+L0/2,"A1");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
case 2:outtextxy(x+L0/3+i*L0,y+L0/2,"A2");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
case 3:outtextxy(x+L0/3+i*L0,y+L0/2,"A3");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
}
switch(n)
{
case 2:outtextxy(x+L0/3+2*L0,y+L0/2,"E");
outtextxy(x+L0/3+2*L0,y+1.5*L0,"0");
outtextxy(x+L0/3+3*L0,y+L0/2,"Q");
outtextxy(x+L0/3+3*L0,y+1.5*L0,"0");break;
case 3:outtextxy(x+L0/3+3*L0,y+L0/2,"E");
outtextxy(x+L0/3+3*L0,y+1.5*L0,"0");
outtextxy(x+L0/3+4*L0,y+L0/2,"Q");
outtextxy(x+L0/3+4*L0,y+1.5*L0,"0");break;
case 4:outtextxy(x+L0/3+4*L0,y+L0/2,"E");
outtextxy(x+L0/3+4*L0,y+1.5*L0,"0");
outtextxy(x+L0/3+5*L0,y+L0/2,"Q");
outtextxy(x+L0/3+5*L0,y+1.5*L0,"0");break;
}
t=2;
switch(n)//заповнення таблиці кодовими комбінаціями
{
case 2://для мультиплексора з 2-ма адресними входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
switch(i)
{
case 0:outtextxy(x+L0/3,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3,y+t*L0+L0/2,"1");
}
switch(j)
{
case 0:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"1");
}
outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"1");
t++;
}
break;
case 3://з 3-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
{
switch(i)
{
case 0:outtextxy(x+L0/3,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3,y+t*L0+L0/2,"1");
}
switch(j)
{
case 0:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"1");
}
switch(k)
{
case 0:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"1");
}
outtextxy(x+L0/3+3*L0,y+t*L0+L0/2,"1");
t++;
}
break;
case 4: //з 4-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
for(g=0;g<2;g++)
{
switch(i)
{
case 0:outtextxy(x+L0/3,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3,y+t*L0+L0/2,"1");
}
switch(j)
{
case 0:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"1");
}
switch(k)
{
case 0:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"1");
}
switch(g)
{
case 0:outtextxy(x+L0/3+3*L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+3*L0,y+t*L0+L0/2,"1");
}
outtextxy(x+L0/3+4*L0,y+t*L0+L0/2,"1");
t++;
}
}
for(i=2;i<(pow(2,n)+2);i++)
switch(i)
{
case 2:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D0");break;
case 3:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D1");break;
case 4:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D2");break;
case 5:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D3");break;
case 6:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D4");break;
case 7:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D5");break;
case 8:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D6");break;
case 9:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D7");break;
case 10:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D8");break;
case 11:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D9");break;
case 12:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D10");break;
case 13:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D11");break;
case 14:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D12");break;
case 15:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D13");break;
case 16:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D14");break;
case 17:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D15");break;
}
}
//кресленнямультиплексора
void mult(int x,int y,int n)//x,y-координати верхнього лівого кута
{ //кіль-сть адресних входів
int i,w=90/n,L0=80/n;
setcolor(7);
line(x,y,x,y+L0*(3+n+pow(2,n)));
line(x+w,y,x+w,y+L0*(3+n+pow(2,n)));
line(x+5*w,y,x+5*w,y+L0*(3+n+pow(2,n)));
line(x+6*w,y,x+6*w,y+L0*(3+n+pow(2,n)));
line(x,y,x+6*w,y);
line(x,y+L0*(3+n+pow(2,n)),x+6*w,y+L0*(3+n+pow(2,n))); line(x,y+L0*(1+pow(2,n)),x+w,y+L0*(1+pow(2,n)));
line(x,y+L0*(2+n+pow(2,n)),x+w,y+L0*(2+n+pow(2,n)));
outtextxy(x+L0/2,y+L0/3,"D");
outtextxy(x+L0/2,y+(1+pow(2,n))*L0+L0/3,"A");
outtextxy(x+L0/2,y+(2+n+pow(2,n))*L0+L0/3,"E");
line(x-w,y+(2+n+pow(2,n))*L0+L0/2,x,y+(2+n+pow(2,n))*L0+L0/2);
outtextxy(x+5*w+L0/2,y+L0*(3+n+pow(2,n))/2,"Q");
line(x+6*w,y+L0*(3+n+pow(2,n))/2,x+7*w,y+L0*(3+n+pow(2,n))/2);
for(i=0;i//креслення та нумерація адресних входів
switch(i)
{
case
Loading...

 
 

Цікаве