serijska komunikacija omenjen mikrokrmilniski sistem rt smo uporabili za komuniciranje z osebnim racunalnikom prehod podatkov med sprejemnim podatkovnim registrom rdr in oddajnim podatkovnim registrom tdr ter medpomnilnikoma dolocenima s kazalcema recb rece in trab trae je realiziran preko gonilnika sci ki je oblikovan kot opravilo za pravilno delovanje ga je potrebno se uvrstiti v urnik opravil vloga gonilnika sci pri serijski komunikaciji s terminalom osnovni princip delovanja gonilnik sci pregleda zastavico tdre registra trcsr ki pove ali je bil pravilno oddan znak iz tdr ce oddajni register ni prazen se naslednji znak prenese iz lokacije medpomnilnika trab trae v oddajni register v isti casovni rezini je poskrbljeno tudi za nasprotno pot torej za sprejemni register prav tako je potrebno preveriti ali je postavljena zastavica rdrf v registru trcsr le ta oznacuje prispeli nov znak z zastavico orfe preverimo pravilen prenos brez napak pri sprejemu nato se prenese znak iz registra rdr v medpomnilnik na prosto lokacijo recb rece v primeru da je medpomnilnik poln se sprejeti znak ne vpise komunikacijski parametri gonilnika sci podprogram s komentarjem je naveden spodaj serial communication task ~ this is a real time serial communication driver sci should be placed into the task schedule in each cycle sci checks the serial communication hardware to see if a new byte has been received if so the byte is transferred into the receiveing buffer recb rece the transmission register is also checked if it is empty and the transmission buffer trab trae is not empty then the first byte from the fifo buffer is transferred to the transmission hardware sci sprejemanje ldaa trcsr nalozi nadzorni spr odd in status register aku a anda in maskira in bit odstrani asla pogleda vpis novega znaka bitm m v prenos ca rry bcc scierr ce vpisa ni skoci na scierr sicer asla pogleda veljavnost znaka bitm m iz prenosa c arry bcs scierr ce ni veljaven skoci na scierr sicer ldaa rdr nalozi znak skozi spr podatk register v aku a ldx rece nalozi konec sprejemnega medpomnilnika staa x ga shrani v aku a inx poveca kazalec in cpx rece primerja log konec in fiz konec medpomnilnika bne scire ce sta enaka skoci na scire sicer ldx recb nalozi fizicni zacetek medpomnilnika scire cpx recb primerja log konec z log zacetkom medpomnilni ka in beq scirevn ce je poln skoci na konec sicer stx rece shrani nov konec in bra scirevn skoci na konec scierr ldaa rdr ob napaki nalozi sprejemni podatkovni register oddajanje ldaa trcsr nalozi nadzorni spr odd in status register aku a anda zamaskira in pogleda ce je oddajni buffer pr azen beq scitrvn ce ni skoci na konec ldx trab nalozi zacetek oddajnega medpomnilnika v x cpx trae ga primerja s koncem in bne scitra ce sta razlicna neenaka skoci na scitr s icer bra scitrvn skoci na konec scitra ldaa x nalozi znak iz medpomnilnika v aku a staa tdr in spravi na oddajni podatkovni register inx poveca kazalec in stx trab shrani nov zacetek cpx trae ga primerja s koncem beq scitra in ce sta enaka skoci na scitr sicer bra scitrvn skoci na konec scitra ldx trab preskoci na nov fizicni zacetek in stx trab ga shrani scitrvn rts return recb rece scirevn rts return trab trae nazaj