fakulteta za elektrotehniko univerza v ljubljani mikroprocesorji v elektroniki by robert bezjak robert kern jernej andreja semaforizirano kriiče v okviru seminarske naloge je bilo potrebno načrtovati reitev za upravljanje semaforiziranega kriiča kriiče samo je simulirano z modelom ki ga preko paralelnega vmesnika krmili mikroprocesor motorola poleg led diodic ki simulirajo semaforje model vsebuje tudi piezo piskač s katerimi lahko simuliramo zvočne signale za slepe kriiče deluje avtomatsko za kar skrbi program v mikroprocesorju zagon in spremembo reima delovanja utripajoče rumene luči upravljamo z računalnike tipkovnice preko serijskega vmesnika model semaforiziranega kriiča mikroprocesorski sistem s procesorjem in vse povezave so e na voljo zato je potrebno napisati le e ustrezen program ki bo vse to krmilil program sestoji iz treh delov kateri vsak deluje kot posebna rutina znotraj mini operacijskega sistema ki skrbi za delovanje celotnega mikroprocesorskega sistema le ti deli oz rutine so krmiljenje luči semaforjev led diodic jernej andreja krmiljenje zvočnih signalov piezo piskača robert kern upravljanje kriiča z računalnike tipkovnice sci vmesnik robert bezjak upravljanje semaforiziranega kriiča z računalnike tipkovnice kriiče običajno deluje avtomatsko preko računalnike tipkovnice lahko kriiče zgolj vkljapljamo in mu spreminjamo reim delovanja zato so na tipkovnici uporabljene le tri tipke s z in k kriiče tudi ne krmilimo neposredno s tipkovnice saj bi na ta način lahko prilo do napak v delovanju programa ki skrbi za avtomatično delovanje kriiča z ukazi ki jih poljemo s tipkovnice krmilimo posebno spremenljivko ki jo uporabljata drugi dve rutini ki skrbita za samo delovanje kriiča sama komunikacija med računalnikom in mikroprocesorskim sistemom poteka preko serijskega komunikacijskega vmesnika sci serijski komunikacijski vmesnik sci mikroprocesorski sistem rt ki ga uporabljamo za krmiljenje kriiča e vsebuje asinhroni serijski komunikacijski vmesnik ki je pravzaprav e del mikrokrmilnika za komunikacijo se uporablja kom standard rs računalnik je z mikroprocesorskim sistemom povezan preko serijskih vrat da bi povezava delovala je bistveno da obe strani uporabljata isti način in hitrost delovanja frekvenca pariteta t bitov stop bit na sistemu so te vrednosti e nastavljene iste vrednosti moramo nastaviti e na računalniku kar lahko vpiemo kar v autoexec bat ko zatem zaenemo terminalski program kermit se bodo vrednosti ki jih vtipkamo na rač tipkovnici avtomatično prenesle tudi v mikroprocesorski sistem povezava deluje tudi v drugi smeri vendar je mi ne potrebujemo vrednosti ki pridejo z računalnike strani se shranijo v sprejemni register rdr od koder jih moramo redno brati dokler je v registru neprebrana vrednost se nove vrednosti ki prihajajo z računalnika ne shranjujejo kar pomeni da če ne elimo da bi kaken ukaz izpustili moramo brati iz registra dovolj pogosto da bi shranili vse vrednosti uporabimo e vmesni medpomnilnik recb rece kamor jih shranjujemo glede na to da beremo s tipkovnice ki je relativno počasna je medpomnilnik za osem vrednost več kot dovolj krmilni register preko katerega ugotavljamo ali je e priel nov podatek in ali je pravilen se imenuje trcsr ta je osembitni pri čemer spodnjih pet bitov krmili prekinitve in delovanje ser komunikacije zgornji trije pa podajajo informacijo o podatku bit z najvijo prioriteto rdrf pove ali je sprejemni register poln resetira se z branjem vrednosti v sprejemnem registru naslednji bit orfe pove ali je prilo do napake in podatek ni pravilen prav tako ga resetiramo z branjem podatka ne glede na to ali je podatek pravilen ali ne tretji bit pove ali je oddajni register prazen vendar ga mi za nao nalogo ne potrebujemo program rutina ki skrbi za serijsko komunikacijo je uvrčena kot eno opravilo v urnik in se na ta način izvede krat v sekundi kar je dovolj da prestree vse podatke s tipkovnice rutina najprej preveri ali je priel nov podatek in ga prebere nato preveri ali podatek pravilen Če podatka ni ali ni pravilen naslednje vrstice preskoči sicer nadaljuje z vpisom predhodno se podatki e filtrirajo tako da se v medpomnilnik zapiejo le regularni znaki prvi del komunicira s sci preko trcsr in rdr registoma in izloči nedovoljene z nake ldaa trcsr nalozi sci kontrolni register bpl beri preveri ali je prisel svez podatek ce ga ni konca ldab rdr sicer naloi podatek iz sprejemnega podatkovnega registra rola bmi beri preveri ali je podatek pravilen sicer konca cmpb b ali je znak k ascii beq vpis cmpb ali je podatek s ascii beq vpis cmpb a ali je podatek z ascii beq vpis jmp beri podatek se zatem zapie v medpomnilnik hkrati je potrebno preveriti ali je medpomnilnik poln ter pravilno nastaviti kazalce kazalec rece kae na začetek praznega dela medpomnilnika recb pa na začetek polnega dela rutina vpis vpisuje v medpomnilnik znakov vpis ldx rece naloi kazalec na začetek praznega dela medpomnilnika stab x shrani v akumulator b inx cpx rece primerja s fizičnim koncem medpomnilnika bne rec če nista enaka preskoči vrstico ldx recb sicer začne zopet na fizičnem začetku medpomnilnika rec cpx recb primerja oba kazalca beq beri ce sta enaka je medpomnilnik poln in konca stx rece sicer shrani novo vrednost kazalca vsakič ne glede na to ali je priel nov podatek ali ne se preveri ali je v medpomnilniku e kaken podatek glede na podatek se nastavi spremenljivka kriz ki krmili kriziče beri ldx recb nalozi kazalec na zacetek polnega dela medpomnilnika cpx rece primerja s kazalcem na zacetek praznega dela medpomn beq konc ce sta enaka je medpomnilnik poln in konca ldaa x sicer nalozi podatek inx poveca vrednost kazalca cpx rece primerja s fizicnim koncem medpomnilnika bne nast če nista enaka preskoci vrstico ldx recb sicer začne zopet na fizičnem začetku medpmnilnika nast stx recb shrani novo vrednost kazalca cmpa ali je podatek s ascii beq start cmpa a ali je podatek z ascii beq yel cmpa b ali je znak k ascii beq endyel znak s pomeni začetek delovanja kriiča bit z najnijo prioriteto določa ali kriiče deluje ali ne start ldaa v spremenljivko kriz shrani vrednost staa kriz jmp konc znak z pomeni začetek reima utripajočih rumenih luči reim določa drugi bit z najnijo prioriteto znak k pomeni konec reima utripajočih rumenih luči yel ldaa kriz drugi bit v spremenljivki kriz setira oraa staa kriz jmp konc endyel ldaa kriz drugi bit v spremenljivki kriz resetira anda staa kriz konc rts nazaj robert bezjak robert bezjak kiss uni lj si