Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЕ_САУ_КМО.doc
Скачиваний:
11
Добавлен:
06.11.2018
Размер:
918.02 Кб
Скачать

18. Файл moddv1.H. Электронная схема lvd-1.

[1] /*########################################################*/

[2] /*

[3] Copyright (C) 2008 by A.E.Stefanovich tel. 236-2729, 268-3916

[4] Moscow State University of the Instrumentation and Informatics

[5] MGUPI

[6] Chair Information Maintenance of Systems Robototechnical and Mechatronic

[7] IS 5

[8] */

[9] /*########################################################*/

[10] /*

[11] File: MODDV1.h with BLACK CASE.

[12] DEVICE LVD_1

[13] */

[14] /*################################################ LEGEND */

[15] /*

[16] ----------------

[17] Student: L.V. Doronina

[18] Group: IS 5-94-02 (d)

[19] Code: 94505

[20] ----------------

[21] Discipline: Programming (3403)

[22] Specialty: 2204.01

[23] Teacher: A.E. Stefanovich

[24] ---------------

[25] Year: 2008

[26] */

[27] /*########################################################*/

[28] /*============================= Global Variable */

[29] unsigned int Lvd1_Or1,Lvd1_And1,Lvd1_Or2; /* Device Range 1 */

[30] unsigned int Lvd1_And2,Lvd1_Or3,Lvd1_And3; /* Device Range 2 */

[31] unsigned int Lvd1_Z0,Lvd1_Z1,Lvd1_Z2; /* EXIT */

[32] /*============================= Declarations */

[33] int Dev1_pct(int kx,int ky); /* Picture */

[34] int Dev1_log(int kx,int ky); /* Logic */

[35] int Dev1_bc(); /*Black Case */

[36] /*######################################### SUB_PROGRAMMS */

[37] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[38] int Dev1_pct(int kx,int ky) /* Picture */

[39] {

[40] clearviewport();

[41] /*---- Wires */

[42] setlinestyle(SOLID_LINE,0,NORM_WIDTH);

[43] setbkcolor(BLACK);

[44] setcolor(LIGHTGRAY);

[45] setfillstyle(SOLID_FILL,LIGHTGRAY);

[46] /* C2 */

[47] line(6*kx,5*ky,3*kx,5*ky);

[48] fillellipse(3*kx,5*ky,2,1);

[49] line(3*kx,5*ky,3*kx,25*ky);

[50] /* C1 */

[51] line(6*kx,9*ky,4*kx,9*ky);

[52] fillellipse(4*kx,9*ky,2,1);

[53] line(4*kx,9*ky,4*kx,25*ky);

[54] /* C0 */

[55] line(6*kx,13*ky,5*kx,13*ky);

[56] fillellipse(5*kx,13*ky,2,1);

[57] line(5*kx,13*ky,5*kx,25*ky);

[58] /* ~C0 */

[59] line(9*kx,5*ky,12*kx,5*ky);

[60] fillellipse(12*kx,5*ky,2,1);

[61] line(12*kx,5*ky,12*kx,25*ky);

[62] /* ~C1 */

[63] line(9*kx,9*ky,11*kx,9*ky);

[64] fillellipse(11*kx,9*ky,2,1);

[65] line(11*kx,9*ky,11*kx,25*ky);

[66] /* ~C2 */

[67] line(9*kx,13*ky,10*kx,13*ky);

[68] fillellipse(10*kx,13*ky,2,1);

[69] line(10*kx,13*ky,10*kx,25*ky);

[70] /*---- To Or 1 */

[71] line(12*kx,15*ky,17*kx,15*ky);

[72] fillellipse(12*kx,15*ky,2,1);

[73] line(11*kx,16*ky,17*kx,16*ky);

[74] fillellipse(11*kx,16*ky,2,1);

[75] /*---- To And 1 */

[76] line(10*kx,19*ky,17*kx,19*ky);

[77] fillellipse(10*kx,19*ky,2,1);

[78] line(5*kx,20*ky,17*kx,20*ky);

[79] fillellipse(5*kx,20*ky,2,1);

[80] /*---- To Or 2 */

[81] line(4*kx,23*ky,17*kx,23*ky);

[82] fillellipse(4*kx,23*ky,2,1);

[83] line(3*kx,24*ky,17*kx,24*ky);

[84] fillellipse(3*kx,24*ky,2,1);

[85] /*---- Level 2 */

[86] line(21*kx,11*ky,21*kx,25*ky);

[87] fillellipse(21*kx,11*ky,2,1);

[88] line(21*kx,11*ky,35*kx,11*ky);

[89]

[90] line(22*kx,12*ky,22*kx,25*ky);

[91] fillellipse(22*kx,12*ky,2,1);

[92] line(22*kx,12*ky,35*kx,12*ky);

[93]

[94] line(23*kx,13*ky,23*kx,25*ky);

[95] fillellipse(23*kx,13*ky,2,1);

[96] line(23*kx,13*ky,35*kx,13*ky);

[97] /*---- To Level 2 */

[98] line(20*kx,15*ky,23*kx,15*ky);

[99] fillellipse(23*kx,15*ky,2,1);

[100]

[101] line(20*kx,19*ky,22*kx,19*ky);

[102] fillellipse(22*kx,19*ky,2,1);

[103]

[104] line(20*kx,23*ky,21*kx,23*ky);

[105] fillellipse(21*kx,23*ky,2,1);

[106] /*---- To And 2 */

[107] line(25*kx,13*ky,25*kx,14*ky);

[108] fillellipse(25*kx,13*ky,2,1);

[109]

[110] line(26*kx,12*ky,26*kx,14*ky);

[111] fillellipse(26*kx,12*ky,2,1);

[112] /*---- To Or 3 */

[113] line(29*kx,12*ky,29*kx,14*ky);

[114] fillellipse(29*kx,12*ky,2,1);

[115] line(30*kx,11*ky,30*kx,14*ky);

[116] fillellipse(30*kx,11*ky,2,1);

[117] /*---- To And 3 */

[118] line(33*kx,11*ky,33*kx,14*ky);

[119] fillellipse(33*kx,11*ky,2,1);

[120] line(34*kx,13*ky,34*kx,14*ky);

[121] fillellipse(34*kx,13*ky,2,1);

[122] /*---- Z */

[123] line(26*kx,17*ky,26*kx,18*ky);

[124] line(30*kx,17*ky,30*kx,18*ky);

[125] line(34*kx,17*ky,34*kx,18*ky);

[126] /*---- Titles */

[127] setcolor(WHITE);

[128] settextstyle(SMALL_FONT,HORIZ_DIR,5);

[129] settextjustify(RIGHT_TEXT,TOP_TEXT);

[130] outtextxy(36*kx,1*ky,"D E V I C E L V D - 1");

[131] settextstyle(SMALL_FONT,VERT_DIR,5);

[132] outtextxy(1*kx,1*ky,"C O M M A N D B U S");

[133] /*---- Formula */

[134] setcolor(CYAN);

[135] settextstyle(SMALL_FONT,HORIZ_DIR,5);

[136] settextjustify(RIGHT_TEXT,CENTER_TEXT);

[137] outtextxy(36*kx,5*ky,"Z0=(~C2+~C1)*( C1+ C2)");

[138] outtextxy(36*kx,7*ky,"Z1=(C1+ C2)+(~C0* C0)");

[139] outtextxy(36*kx,9*ky,"Z2=(~C0* C0)*(~C2+~C1)");

[140] /*---- NE */

[141] E("~",2,6,3,3,3,kx,ky);

[142] E("~",1,6,7,3,3,kx,ky);

[143] E("~",0,6,11,3,3,kx,ky);

[144] /*---- COMMUTATOR */

[145] B("C",1,13,14,3,11,kx,ky);

[146] /*---- ELEMENTS */

[147] E("|",1,17,14,3,3,kx,ky);

[148] E("&",1,17,18,3,3,kx,ky);

[149] E("|",2,17,22,3,3,kx,ky);

[150] /*----*/

[151] E("&",2,24,14,3,3,kx,ky);

[152] E("|",3,28,14,3,3,kx,ky);

[153] E("&",3,32,14,3,3,kx,ky);

[154] /*---- Entry, Exit */

[155] settextstyle(SMALL_FONT,HORIZ_DIR,4);

[156] settextjustify(CENTER_TEXT,CENTER_TEXT);

[157] setcolor(LIGHTGREEN);

[158] outtextxy( 3*kx,28*ky,"2");

[159] outtextxy( 4*kx,28*ky,"1");

[160] outtextxy( 5*kx,28*ky,"0");

[161] outtextxy( 4*kx,30*ky,"ENTRY");

[162] setcolor(YELLOW);

[163] outtextxy(30*kx,23*ky,"EXIT");

[164] outtextxy(26*kx,21*ky,"Z2");

[165] outtextxy(30*kx,21*ky,"Z1");

[166] outtextxy(34*kx,21*ky,"Z0");

[167] /*---- Entry Invert. */

[168] setcolor(WHITE);

[169] outtextxy(10*kx,28*ky,"0");

[170] outtextxy(11*kx,28*ky,"1");

[171] outtextxy(12*kx,28*ky,"2");

[172] outtextxy(11*kx,30*ky,"INVER");

[173] /*----*/

[174] return 0;

[175] }

[176] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[177] int Dev1_log(int kx,int ky) /* Logic */

[178] {

[179] /*---- Entry */

[180] Bit(3*kx,26*ky,C2); /* bit C2 */

[181] Bit(4*kx,26*ky,C1); /* bit C1 */

[182] Bit(5*kx,26*ky,C0); /* bit C0 */

[183] /*---- Devices Inventor 1-3 */

[184] Bit(10*kx,26*ky,CI0); /* bit CI0 */

[185] Bit(11*kx,26*ky,CI1); /* bit CI1 */

[186] Bit(12*kx,26*ky,CI2); /* bit CI2 */

[187] /*---- Devices Range 1 */

[188] Lvd1_Or1 =CI2 | CI1; /* bit 0 */

[189] Lvd1_And1=CI0 & C0; /* bit 1 */

[190] Lvd1_Or2 =C1 | C2; /* bit 2 */

[191] Bit(23*kx,26*ky,Lvd1_Or1); /* Or 1 */

[192] Bit(22*kx,26*ky,Lvd1_And1); /* And 1 */

[193] Bit(21*kx,26*ky,Lvd1_Or2); /* Or 2 */

[194] /*---- Devices Range 2 */

[195] Lvd1_And2=Lvd1_And1 & Lvd1_Or1; /* bit 2 */

[196] Lvd1_Or3=Lvd1_Or2 | Lvd1_And1; /* bit 1 */

[197] Lvd1_And3=Lvd1_Or1 & Lvd1_Or2; /* bit 0 */

[198] Bit(26*kx,19*ky,Lvd1_And2); /* And 2 */

[199] Bit(30*kx,19*ky,Lvd1_Or3); /* Or 3 */

[200] Bit(34*kx,19*ky,Lvd1_And3); /* And 3 */

[201] /*---- Exits */

[202] Lvd1_Z2=Lvd1_And2;

[203] Lvd1_Z1=Lvd1_Or3;

[204] Lvd1_Z0=Lvd1_And3;

[205] /*----*/

[206] return 0;

[207] }

[208] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/

[209] int Dev1_bc() /*Black Case */

[210] {

[211] /*---- Variables */

[212] /*----*/

[213] if(Flag_ini==NOT_INI)

[214] {/*--------------------Beguin block NOT_INI */

[215] /*---- Openfile BLACK CASE */

[216] if((FpBC_1=fopen("BLACKcs1","w"))==NULL)

[217] {

[218] ALERT_SIGNAL;

[219] perror("Filure openfile BLACKcs1 "); STOP;

[220] exit(EXIT_FAILURE);

[221] }

[222] /*---- Date, File entry, File exit */

[223] Get_date_pc_counted();

[224] fprintf(FpBC_1,"%s\n",Str_date_pc_counted);

[225] fprintf(FpBC_1,"File entry: %s\n",Fname_entry);

[226] fprintf(FpBC_1,"File exit: BLACKcs1\n");

[227] /*---- Regime */

[228] if(Regime_work[0]=='0')

[229] fprintf(FpBC_1,

[230] "REGIME: 0.\nEXIT\n");

[231] if(Regime_work[0]=='1')

[232] fprintf(FpBC_1,

[233] "EGIME: 1.\nHand Command\n");

[234] if(Regime_work[0]=='2')

[235] fprintf(FpBC_1,

[236] "REGIME: 2.\nHand Time - Hand Command\n");

[237] if(Regime_work[0]=='3')

[238] fprintf(FpBC_1,

[239] "REGIME: 3.\nCommands file. \n Hand Interval const.\n");

[240] if(Regime_work[0]=='4')

[241] fprintf(FpBC_1,

[242] "REGIME: 4.\nCommands file with Intervals variable.\n");

[243] if(Regime_work[0]=='5')

[244] fprintf(FpBC_1,

[245] "REGIME: 5.\nCommands file with Times.\n");

[246] if(Regime_work[0]=='6')

[247] fprintf(FpBC_1,

[248] "REGIME: 6.\nStep by step.\n");

[249] /**/

[250] fprintf(FpBC_1,

[251] "###############################################\n");

[252] }/*--------------------End block NOT_INI */

[253] /*==============================*/

[254] if(Flag_ini==YES_INI)

[255] {/*--------------------Beguin block YES_INI */

[256] /*---- Counter com.,H,M,S, ADDRESS, COMMAND */

[257] fprintf(FpBC_1,

[258] "- COUNTER - Hour - Min - Sec - Address - Commands -\n");

[259] fprintf(FpBC_1,

[260] "Counter_commands---,H,M,S\n");

[261] fprintf(FpBC_1,

[262] "%ld---%1d:%1d:%1d\n",

[263] Counter_commands,H,M,S);

[264] /**/

[265] fprintf(FpBC_1,

[266] "A2,A1,A0---,C2,C1,C0\n");

[267] fprintf(FpBC_1,

[268] "%1d%1d%1d---%1d%1d%1d\n",

[269] A2,A1,A0,C2,C1,C0);

[270] /**/

[271] fprintf(FpBC_1,

[272] "AI2,AI1,AI0---,CI2,CI1,CI0\n");

[273] fprintf(FpBC_1,

[274] "%1d%1d%1d---%1d%1d%1d\n",

[275] AI2,AI1,AI0,CI2,CI1,CI0);

[276] /**/

[277] fprintf(FpBC_1,

[278] "************ BINARY LOGIC of DEVICE ************\n");

[279] fprintf

[280] (FpBC_1,

[281] "Lvd1_Or2,Lvd1_And1,Lvd1_Or1 --------Range 1\n");

[282] fprintf(FpBC_1,

[283] "%1d%1d%1d\n",

[284] Lvd1_Or2,Lvd1_And1,Lvd1_Or1);

[285] /**/

[286] fprintf

[287] (FpBC_1,

[288] "Lvd1_And2(Lvd1_Z2),Lvd1_Or3(Lvd1_Z1),Lvd1_And3(Lvd1_Z0) -------- Range 2\n");[289]

[290] fprintf(FpBC_1,

[291] "%1d%1d%1d\n",

[292] Lvd1_And2,Lvd1_Or3,Lvd1_And3);

[293] /**/

[294] fprintf(FpBC_1,

[295] "###############################################\n");

[296] }/*--------------------End block YES_INI */

[297] /*----*/

[298] return 0;

[299] }

[300] /*########################################################*/

* * *