VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580...

28
VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

Transcript of VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580...

Page 1: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

VRIJ TECHNISCH INSTITUUTBurg.Geyskensstraat 113580 BERINGEN

De PLC geïntegreerd in de PC.

Vak: Toegepaste informaticaAuteur: Ludwig Theunis

Page 2: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

2 Toegepaste informatica

Versie: vrijdag 2 november 2007

VRIJ TECHNISCH INSTITUUT

Page 3: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1 De MicroprocessorZowel PLC’s, PC en NC’s hebben een microprocessor. Dit is het hart van deze systemen. De meeste elektronisch toestellen zijn tegenwoordig uitgerust met een microprocessor, denk maar aan je GSM, MP3-speler, I-pod etc.

Elk microprocessor-systeem werkt volgens dezelfde principes. De actuele processoren verwerken nog steeds digitale gegevens. Al de gegevens die een microprocessor verwerkt zijn dus digitaal, ook geluid, beeld etc. Digitaal komt van het Latijns woord digitus, dat vinger betekende, en omdat men vroeger met de vingers rekende.

Een computer/microprocessor verwerkt dus digitale informatie, hij rekent natuurlijk niet met vingers maar met transistoren. Deze transistoren kan je vergelijken met schakelaars, een schakelaar is open - vinger verborgen - of een schakelaar is gesloten - vinger zichtbaar.

Met vijf vingers tel je maar tot vijf. Door gebruik te maken van alle combinaties kan je met vijf vingers van 0 tot 31 tellen, is 32 mogelijkheden.

Een processor in zijn behuizing.

De huidige processoren bevatten meer dan één miljard transistoren.

Om de werking van processoren te kunnen begrijpen moeten we weten hoe processoren rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel. In het volgende deel zal het binaire talstelsel verklaard worden.

Toegepaste informatica 3

VRIJ TECHNISCH INSTITUUT

Page 4: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1 Talstelsels, beginselen.

Omdat in dit deel verschillende talstelsels gebruikt worden schrijven we de index van het talstelsel bij het getal.

1102, een getal in het binaire talstelsel, is 610 in het decimale talstelsel.11010, een getal in het decimale talstelsel, is 11010 in het decimale talstelsel.1108, een getal in het octale talstelsel, is 7210 in het decimale talstelsel.11016, een getal in het hexadecimale talstelsel, is 27210 in het decimale talstelsel.

Afhankelijk van het talstelsel heeft een getal dus een heel verschillend gewicht.

1.1.1 Het binaire talstelsel.

Het decimale talstelsel is een tientallig talstelsel. We gebruiken dit dagelijkse.Een decimaal getal bestaat uit eenheden, tientallen, honderdtallen enz. Elk van deze digits kan 10 waardes aannemen: namelijk van 0-9.

Het binaire talstelsel is een tweetallig talstelsel. Één digit kan slechts 2 mogelijke waardes aannemen; 0 of 1. Een digit in het binaire talstelsel wordt kortweg bit genoemd.Willen we de waarde 2, binair voorstellen dan kunnen we dit niet met één bit voorstellen.Met één bit kunnen we maximaal 1 voorstellen. Tel je er één bij op dan gaan we naar de volgende bit. Net zoals we naar de volgende digit gaan als we in het decimale talstelsel van 9 naar 10 gaan. Het decimale getal 2, stellen we in het binaire talstelsel dus voor als 10. Drie wordt dan 11, vier is 100 en zo verder.

Elke bit in een binair getal heeft net zoals een digit van een decimaal getal een gewicht. De eerste digit van een decimaal getal zijn de eenheden, dan de 10tallen, de 100tallen, de 1000tallen etc…Het gewicht van de digit kan je bepalen met zijn positie te beginnen van rechts met positie 1. Het gewicht van een digit wordt dan 10(n-1), waarbij n staat voor de positie van de digit.

Passen we hetzelfde toe op het binaire talstelsel dan wordt het gewicht van een bit gelijk aan 2(n-1), waarbij n staat voor de positie van de bit.De eerste, meest rechtse bit, (n=1) van een binair getal heeft als gewicht: 2(1-1)=20=1, deze bit is de minst beduidende bit of bit 0De tweede bit, (n=2) is 2(2-1)=21=2 is bit 1. De derde bit (bit 2), (n=3) wordt 2(3-1)=22=4. De vierde bit (bit 3), (n=4) wordt dan 2(4-1)=23=8, enz.

Achtereenvolgens krijgen we voor de eerste 16 bits volgende gewichten. 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 en 32768. Het binaire getal 1111111111111111 heeft dus als decimale waarde 65535. Dit getal bekomen we door het gewicht van al de bits op te tellen.

Voorbeeld: het getal 1100012 komt overeen met 4910: bit5 + bit4 + bit0 = 32+16+1 = 49.

De bits in binair getallen worden gegroepeerd.

Een groep van 8 bits noemt men een BYTE.

Een groep van 16 bits of 2 BYTES noemt men een WOORD

Een groep van 32 bits, 4 BYTES, 2 WOORDEN noemt men een DUBBELWOORD

4 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 5: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1.1.1 Van binair naar decimaal.

Als we de decimale waarde van een binair getal willen berekenen, kunnen we gebruik maken van de formule om het bit gewicht te berekenen.

Voor elke 1 in het binaire getal vullen we het gewicht in van de overeenkomstige bit. Deze getallen tellen we op en we hebben de decimale waarde van het binaire getal.

Een voorbeeld:

De decimale waarde van het binaire getal: ‘100111012’ bepalen we volgende manier. (opgelet altijd rechts beginnen in het getal).

De eerste bit, 100111012, bit 0 is 1 maal het gewicht voor de eerste bit 20 => 1x1=1.

De tweede bit, 100111012, bit 1 is 0 maal het gewicht van de tweede bit, 21 => 0x2=0.

De derde bit, 100111012, bit 2 is 1 maal het gewicht van de derde bit is 22 => 1x4=4

Dit doe je voor elke bit en je maakt het totaal.

Volledig uitgeschreven wordt dit:

27.1+26.0+25.0+24.1+23.1+22.1+21.0+20.1=

128+0+0+16+0+8+4+0+1=15710

Oefeningen

Bereken de decimaal waarde van volgende binaire getallen:

11001102 =..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

10110102 =

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

Toegepaste informatica 5

VRIJ TECHNISCH INSTITUUT

Page 6: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1.1.2 Van decimaal naar binair.

Om de binaire waarde van een decimaal getal te berekenen, kunnen we gebruik maken van de rest methode. Deze methode bestaat er in om het getal te delen door 2 en dan de rest te noteren. Het resultaat van de deling wordt opnieuw door 2 gedeeld, opnieuw wordt de rest genomen. Dit wordt herhaald tot er 0 overblijft. Het binaire getal bekomen we door de resten in de juiste volgorde neer te schrijven.

Een voorbeeld ter illustratie, opnieuw willen we de binaire waarde van 21310 berekenen.

213 /2= 106 rest 1 => bit 0

106 /2= 53 rest 0 => bit 1

53 /2= 26 rest 1 => bit 2

26 /2= 13 rest 0 => bit 3

13 /2= 6 rest 1 => bit 4

6 /2= 3 rest 0 => bit 5

3 /2= 1 rest 1 => bit 6

1 /2= 0 rest 1 => bit 7

21310 = 110101012

Oefeningen

Bereken de binaire waarde van volgende getallen doe de controle door het getal met de twee methodes te berekenen:

19310 =..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

12310 =..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

6 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 7: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1.2 Het hexadecimale talstelsel.

Het binaire talstelsel is een moeilijk talstelsel om te verwerken, . De omzetting naar het decimale talstelsel is ook niet eenvoudig. Daarom is het 16-tallig talstelsel in het leven geroepen. Grote getallen kunnen veel compacter weergegeven worden. Het converteren van binair naar hexadecimaal en omgekeerd is ook vrij eenvoudig. Immers 16 is een macht van 2, nl 24.

Elke ‘digit’ van het hexadecimale talstelsel kan dus 16 waardes aannemen nl. van: 0-15. Om verwarring in de getallen te voorkomen worden de waardes 10, 11, 12, 13, 14 en 15 respectievelijk. A, B, C, D, E, en F. genoemd.

De 24 bit RGB kleur definitie in een computer is een goed voorbeeld waar de hexadecimale weergave duidelijker is dan de decimale of de binaire. Magenta bijvoorbeeld, is hexadecimaal FF00FF16, decimaal is dit 1671193510 en binair wordt de 24 bit RGB kleur 1111111100000000111111112 genoteerd.

Elke digit in een hexadecimaal getal heeft een gewicht dit gewicht wordt bepaald door de positie in het getal. De eerste digit zijn de eenheden. De tweede digit zijn de zestien-tallen, de derde digit zijn de 256-tallen de vierde digit de 4096-tallen, enz. Net zoals bij het binaire en het decimale talstelsel kan je dit in formule vorm schrijven.

Het cijfer gewicht kan je bepalen met zijn positie te beginnen van rechts met positie 1.

Het gewicht voor een digit wordt dan 16(n-1), waarbij n staat voor de positie van de bit.

Een voorbeeld het hexadecimale getal 132416 heeft als decimale waarde 490010. Je kan dit berekenen op dezelfde manier als je dit bij een decimaal of binair getal berekend.

1.16(4-1)+3.16(3-1)+2.16(2-1)+4.16(1-1)=1.4096+3.256+2.16+4.1=4900

1.1.2.1 Van hexadecimaal naar decimaal.

De omrekening van hexadecimaal naar decimaal kan je gebruikmakende van volgende formule.

Van het hexadecimale getal wordt de som genomen van elke digit vermenigvuldigd met het gewicht dat bekomen wordt door (n-1)e macht van 16, waarbij n de positie is van de digit.

Een voorbeeld:

De decimale waarde van het hexadecimale: ‘36E’ bepalen we volgende manier.

De eerste digit, 36E, heeft als waarde 14(E)x16(n-1)=14x160=14.De tweede digit, 36E, heeft als waarde 6x16(n-1)=6x161=96.De derde digit, 36E, heeft als waarde 3x16(n-1)=3x162=768.

Dit doe je voor elke cijfer van het hexadecimale getal en je telt alles samen, het resultaat geeft je de decimale waarde van het hexadecimale getal.

Volledig uitgeschreven wordt dit:162.3+161.6+160.E= 256.3+16.6+1.14=878

Toegepaste informatica 7

VRIJ TECHNISCH INSTITUUT

Page 8: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

Oefeningen

Bereken de decimale waarde van volgende hexadecimale getallen:

A1B16 =..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

11F16 =..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

8 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 9: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1.2.2 Van decimaal naar hexadecimaal.

Om een decimaal getal naar hexadecimaal om te rekenen maken we gebruik van de rest methode. Deze methode bestaat er in om het getal te delen door 16 en dan de rest te noteren. Het resultaat van de deling wordt opnieuw door 16 gedeeld, opnieuw wordt de rest genomen. Dit wordt herhaald tot er 0 overblijft. Door de resten in de juiste volgorde te nemen bekomen we ons hexadecimaal getal.

Een voorbeeld ter illustratie.

Hoe wordt het getal 1089210 hexadecimaal geschreven.

10892 /16 = 680 rest 12 digit 0 is C

680 /16 = 42 rest 8 digit 1 is 8

42 /16 = 2 rest 10 digit 2 is A

2 /16 = 0 rest 2 digit 3 is 2

Het hexadecimale getal wordt dan 2A8C16

Oefening

Bereken de hexadecimale waarde van het volgende decimale getallen:

200710 =..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

411110 =..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

..............................................................................................................................

Toegepaste informatica 9

VRIJ TECHNISCH INSTITUUT

Page 10: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1.2.3 Van hexadecimaal naar binair

Een hexadecimaal getal naar binair omreken of omgekeerd is heel eenvoudig.

Eén digit van een hexadecimaal getal komt exact overeen met 4 bits van een binair getal.

Hier gebruik van makend, wordt de omrekening zeer eenvoudig.

Elke digit van het hexadecimale getal heeft een waarde tussen 0 en 15 dit komt overeen met een binaire waarde van 0000 tot 1111. We converteren elke digit op die manier en hebben de decimale waarde. De grootte van het hexadecimale getal is maakt het de omrekening niet ingewikkelder.

Een voorbeeld.

Het hexadecimale getal 1C2B3A16 wordt.

1 C 2 B 3 A

12 11 10

0001 1100 0010 1011 0011 1010

1C2B3A16 = 0001 1100 0010 1011 0011 10102.

Als je spaties tussen de groepjes van 4 bit schrijft, zie je heel het verband beter.

Oefeningen

Bereken de binaire waarde van volgende hexadecimale getallen:

999916 =..............................................................................................................................

..............................................................................................................................

1D2A16 =..............................................................................................................................

..............................................................................................................................

3F7EB16 =..............................................................................................................................

..............................................................................................................................

10 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 11: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1.2.4 Van binair naar hexadecimaal

Om een Binair getal naar Hexadecimaal getal om te rekenen groeperen we de bits per 4.

Vervolgens doen we voor elk groepje van 4 bits een omrekening naar hexadecimaal waar bij de het binaire getal tussen 0000 en 1111 overeenkomt met een hexadecimale waar van 0 tot F.

We beginnen met groeperen vanaf de minst beduidende bit, bit 0.

Een voorbeeld:

Het binaire getal 101101110011010110100111112

groeperen per 4 0010 1101 1100 1101 0110 1001 1111

13 12 13 15

wordt: 2 D C D 6 9 F

10 1101 1100 1101 0110 1001 11112 = 2CBC69F16.

Oefeningen

Bereken de hexadecimale waarde van volgende binaire getallen:

1111011011101111011010010012 =..............................................................................................................................

..............................................................................................................................

1100010111011011011011112 =..............................................................................................................................

..............................................................................................................................

10010110011110011100002 =..............................................................................................................................

..............................................................................................................................

Toegepaste informatica 11

VRIJ TECHNISCH INSTITUUT

Page 12: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.1.3 Oefeningen op conversie:

1.1.3.1 Bereken de decimale waarde.

101010112=….........................................................................................................

110100012=….........................................................................................................

FF16=…...................................................................................................................

..............................................................................................................................

3416=…...................................................................................................................

..............................................................................................................................

1000000002=….......................................................................................................

10016=….................................................................................................................

..............................................................................................................................

1.1.3.2 Bereken de binaire waarde.

(C0F3)16=………………………………………………………………….…………….

(ABBA)16=……………………………………………………………………………….

(1023)10=….............................................................................................................

..............................................................................................................................

(200)10=…...............................................................................................................

..............................................................................................................................

1.1.3.3 Bereken de hexadecimale waarde.

(2047)10=….............................................................................................................

..............................................................................................................................

(201)10=…...............................................................................................................

..............................................................................................................................

(11011010100110111)2=……………………………………………………………….

(10100110011110001)2=……………………………………………………………….

12 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 13: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.2 Rekenen met binaire getallen.

1.2.1 Wiskundige bewerkingen

1.2.1.1 Binair optellen.

0+0 = 0 0

0+1 = 1 0

1+0 = 1 0

1+1 = 0 1

Overdrachtsbit (carrybit)

Sombit

Voorbeeld van een som.

111

10101

+ 11

11000

Oefeningen

Bereken volgende sommaties:

10111

+ 1101

..............

101

+ 1011

..............

Toegepaste informatica 13

VRIJ TECHNISCH INSTITUUT

Page 14: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.2.1.2 Het two's complement.

Omdat negatieve getallen niet bestaan in het binaire talstelsel worden de negatieve getallen voorgesteld door het two's complement. En in plaats van het verschil te maken van twee getallen, zal men het negatieve getal, het two's complement, bij het eerste getal optellen.

Het voordeel van de two's complement is dat men aan de MSB bit (Meest Significante bit) kan zien of een getal positief of negatief is. Om te weten welke de MSB bit is moet men weten welk de bit breedte is die men in één keer verwerkt. De bit breedte is afhankelijk van de architectuur van de processor en het geheugen. De meest voorkomende bit breedtes zijn 8, 16 of 32 bit. Tegenwoordig worden er ook al 64bit processoren gebruikt.

Het two's complement van een binair getal wordt bekomen door dit getal te inverteren en er dan 12 bij op te tellen.

Een voorbeeld: Hoe wordt het getal -1010 binair voorgesteld in een 8bit architectuur?

We schrijven het getal eerst en vooral binair (we vergeten het minteken even):1010 = 000010102

(We vullen het getal links aan met nullen omdat we weten dat het getal 8 bit breed is.)Vervolgens inverteren we dit binaire getal. Het inverse bekomt men door 0 te wijzigen in 1 en 1 te wijzigen in 0. 000010102 => 111101012

We teller 12 bij op:

111101012

+ 000000012

111101102

Het two's complement van 1010 is dus 111101102 (bij een 8-bit getal)

We kunnen de proef maken door de binaire waarde van 1010 en -1010, de two's complement op te tellen.

1 1 1 1 1 1

000010102 1010

+ 11110110 2 -10 10

1000000002

valt buiten de 8 bit, het resultaat is dus 000000002 is 010 klopt dus.Oefeningen

Bereken het two's complement van volgende binaire getallen: (8 bit breed)1010112 = …...........................................................................................................................................................................................................................................

12 = ….....................................................................................................................

...............................................................................................................................

111111112= .............................................................................................................

...............................................................................................................................

14 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 15: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.2.2 Logische bewerkingen

Logische bewerkingen op het binaire talstelsel komt veelvuldig voor bij het programmeren van allerhande toepassing. Dit gaat van het programmeren van een PLC, domotica, tot zelfs bepaalde formules in een rekenblad.

Logische bewerkingen zijn enkel mogelijk op elementen of variabelen van het type bool.

Bool duidt op één bit in het binaire talstelsel. Een variabele van het type bool heeft dus maar twee toestanden: 1 en 0. Andere benamingen van de twee toestanden van een variabele van het type bool zijn: true en false, waar en onwaar(NIETWAAR), H en L.

In eerste instantie gebruiken we de toestand 1 en 0 in de oefeningen. Verder in de cursus, als we de PLC gaan programmeren, zullen we gebruik maken van TRUE en FALSE. Deze worden in de meeste programmeertalen gebruikt.

1.2.2.1 De NIET-functie.

Het resultaat van de NIET of NOT functie is 1 als het element 0 is, en 0 als het element 1 is. We verkiezen de internationale schrijfwijze 'NOT' boven de Nederlandstalige 'NIET'.

De korte schrijfwijze wordt genoteerd met een streep boven het element. Bijvoorbeeld A.

NOT 0 = 1

NOT 1 = 0

Het is ook mogelijk om de NOT functie van een byte te berekenen. Het resultaat bekomt men door de NOT functie te nemen op elke bit afzonderlijk.

Vb NOT 100111102 = 011000012

Oefeningen

NOT 101010102=.........................

NOT 111000102=.........................

Toegepaste informatica 15

VRIJ TECHNISCH INSTITUUT

Page 16: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.2.2.2 De EN-functie

Het resultaat van de EN of AND functie is 1 als beide elementen 1 zijn. We verkiezen de internationale schrijfwijze 'AND' boven de Nederlandstalige 'EN'.

De korte schrijfwijze van 'AND' is '.'.Als we een element A en een element B hebben beide van het type BOOL, hebben we 4 mogelijke combinaties. In de tabel zijn al de mogelijke combinaties genoteerd. Elke rij is een mogelijke combinatie van A en B. Het resultaat van de AND functie bij deze combinatie zie je in de derde kolom. Een dergelijk tabel noemen we een waarheidstabel.

A BA AND B of A.B

0 0 0

0 1 0

1 0 0

1 1 1

A B C A.B.C

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 1Met een derde element of variabele heeft men 8 mogelijkheden. (23)

Het is ook mogelijk om de AND functie van 2 bytes te berekenen. Het resultaat bekomt men door de AND functie te nemen op elke bit afzonderlijk.

Vb 101112 AND 100111102 = 101102

duidelijker is:

10111

AND 10011110

10110

Oefeningen

Bereken de volgende AND functies:

10111

AND 1001101

...............................

1010101

AND 11011

.............................

16 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 17: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.2.2.3 De OF-functie.

Het resultaat van de OF of OR functie is 1 als één van beide elementen 1 is. We verkiezen de internationale schrijfwijze 'OR' boven de Nederlandstalige 'OF'.

De korte schrijfwijze van 'OR' is '+'.

A BA OR B of A+B

0 0 0

0 1 1

1 0 1

1 1 1

A B C A+B+C

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1Met een derde element of variabele heeft men 8 mogelijkheden. (23)

Het is ook mogelijk om de OR functie van 2 bytes te berekenen. Het resultaat bekomt men door de OR functie te nemen op elke bit afzonderlijk.

Vb 100112 OR 100110102 = 100110112

duidelijker is:

10011

OR 10011010

10011011

Oefeningen

Bereken de volgende OR functies:

10111

OR 1001101

...............................

1010101

OR 11011

.............................

Toegepaste informatica 17

VRIJ TECHNISCH INSTITUUT

Page 18: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.2.2.4 EXOF-functie.

Exclusieve Of functie.

Het resultaat van de EXOF of XOR functie is 1 als de elementen verschillend zijn van elkaar. We verkiezen de internationale schrijfwijze 'XOR' boven de Nederlandstalige 'EXOF'.

A B A XOR B

0 0 0

0 1 1

1 0 1

1 1 0

A B C A XOR B XOR C

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1Met een derde element of variabele heeft men 8 mogelijkheden. (23)

Het is ook mogelijk om de XOR functie van 2 bytes te berekenen. Het resultaat bekomt men door de XOR functie te nemen op elke bit afzonderlijk.

Vb 100112 OR 100110102 = 100110112

duidelijker is:

10011

XOR 10011010

10001001

Oefeningen

Bereken de volgende XOR functies:

10111

XOR 1001101

...............................

1010101

XOR 11011

.............................

18 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 19: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.2.3 Oefeningen

Bereken het 2nd complement van volgende 8-bit getallen:

(-6)10 =……..………………………………………………………………………………………

(-1)10 =…..…………………………………………………………………………………………

(-15)10 =..……………………………………………………………………………………………

(-200)10=.……………………………………………………………………………………………

(-83)10 =..……………………………………………………………………………………………

Voer volgende berekeningen binair uit.

Ook in deze oefening werken we met de 8e bit als tekenbit.

1112

+ 1000 2

………………

11112

+ 100001 2

………………

10100112

+ 11011 2

………………

100102

+ 1111 2

………………

710 ……………..

+1210 +………………

………………

-1510 ……………..

+3310 +………………

………………

8310 ……………..

-2710 +………………

………………

-1810 ……………..

-1510 +………………

………………

Toegepaste informatica 19

VRIJ TECHNISCH INSTITUUT

Page 20: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

Voer volgende logische bewerkingen uit.

10111000

AND 10011010

…………..

10111101

AND 00011010

…………..

10111000

OR 10011010

…………..

00111101

OR 10011010

…………..

10111000

XOR 10011010

…………..

10111101

XOR 00011010

…………..

NOT 00011010

…………..

NOT 10111101

…………..

20 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 21: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.3 De microprocessor: werking

Het volgende deel gaat over de principiële werking van een microprocessor. We nemen een fictieve, zeer eenvoudige 8 bit processor als voorbeeld.

Een 8bit processor kan allerhande logische en rekenkundige bewerkingen uitvoeren op, in dit geval, 8bit binaire getallen. Naast de logische en rekenkundige bewerking zijn er nog tal van ander functies. Zoals het schuiven van bits, het vergelijken van waardes enz.

Deze processor heeft één Arithmetic Logic Unit, of rekenkundige eenheid, kortweg ALU.

Hedendaagse processors hebben meerdere ALU’s, en hebben een veel uitgebreidere instructieset. Zij verwerken geen 8 bits maar 16, 32 of zelfs 64 bit binairegetallen. Tevens verwerken de ALU’s dan meerdere instructies simultaan. En gebeurt de verwerking aan hogere snelheden.

Kortom onze voorbeeld processor is maar een fractie van de hedendaagse processoren.

1.3.1 Principiële werking.

Een microprocessor kan dus een hele reeks instructies verwerken. Deze instructies zijn afhankelijk van Processor type en van fabrikant. De verzameling van deze instructies noemt instructieset. Zo een instructieset is niet meer dan een binaire code waarmee de instructiedecoder weet welke data, waar naar toe moet en welke bewerking de ALU er moet op uitvoeren.

Simplistisch gesteld is de instructie set niet meer dan een toewijzing van bepaalde bewerkingen aan een bepaalde binaire code. Voor de mens is die binaire code of machine code vertaalt in een leesbare programmeertaal woorden i.p.v. binaire getallen. Deze programmeertaal noemt men ook assembler of Assembly Language. Het instructieset is “ingebakken” in de CPU.

Eigenlijk doet de microprocessor drie basis dingen.

• Hij gebruikt de Arithmetic Logic Unit om verschillende wiskundige operaties uit te voeren. Optellen, aftellen, delen, vermenigvuldigen, enz…Moderne processors kunnen deze bewerkingen op grote komma getallen uitvoeren.

• Hij kan data verplaatsen, schuiven,.. van het ene adres naar een ander adres. (Van het geheugen naar IO, etc..)

• Hij kan beslissingen nemen en sprongen maken in het programma.

Toegepaste informatica 21

VRIJ TECHNISCH INSTITUUT

Page 22: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.3.2 Schematische voorstelling van een microprocessor.

Onderstaande figuur toont een zeer eenvoudige microprocessor architectuur.

● Een adresbus (8, 16, 32, 64 bit breed) die een bepaalde geheugenplaats, een logische bouwsteen, een I/O apparaat selecteert.

• Een databus (8, 16, 32, 64 bit breed) die de eigenlijk data van de geadresseerde (dus de geselecteerde) bouwsteen bevat. Deze data kan ofwel gelezen ofwel geschreven worden.

• Een controlbus deze bus controleert de geadresseerde bouwsteen, hij vertelt de bouwsteen bijvoorbeeld of de data gelezen dan wel geschreven moet worden.

• Een kloksignaal dit bepaalt het ritme waarmee de instructies worden uitgevoerd. Een instructie is verschillende klokcycli lang. De lengte is afhankelijk van de instructie.

• Een resetsignaal om de processor in een begin toestand te brengen.

22 Toegepaste informatica

CO

NT

RO

L

ALU

REGISTER C

REGISTER A

PROGRAMCOUNTER

ADRESSREGISTER

Instructie decoder

INSTRUCTIEREGISTER

TEST REGISTER

DATA

DATA

DA

TA

DA

TA

DA

TA

DA

TA

DA

TA

DA

TA

DA

TA

CO

NT

RO

L

CO

NT

RO

L

CO

NT

RO

L

CONTROL

CONTROL

CONTROL

CONTROLCONTROL

Clock

Reset

DATA

Adres bus Data bus Controle bus

Centrale Verwerkings Eenheid (CPU)

REGISTER B

DATA

DATA

CONTROL

VRIJ TECHNISCH INSTITUUT

Page 23: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

• Het A, B en C register, zijn eenvoudige “geheugens” gemaakt met flipflop’s. Deze registers bewaren de data van de databus voor verwerking in de ALU

• Het adresregister is op dezelfde manier opgebouwd als de andere registers. Hierin wordt het adres opgeslagen dat via het programma wordt opgeroepen.

• Het instructieregister: in dit register wordt de instructie opgeslagen die uit het programma geheugen wordt gehaald.

• De programcounter, (het programmaregister), heeft als extra functie dat hij 1 bijtellen kan. De programmacounter wijst naar de plaats in het geheugen waar het programma staat. Meer specifiek naar de programmalijn waar hij mee bezig is.

• Het testregister is een speciaal “geheugen” dat het resultaat van een vergelijking of deze kan de carry bit onthouden.

• De ALU is een blok die verschillende logische en wiskundige bewerkingen kan uitvoeren. De simpelste uitvoering zou bijvoorbeeld een opteller kunnen zijn.

• Het instructieregister is samen met de instructiedecoder verantwoordelijk voor de controle over al de andere bouwstenen van de processor. Elke instructie wordt vertaald in een aantal controle signalen waardoor de verschillende bouwstenen worden aangesproken om iets te doen.

• Zo zijn er verschillende controle signalen die we in de controlebus terug vinden.

o Het READ signaal: vertelt de geadresseerde om de data te lezen.

o Het WRITE signaal: vertelt de geadresseerde om data op de bus te schrijven.

o Een controle signaal naar het A-register om de momentele waarde op de databus op te slaan.

o Ook voor het B en C register, het adresregister, de programcounter en het instructieregister is er een dergelijk controle signaal.

o Een controle signaal naar de programcounter om één te verhogen

o Een controle signaal naar de programcounter om te resetten.

o Signalen naar de ALU waarmee de verschillende functies worden aangesproken. (Optellen, aftellen, etc…)

o Een controle signaal om de waarde in het testregister te bewaren.

Toegepaste informatica 23

VRIJ TECHNISCH INSTITUUT

Page 24: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.3.3 Assembler.

Al de instructies in de instructiedecoder, eigenlijke een binaire code, worden voor de programmeur als assembler-code vertaalt, deze assembler-code is beter leesbaar.

Een microprocessor beschikt dus over een bepaald instructie-set vast ingebakken in de instructiedecoder van de microprocessor.

Een eenvoudige assembler instructieset van een eenvoudige processor zou er als volgt kunnen uitzien.

● LOADA mem: Laad register A met de waarde van adres “mem”.

● LOADB mem : Laad register B met de waarde van adres “mem”.

• CONB con : Laad een waarde “con” in register B

• SAVEB mem: Bewaar de waarde van register B op adres “mem”.

• SAVEC mem: Bewaar de waarde van register C op adres “mem”.

• ADD : Tel de waarde van register A bij die van B en bewaar het resultaat in register C

• SUB : Verminder de waarde van register A met deze van B en bewaar het resultaat in register C.

• MUL : Vermenigvuldig de waarde van A met deze van B en bewaar het resultaat in register C.

• CMP : Vergelijk de waarde van register A met deze van register B en bewaar het resultaat in het test register.

• JUMP addr : spring naar een bepaald adres. (het programma). De programcounter wordt aangepast.

• JEQ addr : Spring …, als gelijk, naar een adres. Deze instructie volgt onmiddellijk na een vergelijk instructie. Het resultaat in het testregister wordt gebruikt.

• JNEQ addr : Spring …, als niet gelijk, naar een adres.

• JG addr : Spring …, als groter dan, naar een adres.

• JGE addr : Spring …, als groter dan of gelijk, naar een adres.

• JL addr : Spring …, als kleiner dan, naar een adres.

• JLE addr : Spring …, als kleiner dan of gelijk aan, naar een adres.

• STOP : Stop het programma.

24 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 25: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.3.4 Een eenvoudig programma.

Het volgend voorbeeld van een eenvoudig programma verduidelijkt de werking van de processor.

Stel we schrijven een eenvoudig programma om twee getallen met elkaar op te tellen.

Deze getallen bevinden zich in het geheugen op adres 124 en 125.

Het programma:

LOADA 124 ; laad de waarde van geheugenadres 124 in het register A

LOADB 125 ; laad de waarde van geheugenadres 125 in het register B

ADD ; Tel de waarde van het register A bij deze van de waarde van register B en bewaar het resultaat in register C

SAVEC 126 ; bewaar de waarde van register C op het geheugenplaats 126.

STOP ; programma einde.

In detail(vereenvoudigd) zou het volgende gebeuren:

De instructie ‘LOADA 124’ wordt vertaalt in volgende stappen.

Na een reset staat in de programmacounter het adres van de eerste regel van het programma.

● In een eerste klokcyclus wordt de instructie die te vinden is op het adres van de programmacounter in het instructieregister ingelezen.Op de adresbus staat het adres dat in de programmacounter staat, de geadresseerde bouwsteen, bijvoorbeeld een geheugen, krijgt de opdracht de gegevens van dit adres op de DATABUS te plaatsen. Deze DATA wordt in het instructie register opgeslagen.

● In dit geval is er nog een tweede cyclus nodig om het tweede deel van de instructie in te lezen, (het adres waar de eerste waarde gehaald moet worden). Het tweede gedeelte van deze instructie, 124 in het voorbeeld, wordt in dit geval in het adresregister bewaard.

● De derde klokcyclus zorgt er voor dat de gegevens van het adres 124 in het register A bewaard wordt.

(In dit geval heeft de instructie 3 klokcycli nodig gehad. Hoeveeel cycli een instructie nodig heeft om uitgevoerd te worden is afhankelijk van de complexiteit van de instructie, van de breedte van de databus en de registers.)

● De instructie eindigt met het verhogen van de programmacounter.

De volgende instructie wordt gelezen.

● De volgende instructie wordt met een volgende klokcyclus in het instructieregister gelezen.

De instructie LOADB 125 wordt vertaalt involgende stappen.

● Nu wordt het getal 125 in het adresregister geplaatst.

● Het verder verloop van deze instructie is analoog aan de vorige.

.

Toegepaste informatica 25

VRIJ TECHNISCH INSTITUUT

Page 26: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.3.5 Processor eigenschappen

Je merkt dat voor dit eenvoudig programma met eenvoudige instructies al verschillende klokcycli nodig zijn voor de uitvoering van een programma regel.

De klokfrequentie, de breedte van de data en adresbus, de complexiteit van de processor (het aantal ALU’s) de grootte van het instructie set beïnvloeden de uitvoeringstijd van het programma.

∗ Hoe hoger de klokfrequentie, hoe sneller de uitvoering van een programma.

∗ Meerdere ALU’s en dus de mogelijkheid om verschillende bewerkingen gelijktijdig uit te voeren, beïnvloed de verwerkingssnelheid gunstig.

∗ Hoe breder de databus, adresbus en registers hoe meer informatie tegelijk verwerkt kan worden, hoe sneller de verwerking dus.

26 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT

Page 27: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

1.4 Doelstellingen.

1. De functie van het binaire talstelsel verklaren.

2. De functie van het hexadecimale talstelsel verklaren.

3. Een binair getal omrekenen naar decimaal en omgekeerd.

4. Een hexadecimaal getal omrekenen naar decimaal en omgekeerd.

5. Een hexadecimaal getal omrekenen naar binair en omgekeerd.

6. Een binaire som kunnen berekenen.

7. Het two’s complement van een getal kunnen berekenen.

8. Een binair verschil kunnen berekenen.

9. Een AND functie van binaire getallen kunnen berekenen

10.Een OR functie van binaire getallen kunnen berekenen

11. Een NOT functie van binaire getallen kunnen berekenen

12.Een XOR functie van binaire getallen kunnen berekenen

13.De functie van de ALU in een processor kunnen omschrijven.

14.De belangrijkste delen op het schematische overzicht van een CVE kunnen aanduiden..

15.De functie van de adresbus in een processorsysteem kunnen omschrijven.

16.De functie van de databus in een processorsysteem kunnen omschrijven.

17.De functie van de controlbus in een processorsysteem kunnen omschrijven.

18.De functie van het kloksignaal in een processorsysteem kunnen omschrijven.

19.De functie van het resetsignaal in een processorsysteem kunnen omschrijven.

20.De functie van de programcounter kunnen omschrijven.

21.De functie van het instructieregister en de instructiedecoder kunnen omschrijven.

22.Een eenvoudig assembler programma kunnen verklaren.

23.De belangrijkste factoren die de verwerkingstijd beïnvloeden kunnen opnoemen.

Toegepaste informatica 27

VRIJ TECHNISCH INSTITUUT

Page 28: VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 …users.telenet.be/mijn_favorieten/files/TIN_deel1.pdf · rekenen. Processoren maken hiervoor gebruik van het binaire talstelsel.

28 Toegepaste informatica

VRIJ TECHNISCH INSTITUUT