Advertisement
EdizonTN

Zdrojhak z roku 1995 pre 80C552

Mar 7th, 2019
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 31.00 KB | None | 0 0
  1. #pragma SMALL
  2. #pragma REGISTERBANK(0)
  3. #pragma OPTIMIZE(1)
  4. #pragma CODE
  5.  
  6. /*  Standart include files  */
  7. #include "source/include/reg552.h"
  8. #include "source/include/math.h"
  9. /*  My types and definitions    */
  10. #define BYTE unsigned char
  11. #define INT  unsigned int
  12. #define  NO_KEY 0xe0
  13. #define  DOWN_KEY  0x60
  14. #define  UP_KEY 0xa0
  15. #define  F_KEY 0xc0
  16. #define F_DOWN_KEY 0x80
  17.  
  18. #define ADR_WRITE 0xa0
  19. #define ADR_READ 0xa1
  20. #define A_Sw_time 0x0
  21. #define A_Level 0x01
  22. #define A_Kor 0x02
  23. #define A_Pocet 0x08
  24. #define A_TYPE 0x09
  25. #define A_Check 0x0a
  26. #define A_Urefh 0x0b
  27. #define A_Urefl 0x0d
  28. #define A_R 0x0f
  29. #define A_Typ_komp 0x1b
  30. #define A_Passwd 0x1c
  31. #define A_R_kor 0x1d
  32.  
  33.  
  34. sbit rele = P1^5;
  35. sbit Prud=P3^4;
  36. sbit Pt100=P1^3;
  37.  
  38. code BYTE Channel[2][6]={0xe3,0xe7,0xeb,0xef,0xf3,0xf7,
  39.                          0xf8,0xfc,0xfa,0xfe,0xf9,0xfd};
  40.  
  41. BYTE p,i,s[5],timeout,Button,Y,Blik,Blik_no,Olds;
  42. idata BYTE pom,pom1,pom2,pom3,Pocet,Kanal,TYPE,Level,j,Sw_time,Fun,Typ_komp,Passwd;
  43. INT cas,X_16;
  44. idata INT UI,U,pomi,ii,Urefh,Urefl,R[6];
  45. idata float a,b,t,c,Suma;
  46. idata char kor[6];
  47. idata BYTE R_kor[6];
  48.  
  49. /*kodovacia tabulka pre sedem segmentovky  poradie zlava doprava*/
  50. code BYTE kod[5][13]={0x10,0x18,0x14,0x1c,0x12,0x1a,0x16,0x1e,0x11,0x19,0x1f,0x17,0x15,
  51.                       0x30,0x38,0x34,0x3c,0x32,0x3a,0x36,0x3e,0x31,0x39,0x3f,0x37,0x35,
  52.                       0xd0,0xd8,0xd4,0xdc,0xd2,0xda,0xd6,0xde,0xd1,0xd9,0xdf,0xd7,0xd5,
  53.                       0x50,0x58,0x54,0x5c,0x52,0x5a,0x56,0x5e,0x51,0x59,0x5f,0x57,0x55,
  54.                       0x90,0x98,0x94,0x9c,0x92,0x9a,0x96,0x9e,0x91,0x99,0x9f,0x97,0x95,  
  55.                      };
  56. void write_eeprom(BYTE,BYTE);
  57. BYTE read_eeprom(BYTE);
  58. void delay(INT);
  59. void Zobraz_cislo(int,char);
  60.  
  61. /*obnovuje zobrazovanie na sedemseg.*/                    
  62. void Display_recover(void) interrupt 3 using 1
  63. {P4=s[p]; p=(p+1)%5;
  64.  if (Blik) {if(!Blik_no) {if(s[0]==0xff) s[0]=Olds;else s[0]=0xff;
  65.                            Blik_no=0x9f;
  66.                           }
  67.             else Blik_no--;
  68.            }
  69.  TH1=0xf2; TL1=0x5f;
  70.  return;
  71. }
  72. /*fcia na resetovanie WD*/
  73. void wdr(void)
  74. {PCON = PCON | 0x10;  /*umozni load T3*/
  75.  T3 = 0x1;
  76. }
  77.  
  78. /*generovanie casovych intervalov*/
  79. void Timer0(void) interrupt 1 using 2
  80. {
  81.  if (cas) cas--;else {timeout=1;ET0=0;}
  82.  return;
  83. }
  84.  
  85. /*nainicializuje premenne a timere*/
  86. void Init(void)
  87. {for(i=0;i<=4;i++) s[i]=0x1f;
  88.  ADCON = 0x0;
  89.  TMOD=0x12;     /*timer 0 a timer 1 v rezime 2 a 1*/
  90.  IP0=0x0;
  91.  EA = 1;    /*povolene prer. */
  92.  TH1 = 0xf2; TL1 = 0x5f;
  93.  ET1=1;/*povol. prer. od casovaca 1*/
  94.  TR1=1;  /*spustenie casovaca 1*/
  95.  TR0=1;
  96.  p=0;
  97.  wdr();
  98.  delay(100);  
  99.  if(read_eeprom(A_Check) != 0x0e)
  100.   {delay(8);Sw_time=5;write_eeprom(A_Sw_time,5);
  101.    delay(8);Pocet=1;write_eeprom(A_Pocet,2);
  102.    delay(8);Level=100;write_eeprom(A_Level,100);
  103.    wdr();
  104.    for(pom3=0;pom3<=5;pom3++) {delay(8);
  105.                       kor[pom3]=0;
  106.                       write_eeprom(A_Kor+pom3,0);
  107.                      }  
  108.    for(pom3=0;pom3<=5;pom3++)
  109. {delay(8);
  110.  R[pom3]=1500;
  111.  write_eeprom(A_R+2*pom3,(BYTE) R[pom3] & 0x00ff);delay(8);
  112.  write_eeprom(A_R+2*pom3+1,(BYTE) (R[pom3]>>8) & 0x00ff);
  113.  delay(8);
  114.  R_kor[pom3]=0;write_eeprom(A_R_kor + pom3,0);delay(8);
  115.  wdr();
  116. }  
  117.  
  118.   delay(8);TYPE=0;write_eeprom(A_TYPE,0);
  119.   delay(8);write_eeprom(A_Check,0x0e);
  120.   delay(8);
  121.   wdr();
  122.   Urefh = 2440; Urefl = 1724;
  123.   write_eeprom(A_Urefh,(BYTE) Urefh & 0x00ff);delay(8);
  124.   write_eeprom(A_Urefh+1,(BYTE) (Urefh>>8) & 0x00ff);delay(8);
  125.   write_eeprom(A_Urefl,(BYTE) Urefl & 0x00ff);delay(8);
  126.   write_eeprom(A_Urefl+1,(BYTE) (Urefl>>8) & 0x00ff);
  127.   delay(8);
  128.   write_eeprom(A_Typ_komp,0);delay(8);Typ_komp=0;
  129.   wdr();
  130.   write_eeprom(A_Passwd,0);delay(8);Passwd=0;
  131.   wdr();
  132.   Zobraz_cislo(read_eeprom(A_Check),0);
  133.   delay(200);
  134.   wdr();delay(400);
  135.   wdr();
  136.   } else
  137.    {delay(8);Sw_time=read_eeprom(A_Sw_time);
  138.     delay(2);Pocet=read_eeprom(A_Pocet);
  139.     delay(2);Level=read_eeprom(A_Level);
  140.     wdr();
  141.     for(pom3=0;pom3<=5;pom3++) {delay(2);
  142.                        kor[pom3] = (char) read_eeprom(A_Kor+pom3);
  143.                       }  
  144.  
  145.     for(pom3=0;pom3<=5;pom3++)
  146. {delay(2);
  147.    R[pom3]=read_eeprom(A_R+2*pom3+1);R[pom3] = R[pom3] <<8; delay(2);
  148.    R[pom3]=R[pom3] | read_eeprom(A_R+2*pom3);
  149. }  
  150.  
  151.     delay(2);TYPE=read_eeprom(A_TYPE);delay(2);
  152.     Urefh=read_eeprom(A_Urefh+1);Urefh = Urefh <<8; delay(2);
  153.     Urefh=Urefh | read_eeprom(A_Urefh);
  154.     Urefl=read_eeprom(A_Urefl+1);Urefl = Urefl <<8; delay(2);
  155.     Urefl=Urefl | read_eeprom(A_Urefl);
  156.  
  157.     Typ_komp=read_eeprom(A_Typ_komp);delay(2);
  158.     Passwd=read_eeprom(A_Passwd);delay(2);
  159.     for(pom3=0;pom3<=5;pom3++)
  160.     {R_kor[pom3]=read_eeprom(A_R_kor+pom3);
  161.      wdr();
  162.     }
  163.  
  164.  
  165.     Zobraz_cislo(Pocet+1,0);
  166.     wdr();
  167.     delay(400);
  168.     wdr();
  169.     delay(400);
  170.     wdr();
  171.    }
  172.  Kanal=0;
  173.  rele=1;
  174.  Fun=1;
  175. }
  176.  
  177. /*spusti timer na cas t=c ms*/
  178. void Starttimer(INT c)
  179. {cas=c<<2;timeout=0;ET0=1;
  180. }
  181. /*oneskorenie dany pocet ms*/
  182. void delay(INT ms)
  183. {Starttimer(ms);
  184.  while(!timeout);
  185. }
  186.  
  187. /*zobrazenie cisla na stvoricu 7segmentoviek*/
  188. void Zobraz_cislo(int cis,char bodka)
  189. { pom1=0;
  190.   for(pom=4;pom>=1;pom--)
  191.     {if (cis) pom1=cis%10;
  192.      s[pom]=kod[pom][pom1];
  193.      cis=cis/10;
  194.     if(!cis) pom1=10;    
  195.     }
  196.   if(bodka) s[3]=s[3]&0xef;
  197. }
  198.  
  199.  
  200. /* --------------------------------------------------- */
  201. /* Rutina obsluhujuca klavesnicu
  202.  * Test_Button - Test klavesnice,vysledok je v Button
  203.  */
  204. char Test_Button()
  205. {   if((P5 & 0xe0) == NO_KEY)
  206.         {Button = NO_KEY;
  207.          return(0);
  208.         }
  209.     if((P5 & 0xe0) != Button)
  210.         {X_16 = 0;
  211.          Y = P5 & 0xe0;
  212.              do  { if((P5 & 0xe0) != Y) {Button = NO_KEY;
  213.                             break;
  214.                            }
  215.               else  {X_16++;
  216.                  Button = Y;
  217.                             }
  218.              } while(X_16 < 0x2FFF);
  219.                  /*  while((P5 & 0xe0) != NO_KEY);*/
  220.            }
  221.     else  { X_16 = 0;
  222.         Y = P5 & 0xe0;
  223.         do  { if((P5 & 0xe0) != Y) {Button = NO_KEY;
  224.                             break;
  225.                                }
  226.               else X_16++;
  227.             } while(X_16 < 0x1300);
  228.                    /*  while((P5 & 0xe0) != NO_KEY);*/
  229.         }
  230.     return(1);
  231. }
  232.  
  233.  
  234. char Test_Button1(int opak)
  235. {   if((P5 & 0xe0) == NO_KEY)
  236.         {Button = NO_KEY;
  237.          return(0);
  238.         }
  239.     if((P5 & 0xe0) != Button)
  240.         {X_16 = 0;
  241.          Y = P5 & 0xe0;
  242.              do  { if((P5 & 0xe0) != Y) {Button = NO_KEY;
  243.                             break;
  244.                            }
  245.               else  {X_16++;
  246.                  Button = Y;
  247.                             }
  248.              } while(X_16 < 0x2FFF);
  249.                  /*  while((P5 & 0xe0) != NO_KEY);*/
  250.            }
  251.     else  { X_16 = 0;
  252.         Y = P5 & 0xe0;
  253.         do  { if((P5 & 0xe0) != Y) {Button = NO_KEY;
  254.                             break;
  255.                                }
  256.               else X_16++;
  257.             } while(X_16 < opak);
  258.                    /*  while((P5 & 0xe0) != NO_KEY);*/
  259.         }
  260.     return(1);
  261. }
  262.  
  263.  
  264. int meraj(void)
  265. {
  266.    ADCON = 0x08;   /*zacne prevod*/
  267.    while (!(ADCON&0x10));   /*caka na koniec*/
  268.    ii=ADCH; ii=ii<<2; pom=((ADCON&0xc0)>>6);ii = ii+pom;
  269.    return(ii);
  270. }
  271.  
  272. /*zmeria hodnotu odporu na danom kanali*/
  273. int zmeraj(char ch,char typ)
  274. {  P1=P1|0x1f;
  275.    P1=P1&Channel[0][ch]; /*nastavi kanal*/
  276.    for(X_16=0;X_16<10000;X_16++) wdr();            /*meria prud*/
  277.    Suma=0;
  278.    ET0=0;  X_16=cas;
  279.    j=0;Starttimer(20);
  280.    do
  281.    {  
  282.     Suma+=meraj();  
  283.     j++;
  284.    }
  285.    while(!timeout);
  286.    if(X_16<100) X_16=1;else X_16=(X_16>>2) - 20;
  287.    Starttimer(X_16);
  288.    UI= (int) Suma/j;
  289.    P1=P1|0x1f;
  290.    P1=P1&Channel[1][ch];   /*   nastavi meranie z Pt100*/      
  291.    for(X_16=0;X_16<10000;X_16++) wdr(); /*caka na ustalenie */
  292.    wdr();
  293.    Suma=0;
  294.    ET0 = 0; X_16=cas;  
  295.    j=0;Starttimer(20);
  296.    do
  297.    {
  298.     Suma+=meraj();
  299.     j++;
  300.    }
  301.    while(!timeout);
  302.    if(X_16<100) timeout=1;else X_16=(X_16>>2)-20;
  303.    Starttimer(X_16);
  304.    U= (int) Suma/j;  
  305.    Suma = (float) (Urefh-Urefl)/1000.0/1024.0;
  306.    c=((float) U * Suma + Urefl/1000.0) / ((float) UI * Suma + Urefl/1000.0);
  307.    /*uref+ = 3.432 V  uref- = 1.745 V  R=150ohm*/
  308.    c=((c*R[ch]*10-2*R_kor[ch])/10000.0-1.0) * (-1.0);
  309.    if(!typ) {a=-5.847e-7;b=3.9685e-3;}
  310.    else{a=-5.802e-7;b=3.908e-3;}
  311.    wdr();
  312.    t=(-b+sqrt(b*b - 4*a*c))/(2*a);
  313.   /* t=-1.0*c/b;*/
  314.    t=t*10+kor[ch];   /* zmena na integer a pripocit. korekcie*/    
  315.    wdr();
  316.    return((int) t);
  317.  }
  318.  
  319. void manual(void)
  320. {pom=0x01<<Kanal;s[0]=kod[0][Kanal+1];
  321.  pomi = zmeraj(Kanal,TYPE&pom);
  322.  do {wdr();
  323.        pomi =( 3*pomi + zmeraj(Kanal,TYPE&pom)) >> 2;
  324.        Zobraz_cislo(pomi,1);
  325.        Test_Button();
  326.        if (Button==F_KEY) {Fun=10;return;}
  327.        if (Button==UP_KEY)
  328.            {if(Kanal==Pocet) Kanal=0; else Kanal++;s[0]=kod[0][Kanal+1];
  329.              pom=0x01<<Kanal;pomi = zmeraj(Kanal,TYPE&pom);
  330.             }
  331.        if (Button==DOWN_KEY)
  332.             {if(!Kanal) Kanal=Pocet; else Kanal--;s[0]=kod[0][Kanal+1];
  333.              pom=0x01<<Kanal;pomi = zmeraj(Kanal,TYPE&pom);
  334.             }          
  335.        do {wdr();Test_Button();} while(Button!=NO_KEY);      
  336.        if(!Typ_komp) {if(((int) (pomi/10)) < Level) rele=0;else rele=1;}
  337.        else {if(((int) (pomi/10)) > Level) rele=0;else rele=1;}      
  338.     }
  339.   while(1);
  340. }
  341.  
  342. /* automaticky rezim merania*/
  343. void automat(void)
  344. { pom3=0;
  345.     do {s[0]=kod[0][Kanal+1];
  346.         pom=0x01<<Kanal;pomi = zmeraj(Kanal,TYPE&pom);
  347.         Starttimer(1000*Sw_time);
  348.       do
  349.        {wdr();
  350.         pomi=(3*pomi + zmeraj(Kanal,TYPE&pom))>>2;
  351.         Zobraz_cislo(pomi,1);
  352.         Test_Button();
  353.           if(Button==F_KEY) {Fun=10;return;}
  354.           if(!Typ_komp)
  355.                       if(((int) (pomi/10))<Level)
  356.                              pom3=pom3 | (0x01<<Kanal);
  357.                         else pom3=(~(0x01<<Kanal)) & pom3;
  358.                      
  359.           if(Typ_komp) if(((int) (pomi/10))>Level)
  360.                            pom3=pom3 | (0x01<<Kanal);
  361.                        else pom3=(~(0x01<<Kanal)) & pom3;
  362.                    
  363.        }  while(!timeout);                                     /*stanovenu dobu meria jeden kanal*/
  364.        if (Kanal==Pocet) Kanal=0; else Kanal++;
  365.       if(!pom3) rele=1;else rele=0;          /*ak nie je ani jedna pod Level tak vypne*/
  366.      } while(1);
  367. }
  368.  
  369. void dlyi2c(void)
  370. {for(i=0;i<6;i++);
  371. }
  372.  
  373. void istart(void)
  374. {EA=0;   /*zakaz prer.*/
  375.  SCL = 0;
  376.  SDA = 1;
  377.  dlyi2c();
  378.  SCL = 1;
  379.  dlyi2c();
  380.  SDA = 0;  /*SDA H->L  start podmienka*/
  381.  dlyi2c();
  382.  SCL = 0;
  383.  dlyi2c();
  384.  return;
  385. }
  386.  
  387. /*;STOP-PODMIENKA:  SCL: H, SDA: L->H*/
  388.  
  389. void istop(void)
  390. {       SDA = 0;
  391.     dlyi2c();
  392.     SCL = 1;
  393.     dlyi2c();
  394.     SDA = 1;
  395.     dlyi2c();
  396.     /*SCL = 0;*/
  397.     dlyi2c();
  398.         EA=1;      /*povol. prer.*/
  399.     return;
  400.                 /*; setb ex0*/
  401. }
  402.  
  403. void i2cini(void)
  404. {istart();
  405.  istop();
  406.  return;
  407. }
  408.  
  409. /* VYSLATIE BAJTU*/
  410. /*; VSTUP:  ACC BAJT NA VYSLATIE
  411. ; VYSTUP:   CY=0 VYSLATY O.K.
  412. ;       CY=1 BAJT NEBOL POTVRDENY
  413. ;       -------------------------*/
  414.  
  415. char itxi2c(BYTE c)
  416. {
  417.  for(j=0;j<=7;j++)       /*8 bitov posle*/
  418.   {     SDA = 0x80 & c;
  419.     dlyi2c();SCL = 1;
  420.     dlyi2c();SCL = 0;
  421.         c=c<<1;
  422.   }
  423.  SDA = 1;   /*data na H aby slave mohol dat ACK*/
  424.  dlyi2c();
  425.  SCL = 1; dlyi2c();
  426.  j = SDA;
  427.  SCL = 0;
  428.  dlyi2c();
  429.  return(j);   /*ak potvrdil tak vrati 0*/
  430. }
  431.  
  432.  
  433. /* PRIJEM 1 BAJTU
  434.  VSTUP: ack=0 AK SA MA VYSLAT ACK
  435.  ack=1 AK SA NEMA VYSLAT ACK, T.J. PRI POSLEDNOM BAJTE*/
  436.  
  437.  
  438. BYTE irxi2c(char ack)
  439. {SDA = 1;pom=0;
  440.  for(j=0;j<=7;j++)
  441.   {SCL = 1; dlyi2c();
  442.     pom = ((pom<<1) | SDA);
  443.     SCL = 0;
  444.     dlyi2c();
  445.   }
  446.  SDA = ack;
  447.  dlyi2c();
  448.  SCL = 1;
  449.  dlyi2c();
  450.  SCL = 0;
  451.  dlyi2c();
  452.  return(pom);
  453. }
  454.  
  455. void write_eeprom(BYTE adr,BYTE c)
  456. {istart();
  457.  if(!itxi2c(ADR_WRITE))
  458.      if(!itxi2c(adr))
  459.                 itxi2c(c);
  460.  istop();
  461.  EA=1;
  462. }
  463.  
  464. BYTE read_eeprom(BYTE adr)
  465. {istart();
  466.  if(!itxi2c(ADR_WRITE))
  467.      if(!itxi2c(adr))
  468.        {istart();
  469.         if(!itxi2c(ADR_READ))
  470.            pom=irxi2c(1);
  471.        }
  472.  istop();
  473.  EA=1;return(pom);    
  474. }
  475.  
  476.  
  477. void set_interval(void)
  478. {
  479.  s[0]=kod[0][2];
  480.  Blik=1;Olds=s[0];
  481.  Zobraz_cislo((int) Sw_time,0);pom2=Sw_time;
  482.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  483.  do{wdr(); if(Test_Button())
  484.                 {
  485.                   if(Button==UP_KEY) { if(pom2==0xff) pom2=2;else pom2++;}
  486.                   if(Button==DOWN_KEY) {if(pom2==2) pom2=0xff;else pom2--;}
  487.                   if(Button==F_KEY) break;
  488.                   Zobraz_cislo(pom2,0);
  489.                 }
  490.    }  
  491.  while(1);
  492.  Starttimer(1000);
  493.  do {wdr();
  494.      Test_Button();
  495.      if(Button==NO_KEY) break;
  496.     }
  497.  while(!timeout);
  498.  if (timeout) {wdr();
  499.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  500.                delay(200); Zobraz_cislo(pom2,0);
  501.                write_eeprom(A_Sw_time,pom2);
  502.                wdr();
  503.                delay(400);    
  504.                wdr();delay(400);wdr();
  505.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  506.                delay(200);
  507.                Sw_time=read_eeprom(A_Sw_time);
  508.                Zobraz_cislo(Sw_time,0);
  509.                do {wdr();Test_Button();} while (Button!=F_KEY);
  510.              }
  511.  Blik=0;s[0]=Olds;
  512.  Fun=1;
  513. }
  514.  
  515. void set_level(void)
  516. {
  517.  s[0]=kod[0][3];
  518.  Blik=1;Olds=s[0];
  519.  Zobraz_cislo((int) 10*Level,1);pom2=Level;
  520.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  521.  do {wdr();if(Test_Button())
  522.                 { if(Button==UP_KEY) { if(pom2==200) pom2=0;else pom2++;}
  523.                   if(Button==DOWN_KEY) {if(pom2==0) pom2=200;else pom2--;}
  524.                   if(Button==F_KEY) break;
  525.                   Zobraz_cislo((int) 10*pom2,1);
  526.                 }
  527.     }
  528.  while(1);
  529.  Starttimer(1000);
  530.  do {wdr();Test_Button();
  531.      if(Button==NO_KEY) break;
  532.     }
  533.  while(!timeout);
  534.  if (timeout) {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  535.                delay(200); Zobraz_cislo(10*pom2,1);write_eeprom(A_Level,pom2);
  536.                wdr();
  537.                delay(400);  
  538.                wdr();
  539.                delay(400);wdr();
  540.                Level = read_eeprom(A_Level);
  541.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  542.                delay(200);Zobraz_cislo(10*Level,1);
  543.                do {wdr();Test_Button();} while (Button!=F_KEY);
  544.              }
  545.  Blik=0;s[0]=Olds;
  546.  Fun=1;
  547. }
  548.  
  549. void set_Urefh(void)
  550. {
  551.  s[0]=kod[0][1];
  552.  Blik=1;Olds=s[0];
  553.  Zobraz_cislo( Urefh,0);ii=Urefh;
  554.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  555.  do{wdr(); if(Test_Button())
  556.                 { if(Button==UP_KEY) { if(ii==4000) ii=1500;else ii++;}
  557.                   if(Button==DOWN_KEY) {if(ii==1500) ii=4000;else ii--;}
  558.                   if(Button==F_KEY) break;
  559.                   Zobraz_cislo(ii,0);
  560.                 }
  561.     }
  562.  while(1);
  563.  
  564.  Starttimer(1000);
  565.  do {wdr();Test_Button();
  566.      if(Button==NO_KEY) break;
  567.     }
  568.  while(!timeout);
  569.  
  570.  if (timeout) {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  571.                delay(200); Zobraz_cislo(ii,0);
  572.                write_eeprom(A_Urefh,(BYTE) ii & 0x00ff);delay(8);
  573.                write_eeprom(A_Urefh+1,(BYTE) (ii>>8) & 0x00ff);
  574.                delay(8);
  575.                wdr();
  576.                Urefh=read_eeprom(A_Urefh+1);Urefh = Urefh <<8; delay(2);
  577.                Urefh=Urefh | read_eeprom(A_Urefh);
  578.  
  579.                delay(400);wdr();delay(400);wdr();    
  580.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  581.                delay(200);Zobraz_cislo(Urefh,0);
  582.                do{wdr(); Test_Button();} while (Button!=F_KEY);
  583.              }
  584.  Blik=0;s[0]=Olds;
  585.  Fun=1;
  586. }
  587.  
  588. void set_Urefl(void)
  589. {
  590.  s[0]=kod[0][2];
  591.  Blik=1;Olds=s[0];
  592.  Zobraz_cislo( Urefl,0);ii=Urefl;
  593.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  594.  do{wdr(); if(Test_Button())
  595.                 { if(Button==UP_KEY) { if(ii==2000) ii=1000;else ii++;}
  596.                   if(Button==DOWN_KEY) {if(ii==1000) ii=2000;else ii--;}
  597.                   if(Button==F_KEY) break;
  598.                   Zobraz_cislo(ii,0);
  599.                 }
  600.     }
  601.  while(1);
  602.  
  603.  Starttimer(1000);
  604.  do {wdr();Test_Button();
  605.      if(Button==NO_KEY) break;
  606.     }
  607.  while(!timeout);
  608.  
  609.  if (timeout) {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  610.                delay(200); Zobraz_cislo(ii,0);
  611.                write_eeprom(A_Urefl,(BYTE) ii & 0x00ff);delay(8);
  612.                write_eeprom(A_Urefl+1,(BYTE) (ii>>8) & 0x00ff);
  613.                delay(8);
  614.                wdr();
  615.                Urefl=read_eeprom(A_Urefl+1);Urefl = Urefl <<8; delay(2);
  616.                Urefl=Urefl | read_eeprom(A_Urefl);
  617.  
  618.                delay(400);wdr();delay(400);wdr();    
  619.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  620.                delay(200);Zobraz_cislo(Urefl,0);
  621.                do{wdr(); Test_Button();} while (Button!=F_KEY);
  622.              }
  623.  Blik=0;s[0]=Olds;
  624.  Fun=1;
  625. }
  626.  
  627.  
  628. void set_pocet(void)
  629. {
  630.  s[0]=kod[0][5];
  631.  Blik=1;Olds=s[0];
  632.  Zobraz_cislo((int) Pocet+1,0);pom2=Pocet+1;
  633.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  634.  do{wdr(); if(Test_Button())
  635.                 { if(Button==UP_KEY) { if(pom2==6) pom2=1;else pom2++;}
  636.                   if(Button==DOWN_KEY) {if(pom2==1) pom2=6;else pom2--;}
  637.                   if(Button==F_KEY) break;
  638.                   Zobraz_cislo(pom2,0);
  639.                 }
  640.     }
  641.  while(1);
  642.  
  643.  Starttimer(1000);
  644.  do {wdr();Test_Button();
  645.      if(Button==NO_KEY) break;
  646.     }
  647.  while(!timeout);
  648.  
  649.  if (timeout) {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  650.                delay(200); Zobraz_cislo(pom2,0);write_eeprom(A_Pocet,pom2-1);
  651.                delay(8);
  652.                wdr();
  653.                Pocet=read_eeprom(A_Pocet);
  654.                delay(400);wdr();delay(400);wdr();    
  655.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  656.                delay(200);Zobraz_cislo(Pocet+1,0);
  657.                do{wdr(); Test_Button();} while (Button!=F_KEY);
  658.              }
  659.  Blik=0;s[0]=Olds;
  660.  Fun=1;
  661. }
  662.  
  663. void set_typ(void)
  664. {
  665. /* zobrazi do funkcie 6
  666.    a na display cislo kanala (1), pre ktory sa urcuje typ
  667.  */
  668.  
  669.  s[0]=kod[0][6];
  670.  Blik=1;Olds=s[0];
  671.  
  672.  pom2 = 0;
  673.  Zobraz_cislo((int) pom2+1,0);
  674.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  675.  do {wdr();if(Test_Button())
  676.                 { if(Button==UP_KEY) { if(pom2==Pocet) pom2=0;else pom2++;}
  677.                   if(Button==DOWN_KEY) {if(pom2==0) pom2=Pocet;else pom2--;}
  678.                   if(Button==F_KEY) break;
  679.                   Zobraz_cislo(pom2+1,0);
  680.                 }
  681.      }
  682.  while(1);
  683.  
  684.  
  685. /* nastavi sa do funkcie cislo nastaveneho kanalu
  686.    a na display sa zobrazi typove cislo
  687.  */
  688. Blik = 0;
  689.  s[0]=kod[0][pom2+1];
  690.  
  691.  pom3 = 0x01 << pom2;
  692.  pom2 = TYPE & pom3;
  693.  
  694.   if(!pom2)
  695.     Zobraz_cislo(1391,0);
  696.  else
  697.     Zobraz_cislo(1385,0);
  698.  
  699. do{ wdr();Test_Button();} while(Button!=NO_KEY);
  700.  
  701.  do {wdr();if(Test_Button())
  702.                 { if(Button==UP_KEY) {pom2 =~pom2 & pom3;}
  703.                   if(Button==DOWN_KEY) {pom2 = ~pom2 & pom3;}
  704.                   if(Button==F_KEY) break;
  705.         if(!pom2)
  706.             Zobraz_cislo(1391,0);
  707.         else
  708.             Zobraz_cislo(1385,0);
  709.                 }
  710.      }
  711.  while(1);
  712.  pom2=pom2 & pom3;
  713.  TYPE = TYPE & ~pom3;  /* nuluje bit pom2 v TYPE */
  714.  TYPE = TYPE | pom2;
  715.  
  716.  Starttimer(1000);
  717.  do {wdr();Test_Button();
  718.      if(Button==NO_KEY) break;
  719.     }
  720.  while(!timeout);
  721.  if (timeout) {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  722.                delay(200);
  723.              Zobraz_cislo((int)TYPE,0);write_eeprom(A_TYPE,TYPE);
  724.                wdr();delay(400);wdr();delay(400);
  725.                TYPE = read_eeprom(A_TYPE);
  726.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  727.                wdr();
  728.                delay(200);
  729.             Zobraz_cislo(TYPE,0);
  730.  
  731.                do{wdr(); Test_Button();} while (Button!=F_KEY);
  732.              }
  733.  Blik=0;s[0]=Olds;
  734.  Fun=1;
  735. }
  736.  
  737. void set_R(void)
  738. {
  739. /* zobrazi do funkcie 6
  740.    a na display cislo kanala (1), pre ktory sa urcuje typ
  741.  */
  742.  
  743.  s[0]=kod[0][3];
  744.  Blik=1;Olds=s[0];
  745.  
  746.  pom2 = 0;
  747.  Zobraz_cislo((int) pom2+1,0);
  748.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  749.  do {wdr();if(Test_Button())
  750.                 { if(Button==UP_KEY) { if(pom2==Pocet) pom2=0;else pom2++;}
  751.                   if(Button==DOWN_KEY) {if(pom2==0) pom2=Pocet;else pom2--;}
  752.                   if(Button==F_KEY) break;
  753.                   Zobraz_cislo(pom2+1,0);
  754.                 }
  755.      }
  756.  while(1);
  757.  
  758.  
  759. Blik = 0;
  760.  s[0]=kod[0][pom2+1];
  761.  
  762.  
  763.  Zobraz_cislo(R[pom2],1);
  764. ii=R[pom2];
  765. do{ wdr();Test_Button();} while(Button!=NO_KEY);
  766.  do {wdr();if(Test_Button())
  767.       { if(Button==UP_KEY)
  768.               {if (ii ==1850) ii=1100;else ii++;}
  769.         if(Button==DOWN_KEY)
  770.               {if (ii==1100) ii = 1850; else ii--;}
  771.         if(Button==F_KEY) break;
  772.     Zobraz_cislo(ii,1);
  773.       }
  774.      }
  775.  while(1);
  776.  
  777.  Starttimer(1000);
  778.  do {wdr();Test_Button();
  779.      if(Button==NO_KEY) break;
  780.     }
  781.  while(!timeout);
  782.  if (timeout) {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  783.                delay(200);
  784.            Zobraz_cislo(ii,1);
  785.  
  786.                write_eeprom(A_R+2*pom2,(BYTE) ii & 0x00ff);delay(8);
  787.                write_eeprom(A_R+2*pom2+1,(BYTE) (ii>>8) & 0x00ff);
  788.                delay(8);
  789.                wdr();
  790.                R[pom2]=read_eeprom(A_R+2*pom2+1);R[pom2] = R[pom2] <<8; delay(2);
  791.                R[pom2]=R[pom2] | read_eeprom(A_R+2*pom2);
  792.  
  793.                delay(400);wdr();delay(400);wdr();    
  794.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  795.                delay(200);Zobraz_cislo(R[pom2],1);
  796.                do{wdr(); Test_Button();} while (Button!=F_KEY);
  797.              }
  798.  Blik=0;s[0]=Olds;
  799.  Fun=1;
  800. }
  801.  
  802. void set_typ_komp(void)
  803. {
  804.  s[0]=kod[0][7];
  805.  Blik=1;Olds=s[0];
  806.  Zobraz_cislo((int) Typ_komp,0);pom2=Typ_komp;
  807.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  808.  do{wdr(); if(Test_Button())
  809.                 {
  810.                   if(Button==UP_KEY) { if(pom2==1) pom2=0;else pom2++;}
  811.                   if(Button==DOWN_KEY) {if(pom2==0) pom2=0x1;else pom2--;}
  812.                   if(Button==F_KEY) break;
  813.                   Zobraz_cislo(pom2,0);
  814.                 }
  815.    }  
  816.  while(1);
  817.  Starttimer(1000);
  818.  do {wdr();
  819.      Test_Button();
  820.      if(Button==NO_KEY) break;
  821.     }
  822.  while(!timeout);
  823.  if (timeout) {wdr();
  824.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  825.                delay(200); Zobraz_cislo(pom2,0);
  826.                write_eeprom(A_Typ_komp,pom2);
  827.                wdr();
  828.                delay(400);    
  829.                wdr();delay(400);wdr();
  830.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  831.                delay(200);
  832.                Typ_komp=read_eeprom(A_Typ_komp);
  833.                Zobraz_cislo(Typ_komp,0);
  834.                do {wdr();Test_Button();} while (Button!=F_KEY);
  835.              }
  836.  Blik=0;s[0]=Olds;
  837.  Fun=1;
  838. }
  839.  
  840. void show_passwd(void)
  841. {s[0]=kod[0][4];
  842.  Blik=1;Olds=s[0];
  843.  Zobraz_cislo(Passwd,0);pom2=0;
  844.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  845.  do{wdr(); if(Test_Button())
  846.                 {
  847.                   if(Button==F_KEY) break;
  848.                 }
  849.    }  
  850.  while(1);
  851.  Blik=0;s[0]=Olds;
  852.  Fun=1;
  853. }
  854. /*nastavenie noveho hesla*/
  855. void set_kod(void)
  856. { s[0]=kod[0][8];
  857.  Blik=1;Olds=s[0];
  858.  Zobraz_cislo(0,0);pom2=0;
  859.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  860.  do{wdr(); if(Test_Button())
  861.                 {
  862.                   if(Button==UP_KEY) { if(pom2==0xff) pom2=0;else pom2++;}
  863.                   if(Button==DOWN_KEY) {if(pom2==0) pom2=0xff;else pom2--;}
  864.                   if(Button==F_KEY) break;
  865.                   Zobraz_cislo(pom2,0);
  866.                 }
  867.    }  
  868.  while(1);
  869.  if(pom2!=Passwd){ Blik=0;s[0]=Olds;Fun=1;return;}
  870.  Blik=0;s[0]=Olds;s[0]=kod[0][12];  /*ide sa nastavit nove heslo*/
  871.  
  872.  Zobraz_cislo(Passwd,0);pom2=Passwd;
  873.  do {wdr();Test_Button();} while(Button!=NO_KEY);
  874.  do{wdr(); if(Test_Button())
  875.                 {
  876.                   if(Button==UP_KEY) { if(pom2==0xff) pom2=0;else pom2++;}
  877.                   if(Button==DOWN_KEY) {if(pom2==0) pom2=0xff;else pom2--;}
  878.                   if(Button==F_KEY) break;
  879.                   Zobraz_cislo(pom2,0);
  880.                 }
  881.    }  
  882.  while(1);
  883.  Starttimer(1000);
  884.  do {wdr();
  885.      Test_Button();
  886.      if(Button==NO_KEY) break;
  887.     }
  888.  while(!timeout);
  889.  if (timeout) {wdr();
  890.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  891.                delay(200); Zobraz_cislo(pom2,0);
  892.                write_eeprom(A_Passwd,pom2);
  893.                wdr();
  894.                delay(400);    
  895.                wdr();delay(400);wdr();
  896.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  897.                delay(200);
  898.                Passwd=read_eeprom(A_Passwd);
  899.                Zobraz_cislo(Passwd,0);
  900.                do {wdr();Test_Button();} while (Button!=F_KEY);
  901.              }
  902.  Blik=0;s[0]=Olds;
  903.  Fun=1;
  904. }
  905.  
  906. /*nastavenie odporov pre korekcie v PT 100 v stotinach Ohmu*/
  907. void set_odpory(void)
  908. {
  909.    s[0]=kod[0][9];Blik=1;Olds=s[0];
  910. /*nastavenie hesla*/
  911.    Zobraz_cislo(0,0);pom2=0;
  912.    do {wdr();Test_Button();} while(Button!=NO_KEY);
  913.  do
  914.  {wdr();
  915.   if(Test_Button())
  916.     {if(Button==UP_KEY) { if(pom2==0xff) pom2=0;else pom2++;}
  917.      if(Button==DOWN_KEY) {if(pom2==0) pom2=0xff;else pom2--;}
  918.      if(Button==F_KEY) {Blik=0;break;}
  919.      Zobraz_cislo(pom2,0);
  920.     }
  921.   }
  922.  while(1);
  923.   if(pom2!=Passwd){Blik=0;s[0]=Olds;Fun=1;return;}
  924. /*nastavenie kanala*/
  925.    Kanal=0;
  926.    Zobraz_cislo(Kanal+1,0);
  927.    do {wdr();Test_Button();} while(Button!=NO_KEY);
  928.  do
  929.  {wdr();
  930.   if(Test_Button())
  931.     {if(Button==UP_KEY) { if(Kanal==Pocet) Kanal=0;else Kanal++;}
  932.      if(Button==DOWN_KEY) {if(Kanal==0) Kanal=Pocet;else Kanal--;}
  933.      if(Button==F_KEY) {Blik=0;break;}
  934.      Zobraz_cislo(Kanal+1,0);
  935.     }
  936.   }
  937.   while(1);
  938.  
  939. /*nastavenie odporu pre dany kanal*/
  940. Blik = 0;
  941.  s[0]=kod[0][Kanal+1];
  942.  
  943.  Zobraz_cislo(R_kor[Kanal],0);
  944.  pom2=R_kor[Kanal];
  945.  do{ wdr();Test_Button();} while(Button!=NO_KEY);
  946.   do {wdr();if(Test_Button())
  947.       { if(Button==UP_KEY)
  948.               {if (pom2 ==200) pom2=0;else pom2++;}
  949.         if(Button==DOWN_KEY)
  950.               {if (pom2==0) pom2 = 200; else pom2--;}
  951.         if(Button==F_KEY) break;
  952.     Zobraz_cislo(pom2,0);
  953.       }
  954.      }
  955.  while(1);
  956.  
  957.  Starttimer(1000);
  958.  do {wdr();Test_Button();
  959.      if(Button==NO_KEY) break;
  960.     }
  961.  while(!timeout);
  962.  
  963.  if (timeout) {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  964.                delay(200); Zobraz_cislo(pom2,0);write_eeprom(A_R_kor+Kanal,pom2);
  965.                delay(8);
  966.                wdr();
  967.                R_kor[Kanal]=read_eeprom(A_R_kor+Kanal);
  968.                delay(400);wdr();delay(400);wdr();    
  969.                s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  970.                delay(200);Zobraz_cislo(R_kor[Kanal],0);
  971.                do{wdr(); Test_Button();} while (Button!=F_KEY);
  972.              }
  973.  Fun=1;Kanal=0;
  974. }
  975.  
  976. /*nastavovanie softwarovej korekcie teploty */
  977. void set_korekcie(void)
  978. {
  979.    s[0]=kod[0][4];Blik=1;Olds=s[0];
  980.  
  981. /*nastavenie hesla*/
  982.    Zobraz_cislo(0,0);pom2=0;
  983.    do {wdr();Test_Button();} while(Button!=NO_KEY);
  984.  do
  985.  {wdr();
  986.   if(Test_Button())
  987.     {if(Button==UP_KEY) { if(pom2==0xff) pom2=0;else pom2++;}
  988.      if(Button==DOWN_KEY) {if(pom2==0) pom2=0xff;else pom2--;}
  989.      if(Button==F_KEY) break;
  990.      Zobraz_cislo(pom2,0);
  991.     }
  992.   }
  993.  while(1);
  994.   if(pom2!=Passwd){Blik=0;s[0]=Olds;Fun=1;return;}
  995. /*nastavenie kanala*/
  996.   Kanal=0;
  997. do  /*vracia sa do rezimu nastavenia kanala*/
  998. {
  999.    Zobraz_cislo(Kanal+1,0);
  1000.    do {wdr();Test_Button();} while(Button!=NO_KEY);
  1001.  do
  1002.  {wdr();
  1003.   if(Test_Button())
  1004.     {if(Button==UP_KEY) { if(Kanal==Pocet+1) Kanal=0;else Kanal++;}
  1005.      if(Button==DOWN_KEY) {if(Kanal==0) Kanal=Pocet+1;else Kanal--;}
  1006.      if(Button==F_KEY) {Blik=0;break;}
  1007.      Zobraz_cislo(Kanal,0);
  1008.     }
  1009.   }
  1010.   while(1);
  1011.   if(Kanal==0) break; /*skonci ak sa nastavi 0-ty kanal*/
  1012.   Kanal--;
  1013.   Blik=0;s[0]=kod[0][11];
  1014.   do {wdr();Test_Button();} while(Button!=NO_KEY);
  1015.        
  1016.          do {wdr();
  1017.        pomi = zmeraj(Kanal,TYPE&pom)-kor[Kanal];
  1018.        Zobraz_cislo(pomi,1);
  1019.        Starttimer(50);
  1020.        do if(pom=Test_Button()) break;
  1021.        while(!timeout);
  1022.        if (Button!=NO_KEY) {break;}
  1023.          }
  1024.       while(1);
  1025.  
  1026.        U=pomi;
  1027.        do{wdr();
  1028.           if(Test_Button())
  1029.           {if(Button==UP_KEY)  U++;
  1030.            if(Button==DOWN_KEY) U--;
  1031.            if(Button==F_KEY) break;
  1032.            Zobraz_cislo(U,1);
  1033.           }
  1034.          }
  1035.        while(1);
  1036.        Starttimer(1000);
  1037.        do {wdr();Test_Button();
  1038.            if(Button==NO_KEY) break;
  1039.           }
  1040.        while(!timeout);
  1041.        if (timeout)
  1042.          {wdr();s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  1043.           delay(200); Zobraz_cislo(U,1);
  1044.           write_eeprom(A_Kor+Kanal,(char) (U-pomi));
  1045.           wdr();
  1046.           delay(400);wdr();
  1047.           delay(400);wdr();      
  1048.           s[1]=kod[1][10];s[2]=kod[2][10];s[3]=kod[3][10];s[4]=kod[4][10];
  1049.           delay(200);wdr();
  1050.           kor[Kanal]=read_eeprom(A_Kor+Kanal);
  1051.           Zobraz_cislo(kor[Kanal]+pomi,1);
  1052.           do {wdr();
  1053.               Test_Button();
  1054.              }
  1055.           while (Button!=F_KEY);  
  1056.         }
  1057.    s[0]=kod[0][4];Blik=1;
  1058.  }
  1059. while(1); /*navrat do nastavenia kanala*/
  1060.  Fun=1;Kanal=0;
  1061. }
  1062.  
  1063. void main(void)
  1064. {
  1065.       Init();
  1066.       Test_Button();
  1067.      
  1068.      if(Button==F_KEY)
  1069.       do
  1070.        {do {wdr();Test_Button();} while(Button!=NO_KEY);
  1071.         s[0]=kod[0][10];Fun=1;
  1072.            Zobraz_cislo(Fun,0);
  1073.            do{ wdr();Test_Button();} while(Button!=NO_KEY);
  1074.             do{wdr(); if(Test_Button())
  1075.                 { if(Button==UP_KEY) { if(Fun==4) Fun=0;else Fun++;}
  1076.                   if(Button==DOWN_KEY) {if(Fun==0) Fun=4;else Fun--;}
  1077.                   if(Button==F_KEY)  break;
  1078.                   Zobraz_cislo(Fun,0);
  1079.                 }
  1080.               }
  1081.             while(1);    
  1082.           s[0]=kod[0][Fun];
  1083.           if(Fun==1) set_Urefh();
  1084.           if(Fun==2) set_Urefl();
  1085.           if(Fun==3) set_R();
  1086.           if(Fun==4) show_passwd();
  1087.           if(Fun==0) break;
  1088.           Fun=1;
  1089.         }
  1090.     while(1);
  1091.     Fun=1;
  1092.        while(1)
  1093.         { wdr();
  1094.           if(Fun==0) manual();
  1095.           if(Fun==1) automat();
  1096.           if(Fun==2) set_interval();
  1097.           if(Fun==3) set_level();
  1098.           if(Fun==4) set_korekcie();
  1099.           if(Fun==5) set_pocet();            
  1100.           if(Fun==6) set_typ();
  1101.           if(Fun==7) set_typ_komp();
  1102.           if(Fun==8) set_kod();
  1103.           if(Fun==9) set_odpory();
  1104.           Kanal=0;
  1105.           if(Fun==10)
  1106.           {s[0]=kod[0][10];Fun=0;
  1107.            Zobraz_cislo(Fun,0);
  1108.            do{ wdr();Test_Button();} while(Button!=NO_KEY);
  1109.             do{wdr(); if(Test_Button1(0x2bff))
  1110.                 { if(Button==UP_KEY) { if(Fun==9) Fun=0;else Fun++;}
  1111.                   if(Button==DOWN_KEY) {if(Fun==0) Fun=9;else Fun--;}
  1112.                   if(Button==F_KEY)  break;
  1113.                   Zobraz_cislo(Fun,0);
  1114.                 }
  1115.               }
  1116.             while(1);    
  1117.           if (Fun==1) s[0]=kod[0][Fun+1];else s[0]=kod[0][Fun];
  1118.           do{ wdr();Test_Button();} while(Button!=NO_KEY);
  1119.          }
  1120.        }   /*hlavny cyklus*/
  1121. }/* koniec main*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement