counter
Binær teller
Å telle er en vesentlig funksjon til mange elektroniske brikker. Klart at de bruker binære tall, ikke desimale. Her er du utfordret til å bygge en binær teller.
Det går enkelst når du baserer deg på ditt ark som konverterer mellom binære og desimale tall. Telleren skal inkrementere det binære tallet som står øverst i regnearket.
Legg inn der to knapper ved hjelp av kontrollverktøykassen (Vis -> Verktøylinjer -> Kontrollverktøykassen) og knapp-ikonet som du finner der.
button
Den ene knappen skal brukes for å telle. Den andre for å sette telleren til null. Rediger teksten på knappene ved høyre-klikk og CommandButton-objekt -> Edit.
counter
Det er enkelt å lage en makro som setter det binøre tallet øverst i arket til null. Du kan gjøre det ved å direkte skrive kode inn i makroen som er tilknyttet Reset knappen. Høyre-klikk på knappen og velg Vis kode.
counter
Har du gitt navn til cellene dine, kan du nå referere direkte til navnene. Dermed blir koden veldig transparent: Den setter alle binære siffrene til telleren til null.
counter
For å prøvekjøre, må du bare huske å gå ut av utformingsmodus:
utformingsmodus
Funker Reset knappen nå?
counter
Nå er det på tide å implementere selve telleren. Gå tilbake i utformingsmodus, høyre-klikk på den andre knappen, og velg igjen Vis kode
counter
Telling fungerer slikt:
	00000	= 0
	00001	= 1
	00010	= 2
	00011	= 3
	00100	= 4
	...
	
Prinsippet er altså:
  • Øk det binære siffret i laveste posisjon: 0 -> 1, og deretter 1 -> 2.
  • Dersom det gikk over fra 1 til 2, har vi tellt for langt i denne posisjonen. Rett opp ved å sette posisjonen til 0 og øk isteden det binøre siffret i nest-laveste posisjon.
  • Dersom det gikk over fra 1 til 2, har vi igjen gått for langt. Rett opp ved å sette posisjonen til 0; øk det binøre siffret i tredje posisjon.
  • etc etc etc...
Det finnes flere måter å implementere dette. Her er en mulighet.
counter
Hvis du går bort fra bruk av navn, kan du gjøre dette i en elegant løkke. Men saken blir mindre transparent.
Husk igjen å forlate utformingsmodus for å teste dette...

Tilbake til index