Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
21.12.2020
Размер:
8.79 Кб
Скачать
/*Џа®Ја ¬¬  а Ў®вл ¬®¤Ґа­Ё§Ёа®ў ­­®Ј® ®¤­®д §­®Ј® бзҐвзЁЄ  –ќ7004Њ
		         (®¤­®Ї« в­л© ў аЁ ­в) ь ____ 2006Ј.

      Copyright (c) ЃҐ«Ё«м­ЁЄ®ў ‚.„. 29.12.2003, 03.2006    */

         /*Ї®¤Є«о祭ЁҐ § Ј®«®ўЄ®ў ў­гв७­Ёе ॣЁбва®ў 80‘32*/
#include <io51.h>
         /*Ї®¤Є«о祭ЁҐ § Ј®«®ўЄ®ў ЎЁЎ«Ё®вҐз­ле дг­ЄжЁ©*/
#include <stdlib.h>

/* ЇаҐалў ­Ёп
 INT0 - Є« ўЁ вга 
 INT1 - Ё¬Їг«мбл ®в Ї®ўҐа塞®Ј® бзҐвзЁЄ  Ё«Ё ॣҐ­Ґа жЁп Ё­¤ЁЄ жЁЁ ў ०Ё¬Ґ а Ў®вл ў б®бв ўҐ гбв ­®ўЄЁ
   в ©¬Ґал
 ’1 - д®а¬Ёа®ў ­ЁҐ з бв®вл ॣҐ­Ґа жЁЁ ¤Ё­ ¬ЁзҐбЄ®© Ё­¤ЁЄ жЁЁ Ё«Ё Ў®¤®ў п з бв®в  ў ०Ё¬Ґ а Ў®вл ў б®бв ўҐ гбв ­®ўЄЁ
 ’0 - д®а¬Ёа®ў ­ЁҐ Ё§¬ҐаЁвҐ«м­®Ј® Ё­вҐаў « 
 ’2 - д®а¬Ёа®ў ­ЁҐ в Єв®ў®© з бв®вл 250 Єѓж
   Ї®авл
 P1.1=1 - ЇаҐалў ­Ёп 1 § ЇаҐйҐ­л
 P1.1=0 - ЇаҐалў ­Ёп 1 а §аҐиҐ­л 

 ђ1.2 - гЇа ў«Ґ­ЁҐ ०Ё¬ ¬Ё  ­ «®Ј®ў®© з бвЁ
 ђ1.3 - гЇа ў«Ґ­ЁҐ ०Ё¬ ¬Ё  ­ «®Ј®ў®© з бвЁ

 ђ1.2=0,P1.3=0 - Їгбв®© ०Ё¬.
 ђ1.2=1,P1.3=0 - ०Ё¬ Ё§¬ҐаҐ­Ёп ­ Їа殮­Ёп.
 ђ1.2=0,P1.3=1 - ०Ё¬ Ё§¬ҐаҐ­Ёп в®Є .
 ђ1.2=1,P1.3=1 - ०Ё¬ Ё§¬ҐаҐ­Ёп ¬®й­®бвЁ.

 ђ1.4=0 - бЁЈ­ « INTA - бЎа®б § Їа®б  ®в Є« ўЁ вгал

 ђ1.5=0 - бв®Ї в ©¬Ґа  ЏЌ—, ђ1.5=1 - ЇгбЄ в ©¬Ґа  ЏЌ—

 ђ1.6,ђ1.7 - ЇҐаҐЄ«о祭ЁҐ ०Ё¬®ў ¤Ґ«Ґ­Ёп з бв®вл ЏЌ— Ё з бв®вл Ї®ўҐа. бзҐвзЁЄ 
 ђ1.6=0,ђ1.7=1 - c ¤Ґ«Ґ­ЁҐ¬ з бв®вл Ї®ўҐа. бзҐвзЁЄ , ЎҐ§ ¤Ґ«Ґ­Ёп з бв®вл ЏЌ—
 P1.6=1,P1.7=0 - ЎҐ§ ¤Ґ«Ґ­Ёп з бв®вл Ї®ўҐа. бзҐвзЁЄ , б ¤Ґ«Ґ­ЁҐ¬ з бв®вл ЏЌ—

 ђ3.0=0,ђ3.1=0 - ЇаҐ¤Ґ« 0,05Ђ
 ђ3.0=1,ђ3.1=0 - ЇаҐ¤Ґ« 0,5Ђ
 ђ3.0=0,ђ3.1=1 - ЇаҐ¤Ґ« 5Ђ
 ђ3.0=1,ђ3.1=1 - ЇаҐ¤Ґ« 50Ђ

 «Ґўл© Ё­¤ЁЄ в®а - Ќ1 - Є®¤ 0xfe
                   Ќ2 - Є®¤ 0xfd
                   Ќ3 - Є®¤ 0xfb
                   Ќ4 - Є®¤ 0xf7
 Їа ўл© Ё­¤ЁЄ в®а- Ќ5 - Є®¤ 0xef

 ᢥ⮤Ё®¤л        U    - 0xfe
                   I    - 0xfd
                   0,05A- 0x7f
                   0,5A - 0xfb
                   5A   - 0xf7
                   50A  - 0xef
                   P    - 0xdf
                   Ї®Ја - 0xbf */

         /*®ЇаҐ¤Ґ«Ґ­ЁҐ  ¤аҐб®ў гбва®©бвў ўў®¤ -ўлў®¤ */
#define tim_cw       (*(char*) 0x010003)
#define tim_chan0    (*(char*) 0x010000) /*бзҐв Ё¬Їг«мб®ў ЏЌ—*/
#define tim_chan1    (*(char*) 0x010001) /*¤Ґ«Ґ­ЁҐ Ё¬Ї. Ї®ўҐа. бзҐвзЁЄ */
#define tim_chan2    (*(char*) 0x010002) /*¤Ґ«Ґ­ЁҐ Ё¬Ї. ЏЌ—*/
		 /*Ї® § ЇЁбЁ*/
#define ind_data     (*(char*) 0x010004) /*¤ ­­лҐ ¤«п Ё­¤ЁЄ в®а */
#define ind_poz      (*(char*) 0x010008) /*­®¬Ґа §­ Є®¬Ґбв  Ё­¤ЁЄ в®а */
#define ind_led      (*(char*) 0x01000c) /*ॣЁбва ᢥ⮤Ё®¤®ў*/
		 /*Ї® з⥭Ёо*/
#define const_low    (*(char*) 0x010004) /*¬«. Ў ©в Ї®бв. Ї®ўҐа. бзҐвзЁЄ */
#define const_mid    (*(char*) 0x010008) /*ба. Ў ©в Ї®бв. Ї®ўҐа. бзҐвзЁЄ */
#define const_hi     (*(char*) 0x01000c) /*бв. Ў ©в Ї®бв. Ї®ўҐа. бзҐвзЁЄ */
#define key          (*(char*) 0x010010) /*Ў ©в Є« ўЁ вгал*/

extern	void delay1(unsigned char);
extern	void delayi(unsigned char);
extern	void init(void);
extern	void test_ind(void);
extern      void meas_uip(void);
extern      void meas_pogr(void);

		/*®ЇЁб ­ЁҐ ЇҐаҐ¬Ґ­­ле*/
unsigned char cntregen;       /*бзҐвзЁЄ ॣҐ­Ґа жЁЁ Ё­¤ЁЄ жЁЁ*/
unsigned char tim_hi_old;     /*п祩ЄЁ ¤«п еа ­Ґ­Ёп б®бв®п­Ё© ў­Ґи­ҐЈ® в ©¬Ґа */
unsigned char tim_low_old;
unsigned char tim_hi_new;
unsigned char tim_low_new;
unsigned int  cnt_irq1;        /*бзҐвзЁЄ ЇаҐалў ­Ё© ®в Ї®ўҐа塞®Ј® бзҐвзЁЄ */
unsigned char cnt_wait;        /*бзҐвзЁЄ ўаҐ¬Ґ­Ё ®¦Ё¤ ­Ёп Ё¬Їг«мб®ў ®в Ї®ўҐа. бзҐвз. Ё«Ё ўаҐ¬п Ё§¬ҐаҐ­Ёп ў ०Ё¬Ґ а Ў®вл ў б®бв ўҐ гбв ­®ўЄЁ*/
extern unsigned char mode;
extern unsigned char i;
unsigned char m_data[5];
extern unsigned char counts1; /*бзҐвзЁЄ ०Ё¬®ў*/
extern unsigned char counts2; /*бзҐвзЁЄ ЇаҐ¤Ґ«®ў Ї® в®Єг*/
extern unsigned int buf_int;

void main(void)
{
      T2CON=0x00;
	T2MOD=0x02;  /*०Ё¬ а Ў®вл ў­гва. в ©¬Ґа  2*/
	RCAP2H=0xff; /*§ Јаг§Є  Є®ндд. ¤Ґ«Ґ­Ёп=4 ў в ©¬Ґа 2*/
	RCAP2L=0xfc; /*ўл室­ п з бв®в  в ©¬Ґа  230,4 Єѓж ЇаЁ Єў ажҐ 3,6864*/
	TH2=0xff;
	TL2=0xfc;
	TR2=1;     /*ЇгбЄ в ©¬Ґаa 2*/

begin:
	init();/*Ё­ЁжЁ «Ё§ жЁп  ЇЇ а вгал*/
 	test_ind();
begin_meas:
    if(mode==0xdf)              /*Ґб«Ё ०Ё¬ а Ў®вл ў б®бв ўҐ гбв ­®ўЄЁ*/
     {
        ind0=0xc0; /*®Ў­г«Ґ­ЁҐ Ё­¤ЁЄ в®а */
	  ind1=0xc0;
	  ind2=0xc0;
	  ind3=0xc0;
	  ind4=0xc0;

       /*®¦Ё¤ ­ЁҐ Ў«®Є  ¤ ­­ле ®в Є®¬ЇмовҐа */
	 for(i=0;i<=4;i++)
	 {
wait_cw:
		if(RI==0)goto wait_cw;
		RI=0; EX1=0;
		m_data[i]=SBUF;
	 }
        EX1=1;
       /*д®а¬Ёа®ў ­ЁҐ ¤ ­­ле*/
       switch(m_data[3])
	 {
	   case 0x30 : 
         {
		ind5.5=0;
		ind5.0=1;
		ind5.1=1;
            counts1=1;        /*¬®й­®бвм*/
	   }
         break;
         case 0x31 :
	    {
		ind5.5=1;
		ind5.0=0;
		ind5.1=1;
            counts1=2;        /*­ Їа殮­ЁҐ*/

          }
         break;
         case 0x32 : 
	    {
		ind5.5=1;
		ind5.0=1;
		ind5.1=0;
            counts1=3;        /*в®Є*/
          }
         break;
        }
       switch(m_data[4])
	 {
	   case 0x30 : 
	    {
		ind5.2=1;
		ind5.3=1;
		ind5.4=1;
		ind5.7=0;
            counts2=0;        /*ЇаҐ¤Ґ« Ї® в®Єг 0.05Ђ*/
	   }
         break;
         case 0x31 :
          {
		ind5.2=0;
		ind5.3=1;
		ind5.4=1;
		ind5.7=1;
            counts2=1;        /*ЇаҐ¤Ґ« Ї® в®Єг 0.5Ђ*/

	    }
         break;
         case 0x32 :
	    {
		ind5.2=1;
		ind5.3=0;
		ind5.4=1;
		ind5.7=1;
            counts2=2;        /*ЇаҐ¤Ґ« Ї® в®Єг 5Ђ*/
	    }
         break;
         case 0x33 : 
	    {
		ind5.2=1;
		ind5.3=1;
		ind5.4=0;
		ind5.7=1;
            counts2=3;        /*ЇаҐ¤Ґ« Ї® в®Єг 50Ђ*/
	    }
         break;
        }
         m_data[3]=0x2f;
	   buf_int =atoi(m_data);
         cnt_wait=(char)buf_int;
      }
      else cnt_wait=2;

 	meas_uip();	 /*ЇҐаҐе®¤ Є Ё§¬ҐаҐ­Ёо ¬®й­®бвЁ, ­ Їа殮­Ёп, в®Є */
    if(mode==0xdf)goto begin;   /*Ґб«Ё ०Ё¬ а Ў®вл ў б®бв ўҐ гбв ­®ўЄЁ*/
 	meas_pog();  /*ЇҐаҐе®¤ Є Ё§¬ҐаҐ­Ёо Ї®ЈаҐи­®бвЁ*/
	goto begin_meas;
}

/*Ї®¤Їа®Ја ¬¬  ®Ўа Ў®вЄЁ ЇаҐалў ­Ёп 0*/
interrupt [0x03] void EX0_int (void)      /* External Interrupt 0 */
{                                         /*keyboard*/
   EX0=0;
   flg.0=1;
}

interrupt [0x13] void EX1_int (void) 	  /* External Interrupt 1 */
{                             /*ЇаҐалў ­ЁҐ ®в Ї®ўҐа塞®Ј® бзҐвзЁЄ  Ё«Ё ॣҐ­Ґа жЁп Ё­¤ЁЄ жЁЁ*/
 if(mode==0xdf)              /*Ґб«Ё ०Ё¬ а Ў®вл ў б®бв ўҐ гбв ­®ўЄЁ*/
 {
      switch(cntregen)
	 {
		case 0 :
		{
			ind_data=ind0;         /*«Ґўл© Ё­¤ЁЄ в®а(бв аиЁ©)*/
			ind_poz=0xfe;
		}
		break;
		case 1 :
		{
			ind_data=ind1;
			ind_poz=0xfd;
		}
		break;
		case 2 :
		{
			ind_data=ind2;
			ind_poz=0xfb;
		}
		break;
		case 3 :
		{
			ind_data=ind3;
			ind_poz=0xf7;
		}
		break;
		case 4 :
		{
			ind_data=ind4;           /*Їа ўл© Ё­¤ЁЄ в®а(¬« ¤иЁ©)*/
			ind_poz=0xef;
		}
		break;
	}
			ind_led=ind5;            /*ॣЁбва ᢥ⮤Ё®¤®ў*/
			cntregen=cntregen+1;
			if(cntregen>=5)cntregen=0;
 }
 else
 {
   P1.1=1;      /*§ ЇаҐвЁвм ЇаҐалў ­Ёп 1*/

   EX1=0;
   ET1=0;
   tim_cw=0;  /*з⥭ЁҐ "­  «Ґвг" 0-Ј® Є ­ «  ў­Ґи­ҐЈ® в ©¬Ґа */
   tim_low_old=tim_low_new;   /*б®еа ­Ґ­ЁҐ ЇаҐ¤л¤гйЁе §­ зҐ­Ё©*/
   tim_hi_old=tim_hi_new;
   tim_low_new=tim_chan0;     /*Ї®«г祭ЁҐ ­®ўле §­ зҐ­Ё©*/
   tim_hi_new=tim_chan0;
   flg.1=1;
   cnt_irq1=cnt_irq1+1;
   cnt_wait=0;
   ET1=1;
 }
}
/*Ї®¤Їа®Ја ¬¬  ®Ўа Ў®вЄЁ ЇаҐалў ­Ёп ®в ў­гв७­ҐЈ® в ©¬Ґа  0*/
interrupt [0x0b] void T0_int (void)       /* Timer 0 Overflow */
{
	if(flg.3==1)goto inc_wait;   /*Ґб«Ё ०Ё¬ ®ЇаҐ¤Ґ«Ґ­Ёп Ї®ЈаҐи­®б⥩*/
      i=i-1;
      if(flg.4==1||i==0)
      {
	  tim_cw=0;  /*з⥭ЁҐ "­  «Ґвг" 0-Ј® Є ­ «  ў­Ґи­ҐЈ® в ©¬Ґа */
	  tim_low_old=tim_low_new;   /*б®еа ­Ґ­ЁҐ ЇаҐ¤л¤гйЁе §­ зҐ­Ё©*/
	  tim_hi_old=tim_hi_new;
	  tim_low_new=tim_chan0;     /*Ї®«г祭ЁҐ ­®ўле §­ зҐ­Ё©*/
	  tim_hi_new=tim_chan0;
      }
	flg.2=1;                  /*д« Ј Ё§¬ҐаЁвҐ«м­®Ј® Ё­вҐаў « */
	goto end_irqt1;
inc_wait:
	cnt_wait=cnt_wait+1;     /*㢥«Ёз. бзҐвз. ®¦Ё¤ ­Ёп Ё¬Ї. Ї®ўҐа. бзҐвзЁЄ */
end_irqt1:
	return;
}
/*Ї®¤Їа®Ја ¬¬  ®Ўа Ў®вЄЁ ЇаҐалў ­Ёп ®в ў­гв७­ҐЈ® в ©¬Ґа  1*/
interrupt [0x1b] void T1_int (void)       /* Timer 1 Overflow */
{
 if(mode==0xff)              /*Ґб«Ё  ўв®­®¬­л© ०Ё¬*/
  {
	switch(cntregen)
	 {
		case 0 :
		{
			ind_data=ind0;         /*«Ґўл© Ё­¤ЁЄ в®а(бв аиЁ©)*/
			ind_poz=0xfe;
		}
		break;
		case 1 :
		{
			ind_data=ind1;
			ind_poz=0xfd;
		}
		break;
		case 2 :
		{
			ind_data=ind2;
			ind_poz=0xfb;
		}
		break;
		case 3 :
		{
			ind_data=ind3;
			ind_poz=0xf7;
		}
		break;
		case 4 :
		{
			ind_data=ind4;           /*Їа ўл© Ё­¤ЁЄ в®а(¬« ¤иЁ©)*/
			ind_poz=0xef;
		}
		break;
	  }
			ind_led=ind5;            /*ॣЁбва ᢥ⮤Ё®¤®ў*/
			cntregen=cntregen+1;
			if(cntregen>=5)cntregen=0;
 }
}

Соседние файлы в папке ce4_10_5
  • #
    21.12.20201.16 Кб0BIN_BCD.S03
  • #
    21.12.2020234 б0BIN_BCD1.R03
  • #
    21.12.20201.39 Кб0BIN_BCD1.S03
  • #
    21.12.202011.26 Кб0ce4_10_5.rom
  • #
    21.12.2020151 б0CE7004M.BAT
  • #
    21.12.20208.79 Кб0CE7004M.C
  • #
    21.12.202033.67 Кб0CE7004M.LST
  • #
    21.12.20202.47 Кб0CE7004M.R03
  • #
    21.12.202077.82 Кб0CL8051S.R03
  • #
    21.12.2020870 б0CSTARTUP.R03
  • #
    21.12.20208.61 Кб0CSTARTUP.S03