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

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

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

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

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;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)+1)*L0-L0/4,"1");
}
outtextxy(x-90/n,y+(pow(2,n)+2)*L0-L0/2.5,"1");
t++;
}
}
}
void main()
{
int dr=DETECT,mod,y,i,n,L0,key,c;
initgraph(&dr,&mod,"");
again:;
n=intro();
table(25,10,n);
fill(25,10,n);
mult(310,10,n);
instr(20,380,n);
i=-1;
y=0;
L0=80/n;
setcolor(2);
//на адр. входи не подаються сигнали
if(n==2)outtextxy(310-90/n,75+(3+pow(2,n))*L0-L0/2.5,"0");
if(n==3)outtextxy(310-90/n,82+pow(2,n)*L0+3*L0-L0/1.5,"0");
if(n==4)outtextxy(310-90/n,95+n+(pow(2,n)+2)*L0-L0/2.5,"0");
outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"0");
//на адр. входи подаються сигнали
while(!kbhit())
{
key=getch();if(key==13){cleardevice();goto again;}
if(key==27) goto next;
key=getch();
//керування стрілкою
switch(key)
{
case 72:cleardevice();//стрілка вверх
table(25,10,n);
fill(25,10,n);
mult(310,10,n);
instr(20,380,n);
i--;
if(ipow(2,n)-1) i=0;
arrow(260,(i+1)*L0+10+L0/2);
setcolor(2);
switch(i)
{
case 0:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D0");
break;
case 1:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D1");
break;
case2:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D2");
break;
case 3:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D3");
break;
case 4:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D4");
break;
case 5:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D5");
break;
case 6:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D6");
break;
case 7:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D7");
break;
case 8:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D8");
break;
case 9:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D9");
break;
case 10:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D10");
break;
case 11:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D11");
break;
case 12:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D12");
break;
case 13:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D13");
break;
case 14:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D14");
break;
case 15:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D15");
break;
}
adress(310,10,n,i);
break;
}
}
next:closegraph();
}
Результат роботи програми
Демонстрація роботи мультиплексора типу 8-1.
Loading...

 
 

Цікаве