Interfejs
Transcript of Interfejs
![Page 1: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/1.jpg)
Regionalni centar za talente Beograd II, Karađorđeva 48
Тema istraživačkog rada :
SIMULACIJA RADA ARITMETIČKO LOGIČKE JEDINICE
SIMULATION OF AN ARITHMETIC LOGIC UNIT
Autor:
FILIPOVIĆ IVAN, učenik IV razreda Srednje tehničke škole "17. septembar", smer elektrotehničar računara, Lajkovac
Regionalni centar za talente Beograd II, Karađorđeva 48
Mentor:
MILANOVIĆ VOJO, profesor programiranja u Srednjoj tehničkoj školi "17. septembar", Vuka Karadžića 19, Lajkovac
Lajkovac 2006.
![Page 2: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/2.jpg)
- 2 -
SIMULACIJA RADA ARITMETIČKO LOGIČKE JEDINICE
SIMULATION OF AN ARITHMETIC LOGIC UNIT
Autor:
FILIPOVIĆ IVAN, učenik IV razreda Srednje tehničke škole "17. septembar", smer elektrotehničar računara, Lajkovac
Regionalni centar za talente Beograd II, Karađorđeva 48
Mentor:
MILANOVIĆ VOJO, profesor programiranja u Srednjoj tehničkoj školi "17. septembar", Vuka Karadžića 19, Lajkovac
REZIME
Cilj rada je da se simulira rad aritmetičko-logičke jedinice, tj. integrisanog kola 74LS181.
Simulacija rada kola programski je urađena u Delphi okruženju. Osim programske simulacije,
urađeno je i odgovarajuće interfejs kolo na koje program šalje potrebne podatke za njen ispravan
rad, tako da rezultati programske simulacije na ekranu budu isti i na interfejs kolu. Podaci se na
interfejs kolo šalju preko paralelnog porta PC računara. U izradi simulacije upotrebljena je
specifikacija kola 74LS181 proizvođača kompanije Texas Instruments kao i knjiga PC Interfejsi
autora Milanović Voje dipl.el.inž, 2004. godine.
![Page 3: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/3.jpg)
- 3 -
ABSTRACT
Purpose of this work is simulation of an Arithmetic Logic Unit, apropos 74LS181 chip.
Simulation of this chip is programatically created in Delphi environment. Besides this program
simulation adequate interface chip is made on which program sends necessery data for his
accurate work, apropos thus to results of progam simulation demonstrate be the same as on
interface chip. Data are sent to interface through paraller port of PC computer. In production of
this simulation manufacturer specification of chip 74LS181 is used, which manufacturer is
comapny Texas Instruments and also book "PC Interfaces" is used which of author Vojo
Milanovic B.Sc.EE, published 2004.
UVOD
PC računari nalaze primenu u svim oblastima ljudskog delovanja. U ovom radu data je
njihova primena za simulaciju rada elektronskih kola. Kao kolo odabrana je aritmetičko-logička
jedinica, odnosno integrisano kolo 74LS181 koje izvršava osnovne, kako logičke, tako i
aritmetičke operacije, što je dobro poznato u digitalnoj elektronici. Budući da aritmetičko-logička
jedinica izvršava najosnovnije logičke i aritmetičke operacije, ovaj interfejs omogućuje da se na
jednostavan način nauče te operacije, pa urađeni interfejs ima, pre svega, edukativnu primenu.
Osnovne logičke i aritmetičke operacije predstavljaju osnove PC računara, zbog čega je njihovo
poznavanje svakako važno za razumevanje osnovnih principa rada njihovog hardverskog dela.
OPIS ARITMETIČKO-LOGIČKE JEDINICE
Aritmetičko-logičke jedinice ili skraćeno ALU (eng. Aritmetic Logic Units) jesu složena
kola, koja mogu da obavljaju više aritmetičkih i logičkih operacija sa dva četvorobitna podatka.
Proizvode se u različitim tehnlogijama, kako TTL i CMOS (74181, 74S181, 74LS181, 74AC181
i 74ACT181). Iste osobine i raspored pinova ima i CMOS kolo 4581. Vezivanjem u niz ovih
kola mogu se dobiti kola koja obrađuju i višebitne podatke. Tako bi sa dva kola mogli obrađivati
8-bitne podatke, a sa četiri 16-bitne, tj. podatke dužine jedne reči.
Raspored pinova ovog kola dat je na slici 1.
![Page 4: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/4.jpg)
- 4 -
Slika 1: Raspored pinova kola 74LS181 Podaci se na ovo kolo dovode na ulaze A i B. Rezultat su četvorobitni podaci koji se
dobijaju na F izlazima. Vrstu operacije koju će izvršiti kolo definiše pet upravljačkih signala.
Kada je ulaz M na visokom nivou kolo obavlja logičke operacije sa svakim parom ulaznih bitova
brojeva A i B. Kada je stanje M na niskom nivou kolo obavlja aritmetičke operacije. Koja vrsta
logičke ili aritmitičke operacije će biti izvedena određuju njegovi upravljački ulazni signali S0,
S1, S2 i S3. Kako je ovih signala 4, to je maksimalan broj operacija (logičkih ili aritmetičkih)
jednak 16. Ova kola je moguće povezati serijski u slučajevima kada treba da se operiše sa
brojevima većim od četiri bita. Tada se izlaz Cn+4 prethodnog kola spaja sa ulazom Cn sledećeg
kola. Izlazi G i P koriste se za brže određivanje konačnog prenosa kada se upotrebljavaju
posebna kola (74182) na koja se mogu spojiti do četiri 74181 kola.
Ulazni podaci mogu biti aktivni na niskom ili visokom nivou. U tabeli 1 prikazane su
logičke i aritmetičke operacije sa aktivnim ulazima na visokom nivou. Aritmetičke operacije
zavisne su i od stanja Cn ulaza, tj. bita prenosa, pa su u tabeli date funkcije i za visoko i za nisko
stanje ovog ulaza.
![Page 5: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/5.jpg)
- 5 -
Tabela 1: Aritmetičke i logičke operacije kola 74181
Kolo može da obavlja i komparatorske funkcije, tj. da poredi dva ulazna četvorobitna
broja A i B. Izlaz A=B biće na logičkoj jedinici u slučaju ako su brojevi jednaki, inače odnos
brojeva definišu stanja ulaza Cn i izlaza Cn+4 što je prikazano u tabeli 2.
Tabela 2: Stanja bita Cn i Cn+4 pri komparaciji dva broja
Ovo kolo može da se upotrebi i kao konvertor binarnog broja u BCD broj u određenoj
konfiguraciji.
Ulaz Cn Izlaz Cn+4 Aktivan–nizak nivo Aktivan visoki - nivo 1 1 A > B A < B 1 0 A < B A > B 0 1 A > B A < B 0 0 A < B A > B
![Page 6: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/6.jpg)
- 6 -
INTERFEJS KOLO ZA PODRŠKU SIMULACIJE RADA ARITMETIČKO-LOGIČKE JEDINICE
Na slici 2 prikazana je šema kola za podršku simulacije rada aritmetičko-logičke jedinice
74181 od strane PC računara.
Slika 2: Šema interfejs kola za podršku simulacije rada aritmetičko-logičke jedinice Sa Data porta PC računara na ulaze A i B dovode se odgovarajući binarni brojevi. Prva četiri bita Data porta predstavljaju broj A, dok zadnja četiri bita predstavljaju broj B. Za izbor funkcije kola, tj. kontrolne ulaze S0, S1, S2 i S3 koristimo prva četiri bita Control porta. Budući da su bitovi na pozicijama 0,1 i 3 invertovani, koristili smo invertore na ovim bitovima kako bi se pojednostavio program koji upravlja ovim kolom. Na bitove Data porta 0 – 3 postavljene su četiri led diode koje predstavljaju stanja bita broja A, kao i na bitove 4 – 7 koje predstavljaju bitove broja B. Ove led diode su crvene boje. Takođe, na sva četiri bita Control porta priključene su led diode žute boje koje predstavljaju pojedinačna stanja kontrolnih ulaza S0 – S3. Za izlazne rezultate aritmetičko-logičke jedinice, tj. za F izlaze kola preko tranzistora T1 – T4, postavljene su takođe četiri led diode zelene boje. Pomoću JP2 prekidača biramo stanje ulaza M, odnosno način rada kola, odnosno da li kolo radi logičke ili aritmetičke operacije. Kada je ovaj ulaz na niskom nivou izvršavaju se aritmetičke operacije, a ako je otvoren, ulaz je na visokom nivou i kolo izvršava logičke operacije. Pomoću prekidača JP1 moguće je promeniti stanje Cn ulaza, a podrazumevano stanje je da je on isključen, tj. da se nalazi na logičkoj jedinici, odnosno da nema prenosa – što je bitno za aritmetičke operacije.
Paralelni port PC računara se kontroliše preko tri porta (8-bitna memorijska registra) sa sledećim nazivima:
![Page 7: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/7.jpg)
- 7 -
1. Data port 2. Control port 3. Status port
Data port sadrži jedan bajt podataka koji će biti odštampani na štampaču, pod uslovom da su zadovoljeni određeni uslovi. Control port kontroliše operacije slanja podataka na štampač, dok Status port ukazuje na status uređaja. U odnosu na adresu Data porta, adrese ovih portova su pomerane za po jedan, što znači da se one nalaze na tri uzastopne memorijske lokacije. Standardno, adrese ovih portova su date u Tabeli 3.
Printer Data port Status port Control port LPT1 378h 379h 37Ah LPT2 278h 279h 27Ah LPT3 3BCh 3BDh 3BEh
Tabela 3: Standardne adrese LPT portova Oznaka h uz adresu, označava da je adresa porta data u heksadecimalnom kodu.
Paralelni port PC računara ima izlaz preko DB-25 ženskog konektora, a signali na pojedinim
pinovima ovog konektora prikazani su na slici 3.
Slika 3: Pregled signala SPP načina rada paralenog porta
![Page 8: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/8.jpg)
- 8 -
Izgled gotovog interfejs kola prikazan je na slici 4.
Slika 4: Izgled interfejs kola za simulaciju rada aritmetičko-logičke jedinice Napajanje interfejs kola je 5 Volti, dok se njegovo povezivanje sa PC računarom vrši standardnim DB-25 kablom na paralelni port PC računara sa muško – ženskim konektorima rasporeda 1:1.
PROGRAMSKA PODRŠKA SIMULACIJE RADA ARITMETIČKO-LOGIČKE JEDINICE
Za simulaciju rada kola i kontrolisanje interfejsa napisan je program u Delphi-u čijim se
pozivom dobija ekran prikazan na slici 5.
Slika 5: Izgled ekrana programa za simulaciju rada aritmetičko-logičke jedinice
![Page 9: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/9.jpg)
- 9 -
Promena stanja bita broja A i broja B vrši se klikom mišem na pojedine njihove bitove,
kada se menja boja bita, tj. ako je bila bela biće postavljena crvena i obratno. Crvena boja
predstavlja logičku jedinicu, dok bela predstavlja logičku nulu. Takođe, mišem se vrši izbor
načina rada kola: Aritmeticka ili Logicka. Funkcija koju kolo treba da odradi bira se klikom na
strelicu dole, gde su date sve funkcije. Odabrani kod funkcije biće prikazan u poljima za funkciju.
Klikom na taster Izracunaj biće izvršeno izračunavanje i dobijeni rezultat će biti prikazan u
poljima rezultata. Takođe, tada se prosleđuju brojevi A i B, kao i odabrani kod funkcije na naše
interfejs kolo. Stanja ekrana i interfejs pločice treba da se podudaraju za sve odabrane funkcije i
oba načina rada, što je potvrda ispravnosti programa i interfejs kola .
Objasnićemo glavni deo koda programa za podršku simulacije rada aritmetičko-logičke
jedinice: Unit Prog1; . . var Form1: TForm1; A, B, F, Funk : byte; Broj, Broj0, Broj1, Broj2, Broj3 : byte; Broj4, Broj5, Broj6, Broj7, Brojh : byte; LPTAdresa, KONAdresa : Integer; implementation procedure PortOut(Port: Word; Data: Byte); stdcall; external 'io.dll'; function PortIn(Port: Word): Byte; stdcall; external 'io.dll'; {$R *.dfm} //----------Procedura ucitavanja forme--------------- procedure TForm1.Ucitaj(Sender: TObject); begin LPTAdresa :=$378; KONAdresa:=LPTAdresa + 2; Broj := 0; Broj0 := 0; Broj1 := 0; Broj2 := 0; Broj3 := 0; Broj4 := 0; Broj5 := 0; Broj6 := 0; Broj7 := 0; PortOut(LPTAdresa, 0); PortOut(KONAdresa, 0); ComboBox1.Font.Color:=clRed; ComboBox1.Items.Add('F=A'); ComboBox1.Items.Add('F=A+B'); . . end; //-----Procedura ucitavanja funkcija kola i ComboBox------- procedure TForm1.Ubaci_funkcije(Sender: TObject); begin ComboBox1.Clear; If Nacin_rada.ItemIndex = 0 Then Begin
![Page 10: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/10.jpg)
- 10 -
ComboBox1.Font.Color:=clRed; ComboBox1.Items.Add('F=A'); ComboBox1.Items.Add('F=A+B'); . . End Else Begin ComboBox1.Font.Color:=clGreen; ComboBox1.Items.Add('F=notA'); ComboBox1.Items.Add('F=not(A+B)'); . . End; end; //-----Procedura postavljanja bita A0------------------------- procedure TForm1.DiodaA0(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If A0.Brush.Color = clWhite Then Begin A0.Brush.Color := clRed; Broj0 := 1 End Else Begin A0.Brush.Color := clWhite; Broj0 := 0 End; Izracunaj1; end; . end; //-----Procedura izracunavanja broja za slanje na interfejs--- Procedure TForm1.Izracunaj1; begin Broj:=0; Broj:= 8 * Broj3 + 4 * Broj2 + 2 * Broj1 + 1 * Broj0; Broj:=Broj + 128 * Broj7 + 64 * Broj6 + 32 * Broj5 + 16 * Broj4; B := 8 * Broj7 + 4 * Broj6 + 2 * Broj5 + 1 * Broj4; A := 8 * Broj3 + 4 * Broj2 + 2 * Broj1 + 1 * Broj0; end; //---Procedura sracunavanje vrednosti odabrane funkcije kola---- procedure TForm1.Izracunaj(Sender: TObject); Var pl : boolean; begin If Nacin_rada.ItemIndex=0 Then Begin Case ComboBox1.ItemIndex of 0: Begin F:=A; Funk:=0 End; 1: Begin F:=A Or B; Funk:=1 End; 2: Begin F:=A Or (not B); Funk:=2 End; . . End End Else Begin Case ComboBox1.ItemIndex of 0: Begin F:=not A; Funk:=0 End; 1: Begin F:=not(A Or B); Funk:=1 End; . . End; PortOut(LPTAdresa, Broj); PortOut(KONAdresa, Funk); end; //---------Procedura zavrsetka programa-------------- procedure TForm1.Iskljuci(Sender: TObject);
![Page 11: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/11.jpg)
- 11 -
begin PortOut(LPTAdresa, 0); PortOut(KONAdresa, 0); end; end.
Pozivom programa aktivira se procedura Ucitaj u kojoj se bitovi dva četvorobitna broja
postavljaju na 0. Za adresu Data porta, LPTAdresa postavljena je na podrazumevanu adresu
378h, dok je adresa Control porta KONAdresa za dva veća od adrese Data porta. Takođe,
PortOut - u se instrukcijom na Data port pošalje vrednost nula, kako bi diode na interfejs pločici
bile ugašene. Budući da je podrazumevani način rada kola aritmetički, u ComboBox učitaju se
sve aritmetičke funkcije iz tabele rada kola .
U procedurama DiodaAx ili DiodaBx menjamo stanje odgovarajućeg bita broja A ili B.
Svaki pojedinačni bit ima pridružen odgovarajući broj.
U proceduri Izracunaj1 izračunavamo vrednost brojeva A i B na osnovu stanja njihovih
pojedinačnih bitova.
Klikom na taster Izracunaj biće pozvana procedura Izracunaj. Unutar ove procedure
izračunavamo vrednost odabrane funkcije kola i prikazujemo rezultat na ekranu. Takođe, preko
instrukcije PortOut prosledimo broj A i broj B kao ulazne signale funkcije S0 – S3 na naše
interfejs kolo.
Zavšetkom programa poziva se procedura Iskljuci koja na Data port i Control port šalje
logičke nule, kako led diode ne bi svetlele na interfejs kolu.
ZAKLJUČAK
Primenjeni metod u ovom radu moguće je upotrebiti i za druge vrste digitalnih kola. Ne
samo da je moguće uraditi programske simulacije kola, nego i elektronske uređaje koji se
kontrolišu od strane PC računara, a priključuju se na neki od njegovih portova. Najčeće se koristi
paralelni port jer ima dovoljan broj ulaznih i izlaznih signala, a i način programiranja je na njemu
dosta jednostavan. U radu je upotrebljena biblioteka io.dll budući da Delphi-u u Windows XP
okruženju nije dozvoljen direktan pristup portovima. Samo PortOut procedura ove biblioteke je
upotrebljena, tj. procedura koja šalje dati podatak na odgovarajuću adresu, iako ona raspolaže sa
većim brojem funkcija, koje su vrlo korisne za programiranje portova.
![Page 12: Interfejs](https://reader031.fdocument.pub/reader031/viewer/2022013118/5571f9d84979599169909216/html5/thumbnails/12.jpg)
- 12 -
LITERATURA
1. Milanović Vojo, PC Interfejsi, samostalno izdanje, Lajkovac, 2004.
2. Čabarkapa Milan, Osnovi programiranja u Pascal-u i Delphi-u, Krug, Beograd, 2001.
3. Proizvođačka specifikacija kola 74LS181, Texas Instruments
4. Više sajtova na Internetu