sistem_centralnog_grejanja_automatika_elekronika_obrada_signala.jpg
sistem_centralnog_grejanja_automatika_elekronika_obrada_signala.jpg  U bazi znanja analizirane su dinamičke karakteristike, odziv i ponašanje sistema centralnog grejanja na zadatu referentnu promenljivu. Određena je prenosna funkcija sistema i izvršena je sinteza digitalnog PI odnosno PID zakona upravljanja. Postupkom simulacije u MATLab-ovom simulink modulu dobijeni su optimalni parametri (konstante) PI tj PID regulatora.

 

 
Grubo gledano sistem možemo podeliti na dva dela :

1. Elektronski deo – koga čine : mikrokontroler, A/D konvertor, kolo za generisanje referentne promenljive, kolo za generisanje upravljane promen-ljive – senzor za temperaturu vode u sistemu, deo za galvansku izolaciju elektronskog i energetskog dela, kolo za sinhronizaciju sa mrežom i deo za napajanje.
 
2.  Energetski deo čini trofazni tiristorski polu upravljivi ispravljač. Umesto njega bolje je koristiti trofazni tiristorski fazni regulator ali je upravljanje njegovim radom znatno složenije i izlazi iz okvira ovog projekta.
 
 
regulacija temperature_projekat_automatika.rs
 
Slika 1. Blok šema sistema za upravljanje centralnim grejanjam.
 
   Mikrokontroler predstavlja mozak sistema i ima glavnu ulogu u njegovom radu. U jednom čipu se nalazi procesor, memorija, registri i sve što je potrebno za obavljanje funkcija tipičnih za jedan procesor informacija. Namenjen je  projekto-vanju digitalnih sistema upravljanja u industriji i slično. On   generiše upravljačku promenljivu na osnovu merene upravljane promenljive tj temperature vode u povratnoj grani upravljajući radom tiristorskog polu upravljivog ispravljača. Istovremeno kontrolišući celokupan rad uređaja.
 
   Senzor ima važnu ulogu.Njegova osetljivost i stabilnost (nepromenljivost karakteri-stika u odnosu na temperaturu) su vrlo bitni za rad i tačnost celog sistema. Nalazi se na cevi koja vraća ohlađenu vodu iz sistema u kotao.
 
Izlaz senzora se vodi na pojačavač koji ima ulogu da pojača signal sa senzora i prilagodi ga opsegu A/D konvertora.Njegova stabilnost i otpornost na spoljašnje uticaje kao i mali ofset (razdešenost) ukazuju na njegovu ulogu u celom sistemu.
 
Sa pojačavača se signal povratne sprege dovodi na ulaz A/D konvertora. Njegova uloga je da analogni signal pretvori u digitalni koji se dalje vodi u mikrokontroler. Ovde bi se mogao koristiti mikrokontroler sa već ugrađenim A/D konvertorom čime bi se data šema znatno uprostila. Priloženo rešenje nije jedino ali je sa stanovišta univerzalnosti i edukativnog značaja bolje.
 
Galvanska izolacija je neophodan deo svakog uređaja u kome se kombinuju elektronska kola sa kolima energetske elektronike. Usled havarije u energetskom delu, koja je moguća jer su komponente (tiristori i diode) značajno opterećeni, mogao bi se uništiti čitav elektronski sklop. U ovom delu se nalaze i impulsni pojačavači koji slab digitalni signal podižu na viši nivo dovoljan za okidanje tiristora.

   Kolo za zadavanje referentnog signala je obavezan deo jer omogućuje korisniku da na jednostavan način zada željenu referentnu temperaturu vode u sistemu. Njegova uloga je ovde i da ograniči opseg zadavanja temperature na MAX 70°C. U isto vreme ovo kolo treba i da obezbedi jednostavno očitavanje zadate temperature na displeju.
Za uspešan rad svih ovih kola potreban je kvalitetan i stabilan izvor napajanja. On treba da obezbedi potrebne napone za funkcionisanje svih kola.

   Tiristorski polu upravljivi ispravljač je zbog snage grejača kojim upravljamo vezan na trofaznu mrežu 3x380V . Nije bilo potrebe da se koristi puno upravljivi ispravljač zbog činjenice da grejač ne radi u invertorskom režimu. Na ovaj način su umesto tri tiristora upotrebljene tri diode , čime je postignuta znatna ušteda kako u pogledu cene uređaja tako i sa tačke upravljanja sistemom.

 U postojeći sistem se može dodati i EPROM memorija u koju se može smestiti kompletan program za mikrokontroler. Mikrokontroler već u sebi sadrži izvesnu količinu memorije (8KB) koja je u ovom slučaju dovoljna da primi celokupan kod. Iz tog razloga je u ovom projektu izostavljena.
 
  • Normal 0 false false false MicrosoftInternetExplorer4   U nastavku prelazimo na konkretan izbor sklopova i elemenata.
   Mikrokontroler koji je ovde korišćen je Atmel-ov AT89C52. Radi se o kontroleru koji je po svom pinskom rasporedu i setu instrukcija kompatibilan sa Intel-ovim 8052 mikrokontrolerom. On sadrži tri 16-to bitna brojača i 8KB flash memorije. Priključen je na kvarcni kristal učestanosti 12 MHz. Postoje 4 ulazno/izlazna porta mada su ovde korišćena samo dva. Napon napajanja je +5V.

 A/D konvertor je AD570 firme Analog Devices. U pitanju je 8-mo bitni A/D, sa vremenom konverzije <25μs na bazi sukcesivne aproksimacije. Napajanje mu je +5V i – 12V, a opseg ulaznog napona je 0-10V. Izbor ovakvog konvertora je zasno-van prvenstveno na činjenici da se radi o sporo promenljivom procesu i na što jednostavnijem upravljanju. Proces A/D konverzije započinje na opadajućoj ivici signala B&C . Nakon 25μs po završetku konverzije aktivira se signal DATAREADY . Signal B&C generiše mikrokontroler koji i detektuje DATAREADY signal preko svog INT1 ulaza.
Kolo za generisanje referentne vrednosti je napravljeno pomoću dva BCD UP/DOWN brojača 74HC4510. Pomoću dva tastera biramo smer brojanja a trećim vršimo upis izabrane vrednosti u leč kolo 74HC573.Prikaz se vrši na dva 7-mo segmentna displeja pomoću dva BCD/7-SEG drivera 74HC4511. Napajanje je +5V.

 Galvanska izolacija zahteva posebno galvanski odvojeno napajanje i može se izvesti pomoću optokaplera ili malih signalnih trafoa . Ovde će biti prikazano rešenje sa signalnim trafoom, koje je ujedno i najjednostavnije . Sklop za sinhronizaciju sa mrežom koristi mrežni transformator u delu za napajanje.

 Prolaskom mrežnog napona kroz nulu generiše se okidni impuls koji se zatim uobličuje i vodi na INT0 ulaz u mikrokontroler.Ovaj deo je vrlo važan jer na osnovu impulsa sinhronizacije se vrši izračunavanje ugla paljenja tiristora kao i perioda odabiranja. Koristeći mrežni transformator sklop je galvanski odvojen od mreže.

 Senzor korišćen u ovom sistemu je LM35 proizvođača National Semiconductor . U pitanju je vrlo jednostavan, precizan, linearan i jeftin senzor.Osetljivost mu je 10mV/°C. Može da meri temperaturu do +150°C. Izlaz je naponski signal. Napajanje može biti u granicama od 4 do 30V.

 U pojačavačkom sklopu je korišćen klasičan 741 operacioni pojačavač u neinvertu-jućem spoju sa kompenzovanim ofsetom koji ulazni naponski signal pojačava i prilagođava ulaznom opsegu A/D konvertora 0-10V.

 Iz dosad navedenog proizilazi da su za rad ovog uređaja potrebni sledeći naponi :
  •   +5V,+15V,+15V(galvanski odvojeno) i –12V. 

 Možda najbolje rešenje predstavljaju integrisani stabilizatori napona 7805,7815 i 7912.

 
 
Programska podrška
 
 
   Nakon hardverske sinteze sistema u celini možemo pristupiti razmatranju problema-tike softvera koji će upravljati celim sistemom. Najpre treba zakon upravljanja predstaviti u nešto drugačijem obliku.
 
1 regulacija_temperature_projekat_automatika.rs
  Ovde su konstante KP, KI i KDodredjene u tekstu u bazi znanja i iznose:

            KP=30              KI=0.6            KD=0.2

Sređivanjem gornjeg izraza i svođenjem na nešto drugačiji oblik dobija se :
 
2 regulacija_temperature_projekat_automatika.rs

   Ovo je rekurzivni oblik zakona upravljanja koji je vrlo pogodan za implementaciju jer se vrednost upravljačke promenljive u(kT) u trenutku kT izračunava na osnovu vrednosti upravljačke promenljive i signala greške (e(kT)) u prethodnim trenutcima.
Konstante koje se ovde pojavljuju su : 

 K1 = KP+KI+KD = 30.8      K2 = KP+2K = 30.4    K3 = KD = 0.2
 
   Očigledno da konstante nisu celobrojne i da ih treba skalirati kako bi se mogle primeniti u softverskoj implementaciji zakona upravljanja . Zato ih množimo sa 4, zaokružujemo i dobijamo nove konstante : K1 = 123 ; K2 = 122 ; K3 = 1 . Ove konstante su celobrojne i mogu se koristiti u programu predstavljene u hexadecimalnom obliku kao : K1 = 7B H ; K2 = 7A H ; K3 = 01 H .

   Ovo unosi izvesnu grešku u izračunavanju upravljačke promenljive. Upravljačka pro-menljiva, koja ovde predstavlja vrednost napona koju dovodimo na grejač, se nalazi u opsegu 0 – 400V . Teorijski bi se mogla generisati bilo koja vrednost iz tog opsega ali to nema praktičnog značaja . Iz tog razloga je ovde izvršeno skaliranje upravlja-čke promenljive, pa je ona svedena u opseg 0 – 50, deljenjem sa 8 .

 Na ovaj način ustvari generišemo samo 50 vrednosti ugla paljenja tiristora, pri čemu se napon menja u koracima od 8V. Ugao paljenja prvog tiristora generiše Timer0 u mikrokontroleru dok su ostali uglovi pomereni za po 1/3 periode. Konsanta kojom se puni Timer0 da bi generisao željeni ugao je 16-to bitna i uzima se iz tabele koja se nalazi u programskoj memoriji. Tabela je data u nastavku .
 
3 regulacija_temperature_projekat_automatika.rs
Tabela 1. Zavisnost napona ispravljačaod ugla paljenja tiristora
 
4 regulacija_temperature_projekat_automatika.rs
 
   Zavisnost izlaznog napona od ugla paljenja je prikazana u tabeli. Uout predstavlja zaokruženu vrednost . Kolona Timer sadrži konstante kojima se puni Timer0 da bi generisao željeni ugao paljenja prvog tiristora. Potrebno je ove vrednosti pretvoriti u hexadecimalni oblik .
   Konstante su dvo-bajtne (16 bita) niže bajtove stavljamo u jednu tabelu na lokacije od 100 (64H) do 150 (96H) , a više bajtove u drugu tabelu na lokacije od 151 (97H) do 201 (C9H) . Ovim tabelama pristupamo indirektno .
Timer1 koristimo za generisanje uglova paljenja ostala dva tiristora. On  generiše vremenski period koji odgovara 1/3 periode mrežnog napona tj. oko 6.666msec. Konstanta kojom punimo Timer1 je zato 65535 – 6666 =58869 (E5F5 H).

Perioda odabiranja je 75sec što predstavlja 3750 perioda mrežnog napona . Timer2 služi za generisanje periode odabiranja. Nalazi se u auto-reload modu što znači da  se pri prekoračenju (kad dostigne 65535 (FFFF H)) automatski napuni vrednošću 65535 – 3750 = 61785 (F159 H).Ovaj Timer je podešen da radi kao Counter tj. brojač događaja odnosno brojač perioda mrežnog napona.

   Vrlo važno pitanje je određivanje prioriteta interapta. Najviši prioritet ima INT0 koga generiše mreža. U odnosu na njega se generišu svi uglovi paljenja i određuje perioda odabiranja. Na osnovu dosad izloženog može se preći na programski kod u asembleru uz oslonac na repertoar instrukcija mikrokontrolera uz kratak komentar.
 
Programski kod za upravljanja centralnim grejanjem
 
 
;ADRESE PROMENLJIVIH VELIČINA

OUT0        DATA        30h    ; Izlazna promenljiva u(kT)
OUT1        DATA        31h    ; u((k-1)T)
EROR0        DATA        32h    ; Signal greške e(kT)
EROR1        DATA        33h    ; e((k-1)T)
EROR2        DATA        34h    ; e((k-2)T)
EROR0ZN    BIT        00h    ; Znak greške
EROR1ZN    BIT        01h
EROR2ZN    BIT        02h
SCRCTRL    BIT        03h    ; Kontrolni bit za upravljanje SCR-ovima
ZNAK1        BIT        04h    ; Pomocna prom.
ZNAK2        BIT        05h    ;
ZNAKR        BIT        06h    ;

;KONSTANTE

K1        EQU        7Bh    ; K1 = 123
K2        EQU        7Ah    ; K2 = 122
K3        EQU        01h    ; K3 = 1
TIM1H        EQU        E5h    ; 65535 – 6666 = E5F5 h za Timer1
TIM1L        EQU        F5h    ;
TIM2H        EQU        F1h    ; 65535 – 3750 = F159 h za Timer2
TIM2L        EQU        59h    ;

ORG    0000h        ; Pri resetu ili uključenju ide se na INIC
JMP    INIC
ORG    0003h        ; INT0 Rutina SCR123
LCALL    SCR123
ORG    000Bh        ; Timer0 Rutina
LCALL    SCR1        ; Generiše ugao paljenja prvog (SCR1) tiristora
ORG    001Bh        ; Timer1 Rutina
LCALL    PAUZA        ; Generiše pauzu u trajanju 6.666 msec
ORG    002Bh        ; Timer2 Rutina
LCALL    RACUN        ; Generiše upravljačku promenljivu OUT0

; NA OVOM MESTU TREBALO BI DEFINISATI TABELU SA UGLOVIMA PALJENJA
        ORG    0064h        ; Početak TABELE – niži bajtovi
        DB    EFh,68h,47h,25h,03h, …….    ; Ovo su samo prvih 5 nižih
        DB    D8h,DCh,DDh,DEh,DFh, ……    ; Ovo su samo prvih 5 viših

; INICIJALIZACIJA

        ORG    00CDh        ; Adresa (205 dec) od koje počinje prog. kod
INIC:        CLR    IE.7        ; Zabrana svih prekida
        MOV    PSW,#00h    ; Obriši PSW
        MOV    TMOD,#11h    ; Timer0 i Timer1 u MOD1 kao 16 bitni Timer
    MOV    TCON,#05h    ; IE0 i IE1 interapti na opadajuću ivicu
    MOV    IP,#01h    ; Najviši prioritet za IE0
    MOV    T2CON,#02h    ; Timer2 kao Counter u AUTO-RELOAD modu
    MOV    OUT0,#00h    ; Inicijalizuj promenljive
    MOV    OUT1,#00h    ; –
    MOV    EROR0,#00h    ; –
    MOV    EROR1,#00h    ; –
    MOV    EROR2,#00h    ; –
    CLR    SCRCTRL    ; SCRCTRL=0 za SCR2 i SCRCTRL=1 za SCR3
   
    MOV    TL1,TIM1L        ; Napuni Timer1 sa E5F5h
    MOV    TH1,TIM1H        ;
    MOV    RCAP2L,TIM2L    ; Napuni Auto-reload registre sa F159h
    MOV    RCAP2H,TIM2H    ;
    MOV    P1,#10001111b    ; U port P0 upiši 10001111
    SETB    IE.7            ; Omogući prekide
    SETB    T2CON.2        ; Startuj Timer/Counter2

PETLJA:    SJMP    PETLJA            ; Petlja u kojoj se vrti program

SCR123:    MOV    R1,OUT0        ; R1 = OUT0 = upravljačka prom.
    MOV    TL0,@R1+100    ; Indirektno napuni TL0 i TH0 sa
    MOV    TH0,@R1+151    ; vrednostima iz tabele
    SETB    TCON.4        ; T0 RUN
    RETI                ; Gotova IE0 rutina
                           
SCR1:    CPL    P1.2            ; SCR1 ON     
    SETB    TCON.6        ; T1 RUN     
    CLR    TCON.4        ; T0 OFF
    CPL    P1.2            ;
    RETI

PAUZA:    JB    SCRCTRL,SCR3    ;
    CPL    P1.3            ; SCR2 ON
    CLR    TCON.6        ; T1 OFF
    MOV    TL1,TIM1L        ;
    MOV    TH1,TIM1H        ;
    SETB    TCON.6        ; T1 ON
    SETB    SCRCTRL        ; SCRCTRL=1 i sledeći put ide na SCR3
    CPL    P1.3            ;
    RETI

SCR3:    CPL    P1.4            ; SCR3 ON
    CLR    TCON.6        ; T1 OFF
    MOV    TL1,TIM1L        ;
    MOV    TH1,TIM1H        ;
    CLR    SCRCTRL        ; SCRCTRL=0 i sledeći put ide na SCR2
    CPL    P1.4            ;
    RETI

; Slede potprogrami za 2-vo Bajtno sabiranje i oduzimanje
; operand1 : A niži bajt, B viši bajt ; operand2 : R1 niži bajt, R2 viši bajt
; Rezultat   : A niži bajt, B viši bajt  ;  C = 1 negativan rezultat ; C=0 pozitivan

2BSAB:    CLR    C            ; Priprema za sabiranje
    ADD    A,R1            ; Saberi niže bajtove
    MOV    R1,A            ;
    MOV    A,B            ;
    ADDC    A,R2            ; Saberi više bajtove i C
    JNC    KRSAB            ; Ako nema C idi na KRSAB
    MOV    A,#FFh        ; Inače vrati MAX (FFFFh) vrednost
    MOV    B,#FFh        ;
    RET

KRSAB:    MOV    B,A   
    MOV    A,R1
    RET

2BODU:    CLR    C            ; Pripremi za oduzimanje
    SUBB    A,R1            ; Oduzmi niže bajtove
    MOV    R1,A            ;
    MOV    A,B            ;
    SUBB    A,R2            ; Oduzmi više bajtove i C
    JNC    KRODU        ; Ako nije C (- rezultat) idi na KRODU
    MOV    R2,A
    MOV    A,R1            ;
    CLR    C
    CPL    A            ; Inače nađi drugi komplement nižeg
    ADD    A,#01h        ;
    MOV    R1,A            ;
    MOV    A,R2            ;
    CPL    A            ;
    ADDC    A,#01h        ; i drugi kompl. Višeg bajta
    SETB    C            ; Postavi C  –  rezultat je negativan
    MOV    B,A
    MOV    A,R1            ; Postavi izlaz i vrati se
    RET

KRODU:    MOV    B,A
    MOV    A,R1
    CLR    C            ; Postavi izlaz, C=0 (rez. je +) i vrati se   
    RET   

;Sledi potprogram za 2B sabiranje sa predznakom
;operand1 : B:A viši i niži bajt i ZNAK1 = 1 ako je negativan
;operand2 : R2:R1 viši i niži bajt i ZNAK2 = 1 ako je negativan
;rezultat   : B:A viši i niži bajt i ZNAKR = 1 ako je negativan

SABIRAJ:    JB    ZNAK1,PG1        ; operand1 <0
    JB    ZNAK2,PG2        ; operand2 <0
    CLR    ZNAKR            ; op1>0 i op2>0 onda je rez.>0
    CALL    2BSAB            ; saberi i vrati se
    RET

PG2:    CALL    2BODU        ; op1>0 i op2<0 zato zovi oduzimanje
    JC    PG3            ; ako je rez<0 skoči na PG3
    CLR    ZNAKR            ; inače je rez >0 , znakr = 0 , vrati se
    RET
PG3:        SETB    ZNAKR            ; rez<0 , znakr = 1 , vrati se   
    RET
PG1:        JNB    ZNAK2,PG4        ; op1<0 ako je op2>0 skoči na PG4
    SETB    ZNAKR            ; op1<0 i op2<0 pa je rez<0 , znakr=1
    CALL    2BSAB   
    RET
PG4:    MOV    R3,A            ; Zameni mesta oper1 i oper2 i
    MOV    R4,B            ; skoči na PG2
    MOV    A,R1
    MOV    B,R2
    MOV    R1,R3
    MOV    R2,R4
    SJMP    PG2

;Sledi potprogram za računanje upravljačke promenljive OUT0

RACUN:    CLR    T2CON.7        ; Interapt flag TF2 moramo obrisati
CLR    P1.5            ; Startuj signal za konverziju B&C =0
    MOV    A,P2            ; U A se nalazi REF ali u obliku BCD cifri
    MOV    R1,A
    ANL    A,#0Fh        ; Odseci donji nibl (4 bita) – cifra desetica
    MOV    B,#0Ah        ; U B stavi 10   
    MUL    AB           
    MOV    R2,A
    MOV    A,R1
    SWAP    A            ; Zameni niblove u A
    ANL    A,#0Fh        ; Odseci donji nibl – cifra jedinica
    CLR    C
    ADD    A,R2            ; U A se nalazi REFerentna  vrednost
ADC:    JB    TCON.3,LOADADC    ; Čekaj da se obavi konverzija
    SJMP    ADC
LOADADC:    MOV    B,P0            ; U B se nalazi reč iz AD konvertora
    SETB    P1.5
    CLR    C
    SUBB    A,B            ; U A se nalazi signal greške = REF – AD
    CLR    EROR0ZN        ; EROR0 >0
    JNC    NASTAVI        ; ako nije C NASTAVI
    CPL    A            ; inače je EROR0<0 , nađi drugi komplem.
    ADD    A,#01h
    SETB    EROR0ZN        ; EROR0 je negativno
NASTAVI:    MOV    EROR0,A
    MOV    B,K1            ;
    MUL    AB            ; B:A = K1*EROR0
    MOV    R1,A            ; R2:R1 = K1*EROR0
    MOV    R2,B
    MOV    A,EROR2
    MOV    B,K3
    MUL    AB            ; B:A = K3*EROR2
    MOV    ZNAK2,EROR0ZN
    MOV    ZNAK1,EROR2ZN
    CALL    SABIRAJ        ; B:A = K3*EROR2+K1*EROR0
    MOV    R1,A            ; R2:R1 = ——
    MOV    R2,B
    MOV    ZNAK2,ZNAKR
    MOV    A,EROR1        ;
MOV    B,K2
MUL    AB            ; B:A = K2*EROR1
MOV    ZNAK1,EROR1ZN
CPL    ZNAK1            ; promeni znak pošto se oduzima
CALL    SABIRAJ        ; U B:A = ER2*K3+ER0*K1-ER1*K2

;Sada ovu sumu treba podeliti sa 32 što je isto kao i pomeranje u desno 5 mesta
; a to je isto što i pomeranje u levo 3 mesta

        RLC    A
        RLC    A            ; rotiraj 3 puta u  levo = deli sa 32
        RLC    A
        ANL    A,#07h        ; odseci niža 3 bita (00000xxx)
        MOV    R7,A
        MOV    A,B            ; u A stavi viši bajt
        RLC    A
        RLC    A
        RLC    A            ; i podeli ga sa 32
        MOV    R6,A
        MOV    B,07h            ; u B stavi masku 00000111
        ANL    B,A            ; i odseci niža 3 bita (00000xxx) višeg B.
        MOV    A,#F8h        ; u A stavi masku (11111000)
        ANL    A,R6            ; i odseci viših 5 bita (xxxxx000) višeg B.
        ORL    A,R7            ; zalepi xxxxx000 OR 00000xxx
        MOV    R1,OUT1        ; u R1 stavi OUT1
        MOV    R2,#00h        ; u R2 stavi 00h
        CLR    ZNAK2            ; ZNAK2 je +
        MOV    ZNAK1,ZNAKR    ; ZNAK1 = ZNAKR
        CALL    SABIRAJ        ; B:A = OUT0 = OUT1 + SUMA/32
    JNB    ZNAKR,LAB1        ; ako je >0 skoči na LAB1
    MOV    OUT0,#00h        ; inače OUT0 = 00h (MIN)
    JMP    KRAJ            ; idi na kraj
LAB1:    MOV    R1,A
    MOV    A,B            ; stavi viši bajt u A
    JZ    LAB2            ; ako je 0 skoči na LAB2
LAB3:    MOV    OUT0,#32h        ; inače OUT0 = (MAX) = 50
    JMP    KRAJ            ; idi na kraj
LAB2:    MOV    A,#32h
    CLR    C
    SUBB    A,R1            ; A = 50 – OUT0
    JC    LAB3            ; ako je OUT0 >50 skoči na LAB3   
    MOV    OUT0,R1        ; inače je OUT0<50 i nastavi do kraja
KRAJ:    MOV    OUT1,OUT0
    MOV    EROR2,EROR1
    MOV    EROR1,EOR0
    MOV    EROR2ZN,EROR1ZN
    MOV    EROR1ZN,EROR0ZN   
    RETI                ;Kraj rutine RACUN

; Kraj programa

    END

FTN Novi Sad, Katedra za elektroniku

POSTAVI ODGOVOR

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.