| Назва: | Логічні елементи, що застосовуються в електронно-обчислювальній техніці |
| Тип: | Реферати |
| Мова: | Українська |
| Розмiр: | 790,57 KB |
| Скачувань: | 44 |
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 0:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+L0+L0/3,"0");
line(x-w,y+(1+pow(2,n))*L0+L0+L0/2,x,y+(1+pow(2,n))*L0+L0+L0/2);
break;
case 1:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+2*L0+L0/3,"1");
line(x-w,y+(1+pow(2,n))*L0+2*L0+L0/2,x,y+(1+pow(2,n))*L0+2*L0+L0/2);
break;
case 2:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+3*L0+L0/3,"2");
line(x-w,y+(1+pow(2,n))*L0+3*L0+L0/2,x,y+(1+pow(2,n))*L0+3*L0+L0/2);
break;
case 3:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+4*L0+L0/3,"3");
line(x-w,y+(1+pow(2,n))*L0+4*L0+L0/2,x,y+(1+pow(2,n))*L0+4*L0+L0/2);
break;
}
for(i=0;i
//нумерація інформаційних входів
switch(i)
{
case 0:outtextxy(x+L0/2,y+L0/3+L0,"0");
line(x-w,y+L0/2+L0,x,y+L0/2+L0);break;
case 1:outtextxy(x+L0/2,y+L0/3+2*L0,"1");
line(x-w,y+L0/2+2*L0,x,y+L0/2+2*L0);break;
case 2:outtextxy(x+L0/2,y+L0/3+3*L0,"2");
line(x-w,y+L0/2+3*L0,x,y+L0/2+3*L0);break;
case 3:outtextxy(x+L0/2,y+L0/3+4*L0,"3");
line(x-w,y+L0/2+4*L0,x,y+L0/2+4*L0);break;
case 4:outtextxy(x+L0/2,y+L0/3+5*L0,"4");
line(x-w,y+L0/2+5*L0,x,y+L0/2+5*L0);break;
case 5:outtextxy(x+L0/2,y+L0/3+6*L0,"5");
line(x-w,y+L0/2+6*L0,x,y+L0/2+6*L0);break;
case 6:outtextxy(x+L0/2,y+L0/3+7*L0,"6");
line(x-w,y+L0/2+7*L0,x,y+L0/2+7*L0);break;
case 7:outtextxy(x+L0/2,y+L0/3+8*L0,"7");
line(x-w,y+L0/2+8*L0,x,y+L0/2+8*L0);break;
case 8:outtextxy(x+L0/2,y+L0/3+9*L0,"8");
line(x-w,y+L0/2+9*L0,x,y+L0/2+9*L0);break;
case 9:outtextxy(x+L0/2,y+L0/3+10*L0,"9");
line(x-w,y+L0/2+10*L0,x,y+L0/2+10*L0);break;
case 10:outtextxy(x+L0/5,y+L0/3+11*L0,"10");
line(x-w,y+L0/2+11*L0,x,y+L0/2+11*L0);break;
case 11:outtextxy(x+L0/5,y+L0/3+12*L0,"11");
line(x-w,y+L0/2+12*L0,x,y+L0/2+12*L0);break;
case 12:outtextxy(x+L0/5,y+L0/3+13*L0,"12");
line(x-w,y+L0/2+13*L0,x,y+L0/2+13*L0);break;
case 13:outtextxy(x+L0/5,y+L0/3+14*L0,"13");
line(x-w,y+L0/2+14*L0,x,y+L0/2+14*L0);break;
case 14:outtextxy(x+L0/5,y+L0/3+15*L0,"14");
line(x-w,y+L0/2+15*L0,x,y+L0/2+15*L0);break;
case 15:outtextxy(x+L0/5,y+L0/3+16*L0,"15");
line(x-w,y+L0/2+16*L0,x,y+L0/2+16*L0);break;
}
}
//функція, що малює стрілку
void arrow(int x, int y)
{
setfillstyle(1,4);
setcolor(4);
line(x,y,x-20,y-10);
line(x,y,x-20,y+10);
line(x-15,y,x-20,y-10);
line(x-15,y,x-20,y+10);
floodfill(x-5,y,4);
}
//введення кодової комбінації на адресні входи мультиплексора
void adress(int x,int y,int n,int m)
{
int i,j,k,g,t,L0=100/n;
t=0;
switch(n)
{
case 2://для мультиплексора з 2-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
switch(i)
{
case 0:if(t==m)outtextxy(x-90/n,y+(1+pow(2,n))*L0,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(1+pow(2,n))*L0,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+(2+pow(2,n))*L0-L0/5,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(2+pow(2,n))*L0-L0/5,"1");
}
outtextxy(x-90/n,y+(3+pow(2,n))*L0-L0/2.5,"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:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0,"0");break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+L0-L0/4,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+L0-L0/4,"1");
}
switch(k)
{
case 0:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+2*L0-L0/2,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+2*L0-L0/2,"1");
}
outtextxy(x-90/n,y+pow(2,n)*L0+3*L0-L0/1.5,"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:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-2)*L0+L0/3,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-2)*L0+L0/3,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-1)*L0+L0/6,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-1)*L0+L0/6,"1");
}
switch(k)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n))*L0,"0");break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n))*L0,"1");
}
switch(g)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n)+1)*L0-L0/4,"0");
break;
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 0:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+L0+L0/3,"0");
line(x-w,y+(1+pow(2,n))*L0+L0+L0/2,x,y+(1+pow(2,n))*L0+L0+L0/2);
break;
case 1:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+2*L0+L0/3,"1");
line(x-w,y+(1+pow(2,n))*L0+2*L0+L0/2,x,y+(1+pow(2,n))*L0+2*L0+L0/2);
break;
case 2:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+3*L0+L0/3,"2");
line(x-w,y+(1+pow(2,n))*L0+3*L0+L0/2,x,y+(1+pow(2,n))*L0+3*L0+L0/2);
break;
case 3:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+4*L0+L0/3,"3");
line(x-w,y+(1+pow(2,n))*L0+4*L0+L0/2,x,y+(1+pow(2,n))*L0+4*L0+L0/2);
break;
}
for(i=0;i
//нумерація інформаційних входів
switch(i)
{
case 0:outtextxy(x+L0/2,y+L0/3+L0,"0");
line(x-w,y+L0/2+L0,x,y+L0/2+L0);break;
case 1:outtextxy(x+L0/2,y+L0/3+2*L0,"1");
line(x-w,y+L0/2+2*L0,x,y+L0/2+2*L0);break;
case 2:outtextxy(x+L0/2,y+L0/3+3*L0,"2");
line(x-w,y+L0/2+3*L0,x,y+L0/2+3*L0);break;
case 3:outtextxy(x+L0/2,y+L0/3+4*L0,"3");
line(x-w,y+L0/2+4*L0,x,y+L0/2+4*L0);break;
case 4:outtextxy(x+L0/2,y+L0/3+5*L0,"4");
line(x-w,y+L0/2+5*L0,x,y+L0/2+5*L0);break;
case 5:outtextxy(x+L0/2,y+L0/3+6*L0,"5");
line(x-w,y+L0/2+6*L0,x,y+L0/2+6*L0);break;
case 6:outtextxy(x+L0/2,y+L0/3+7*L0,"6");
line(x-w,y+L0/2+7*L0,x,y+L0/2+7*L0);break;
case 7:outtextxy(x+L0/2,y+L0/3+8*L0,"7");
line(x-w,y+L0/2+8*L0,x,y+L0/2+8*L0);break;
case 8:outtextxy(x+L0/2,y+L0/3+9*L0,"8");
line(x-w,y+L0/2+9*L0,x,y+L0/2+9*L0);break;
case 9:outtextxy(x+L0/2,y+L0/3+10*L0,"9");
line(x-w,y+L0/2+10*L0,x,y+L0/2+10*L0);break;
case 10:outtextxy(x+L0/5,y+L0/3+11*L0,"10");
line(x-w,y+L0/2+11*L0,x,y+L0/2+11*L0);break;
case 11:outtextxy(x+L0/5,y+L0/3+12*L0,"11");
line(x-w,y+L0/2+12*L0,x,y+L0/2+12*L0);break;
case 12:outtextxy(x+L0/5,y+L0/3+13*L0,"12");
line(x-w,y+L0/2+13*L0,x,y+L0/2+13*L0);break;
case 13:outtextxy(x+L0/5,y+L0/3+14*L0,"13");
line(x-w,y+L0/2+14*L0,x,y+L0/2+14*L0);break;
case 14:outtextxy(x+L0/5,y+L0/3+15*L0,"14");
line(x-w,y+L0/2+15*L0,x,y+L0/2+15*L0);break;
case 15:outtextxy(x+L0/5,y+L0/3+16*L0,"15");
line(x-w,y+L0/2+16*L0,x,y+L0/2+16*L0);break;
}
}
//функція, що малює стрілку
void arrow(int x, int y)
{
setfillstyle(1,4);
setcolor(4);
line(x,y,x-20,y-10);
line(x,y,x-20,y+10);
line(x-15,y,x-20,y-10);
line(x-15,y,x-20,y+10);
floodfill(x-5,y,4);
}
//введення кодової комбінації на адресні входи мультиплексора
void adress(int x,int y,int n,int m)
{
int i,j,k,g,t,L0=100/n;
t=0;
switch(n)
{
case 2://для мультиплексора з 2-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
switch(i)
{
case 0:if(t==m)outtextxy(x-90/n,y+(1+pow(2,n))*L0,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(1+pow(2,n))*L0,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+(2+pow(2,n))*L0-L0/5,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(2+pow(2,n))*L0-L0/5,"1");
}
outtextxy(x-90/n,y+(3+pow(2,n))*L0-L0/2.5,"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:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0,"0");break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+L0-L0/4,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+L0-L0/4,"1");
}
switch(k)
{
case 0:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+2*L0-L0/2,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+2*L0-L0/2,"1");
}
outtextxy(x-90/n,y+pow(2,n)*L0+3*L0-L0/1.5,"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:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-2)*L0+L0/3,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-2)*L0+L0/3,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-1)*L0+L0/6,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-1)*L0+L0/6,"1");
}
switch(k)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n))*L0,"0");break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n))*L0,"1");
}
switch(g)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n)+1)*L0-L0/4,"0");
break;