| Назва: | Логічні елементи, що застосовуються в електронно-обчислювальній техніці |
| Тип: | Реферати |
| Мова: | Українська |
| Розмiр: | 790,57 KB |
| Скачувань: | 33 |
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;i
line(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;i
switch(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)));
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;i
line(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;i
switch(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)));