Styring av display

Gruppeoppgave om:

H-P Ulven 30.08.16

Display

Segmenter og koder:

Figuren over viser at hvis vi sender tallet 0110 0110 til et register som styrer displayet, så vil segmentene som er i 2dre, 3dje, 6te og 7de bit bli slått på slik at tallet 4 vises.

128
 64 
 32 
 16 
 8 
 4 
 2 
 1 
0 1 1 0 0 1 1 0

Den binære koden 0110 0110 tilsvarer et desimaltall 2+4+32+64 = 102, så instruksjonen WRITE(D, 102) ville gi tallet 4, hvis registeret D er koblet til det fysiske displayet.

 

Programmering

Vi tenker oss at vår lille datamaskin som skal styre dette displayet blandt annet har følgende instruksjoner:
(Senere kan vi diskutere om det er andre instruksjoner vi ønsker oss i tillegg.)

Instruksjon: Eksempel: Forklaring:
WRITE( <reg>, <tall>) WRITE(D,6) Skriver tallet 6 til register D (som er koblet til displayet i figuren over),
6 er binært 0000 0110, så WRITE(D,6) vil slå på segmentene koblet til bitene
som representerer 2 og 4, så vi får et ett-tall på displayet.
WAIT( <tall>) WAIT(500) Datamaskinen vil vente og ikke gjøre noe i 500 millisekunder.
REPEAT   Går tilbake til begynnelsen av programmet og fortsetter derfra.
Ved å avslutte med denne instruksjonen får vi altså datamaskinen til å
gjenta programmet vårt i det uendelige helt til strømmen blir slått av.

 

Oppgaver

  1. Lag et program som får en gul stripe (ett enkelt segment) til å bevege seg rundt i en sirkel.
    (Slå på segmentene tilordnet tallene 1, 2, 4, 8, 16 og 32 i tur og orden.)
  2. Lag et program som får en gul stripe til å bevege seg i et åttetall
  3. Lag et program som får displayet til å telle fra 0 til 9 i det uendelige.