Реферат: Демонстрація роботи електромагнітного реле постійного струму
Завдання
Розробити програму для демонстрації роботи електромагнітного реле постійного струму.
Зміст
Вступ.....................................................................................................................................3
Задача і опис схеми...........................................................................................4
Текст програми.......................................................................................................4
Приклад............................................................................................................................11
Висновок......................................................................................................................... 12
Література......................................................................................................................13
Вступ
Для закріплення здобутих теоретичних знань, застосування їх при вирішенні питань математичного характеру, а також з метою набуття навиків по створенню програмного забезпечення , виконується курсова робота з дисципліни “Програмування та алгоритмічні мови” . В курсовій роботі необхідно розробити програму на мові програмування C++,яка б демонструвала роботу електромагнітного реле постійного струму .
Задача і опис схеми
Електромагнітне реле постійного струму , яке є сполученням електромагнітного перетворювача (з поворотним якорем ) і контактного пристрою. При проходженні струму по катушці 7 у магніто проводі , що складається з осердя 6 та якоря 1, виникає магнітний потік , якір притягує до осердя , контактна група розмикається (розмикаючий контакт) , а контактна група замикається(замикаючий контакт). На принципових електричних схемах механічний зв’язок між електромагнітним приводом та контактами не вказується.
Текст програми
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
#include<conio.h>
#include<graphics.h>
void help(void)
{ restorecrtmode();
clrscr();
textmode(BW80);
textcolor(7);
cprintf(" Мiнiстерство освiти i науки України");
printf(" ");
cprintf(" Рiвненський державний технiчний унiверситет");
printf(" ");
cprintf(" Кафедра електротехнiки i автоматики");
printf(" ");
textcolor(4 + BLINK);
printf(" ");
cprintf("КУРСОВА РОБОТА");
printf(" ");
textcolor(7);
printf(" ");
cprintf(" з курсу:"Програмування та алгоритмiчнi мови"");
printf(" ");
textcolor(7);
printf(" ");
cprintf(" на тему:Демонстрацiя електромагнiтного ");
printf(" ");
printf(" ");
cprintf(" реле постiйного струму "");
printf(" ");
textcolor(2);
printf(" ");
cprintf("Виконав студент першого курсу");
printf(" ");
printf(" ");
cprintf("групи АУТП-1");
printf(" ");
printf(" ");
cprintf("Назарчук Вiталiй");
printf(" ");
printf(" ");
textcolor(58);
cprintf("РIВНЕ-2002");
textcolor(GREEN + BLINK );
printf(" ");
cprintf(" натиснiть будь-яку клавiшу");
getch();
textcolor(GREEN );
setgraphmode(getgraphmode());
}
void draw(int x0,int y0)
{
unsigned char color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};
struct bmpinfo
{
char h1,h2;
unsigned long
size,reserved,offset,b,width,height;
unsigned int plans,bpp;
};
bmpinfo info;
FILE *f;
int x,y;
unsigned char b;
unsigned char bh;
unsigned char bl;
int nb;
int np;
int i,j;
if((f=fopen("34.bmp","rb"))==NULL)
printf("-1");
//return -1;
fread(&info,sizeof(info),1,f);
if(info.bpp!=4)
printf("-2");
//return -2;
x=x0;
y=y0+info.height;
nb=(info.width/8)*4;
if((info.width/8)!=4)nb+=4;
fseek(f,info.offset,SEEK_SET);
for(i=0;i<=info.height;i++)
{
np=0;
for(j=4;j<nb;j++)
{
b=fgetc(f);
if(np<info.width)
{
bh=b>>4;
putpixel(x,y,color[bh]);
x++;
np++;
}
if (np<info.width)
{
bl=b&15;
putpixel(x,y,color[bl]);
x++;
np++;
}
}
x=x0;
y--;
}
fclose(f);
}
void draw1(int x0,int y0)
{
unsigned char color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};
struct bmpinfo
{
char h1,h2;
unsigned long
size,reserved,offset,b,width,height;
unsigned int plans,bpp;
};
bmpinfo info;
FILE *f;
int x,y;
unsigned char b;
unsigned char bh;
unsigned char bl;
int nb;
int np;
int i,j;
if((f=fopen("34_.bmp","rb"))==NULL)
printf("-1");
//return -1;
fread(&info,sizeof(info),1,f);
if(info.bpp!=4)
printf("-2");
//return -2;
x=x0;
y=y0+info.height;
nb=(info.width/8)*4;
if((info.width/8)!=4)nb+=4;
fseek(f,info.offset,SEEK_SET);
for(i=0;i<=info.height;i++)
{
np=0;
for(j=4;j<nb;j++)
{
b=fgetc(f);
if(np<info.width)
{
bh=b>>4;
putpixel(x,y,color[bh]);
x++;
np++;
}
if (np<info.width)
{
bl=b&15;
putpixel(x,y,color[bl]);
x++;
np++;
}
}
x=x0;
y--;
}
fclose(f);
}
void Pidgotovka(void);
void *saucer;
int size;
void Pidgotovka1(void);
void *saucer1;
int size1;
void demo(void)
{ int i,w;
Pidgotovka();
while(!kbhit())
{putimage(236,86,saucer,XOR_PUT);
for(i=0;i<5;i++)
{setlinestyle(0,0,1);
setcolor(4);
circle(464,302,3);
circle(471,323,3);
delay(200);
setcolor(15);
circle(464,302,3);
circle(471,323,3);
delay(200);
}
setlinestyle(0,0,3);
putimage(236,86,saucer,XOR_PUT);
for(i=0;i<24;i++)
{setcolor(0);
line(220,170,197+i-1,272);
line(220,170,273,170-i+1);
setcolor(10);
line(220,170,197+i,272);
line(220,170,273,170-i);
putimage(236,86-i/3,saucer,XOR_PUT);
setcolor(1);
line(262,135,262,135-i/3);
delay(200);
putimage(236,86-i/3,saucer,XOR_PUT);
}
putimage(236,86-7,saucer,XOR_PUT);
delay(2000);
putimage(236,86-7,saucer,XOR_PUT);
for(i=23;i>-1;i--)
{setcolor(0);
line(220,170,197+i+1,272);
line(220,170,273,170-i-1);
setcolor(10);
line(220,170,197+i,272);
line(220,170,273,170-i);
putimage(236,86-i/3,saucer,XOR_PUT);
setcolor(1);
line(262,145+(23-i),262,127);
delay(200);
putimage(236,86-i/3,saucer,XOR_PUT);
}
}
putimage(236,86,saucer,XOR_PUT);
outtextxy(195,220,"1");
outtextxy(505,220,"6");
outtextxy(340,290,"7");
outtextxy(200,460,"1 -якiр,6 -осердя,7 -катушка");
delay(100);
getch();
getch();
free(saucer);
}
main()
{
int q,X,y,c,STEP=100;
int gdriver=DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode,"c:\bcpp\bgi");
errorcode=graphresult();
if(errorcode !=grOk)
{
printf("Помилка графiчного режиму типу:%s ",grapherrormsg(errorcode));
printf("Натиснiть будь-яку клавiшу для виходу");
getch();
exit(1);
}
help();
poch:
q=1;
X=143;
y=113;
Pidgotovka1();
do
{
putimage(X+270,y,saucer1,XOR_PUT);
putimage(X,y,saucer1,XOR_PUT);
c=getch();
putimage(X+270,y,saucer1,XOR_PUT);
putimage(X,y,saucer1,XOR_PUT);
switch(c)
{
case 80: y+=STEP;q++;if(y==313){y=113 ;q=1;}break;
case 72: y-=STEP;q--;if(y==13){y=213;q=2;}break;
case 13: if(q==2)goto popa;if(q==1){demo();
goto poch; }
}
} while(c!=27);
popa:
free(saucer);
closegraph();
}
void Pidgotovka(void )
{
draw(0,-2);
size=imagesize(236,86,493,135);
saucer=malloc(size);
getimage(236,86,493,135,saucer);