Добавил:
ktotogdetotam
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:БЭМЗ полищук доки / mogilev yst / МВИП / PUT_IND
.C/*дгЄжЁп ўлў®¤ Ё¤ЁЄ в®а § зҐЁп Ї®ЈаҐи®бвЁ ¤«п Њ‚€Џ*/
/*Ї®¤Є«о票Ґ § Ј®«®ўЄ®ў ўгв२е ॣЁбва®ў 80‘31*/
#include <io51.h>
/*Ї®¤Є«о票Ґ § Ј®«®ўЄ®ў ЎЁЎ«Ё®вҐзле дгЄжЁ©*/
#include <stdlib.h>
extern unsigned long bin_bcd(unsigned int);
/*®ЇаҐ¤Ґ«ҐЁҐ ¤аҐб®ў гбва®©бвў ўў®¤ -ўлў®¤ */
#define ind2 (*(char*) 0x010000) /*бв а襥(«Ґў®Ґ)§ Є®¬Ґбв® Ё¤.*/
#define ind1 (*(char*) 0x010001) /*б।ҐҐ § Є®¬Ґбв® Ё¤.*/
#define ind0 (*(char*) 0x010002) /*¬« ¤иҐҐ(Їа ў®Ґ)§ Є®¬Ґбв® Ё¤.*/
#define ind3 (*(char*) 0x010003) /*ॣЁбва бЁ¬ў®«®ў Ё¤.*/
/*®ЇЁб ЁҐ ЇҐаҐ¬Ґле*/
extern float pogr;
extern float ust_flt;
unsigned long number_bcd;
signed long pogr_l;
unsigned int pog_int;
unsigned char point;
unsigned char ind3_p;
void put_ind(void)
{
/* «Ё§ ўҐ«ЁзЁл Ї®ЈаҐи®бвЁ*/
if(pogr>999.0||pogr<-999.0)goto error;
if(pogr>=100.0||pogr<=-100.0)
{
point=0;
ind3_p=ind3_p&0xf9;
pogr_l=(signed long)(pogr*100.0001);
}
if((pogr>=10.0&&pogr<100.0)||(pogr>-100.0&&pogr<=-10.0))
{
point=1;
ind3_p=ind3_p|0x4;
ind3_p=ind3_p&0xfd;
pogr_l=(signed long)(pogr*100.0001);
}
if(pogr<10.0&&pogr>-10.0)
{
point=2;
ind3_p=ind3_p|0x2;
ind3_p=ind3_p&0xfb;
pogr_l=(signed long)(pogr*100.0001);
}
/*ба ўҐЁҐ Ї®ЈаҐи®бвЁ б гбв ўЄ ¬Ё*/
if(pogr>ust_flt)
{
ind3_p=ind3_p|0x8;
ind3_p=ind3_p&0xcf;
}
if(pogr<(-ust_flt))
{
ind3_p=ind3_p|0x20;
ind3_p=ind3_p&0xe7;
}
if(pogr>=(-ust_flt)&&pogr<=ust_flt)
{
ind3_p=ind3_p|0x10;
ind3_p=ind3_p&0xd7;
}
/*ўлў®¤ § Є Ё ўҐ«ЁзЁл Ї®ЈаҐи®бвЁ Ё¤ЁЄ в®а*/
if(point==0)pogr_l=pogr_l/100;
if(point==1)pogr_l=pogr_l/10;
if(pogr_l<0)
{
ind3_p=ind3_p|0x1;
pog_int=(unsigned int)(-pogr_l);
}
else
{
ind3_p=ind3_p&0xfe;
pog_int=(unsigned int)pogr_l;
}
number_bcd=bin_bcd(pog_int);
ind0=((char)number_bcd)&0x0f; /*ўлў®¤ 楫®Ј® § зҐЁп Ї®Ја.*/
ind1=((char)(number_bcd>>4))&0x0f;
ind2=((char)(number_bcd>>8))&0x0f;
ind3=ind3_p;
return;
error:
ind3=0;ind2=13;ind1=13;ind0=13;
}
Соседние файлы в папке МВИП